From 17e143a1730125d9630c8fb1b0ec9a334330a1c0 Mon Sep 17 00:00:00 2001 From: Richard Sandiford Date: Thu, 18 Jan 2007 19:49:17 +0000 Subject: [PATCH] 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. (add3_cf, sub3_cf): Use instead of . From-SVN: r120924 --- gcc/ChangeLog | 9 +++++++++ gcc/config/m68k/m68k.md | 26 +++++++++++++------------- 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 354fdf09dc5..4f4801b7826 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2007-01-18 Richard Sandiford + + * 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. + (add3_cf, sub3_cf): Use instead of . + 2007-01-18 Richard Sandiford * config/m68k/m68k.md (movdf_cf_hard): Use output_move_double for diff --git a/gcc/config/m68k/m68k.md b/gcc/config/m68k/m68k.md index d54006ac01c..35f944c790b 100644 --- a/gcc/config/m68k/m68k.md +++ b/gcc/config/m68k/m68k.md @@ -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" "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 "fadd%.d %2,%0"; - return "fadd%. %2,%0"; + return "fadd%.d %2,%0"; + return "fadd%. %2,%0"; }) ;; subtract instructions @@ -2563,8 +2563,8 @@ "TARGET_COLDFIRE_FPU" { if (FP_REG_P (operands[2])) - return "fsub%.d %2,%0"; - return "fsub%. %2,%0"; + return "fsub%.d %2,%0"; + return "fsub%. %2,%0"; }) ;; multiply instructions -- 2.30.2