Commit 17e143a1 by Richard Sandiford Committed by Richard Sandiford

m68k.md (movsf_cf_hard): Use fsmove instead of f%$smove and f%$move.

gcc/
	* config/m68k/m68k.md (movsf_cf_hard): Use fsmove instead of
	f%$smove and f%$move.
	(movdf_cf_hard): Use fdmove for cases 0 and 3 and fmove for case 1.
	(extendsfdf2_cf): Use fdmove instead of f%&move.
	(truncdfsf2_cf): Use fsmove instead of f%$smove.
	(add<mode>3_cf, sub<mode>3_cf): Use <FP:prec> instead of <FP:round>.

From-SVN: r120924
parent bb017fc1
2007-01-18 Richard Sandiford <richard@codesourcery.com>
* config/m68k/m68k.md (movsf_cf_hard): Use fsmove instead of
f%$smove and f%$move.
(movdf_cf_hard): Use fdmove for cases 0 and 3 and fmove for case 1.
(extendsfdf2_cf): Use fdmove instead of f%&move.
(truncdfsf2_cf): Use fsmove instead of f%$smove.
(add<mode>3_cf, sub<mode>3_cf): Use <FP:prec> instead of <FP:round>.
2007-01-18 Richard Sandiford <richard@codesourcery.com>
* config/m68k/m68k.md (movdf_cf_hard): Use output_move_double for
GPR<-GPR moves.
......
......@@ -891,12 +891,10 @@
if (FP_REG_P (operands[0]))
{
if (ADDRESS_REG_P (operands[1]))
return "move%.l %1,%-;f%$smove%.s %+,%0";
return "move%.l %1,%-;fsmove%.s %+,%0";
if (FP_REG_P (operands[1]))
return "f%$move%.d %1,%0";
if (GET_CODE (operands[1]) == CONST_DOUBLE)
return output_move_const_single (operands);
return "f%$move%.s %f1,%0";
return "fsmove%.d %1,%0";
return "fsmove%.s %f1,%0";
}
if (FP_REG_P (operands[1]))
{
......@@ -1008,11 +1006,13 @@
switch (which_alternative)
{
default:
return "fdmove%.d %1,%0";
case 1:
return "fmove%.d %1,%0";
case 2:
return "fmove%.d %1,%-;move%.l %+,%0;move%.l %+,%R0";
case 3:
return "move%.l %R1,%-;move%.l %1,%-;f%&move%.d %+,%0";
return "move%.l %R1,%-;move%.l %1,%-;fdmove%.d %+,%0";
case 4: case 5: case 6:
return output_move_double (operands);
case 7:
......@@ -1627,9 +1627,9 @@
cc_status = cc_prev_status;
return "";
}
return "f%&move%.d %1,%0";
return "fdmove%.d %1,%0";
}
return "f%&move%.s %f1,%0";
return "fdmove%.s %f1,%0";
})
;; This cannot output into an f-reg because there is no way to be
......@@ -1659,7 +1659,7 @@
(match_operand:DF 1 "general_operand" "<Q>U,f")))]
"TARGET_COLDFIRE_FPU"
"@
f%$move%.d %1,%0
fsmove%.d %1,%0
fmove%.s %1,%0")
(define_insn ""
......@@ -2354,8 +2354,8 @@
"TARGET_COLDFIRE_FPU"
{
if (FP_REG_P (operands[2]))
return "f<FP:round>add%.d %2,%0";
return "f<FP:round>add%.<FP:prec> %2,%0";
return "f<FP:prec>add%.d %2,%0";
return "f<FP:prec>add%.<FP:prec> %2,%0";
})
;; subtract instructions
......@@ -2563,8 +2563,8 @@
"TARGET_COLDFIRE_FPU"
{
if (FP_REG_P (operands[2]))
return "f<FP:round>sub%.d %2,%0";
return "f<FP:round>sub%.<FP:prec> %2,%0";
return "f<FP:prec>sub%.d %2,%0";
return "f<FP:prec>sub%.<FP:prec> %2,%0";
})
;; multiply instructions
......
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