OSDN Git Service

* config/i386/i386.md (define_peephole2): Revert last change.
authorschwab <schwab@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 18 Nov 2004 14:33:08 +0000 (14:33 +0000)
committerschwab <schwab@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 18 Nov 2004 14:33:08 +0000 (14:33 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@90863 138bc75d-0d04-0410-961f-82ee72b054a4

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

index eb8fd20..8f460dc 100644 (file)
@@ -1,3 +1,7 @@
+2004-11-18  Andreas Schwab  <schwab@suse.de>
+
+       * config/i386/i386.md (define_peephole2): Revert last change.
+
 2004-11-18  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.comn>
 
        * config/m32r/linux.h (TARGET_ASM_FILE_END): Set
 2004-11-18  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.comn>
 
        * config/m32r/linux.h (TARGET_ASM_FILE_END): Set
index bed44e9..abc1cb8 100644 (file)
 
 ;; We need to define this as both peepholer and splitter for case
 ;; peephole2 pass is not run.
 
 ;; We need to define this as both peepholer and splitter for case
 ;; peephole2 pass is not run.
+;; "&& 1" is needed to keep it from matching the previous pattern.
 (define_peephole2
   [(set (match_operand:DI 0 "push_operand" "")
         (match_operand:DI 1 "immediate_operand" ""))]
   "TARGET_64BIT && !symbolic_operand (operands[1], DImode)
 (define_peephole2
   [(set (match_operand:DI 0 "push_operand" "")
         (match_operand:DI 1 "immediate_operand" ""))]
   "TARGET_64BIT && !symbolic_operand (operands[1], DImode)
-   && !x86_64_immediate_operand (operands[1], DImode)"
+   && !x86_64_immediate_operand (operands[1], DImode) && 1"
   [(set (match_dup 0) (match_dup 1))
    (set (match_dup 2) (match_dup 3))]
   "split_di (operands + 1, 1, operands + 2, operands + 3);
   [(set (match_dup 0) (match_dup 1))
    (set (match_dup 2) (match_dup 3))]
   "split_di (operands + 1, 1, operands + 2, operands + 3);
 
 ;; We need to define this as both peepholer and splitter for case
 ;; peephole2 pass is not run.
 
 ;; We need to define this as both peepholer and splitter for case
 ;; peephole2 pass is not run.
+;; "&& 1" is needed to keep it from matching the previous pattern.
 (define_peephole2
   [(set (match_operand:DI 0 "memory_operand" "")
         (match_operand:DI 1 "immediate_operand" ""))]
   "TARGET_64BIT && !symbolic_operand (operands[1], DImode)
 (define_peephole2
   [(set (match_operand:DI 0 "memory_operand" "")
         (match_operand:DI 1 "immediate_operand" ""))]
   "TARGET_64BIT && !symbolic_operand (operands[1], DImode)
-   && !x86_64_immediate_operand (operands[1], DImode)"
+   && !x86_64_immediate_operand (operands[1], DImode) && 1"
   [(set (match_dup 2) (match_dup 3))
    (set (match_dup 4) (match_dup 5))]
   "split_di (operands, 2, operands + 2, operands + 4);")
   [(set (match_dup 2) (match_dup 3))
    (set (match_dup 4) (match_dup 5))]
   "split_di (operands, 2, operands + 2, operands + 4);")