aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1992-10-20 06:50:14 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1992-10-20 06:50:14 -0400
commit59b2d7222d18108026282f950e94ba8d5a01769a (patch)
tree93d94d9aeb7572f7528db7787544ce571684809c /gcc
parentc45a13a68d738240a94158d64598643e6ab0be94 (diff)
downloadgcc-59b2d7222d18108026282f950e94ba8d5a01769a.zip
gcc-59b2d7222d18108026282f950e94ba8d5a01769a.tar.gz
gcc-59b2d7222d18108026282f950e94ba8d5a01769a.tar.bz2
(copy_rtx_and_substitute): Don't assume force_operand on an address returns a REG; it might be a SUBREG.
(copy_rtx_and_substitute): Don't assume force_operand on an address returns a REG; it might be a SUBREG. Use force_reg. From-SVN: r2527
Diffstat (limited to 'gcc')
-rw-r--r--gcc/integrate.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/integrate.c b/gcc/integrate.c
index 965bc9f..611bbad 100644
--- a/gcc/integrate.c
+++ b/gcc/integrate.c
@@ -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;