From ee49a9c7be5b61f467f7049517c9f8ded05e0f39 Mon Sep 17 00:00:00 2001 From: Jim Wilson Date: Wed, 22 May 1996 14:41:29 -0700 Subject: (nonzero_bits): Don't assume arg pointer has same alignment as stack pointer. From-SVN: r12079 --- gcc/combine.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'gcc') diff --git a/gcc/combine.c b/gcc/combine.c index 3bb8dea..7ba5c9a 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -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)) { -- cgit v1.1