OSDN Git Service

(nonzero_bits): Don't assume arg pointer has same
authorwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 22 May 1996 21:41:29 +0000 (21:41 +0000)
committerwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 22 May 1996 21:41:29 +0000 (21:41 +0000)
alignment as stack pointer.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@12079 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/combine.c

index 3bb8dea..7ba5c9a 100644 (file)
@@ -6974,8 +6974,13 @@ nonzero_bits (x, mode)
         stack to be momentarily aligned only to that amount, so we pick
         the least alignment.  */
 
+      /* We can't check for arg_pointer_rtx here, because it is not
+        guaranteed to have as much alignment as the stack pointer.
+        In particular, in the Irix6 n64 ABI, the stack has 128 bit
+        alignment but the argument pointer has only 64 bit alignment.  */
+
       if (x == stack_pointer_rtx || x == frame_pointer_rtx
-         || x == arg_pointer_rtx || x == hard_frame_pointer_rtx
+         || x == hard_frame_pointer_rtx
          || (REGNO (x) >= FIRST_VIRTUAL_REGISTER
              && REGNO (x) <= LAST_VIRTUAL_REGISTER))
        {