http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58653

Mikael Pettersson <mikpelinux at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |mikpelinux at gmail dot com

--- Comment #3 from Mikael Pettersson <mikpelinux at gmail dot com> ---
4.4.7 works, 4.5.4 fails, started with r148352 which moved the predcom pass
down
a bit (it was just before tree unswitching before this revision).  The code
generation difference for this test case at this revision looks completely
bonkers (huge addressing offsets are added, causing the SEGV):

--- pr58653.s-r148351   2013-10-11 16:44:28.999007628 +0200
+++ pr58653.s-r148352   2013-10-11 16:41:15.659132274 +0200
@@ -7,18 +7,18 @@
 .LFB0:
        .cfi_startproc
        movl    c(%rip), %eax
-       movl    a(%rip), %ecx
-       leal    3(%rax), %edx
+       movl    a(%rip), %edx
        addl    $4, %eax
-       testl   %ecx, %ecx
+       testl   %edx, %edx
        jne     .L2
-       movslq  %edx, %rdx
        cltq
-       movl    e(,%rdx,8), %ecx
-       testl   %ecx, e(,%rax,8)
+       movabsq $e+17179869180, %rdx
+       movl    (%rdx,%rax,8), %ecx
+       leaq    2147483647(%rax), %rdx
+       movl    e(,%rdx,8), %edx
+       testl   %edx, e(,%rax,8)
        jne     .L5
-       movl    e+4(,%rax,8), %eax
-       testl   %eax, e+4(,%rdx,8)
+       testl   %ecx, e+4(,%rax,8)
        jne     .L6
 .L2:
        movl    $2, d(%rip)

Reply via email to