http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46247
Ramana Radhakrishnan <ramana at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2011.04.04 21:31:00 CC| |ramana at gcc dot gnu.org Ever Confirmed|0 |1 --- Comment #1 from Ramana Radhakrishnan <ramana at gcc dot gnu.org> 2011-04-04 21:31:00 UTC --- vmov.i32 d18, #0 @ v8qi @ D.13245, movw r0, #:lower16:.LC0 @, vmov.i8 d19, #1 @ v8qi @ tmp229, movt r0, #:upper16:.LC0 @, vmov d17, d18 @ v8qi @ tmp231, D.13245 push {r4, r5, lr} @ vmov.i8 d16, #2 @ v8qi @ tmp236, sub sp, sp, #60 @,, vzip.8 d19, d17 @ tmp230, tmp231 add r3, sp, #48 @ tmp238,, fstd d17, [sp, #16] @ tmp231, vzip.8 d16, d18 @ tmp236, tmp237 fstd d16, [sp, #8] @ tmp236, vst1.8 {d19}, [r3] @ tmp230, tmp238 add r3, sp, #40 @ tmp239,, movw r4, #:lower16:.LC1 @ tmp243, vst1.8 {d17}, [r3] @ tmp231, tmp239 <----- add r3, sp, #32 @ tmp240,, movt r4, #:upper16:.LC1 @ tmp243, vst1.8 {d16}, [r3] @ tmp236, tmp240 add r3, sp, #24 @ tmp241,, vst1.8 {d17}, [r3] @ tmp231, tmp241 bl puts @ Why does this end up storing so many values to the stack . The problem appears to be with storing d17 twice instead of storing d18 in the case marked with ---->