aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDoug Evans <devans@gcc.gnu.org>1997-10-17 23:21:12 +0000
committerDoug Evans <devans@gcc.gnu.org>1997-10-17 23:21:12 +0000
commitbf65b159eca3b3a5b4ff6dd0d923b83223b3e3f2 (patch)
tree96e2e83a11701a55e83373ddeb3668c54a49cc8c
parent9d162eb296c5a4d5c9b647e6780c94a527dea248 (diff)
downloadgcc-bf65b159eca3b3a5b4ff6dd0d923b83223b3e3f2.zip
gcc-bf65b159eca3b3a5b4ff6dd0d923b83223b3e3f2.tar.gz
gcc-bf65b159eca3b3a5b4ff6dd0d923b83223b3e3f2.tar.bz2
(output_fp_move_quad): If TARGET_V9 and not TARGET_HARD_QUAD, use
fmovd so it works if a quad float ends up in one of the upper 32 float regs. From-SVN: r15985
-rw-r--r--gcc/config/sparc/sparc.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c
index cc4430c..d85e600 100644
--- a/gcc/config/sparc/sparc.c
+++ b/gcc/config/sparc/sparc.c
@@ -2348,6 +2348,8 @@ output_fp_move_quad (operands)
{
if (TARGET_V9 && TARGET_HARD_QUAD)
return "fmovq %1,%0";
+ else if (TARGET_V9)
+ return "fmovd %1,%0\n\tfmovd %S1,%S0";
else
return "fmovs %1,%0\n\tfmovs %R1,%R0\n\tfmovs %S1,%S0\n\tfmovs %T1,%T0";
}