m68k.md (extv,extzv,insv): disable dynamic parameter for register bitfield operations...
authorRoman Zippel <zippel@linux-m68k.org>
Sun, 18 Feb 2007 01:20:15 +0000 (01:20 +0000)
committerRoman Zippel <zippel@gcc.gnu.org>
Sun, 18 Feb 2007 01:20:15 +0000 (01:20 +0000)
* config/m68k/m68k.md (extv,extzv,insv): disable dynamic
parameter for register bitfield operations, general predicates
cleanup

From-SVN: r122083

gcc/ChangeLog
gcc/config/m68k/m68k.md

index 9a6e9d58947d7388b1600c60444c6c3a4028f4ca..f0be35cb21af654f398883704248def567ab0283 100644 (file)
@@ -1,3 +1,9 @@
+2007-02-18  Roman Zippel <zippel@linux-m68k.org>
+
+       * config/m68k/m68k.md (extv,extzv,insv): disable dynamic
+       parameter for register bitfield operations, general predicates
+       cleanup
+
 2007-02-18  Roman Zippel <zippel@linux-m68k.org>
 
        * config/m68k/linux.h (MD_UNWIND_SUPPORT): Define.
index b20b52e63918c3c528908a0abc0cf644712b400b..285abf18090378c934b74794863275cac8c0d68f 100644 (file)
 ;; so that its address is reloaded.
 
 (define_expand "extv"
-  [(set (match_operand:SI 0 "nonimmediate_operand" "")
+  [(set (match_operand:SI 0 "register_operand" "")
        (sign_extract:SI (match_operand:SI 1 "general_operand" "")
-                        (match_operand:SI 2 "general_operand" "")
-                        (match_operand:SI 3 "general_operand" "")))]
+                        (match_operand:SI 2 "const_int_operand" "")
+                        (match_operand:SI 3 "const_int_operand" "")))]
   "TARGET_68020 && TARGET_BITFIELD"
   "")
 
 (define_insn ""
-  [(set (match_operand:SI 0 "nonimmediate_operand" "=d")
+  [(set (match_operand:SI 0 "register_operand" "=d")
        (sign_extract:SI (match_operand:QI 1 "memory_operand" "o")
-                        (match_operand:SI 2 "general_operand" "dn")
-                        (match_operand:SI 3 "general_operand" "dn")))]
+                        (match_operand:SI 2 "nonmemory_operand" "dn")
+                        (match_operand:SI 3 "nonmemory_operand" "dn")))]
   "TARGET_68020 && TARGET_BITFIELD"
   "bfexts %1{%b3:%b2},%0")
 
 (define_expand "extzv"
-  [(set (match_operand:SI 0 "nonimmediate_operand" "")
+  [(set (match_operand:SI 0 "register_operand" "")
        (zero_extract:SI (match_operand:SI 1 "general_operand" "")
-                        (match_operand:SI 2 "general_operand" "")
-                        (match_operand:SI 3 "general_operand" "")))]
+                        (match_operand:SI 2 "const_int_operand" "")
+                        (match_operand:SI 3 "const_int_operand" "")))]
   "TARGET_68020 && TARGET_BITFIELD"
   "")
 
 (define_insn ""
-  [(set (match_operand:SI 0 "nonimmediate_operand" "=d,d")
-       (zero_extract:SI (match_operand:QI 1 "memory_operand" "o,d")
-                        (match_operand:SI 2 "general_operand" "dn,dn")
-                        (match_operand:SI 3 "general_operand" "dn,dn")))]
+  [(set (match_operand:SI 0 "register_operand" "=d")
+       (zero_extract:SI (match_operand:QI 1 "memory_operand" "o")
+                        (match_operand:SI 2 "nonmemory_operand" "dn")
+                        (match_operand:SI 3 "nonmemory_operand" "dn")))]
   "TARGET_68020 && TARGET_BITFIELD"
 {
   if (GET_CODE (operands[2]) == CONST_INT)
 
 (define_insn ""
   [(set (zero_extract:SI (match_operand:QI 0 "memory_operand" "+o")
-                        (match_operand:SI 1 "general_operand" "dn")
-                        (match_operand:SI 2 "general_operand" "dn"))
+                        (match_operand:SI 1 "nonmemory_operand" "dn")
+                        (match_operand:SI 2 "nonmemory_operand" "dn"))
         (xor:SI (zero_extract:SI (match_dup 0) (match_dup 1) (match_dup 2))
                (match_operand 3 "const_int_operand" "n")))]
   "TARGET_68020 && TARGET_BITFIELD
 
 (define_insn ""
   [(set (zero_extract:SI (match_operand:QI 0 "memory_operand" "+o")
-                        (match_operand:SI 1 "general_operand" "dn")
-                        (match_operand:SI 2 "general_operand" "dn"))
+                        (match_operand:SI 1 "nonmemory_operand" "dn")
+                        (match_operand:SI 2 "nonmemory_operand" "dn"))
        (const_int 0))]
   "TARGET_68020 && TARGET_BITFIELD"
 {
 
 (define_expand "insv"
   [(set (zero_extract:SI (match_operand:SI 0 "nonimmediate_operand" "")
-                        (match_operand:SI 1 "general_operand" "")
-                        (match_operand:SI 2 "general_operand" ""))
+                        (match_operand:SI 1 "const_int_operand" "")
+                        (match_operand:SI 2 "const_int_operand" ""))
        (match_operand:SI 3 "register_operand" ""))]
   "TARGET_68020 && TARGET_BITFIELD"
   "")
 
 (define_insn ""
   [(set (zero_extract:SI (match_operand:QI 0 "memory_operand" "+o")
-                        (match_operand:SI 1 "general_operand" "dn")
-                        (match_operand:SI 2 "general_operand" "dn"))
+                        (match_operand:SI 1 "nonmemory_operand" "dn")
+                        (match_operand:SI 2 "nonmemory_operand" "dn"))
        (match_operand:SI 3 "register_operand" "d"))]
   "TARGET_68020 && TARGET_BITFIELD"
   "bfins %3,%0{%b2:%b1}")
 (define_insn ""
   [(set (match_operand:SI 0 "nonimmediate_operand" "=d")
        (sign_extract:SI (match_operand:SI 1 "register_operand" "d")
-                        (match_operand:SI 2 "general_operand" "dn")
-                        (match_operand:SI 3 "general_operand" "dn")))]
+                        (match_operand:SI 2 "const_int_operand" "n")
+                        (match_operand:SI 3 "const_int_operand" "n")))]
   "TARGET_68020 && TARGET_BITFIELD"
   "bfexts %1{%b3:%b2},%0")
 
 (define_insn ""
   [(set (match_operand:SI 0 "nonimmediate_operand" "=d")
        (zero_extract:SI (match_operand:SI 1 "register_operand" "d")
-                        (match_operand:SI 2 "general_operand" "dn")
-                        (match_operand:SI 3 "general_operand" "dn")))]
+                        (match_operand:SI 2 "const_int_operand" "n")
+                        (match_operand:SI 3 "const_int_operand" "n")))]
   "TARGET_68020 && TARGET_BITFIELD"
 {
   if (GET_CODE (operands[2]) == CONST_INT)
 
 (define_insn ""
   [(set (zero_extract:SI (match_operand:SI 0 "register_operand" "+d")
-                        (match_operand:SI 1 "general_operand" "dn")
-                        (match_operand:SI 2 "general_operand" "dn"))
+                        (match_operand:SI 1 "const_int_operand" "n")
+                        (match_operand:SI 2 "const_int_operand" "n"))
        (const_int 0))]
   "TARGET_68020 && TARGET_BITFIELD"
 {
 
 (define_insn ""
   [(set (zero_extract:SI (match_operand:SI 0 "register_operand" "+d")
-                        (match_operand:SI 1 "general_operand" "dn")
-                        (match_operand:SI 2 "general_operand" "dn"))
+                        (match_operand:SI 1 "const_int_operand" "n")
+                        (match_operand:SI 2 "const_int_operand" "n"))
        (const_int -1))]
   "TARGET_68020 && TARGET_BITFIELD"
 {
 
 (define_insn ""
   [(set (zero_extract:SI (match_operand:SI 0 "register_operand" "+d")
-                        (match_operand:SI 1 "general_operand" "dn")
-                        (match_operand:SI 2 "general_operand" "dn"))
+                        (match_operand:SI 1 "const_int_operand" "n")
+                        (match_operand:SI 2 "const_int_operand" "n"))
        (match_operand:SI 3 "register_operand" "d"))]
   "TARGET_68020 && TARGET_BITFIELD"
 {