arm.md (mulhisi3, [...]): Enable for any ARMv5e processor, not just for XScale.
* arm.md (mulhisi3, mulhisi3addsi, mulhidi3adddi): Enable for any ARMv5e processor, not just for XScale. Instructions are predicable. (mulhisi3tb, mulhisi3bt, mulhisi3tt): New patterns for ARMv5e. From-SVN: r63562
This commit is contained in:
parent
b93828f33a
commit
b8c53e96ad
@ -1,3 +1,9 @@
|
||||
2003-02-28 Richard Earnshaw <rearnsha@arm.com>
|
||||
|
||||
* arm.md (mulhisi3, mulhisi3addsi, mulhidi3adddi): Enable for any
|
||||
ARMv5e processor, not just for XScale. Instructions are predicable.
|
||||
(mulhisi3tb, mulhisi3bt, mulhisi3tt): New patterns for ARMv5e.
|
||||
|
||||
2003-02-28 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* config/arm/arm.c (note_invalid_constants): Change parameter type
|
||||
|
@ -1329,9 +1329,50 @@
|
||||
(match_operand:HI 1 "s_register_operand" "%r"))
|
||||
(sign_extend:SI
|
||||
(match_operand:HI 2 "s_register_operand" "r"))))]
|
||||
"TARGET_ARM && arm_is_xscale"
|
||||
"TARGET_ARM && arm_arch5e"
|
||||
"smulbb%?\\t%0, %1, %2"
|
||||
[(set_attr "type" "mult")]
|
||||
[(set_attr "type" "mult")
|
||||
(set_attr "predicable" "yes")]
|
||||
)
|
||||
|
||||
(define_insn "*mulhisi3tb"
|
||||
[(set (match_operand:SI 0 "s_register_operand" "=r")
|
||||
(mult:SI (ashiftrt:SI
|
||||
(match_operand:SI 1 "s_register_operand" "r")
|
||||
(const_int 16))
|
||||
(sign_extend:SI
|
||||
(match_operand:HI 2 "s_register_operand" "r"))))]
|
||||
"TARGET_ARM && arm_arch5e"
|
||||
"smultb%?\\t%0, %1, %2"
|
||||
[(set_attr "type" "mult")
|
||||
(set_attr "predicable" "yes")]
|
||||
)
|
||||
|
||||
(define_insn "*mulhisi3bt"
|
||||
[(set (match_operand:SI 0 "s_register_operand" "=r")
|
||||
(mult:SI (sign_extend:SI
|
||||
(match_operand:HI 1 "s_register_operand" "r"))
|
||||
(ashiftrt:SI
|
||||
(match_operand:SI 2 "s_register_operand" "r")
|
||||
(const_int 16))))]
|
||||
"TARGET_ARM && arm_arch5e"
|
||||
"smulbt%?\\t%0, %1, %2"
|
||||
[(set_attr "type" "mult")
|
||||
(set_attr "predicable" "yes")]
|
||||
)
|
||||
|
||||
(define_insn "*mulhisi3tt"
|
||||
[(set (match_operand:SI 0 "s_register_operand" "=r")
|
||||
(mult:SI (ashiftrt:SI
|
||||
(match_operand:SI 1 "s_register_operand" "r")
|
||||
(const_int 16))
|
||||
(ashiftrt:SI
|
||||
(match_operand:SI 2 "s_register_operand" "r")
|
||||
(const_int 16))))]
|
||||
"TARGET_ARM && arm_arch5e"
|
||||
"smultt%?\\t%0, %1, %2"
|
||||
[(set_attr "type" "mult")
|
||||
(set_attr "predicable" "yes")]
|
||||
)
|
||||
|
||||
(define_insn "*mulhisi3addsi"
|
||||
@ -1341,9 +1382,10 @@
|
||||
(match_operand:HI 2 "s_register_operand" "%r"))
|
||||
(sign_extend:SI
|
||||
(match_operand:HI 3 "s_register_operand" "r")))))]
|
||||
"TARGET_ARM && arm_is_xscale"
|
||||
"TARGET_ARM && arm_arch5e"
|
||||
"smlabb%?\\t%0, %2, %3, %1"
|
||||
[(set_attr "type" "mult")]
|
||||
[(set_attr "type" "mult")
|
||||
(set_attr "predicable" "yes")]
|
||||
)
|
||||
|
||||
(define_insn "*mulhidi3adddi"
|
||||
@ -1354,9 +1396,10 @@
|
||||
(match_operand:HI 2 "s_register_operand" "%r"))
|
||||
(sign_extend:DI
|
||||
(match_operand:HI 3 "s_register_operand" "r")))))]
|
||||
"TARGET_ARM && arm_is_xscale"
|
||||
"TARGET_ARM && arm_arch5e"
|
||||
"smlalbb%?\\t%Q0, %R0, %2, %3"
|
||||
[(set_attr "type" "mult")])
|
||||
[(set_attr "type" "mult")
|
||||
(set_attr "predicable" "yes")])
|
||||
|
||||
(define_insn "*arm_mulsf3"
|
||||
[(set (match_operand:SF 0 "s_register_operand" "=f")
|
||||
|
Loading…
x
Reference in New Issue
Block a user