http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55247
--- Comment #11 from Uros Bizjak <ubizjak at gmail dot com> 2012-11-10 11:55:55
UTC ---
~/gcc-build/gcc/cc1 -O2 -mx32 -maddress-mode=long pr55247.c
results in following sequence:
movdqu (%eax), %xmm0
movdqa %xmm0, (%rsp)
movq (%rsp), %rax
movq 8(%rsp), %rdx
movq %rax, 16(%rsp)
movq %rdx, 24(%rsp)
while -maddress=mode=short produces expected code:
movq 8(%eax), %rdx
movq (%eax), %rax
movq %rdx, 8(%esp)
movq %rax, (%esp)
