regmove.c (combine_stack_adjustments_for_block): Check that the stack pointer is...
authorStephane Carrez <stcarrez@worldnet.fr>
Wed, 22 Mar 2000 23:05:12 +0000 (00:05 +0100)
committerRichard Henderson <rth@gcc.gnu.org>
Wed, 22 Mar 2000 23:05:12 +0000 (15:05 -0800)
        * regmove.c (combine_stack_adjustments_for_block): Check that
        the stack pointer is a valid memory address.

From-SVN: r32691

gcc/ChangeLog
gcc/regmove.c

index 820a0da78e7addcc4de0cc7223425d2083c08c3a..9fe40d10a47fc3d9f3641d1844f69836a1151c0e 100644 (file)
@@ -1,3 +1,8 @@
+2000-03-21  Stephane Carrez  <stcarrez@worldnet.fr>
+
+       * regmove.c (combine_stack_adjustments_for_block): Check that
+       the stack pointer is a valid memory address.
+
 Wed Mar 22 11:44:50 MET 2000  Jan Hubicka  <jh@suse.cz>
 
        * calls.c: re-install Mar 16 emit_library_call merge.
index 8e59c69ce77b7b451cd9971beefe46f36ed08237..932e8503fce5131d3b6d5d2582b6c720a7b8181a 100644 (file)
@@ -2361,6 +2361,7 @@ combine_stack_adjustments_for_block (bb)
              && GET_CODE (XEXP (dest, 0)) == PRE_DEC
              && XEXP (XEXP (dest, 0), 0) == stack_pointer_rtx
              && ! reg_mentioned_p (stack_pointer_rtx, src)
+             && memory_address_p (GET_MODE (dest), stack_pointer_rtx)
              && validate_change (insn, &SET_DEST (set),
                                  change_address (dest, VOIDmode,
                                                  stack_pointer_rtx), 0))