OSDN Git Service

(copy_rtx_and_substitute): Don't assume force_operand on an address
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 20 Oct 1992 10:50:14 +0000 (10:50 +0000)
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 20 Oct 1992 10:50:14 +0000 (10:50 +0000)
returns a REG; it might be a SUBREG.  Use force_reg.

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

gcc/integrate.c

index 965bc9f..611bbad 100644 (file)
@@ -1886,7 +1886,8 @@ copy_rtx_and_substitute (orig, map)
              rounded = CEIL_ROUND (size, BIGGEST_ALIGNMENT / BITS_PER_UNIT);
              loc = plus_constant (loc, rounded);
 #endif
-             map->reg_map[regno] = temp = force_operand (loc, NULL_RTX);
+             map->reg_map[regno] = temp
+               = force_reg (Pmode, force_operand (loc, NULL_RTX));
              map->const_equiv_map[REGNO (temp)] = loc;
              map->const_age_map[REGNO (temp)] = CONST_AGE_PARM;
 
@@ -1905,7 +1906,8 @@ copy_rtx_and_substitute (orig, map)
              start_sequence ();
              loc = assign_stack_temp (BLKmode, size, 1);
              loc = XEXP (loc, 0);
-             map->reg_map[regno] = temp = force_operand (loc, NULL_RTX);
+             map->reg_map[regno] = temp
+               = force_reg (Pmode, force_operand (loc, NULL_RTX));
              map->const_equiv_map[REGNO (temp)] = loc;
              map->const_age_map[REGNO (temp)] = CONST_AGE_PARM;