]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
i386.md (widening and peepholes): Mask the constant instead of using gen_lowpart.
authorRichard Henderson <rth@cygnus.com>
Sun, 6 Feb 2000 09:47:49 +0000 (01:47 -0800)
committerRichard Henderson <rth@gcc.gnu.org>
Sun, 6 Feb 2000 09:47:49 +0000 (01:47 -0800)
        * i386.md (widening and peepholes): Mask the constant instead of
        using gen_lowpart.

From-SVN: r31822

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

index e0894f9b28b0af27f74c55e556b34d170ca3ae06..4e79f5f451133cabd95afd5ae0a351dccb2b9423 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 dc63bb18bb7a996cfbdfabed83b142ddfca5f0c8..4c36024756aee3aa33e0229927731a1dfa7f9bbe 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" "")