------- Comment #6 from jakub at gcc dot gnu dot org 2009-09-10 11:45 -------
I bet the bug is in r151573, tree-ssa-math-opts.s difference between stage1
compiled tree-ssa-math-opts.c done using a day old stage1 cc1 and current
stage1 cc1 is:
@@ -1050,7 +1050,7 @@ find_bswap_1:
addl $-1, 64(%esp)
movl %edx, 68(%esp)
movl 64(%esp), %edx
- adcl $-1, 68(%esp)
+ adcl $0, 68(%esp)
movl 68(%esp), %ecx
andl %edx, (%edi)
andl %ecx, 4(%edi)
@@ -1368,7 +1368,7 @@ find_bswap_1:
addl $-1, 80(%esp)
movl %edx, 84(%esp)
movl 80(%esp), %edx
- adcl $-1, 84(%esp)
+ adcl $0, 84(%esp)
movl 84(%esp), %ecx
andl (%edi), %edx
andl 4(%edi), %ecx
@@ -1738,7 +1738,7 @@ execute_optimize_bswap:
movl 40(%esp), %eax
movl %edx, 44(%esp)
movl 40(%esp), %edx
- adcl $-1, 44(%esp)
+ adcl $0, 44(%esp)
movl 44(%esp), %ecx
andl $67305985, %eax
movl %eax, 56(%esp)
which strongly suggests the shifting got broken.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41324