regclass.c (record_operand_costs): Protect reg_changes_size with CLASS_CANNOT_CHANGE_...
authorRichard Henderson <rth@cygnus.com>
Sun, 28 May 2000 20:39:51 +0000 (13:39 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Sun, 28 May 2000 20:39:51 +0000 (13:39 -0700)
        * regclass.c (record_operand_costs): Protect reg_changes_size
        with CLASS_CANNOT_CHANGE_SIZE.

From-SVN: r34238

gcc/ChangeLog
gcc/regclass.c

index c4e17973b08037ef1f5b669af7d3d4b4a39d971b..ba57538fbb6b57d9cd6566896cafc9875059eaad 100644 (file)
@@ -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>
index 6a741a64b4b6e0280b7b0aad99627088a15297ea..3db64a2244d59c6eef88868541ea65e44fac87f0 100644 (file)
@@ -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;
        }