------- Comment #2 from ramana at gcc dot gnu dot org  2009-07-08 10:00 -------
However Confirmed with trunk for Thumb1. The extra move doesn't appear for ARM
or Thumb2 . 

The code below is what is generated for Thumb2 or ARM .

        .type   _ZN3CCC5funcAEv, %function
_ZN3CCC5funcAEv:
        .fnstart
.LFB2:
        .cfi_startproc
        .cfi_personality 0x0,__gxx_personality_v0
        @ args = 0, pretend = 0, frame = 0
        @ frame_needed = 0, uses_anonymous_args = 0
        push    {r3, r4, r5, lr}        @
        .save {r3, r4, r5, lr}
        .cfi_def_cfa_offset 16
        mov     r5, r0  @ this, this
        .cfi_offset 14, -4
        .cfi_offset 5, -8
        .cfi_offset 4, -12
        .cfi_offset 3, -16
        ldr     r0, [r0, #0]    @ float @, <variable>.fRadius
        bl      _Z3foof @
        ldr     r1, [r5, #4]    @, <variable>.flag
        mov     r4, r0  @ radius,
        bl      _Z3barfi        @
        mov     r0, r4  @, data$fSignBitInt
        bl      _Z3fffi @
        mov     r5, r0  @ D.1797,
        mov     r0, r4  @, data$fSignBitInt
        bl      _Z3fffi @
        mov     r1, r0  @ D.1803,
        mov     r0, r5  @, D.1797
        bl      _Z3setii        @
        pop     {r3, r4, r5, pc}
        .cfi_endproc


-- 

ramana at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2009-07-08 10:00:06
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40680

Reply via email to