Commit 15bb534e by DJ Delorie Committed by DJ Delorie

v850.md (mulhisi3): Expand the const_int case separately to avoid trying to sign extend the const.

* config/v850/v850.md (mulhisi3): Expand the const_int case
separately to avoid trying to sign extend the const.

From-SVN: r73256
parent 104da10b
2003-11-04 DJ Delorie <dj@redhat.com>
* config/v850/v850.md (mulhisi3): Expand the const_int case
separately to avoid trying to sign extend the const.
2003-11-04 Richard Sandiford <rsandifo@redhat.com>
* emit-rtl.c (copy_rtx_if_shared): Don't allow MEMs with constant
......
......@@ -368,7 +368,11 @@
(sign_extend:SI (match_operand:HI 1 "register_operand" ""))
(sign_extend:SI (match_operand:HI 2 "nonmemory_operand" ""))))]
""
"")
"if (GET_CODE (operands[2]) == CONST_INT)
{
emit_insn (gen_mulhisi3_internal2 (operands[0], operands[1], operands[2]));
DONE;
}")
(define_insn "*mulhisi3_internal1"
[(set (match_operand:SI 0 "register_operand" "=r")
......@@ -381,13 +385,11 @@
(set_attr "cc" "none_0hit")
(set_attr "type" "mult")])
;; ??? Sign extending constants isn't valid. Fix?
(define_insn "*mulhisi3_internal2"
(define_insn "mulhisi3_internal2"
[(set (match_operand:SI 0 "register_operand" "=r,r")
(mult:SI
(sign_extend:SI (match_operand:HI 1 "register_operand" "%0,r"))
(sign_extend:SI (match_operand 2 "const_int_operand" "J,K"))))]
(match_operand:HI 2 "const_int_operand" "J,K")))]
""
"@
mulh %2,%0
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment