https://gcc.gnu.org/bugzilla/show_bug.cgi?id=11824

Richard Earnshaw <rearnsha at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED
   Target Milestone|---                         |4.6.0

--- Comment #5 from Richard Earnshaw <rearnsha at gcc dot gnu.org> ---
I'm not sure exactly when this was fixed, but certainly it was some time ago. 
At least, gcc-4.6 appears to implement this optimization at -Os.

foo:
        @ Function supports interworking.
        @ args = 0, pretend = 0, frame = 8
        @ frame_needed = 0, uses_anonymous_args = 0
        stmfd   sp!, {r0, r1, r2, lr}
        mov     r3, #7
        mov     r2, #6
        mov     r0, sp
        add     r1, sp, #4
        stmia   sp, {r2, r3}
        bl      func
        ldmfd   sp!, {r1, r2, r3, lr}
        bx      lr

Reply via email to