summaryrefslogtreecommitdiff
path: root/gcc/regclass.c
diff options
context:
space:
mode:
authorRichard Henderson <rth@cygnus.com>2000-05-28 13:39:51 -0700
committerRichard Henderson <rth@gcc.gnu.org>2000-05-28 13:39:51 -0700
commit9ef07cf1d4a446b445c4e97860172f51aebc951b (patch)
tree50180b05801197bfa9bc9a38cc835db1fcc811d2 /gcc/regclass.c
parentf83ed23817917f05d042d01c005c8ac3aee40080 (diff)
downloadgcc-9ef07cf1d4a446b445c4e97860172f51aebc951b.tar.gz
regclass.c (record_operand_costs): Protect reg_changes_size with CLASS_CANNOT_CHANGE_SIZE.
* regclass.c (record_operand_costs): Protect reg_changes_size with CLASS_CANNOT_CHANGE_SIZE. From-SVN: r34238
Diffstat (limited to 'gcc/regclass.c')
-rw-r--r--gcc/regclass.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/regclass.c b/gcc/regclass.c
index 6a741a64b4b..3db64a2244d 100644
--- a/gcc/regclass.c
+++ b/gcc/regclass.c
@@ -859,9 +859,11 @@ record_operand_costs (insn, op_costs, reg_pref)
if (GET_CODE (recog_data.operand[i]) == SUBREG)
{
rtx inner = SUBREG_REG (recog_data.operand[i]);
+#ifdef CLASS_CANNOT_CHANGE_SIZE
if (GET_MODE_SIZE (modes[i]) != GET_MODE_SIZE (GET_MODE (inner))
&& GET_CODE (inner) == REG)
SET_REGNO_REG_SET (reg_changes_size, REGNO (inner));
+#endif
recog_data.operand[i] = inner;
}