From ca097615db39da2a40bc790d6e8b7ebb0d620844 Mon Sep 17 00:00:00 2001 From: John Wehle Date: Sat, 17 Jan 1998 22:20:32 +0000 Subject: [PATCH] i386.md: Remove redundant integer push patterns. * 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 | 6 ++++++ gcc/config/i386/i386.md | 43 ++++++++++------------------------------- 2 files changed, 16 insertions(+), 33 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e856c7f897a0..7fe459942355 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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 J.J VanderHeijden diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index 1a9f50507fce..9d1dad5a1133 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -832,25 +832,18 @@ ;; 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. @@ -909,22 +902,16 @@ 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. @@ -1038,22 +1025,12 @@ [(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])); -- 2.47.3