diff options
Diffstat (limited to 'gcc/config')
-rw-r--r-- | gcc/config/m68k/m68k.h | 3 | ||||
-rw-r--r-- | gcc/config/m68k/m68k.md | 9 |
2 files changed, 12 insertions, 0 deletions
diff --git a/gcc/config/m68k/m68k.h b/gcc/config/m68k/m68k.h index d373be7c468..e85c1d9b5fa 100644 --- a/gcc/config/m68k/m68k.h +++ b/gcc/config/m68k/m68k.h @@ -1006,6 +1006,9 @@ __transfer_from_trampoline () \ #define TRULY_NOOP_TRUNCATION(OUTPREC, INPREC) 1 +/* The ColdFire FF1 instruction returns 32 for zero. */ +#define CLZ_DEFINED_VALUE_AT_ZERO(MODE, VALUE) ((VALUE) = 32, 1) + #define STORE_FLAG_VALUE (-1) #define Pmode SImode diff --git a/gcc/config/m68k/m68k.md b/gcc/config/m68k/m68k.md index c953ec2d434..b3e72e78a40 100644 --- a/gcc/config/m68k/m68k.md +++ b/gcc/config/m68k/m68k.md @@ -3961,6 +3961,15 @@ return "f<FP:prec>abs%.<FP:prec> %1,%0"; }) +;; bit indexing instructions + +;; ColdFire ff1 instruction implements clz. +(define_insn "clzsi2" + [(set (match_operand:SI 0 "register_operand" "=d") + (clz:SI (match_operand:SI 1 "register_operand" "0")))] + "TARGET_ISAAPLUS || TARGET_ISAC" + "ff1 %0") + ;; one complement instructions ;; "one_cmpldi2" is mainly here to help combine(). |