Commit ed8afe3a by Geoff Keating Committed by Geoffrey Keating

combine.c (subst): Honour CLASS_CANNOT_CHANGE_SIZE when substituting the REG in…

combine.c (subst): Honour CLASS_CANNOT_CHANGE_SIZE when substituting the REG in a (subreg:X (reg:Y...

* combine.c (subst): Honour CLASS_CANNOT_CHANGE_SIZE when
substituting the REG in a (subreg:X (reg:Y ...)).

From-SVN: r34217
parent f624ffa7
2000-05-27 Geoff Keating <geoffk@cygnus.com>
* combine.c (subst): Honour CLASS_CANNOT_CHANGE_SIZE when
substituting the REG in a (subreg:X (reg:Y ...)).
2000-05-28 Neil Booth <NeilB@earthling.net>
* cpplex.c (_cpp_lex_line): Merge vertical space. Flag
......@@ -3400,6 +3400,18 @@ subst (x, from, to, in_dest, unique_copy)
)
return gen_rtx_CLOBBER (VOIDmode, const0_rtx);
#ifdef CLASS_CANNOT_CHANGE_SIZE
if (code == SUBREG
&& GET_CODE (to) == REG
&& REGNO (to) < FIRST_PSEUDO_REGISTER
&& (TEST_HARD_REG_BIT
(reg_class_contents[(int) CLASS_CANNOT_CHANGE_SIZE],
REGNO (to)))
&& (GET_MODE_BITSIZE (GET_MODE (to))
!= GET_MODE_BITSIZE (GET_MODE (x))))
return gen_rtx_CLOBBER (VOIDmode, const0_rtx);
#endif
new = (unique_copy && n_occurrences ? copy_rtx (to) : to);
n_occurrences++;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment