------- Comment #5 from steven at gcc dot gnu dot org 2010-01-02 00:52 ------- >From "GCC: (GNU) 4.5.0 20090808 (experimental) [trunk revision 150579]":
1 @ 1 bl 1 pop 1 push 1 sub 2 cmp 2 str 4 add 4 mov 7 ldr test: push {r4, r5, r6, r7, lr} sub sp, sp, #12 mov r4, r0 str r2, [sp, #4] mov r6, #0 mov r7, #0 b .L2 .L3: ldr r3, [r4, #4] ldr r2, [sp] ldr r0, [r3, r6] ldr r1, [r3, r2] bl func add r5, r5, #1 .L5: ldr r3, [sp, #4] cmp r5, r3 blt .L3 ldr r6, [sp] add r7, r7, #1 .L2: ldr r3, [r4] cmp r7, r3 bge .L1 add r2, r6, #4 str r2, [sp] mov r5, #0 b .L5 .L1: add sp, sp, #12 @ sp needed for prologue pop {r4, r5, r6, r7, pc} -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39838