[Bug middle-end/30905] [4.3 Regression] Fails to cross-jump
rahul at icerasemi dot com
gcc-bugzilla@gcc.gnu.org
Thu Jun 11 17:38:00 GMT 2009
------- Comment #15 from rahul at icerasemi dot com 2009-06-11 17:38 -------
GCC4.4 is still missing this fix. GCC-4.4.1 (20090507) on x86_64 produces the
following with O2/O3
kernel:
pushl %ebp
movl %esp, %ebp
subl $24, %esp
movl $1, (%esp)
call gen_int
testl %eax, %eax
je .L2
movl a, %edx
movl %edx, %ecx
andl $3, %ecx
leal (%ecx,%edx), %edx
movl %edx, a
movl b, %edx
movl %edx, %ecx
orl $3, %ecx
leal (%ecx,%edx), %edx
movl %edx, b
.L7:
movl a+4, %eax
movl %eax, %edx
andl $3, %edx
leal (%edx,%eax), %eax
movl %eax, a+4
movl b+4, %eax
movl %eax, %edx
orl $3, %edx
leal (%edx,%eax), %eax
movl %eax, b+4
leave
ret
.p2align 4,,7
.p2align 3
.L2:
movl a, %eax
movl %eax, %edx
andl $3, %edx
leal (%edx,%eax), %eax
movl %eax, a
movl b, %eax
movl %eax, %edx
orl $3, %edx
leal (%edx,%eax), %eax
movl %eax, b
jmp .L7
Any reason why this shouldn't go into 4.4?
--
rahul at icerasemi dot com changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |rahul at icerasemi dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30905
More information about the Gcc-bugs
mailing list