OSDN Git Service

(zero_extract patterns): Don't allow constants in the first operand of
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 24 Jun 1994 22:29:54 +0000 (22:29 +0000)
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 24 Jun 1994 22:29:54 +0000 (22:29 +0000)
ZERO_EXTRACT since the recognizer function forces them to match the
mode of the match_operand.

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

gcc/config/vax/vax.md

index ce0f067..96d7f91 100644 (file)
@@ -1,5 +1,5 @@
 ;;- Machine description for GNU compiler, Vax Version
-;;   Copyright (C) 1987, 1988, 1991 Free Software Foundation, Inc.
+;;   Copyright (C) 1987, 1988, 1991, 1994 Free Software Foundation, Inc.
 
 ;; This file is part of GNU CC.
 
        (minus:QI (const_int 32)
                  (match_dup 4)))
    (set (match_operand:SI 0 "general_operand" "=g")
-       (zero_extract:SI (match_operand:SI 1 "nonmemory_operand" "r")
+       (zero_extract:SI (match_operand:SI 1 "register_operand" "r")
                         (match_dup 3)
                         (match_operand:SI 2 "register_operand" "g")))]
   ""
 ;; which can usually be done with move instructions.
 
 (define_insn ""
-  [(set (zero_extract:SI (match_operand:SI 0 "general_operand" "+ro")
+  [(set (zero_extract:SI (match_operand:SI 0 "nonimmediate_operand" "+ro")
                         (match_operand:QI 1 "const_int_operand" "n")
                         (match_operand:SI 2 "const_int_operand" "n"))
        (match_operand:SI 3 "general_operand" "g"))]
 
 (define_insn ""
   [(set (match_operand:SI 0 "general_operand" "=&g")
-       (zero_extract:SI (match_operand:SI 1 "general_operand" "ro")
+       (zero_extract:SI (match_operand:SI 1 "nonimmediate_operand" "ro")
                         (match_operand:QI 2 "const_int_operand" "n")
                         (match_operand:SI 3 "const_int_operand" "n")))]
   "(INTVAL (operands[2]) == 8 || INTVAL (operands[2]) == 16)
 
 (define_insn ""
   [(set (match_operand:SI 0 "general_operand" "=g")
-       (sign_extract:SI (match_operand:SI 1 "general_operand" "ro")
+       (sign_extract:SI (match_operand:SI 1 "nonimmediate_operand" "ro")
                         (match_operand:QI 2 "const_int_operand" "n")
                         (match_operand:SI 3 "const_int_operand" "n")))]
   "(INTVAL (operands[2]) == 8 || INTVAL (operands[2]) == 16)
 (define_insn ""
   [(set (cc0)
        (compare
-        (zero_extract:SI (match_operand:SI 0 "nonmemory_operand" "r")
+        (zero_extract:SI (match_operand:SI 0 "register_operand" "r")
                          (match_operand:QI 1 "general_operand" "g")
                          (match_operand:SI 2 "general_operand" "g"))
         (match_operand:SI 3 "general_operand" "g")))]
 
 (define_insn ""
   [(set (match_operand:SI 0 "general_operand" "=g")
-       (zero_extract:SI (match_operand:SI 1 "nonmemory_operand" "r")
+       (zero_extract:SI (match_operand:SI 1 "register_operand" "ri")
                         (match_operand:QI 2 "general_operand" "g")
                         (match_operand:SI 3 "general_operand" "g")))]
   ""
 }")
 
 (define_insn "insv"
-  [(set (zero_extract:SI (match_operand:QI 0 "general_operand" "+g")
+  [(set (zero_extract:SI (match_operand:QI 0 "nonimmediate_operand" "+g")
                         (match_operand:QI 1 "general_operand" "g")
                         (match_operand:SI 2 "general_operand" "g"))
        (match_operand:SI 3 "general_operand" "g"))]
   "insv %3,%2,%1,%0")
 
 (define_insn ""
-  [(set (zero_extract:SI (match_operand:SI 0 "register_operand" "+r")
+  [(set (zero_extract:SI (match_operand:SI 0 "nonimmediate_operand" "+r")
                         (match_operand:QI 1 "general_operand" "g")
                         (match_operand:SI 2 "general_operand" "g"))
        (match_operand:SI 3 "general_operand" "g"))]