summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2000-05-28 20:39:51 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2000-05-28 20:39:51 +0000
commit2c100e2d442d2d4bc0123cf763232ee25bb02448 (patch)
tree50180b05801197bfa9bc9a38cc835db1fcc811d2
parentbe66be5b40542d4463180404adb2ccefee421029 (diff)
downloadppe42-gcc-2c100e2d442d2d4bc0123cf763232ee25bb02448.tar.gz
ppe42-gcc-2c100e2d442d2d4bc0123cf763232ee25bb02448.zip
* regclass.c (record_operand_costs): Protect reg_changes_size
with CLASS_CANNOT_CHANGE_SIZE. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@34238 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog3
-rw-r--r--gcc/regclass.c2
2 files changed, 5 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c4e17973b08..ba57538fbb6 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,8 @@
2000-05-28 Richard Henderson <rth@cygnus.com>
+ * regclass.c (record_operand_costs): Protect reg_changes_size
+ with CLASS_CANNOT_CHANGE_SIZE.
+
* loop.c (instrument_loop_bct): Set JUMP_LABEL on the new insn.
2000-05-28 Richard Henderson <rth@cygnus.com>
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;
}
OpenPOWER on IntegriCloud