* config/m68k/m68k.md (extv,extzv,insv): disable dynamic
authorzippel <zippel@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 18 Feb 2007 01:20:15 +0000 (01:20 +0000)
committerzippel <zippel@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 18 Feb 2007 01:20:15 +0000 (01:20 +0000)
parameter for register bitfield operations, general predicates
cleanup

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

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

index 9a6e9d5..f0be35c 100644 (file)
@@ -1,5 +1,11 @@
 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.
        * config/m68k/linux-unwind.h: New file.
 
index b20b52e..285abf1 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"
 {