http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56351
Seth LaForge <sethml at google dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |sethml at google dot com --- Comment #3 from Seth LaForge <sethml at google dot com> 2013-02-15 22:43:56 UTC --- Thank you Andrew, super useful pointer! Yes, that patch does appear to fix my problem. I've backported it to gcc 4.7 and posted a patch: http://gcc.gnu.org/ml/gcc-patches/2013-02/msg00800.html With gcc 4.7.2 with my/Julian's patch, I get correct code: 43 PrintAndStoreUnaligned: 46 0020 B538 push {r3, r4, r5, lr} 47 0022 EC523B10 fmrrd r3, r2, d0 48 0026 4614 mov r4, r2 49 0028 461D mov r5, r3 50 002a 4622 mov r2, r4 51 002c EC423B10 fmdrr d0, r3, r2 52 0030 F7FFFFFE bl PrintDouble 53 0034 F2400300 movw r3, #:lower16:unaligned_double 54 0038 F2C00300 movt r3, #:upper16:unaligned_double 55 003c 605D str r5, [r3, #4] 56 003e 601C str r4, [r3, #0] 57 0040 BD38 pop {r3, r4, r5, pc}