OSDN Git Service

(extv, extzv): Don't use immediate value for operand 1.
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 1 Apr 1995 13:15:54 +0000 (13:15 +0000)
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 1 Apr 1995 13:15:54 +0000 (13:15 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@9280 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/config/vax/vax.md

index d336862..6a5c389 100644 (file)
@@ -1,5 +1,5 @@
 ;;- Machine description for GNU compiler, Vax Version
-;;   Copyright (C) 1987, 1988, 1991, 1994 Free Software Foundation, Inc.
+;;   Copyright (C) 1987, 1988, 1991, 1994, 1995 Free Software Foundation, Inc.
 
 ;; This file is part of GNU CC.
 
 
 ;; When the field position and size are constant and the destination
 ;; is a register, extv and extzv are much slower than a rotate followed
-;; by a bicl or sign extension.
+;; by a bicl or sign extension.  Becase we might end up choosing ext[z]v
+;; anyway, we can't allow immediate values for the primary source operand.
 
 (define_insn ""
   [(set (match_operand:SI 0 "general_operand" "=g")
-       (sign_extract:SI (match_operand:SI 1 "nonmemory_operand" "r")
+       (sign_extract:SI (match_operand:SI 1 "nonimmediate_operand" "ro")
                         (match_operand:QI 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 "register_operand" "ri")
+       (zero_extract:SI (match_operand:SI 1 "nonimmediate_operand" "ro")
                         (match_operand:QI 2 "general_operand" "g")
                         (match_operand:SI 3 "general_operand" "g")))]
   ""