http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48696
--- Comment #4 from Richard Guenther <rguenth at gcc dot gnu.org> 2011-04-20
12:11:56 UTC ---
(In reply to comment #3)
> So something changed between 4.0.3 and 4.0.4? Or maybe a typo?
I only have 32bit compilers for both and see, for 4.0.3:
show_bug:
pushl %ebp
movl %esp, %ebp
movl 8(%ebp), %edx
movl (%edx), %eax
andl $-64, %eax
movl %eax, (%edx)
shrl $6, %eax
popl %ebp
movzwl %ax, %eax
ret
and for 4.0.4:
show_bug:
pushl %ebp
movl %esp, %ebp
movl 8(%ebp), %eax
andb $-64, (%eax)
movl (%eax), %eax
leave
shrl $6, %eax
movzwl %ax, %eax
ret