OSDN Git Service

authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 15 Sep 1998 22:01:08 +0000 (22:01 +0000)
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 15 Sep 1998 22:01:08 +0000 (22:01 +0000)
        * pa.c (emit_move_sequence): Do not replace a pseudo with its
        equivalent memory location unless we have been provided a scratch
        register.  Similarly do not call find_replacement unless a
        scratch register has been provided.

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

gcc/ChangeLog
gcc/config/pa/pa.c

index 6d40dc2..d791d77 100644 (file)
@@ -1,3 +1,10 @@
+Tue Sep 15 22:59:52 1998  Jeffrey A Law  (law@cygnus.com)
+
+       * pa.c (emit_move_sequence): Do not replace a pseudo with its
+       equivalent memory location unless we have been provided a scratch
+       register.  Similarly do not call find_replacement unless a
+       scratch register has been provided.
+
 Tue Sep 15 19:23:01 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
 
         * i386.h (PREFERRED_RELOAD_CLASS): For standard 387 constants,
index a3eab2a..4164204 100644 (file)
@@ -1086,10 +1086,12 @@ emit_move_sequence (operands, mode, scratch_reg)
   register rtx operand1 = operands[1];
   register rtx tem;
 
-  if (reload_in_progress && GET_CODE (operand0) == REG
+  if (scratch_reg
+      && reload_in_progress && GET_CODE (operand0) == REG
       && REGNO (operand0) >= FIRST_PSEUDO_REGISTER)
     operand0 = reg_equiv_mem[REGNO (operand0)];
-  else if (reload_in_progress && GET_CODE (operand0) == SUBREG
+  else if (scratch_reg
+          && reload_in_progress && GET_CODE (operand0) == SUBREG
           && GET_CODE (SUBREG_REG (operand0)) == REG
           && REGNO (SUBREG_REG (operand0)) >= FIRST_PSEUDO_REGISTER)
     {
@@ -1097,10 +1099,12 @@ emit_move_sequence (operands, mode, scratch_reg)
       operand0 = alter_subreg (operand0);
     }
 
-  if (reload_in_progress && GET_CODE (operand1) == REG
+  if (scratch_reg
+      && reload_in_progress && GET_CODE (operand1) == REG
       && REGNO (operand1) >= FIRST_PSEUDO_REGISTER)
     operand1 = reg_equiv_mem[REGNO (operand1)];
-  else if (reload_in_progress && GET_CODE (operand1) == SUBREG
+  else if (scratch_reg
+          && reload_in_progress && GET_CODE (operand1) == SUBREG
           && GET_CODE (SUBREG_REG (operand1)) == REG
           && REGNO (SUBREG_REG (operand1)) >= FIRST_PSEUDO_REGISTER)
     {
@@ -1108,11 +1112,11 @@ emit_move_sequence (operands, mode, scratch_reg)
       operand1 = alter_subreg (operand1);
     }
 
-  if (reload_in_progress && GET_CODE (operand0) == MEM
+  if (scratch_reg && reload_in_progress && GET_CODE (operand0) == MEM
       && ((tem = find_replacement (&XEXP (operand0, 0)))
          != XEXP (operand0, 0)))
     operand0 = gen_rtx_MEM (GET_MODE (operand0), tem);
-  if (reload_in_progress && GET_CODE (operand1) == MEM
+  if (scratch_reg && reload_in_progress && GET_CODE (operand1) == MEM
       && ((tem = find_replacement (&XEXP (operand1, 0)))
          != XEXP (operand1, 0)))
     operand1 = gen_rtx_MEM (GET_MODE (operand1), tem);