diff options
author | Richard Henderson <rth@cygnus.com> | 2000-02-06 01:47:49 -0800 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2000-02-06 01:47:49 -0800 |
commit | d9f0b9607d1d0d0887438e439d6838f56cf2790e (patch) | |
tree | 16c998c20bc3dd4cbe8a3f447899a131a90aad57 /gcc | |
parent | 5fbdde427d0063ff132fcca95b96e138e00a49a6 (diff) | |
download | gcc-d9f0b9607d1d0d0887438e439d6838f56cf2790e.zip gcc-d9f0b9607d1d0d0887438e439d6838f56cf2790e.tar.gz gcc-d9f0b9607d1d0d0887438e439d6838f56cf2790e.tar.bz2 |
i386.md (widening and peepholes): Mask the constant instead of using gen_lowpart.
* i386.md (widening and peepholes): Mask the constant instead of
using gen_lowpart.
From-SVN: r31822
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/config/i386/i386.md | 16 |
2 files changed, 17 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e0894f9..4e79f5f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2000-02-06 Richard Henderson <rth@cygnus.com> + + * i386.c (ix86_agi_dependant): Handle pro_epilogue_adjust_stack + as a TYPE_LEA insn. + + * i386.md (widening and peepholes): Mask the constant instead of + using gen_lowpart. + 2000-02-05 Zack Weinberg <zack@wolery.cumb.org> * cppfiles.c (read_and_prescan) [case SPECCASE_QUESTION]: Bump diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index dc63bb18..4c36024 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -8928,7 +8928,7 @@ (define_split [(set (reg:CCNO 17) (compare:CCNO (and (match_operand 1 "aligned_operand" "") - (match_operand 2 "immediate_operand" "")) + (match_operand 2 "const_int_operand" "")) (const_int 0))) (set (match_operand 0 "register_operand" "") (and (match_dup 1) (match_dup 2)))] @@ -8941,14 +8941,15 @@ (const_int 0))) (set (match_dup 0) (and:SI (match_dup 1) (match_dup 2)))])] - "operands[0] = gen_lowpart (SImode, operands[0]); - operands[1] = gen_lowpart (SImode, operands[1]); - operands[2] = gen_lowpart (SImode, operands[2]);") + "operands[2] + = GEN_INT (INTVAL (operands[2]) & GET_MODE_MASK (GET_MODE (operands[0]))); + operands[0] = gen_lowpart (SImode, operands[0]); + operands[1] = gen_lowpart (SImode, operands[1]);") (define_split [(set (reg:CCNO 17) (compare:CCNO (and (match_operand 0 "aligned_operand" "") - (match_operand 1 "immediate_operand" "")) + (match_operand 1 "const_int_operand" "")) (const_int 0)))] "! TARGET_PARTIAL_REG_STALL && reload_completed && (GET_MODE (operands[0]) == HImode @@ -8957,8 +8958,9 @@ [(set (reg:CCNO 17) (compare:CCNO (and:SI (match_dup 0) (match_dup 1)) (const_int 0)))] - "operands[0] = gen_lowpart (SImode, operands[0]); - operands[1] = gen_lowpart (SImode, operands[1]);") + "operands[1] + = GEN_INT (INTVAL (operands[1]) & GET_MODE_MASK (GET_MODE (operands[0]))); + operands[0] = gen_lowpart (SImode, operands[0]);") (define_split [(set (match_operand 0 "register_operand" "") |