From 3670ec284deac22cb2c850a354736a649031d6fa Mon Sep 17 00:00:00 2001 From: Roman Zippel Date: Sun, 18 Feb 2007 01:20:15 +0000 Subject: [PATCH] m68k.md (extv,extzv,insv): disable dynamic parameter for register bitfield operations... * config/m68k/m68k.md (extv,extzv,insv): disable dynamic parameter for register bitfield operations, general predicates cleanup From-SVN: r122083 --- gcc/ChangeLog | 6 ++++ gcc/config/m68k/m68k.md | 62 ++++++++++++++++++++--------------------- 2 files changed, 37 insertions(+), 31 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9a6e9d58947..f0be35cb21a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2007-02-18 Roman Zippel + + * config/m68k/m68k.md (extv,extzv,insv): disable dynamic + parameter for register bitfield operations, general predicates + cleanup + 2007-02-18 Roman Zippel * config/m68k/linux.h (MD_UNWIND_SUPPORT): Define. diff --git a/gcc/config/m68k/m68k.md b/gcc/config/m68k/m68k.md index b20b52e6391..285abf18090 100644 --- a/gcc/config/m68k/m68k.md +++ b/gcc/config/m68k/m68k.md @@ -4934,34 +4934,34 @@ ;; 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) @@ -4978,8 +4978,8 @@ (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 @@ -4993,8 +4993,8 @@ (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" { @@ -5015,16 +5015,16 @@ (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}") @@ -5035,16 +5035,16 @@ (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) @@ -5061,8 +5061,8 @@ (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" { @@ -5072,8 +5072,8 @@ (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" { @@ -5083,8 +5083,8 @@ (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" {