aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2006-07-26 11:57:49 +0000
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>2006-07-26 11:57:49 +0000
commitf9e19b3cfd5f9fdcf70a0ba7936bb97d175d032a (patch)
tree974eefc1ff03baa1d420f68eadad52f3fb602f97
parent338ba44bc56b15f27aad40979b8bb9c1f173bf87 (diff)
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>. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/csl/sourcerygxx-4_1@115753 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--ChangeLog.csl10
-rw-r--r--gcc/config/m68k/m68k.md26
2 files changed, 23 insertions, 13 deletions
diff --git a/ChangeLog.csl b/ChangeLog.csl
index 39c2f66876b..a8164968476 100644
--- a/ChangeLog.csl
+++ b/ChangeLog.csl
@@ -1,3 +1,13 @@
+2006-07-26 Richard Sandiford <richard@codesourcery.com>
+
+ 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>.
+
2006-07-22 Richard Sandiford <richard@codesourcery.com>
Merge from csl/coldfire-4_1 branch:
diff --git a/gcc/config/m68k/m68k.md b/gcc/config/m68k/m68k.md
index 1ecc58090c8..97fafa7cedb 100644
--- a/gcc/config/m68k/m68k.md
+++ b/gcc/config/m68k/m68k.md
@@ -913,12 +913,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]))
{
@@ -1030,11 +1028,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:
@@ -1647,9 +1647,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
@@ -1679,7 +1679,7 @@
(match_operand:DF 1 "general_operand" "m,f")))]
"TARGET_COLDFIRE_FPU"
"@
- f%$move%.d %1,%0
+ fsmove%.d %1,%0
fmove%.s %1,%0")
(define_insn ""
@@ -2374,8 +2374,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
@@ -2583,8 +2583,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