------- Comment #2 from ramana at gcc dot gnu dot org 2009-12-30 00:10 ------- (In reply to comment #1) > What architecture options are you using ? With .ident "GCC: (GNU) > 4.5.0 20091229 (experimental)" and -O2 I get the redundant move into r4 of sp > . > > But for -Os I get the following very different code. I don't see the call to > memset ever. \
Sorry I meant this rather than the code in comment #1 bar: @ args = 0, pretend = 0, frame = 16 @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r0, r1, r2, r3, r4, lr} str r0, [sp, #0] mov r0, sp stmib sp, {r1, r2, r3} @ phole stm bl foo mov r0, sp mov r4, sp bl foo ldmfd sp!, {r0, r1, r2, r3, r4, pc} .size bar, .-bar .ident "GCC: (GNU) 4.5.0 20091229 (experimental)" .section .note.GNU-stack,"",%progbits -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42500