]> gcc.gnu.org Git - gcc.git/commitdiff
i386.md: Remove redundant integer push patterns.
authorJohn Wehle <john@feith.com>
Sat, 17 Jan 1998 22:20:32 +0000 (22:20 +0000)
committerJeff Law <law@gcc.gnu.org>
Sat, 17 Jan 1998 22:20:32 +0000 (15:20 -0700)
        * i386.md: Remove redundant integer push patterns.
        Don't bother checking for TARGET_PUSH_MEMORY when
        pushing constants or registers.

From-SVN: r17401

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

index e856c7f897a07d0fb606a4dbade23bc1a96e0878..7fe459942355ad7395a83e249486ab5dad6999e4 100644 (file)
@@ -1,3 +1,9 @@
+Sat Jan 17 23:22:59 1998  John Wehle  (john@feith.com)
+
+       * i386.md: Remove redundant integer push patterns.
+       Don't bother checking for TARGET_PUSH_MEMORY when
+       pushing constants or registers.
+
 Sat Jan 17 22:35:39 1998  Mumit Khan <khan@xraylith.wisc.edu>
                          J.J VanderHeijden <J.J.vanderHeijden@student.utwente.nl>
        
index 1a9f50507fce62950899888d7006f8830ab1c988..9d1dad5a113378934b7c68a732bdaccafb2743b8 100644 (file)
 ;; and each is preceded by a corresponding push-insn pattern
 ;; (since pushes are not general_operands on the 386).
 
-(define_insn ""
-  [(set (match_operand:SI 0 "push_operand" "=<")
-       (match_operand:SI 1 "general_operand" "g"))]
-  "TARGET_PUSH_MEMORY"
-  "push%L0 %1")
-
-;; If not a 386, it is faster to move MEM to a REG and then push, rather than
-;; push MEM directly.
-
 (define_insn ""
   [(set (match_operand:SI 0 "push_operand" "=<")
        (match_operand:SI 1 "nonmemory_operand" "ri"))]
-  "!TARGET_PUSH_MEMORY && TARGET_MOVE"
+  ""
   "push%L0 %1")
 
+;; On a 386, it is faster to push MEM directly.
+
 (define_insn ""
   [(set (match_operand:SI 0 "push_operand" "=<")
-       (match_operand:SI 1 "nonmemory_operand" "ri"))]
-  "!TARGET_PUSH_MEMORY && !TARGET_MOVE"
+       (match_operand:SI 1 "memory_operand" "m"))]
+  "TARGET_PUSH_MEMORY"
   "push%L0 %1")
 
 ;; General case of fullword move.
   return AS2 (mov%L0,%1,%0);
 }")
 
-(define_insn ""
-  [(set (match_operand:HI 0 "push_operand" "=<")
-       (match_operand:HI 1 "general_operand" "g"))]
-  "TARGET_PUSH_MEMORY"
-  "push%W0 %1")
-
 (define_insn ""
   [(set (match_operand:HI 0 "push_operand" "=<")
        (match_operand:HI 1 "nonmemory_operand" "ri"))]
-  "!TARGET_PUSH_MEMORY && TARGET_MOVE"
+  ""
   "push%W0 %1")
 
 (define_insn ""
   [(set (match_operand:HI 0 "push_operand" "=<")
-       (match_operand:HI 1 "nonmemory_operand" "ri"))]
-  "!TARGET_PUSH_MEMORY && !TARGET_MOVE"
+       (match_operand:HI 1 "memory_operand" "m"))]
+  "TARGET_PUSH_MEMORY"
   "push%W0 %1")
 
 ;; On i486, an incl and movl are both faster than incw and movw.
   [(set (match_operand:QI 0 "push_operand" "=<")
        (match_operand:QI 1 "const_int_operand" "n"))]
   ""
-  "* return AS1 (push%W0,%1);")
-
-(define_insn ""
-  [(set (match_operand:QI 0 "push_operand" "=<")
-       (match_operand:QI 1 "register_operand" "q"))]
-  "!TARGET_MOVE"
-  "*
-{
-  operands[1] = gen_rtx (REG, HImode, REGNO (operands[1]));
-  return AS1 (push%W0,%1);
-}")
+  "push%W0,%1")
 
 (define_insn ""
   [(set (match_operand:QI 0 "push_operand" "=<")
        (match_operand:QI 1 "register_operand" "q"))]
-  "TARGET_MOVE"
+  ""
   "*
 {
   operands[1] = gen_rtx (REG, HImode, REGNO (operands[1]));
This page took 0.173524 seconds and 5 git commands to generate.