OSDN Git Service

* i386.md (widening and peepholes): Mask the constant instead of
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 6 Feb 2000 09:47:49 +0000 (09:47 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 6 Feb 2000 09:47:49 +0000 (09:47 +0000)
        using gen_lowpart.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@31822 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/i386/i386.md

index e0894f9..4e79f5f 100644 (file)
@@ -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
index dc63bb1..4c36024 100644 (file)
 (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)))]
                                 (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
   [(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" "")