diff options
| author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-02-06 09:47:49 +0000 |
|---|---|---|
| committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-02-06 09:47:49 +0000 |
| commit | c435d70bcd889223aead95f8bb6cd11abeee129c (patch) | |
| tree | 16c998c20bc3dd4cbe8a3f447899a131a90aad57 | |
| parent | 7b2d4348ac324866a7db382be2229a84c4cf70b9 (diff) | |
| download | ppe42-gcc-c435d70bcd889223aead95f8bb6cd11abeee129c.tar.gz ppe42-gcc-c435d70bcd889223aead95f8bb6cd11abeee129c.zip | |
* i386.md (widening and peepholes): Mask the constant instead of
using gen_lowpart.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@31822 138bc75d-0d04-0410-961f-82ee72b054a4
| -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 e0894f9b28b..4e79f5f4511 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 dc63bb18bb7..4c36024756a 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" "") |

