diff options
author | Jeffrey A Law <law@cygnus.com> | 1998-02-19 00:35:51 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1998-02-18 17:35:51 -0700 |
commit | aff48bcaae5b53623c51f9119279275f4f2ca156 (patch) | |
tree | 627b2dcef94a9f2140fdc61bc5488fac086410db /gcc/combine.c | |
parent | 0a9bdce34de7641f636b82362c6e739a40c1c1ab (diff) | |
download | gcc-aff48bcaae5b53623c51f9119279275f4f2ca156.zip gcc-aff48bcaae5b53623c51f9119279275f4f2ca156.tar.gz gcc-aff48bcaae5b53623c51f9119279275f4f2ca156.tar.bz2 |
emit-rtl.c (gen_lowpart_common): Suppress last change if __complex__.
* emit-rtl.c (gen_lowpart_common): Suppress last change if __complex__.
* emit-rtl.c (hard-reg-set.h): Include.
(get_lowpart_common): Don't make new REG for hard reg in a
class that cannot change size.
* Makefile.in (emit-rtl.o): Depend on hard-reg-set.h.
* combine.c: Revert previous patch.
Co-Authored-By: Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
From-SVN: r18109
Diffstat (limited to 'gcc/combine.c')
-rw-r--r-- | gcc/combine.c | 32 |
1 files changed, 0 insertions, 32 deletions
diff --git a/gcc/combine.c b/gcc/combine.c index dc8cc63..81f4d9b 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -3483,13 +3483,6 @@ simplify_rtx (x, op0_mode, last, in_dest) if (GET_CODE (SUBREG_REG (x)) == REG && REGNO (SUBREG_REG (x)) < FIRST_PSEUDO_REGISTER -#ifdef CLASS_CANNOT_CHANGE_SIZE - && (! (TEST_HARD_REG_BIT - (reg_class_contents[(int) CLASS_CANNOT_CHANGE_SIZE], - REGNO (SUBREG_REG (x)))) - || (GET_MODE_SIZE (mode) - == GET_MODE_SIZE (GET_MODE (SUBREG_REG (x))))) -#endif && REGNO (SUBREG_REG (x)) != FRAME_POINTER_REGNUM #if HARD_FRAME_POINTER_REGNUM != FRAME_POINTER_REGNUM && REGNO (SUBREG_REG (x)) != HARD_FRAME_POINTER_REGNUM @@ -5113,20 +5106,6 @@ expand_compound_operation (x) int modewidth; rtx tem; -#ifdef CLASS_CANNOT_CHANGE_SIZE - /* When dealing with hard regs that cannot change size, don't even try - expanding to shifts, since we wind up violating the rule. */ - if (GET_RTX_CLASS (GET_CODE (x)) == '1' - && GET_CODE (XEXP (x, 0)) == REG - && REGNO (SUBREG_REG (x)) < FIRST_PSEUDO_REGISTER - && (TEST_HARD_REG_BIT - (reg_class_contents[(int) CLASS_CANNOT_CHANGE_SIZE], - REGNO (SUBREG_REG (x)))) - && (GET_MODE_SIZE (GET_MODE (x)) - != GET_MODE_SIZE (GET_MODE (SUBREG_REG (x))))) - return x; -#endif - switch (GET_CODE (x)) { case ZERO_EXTEND: @@ -6243,17 +6222,6 @@ force_to_mode (x, mode, mask, reg, just_select) break; case SUBREG: -#ifdef CLASS_CANNOT_CHANGE_SIZE - if (GET_CODE (SUBREG_REG (x)) == REG - && REGNO (SUBREG_REG (x)) < FIRST_PSEUDO_REGISTER - && (TEST_HARD_REG_BIT - (reg_class_contents[(int) CLASS_CANNOT_CHANGE_SIZE], - REGNO (SUBREG_REG (x)))) - && (GET_MODE_SIZE (GET_MODE (x)) - != GET_MODE_SIZE (GET_MODE (SUBREG_REG (x))))) - return x; -#endif - if (subreg_lowpart_p (x) /* We can ignore the effect of this SUBREG if it narrows the mode or if the constant masks to zero all the bits the mode doesn't |