--- 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|-00-00 00:00:00 |2009-07-08 10:00:06
date||
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40680