summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordevans <devans@138bc75d-0d04-0410-961f-82ee72b054a4>1997-10-17 23:21:12 +0000
committerdevans <devans@138bc75d-0d04-0410-961f-82ee72b054a4>1997-10-17 23:21:12 +0000
commitc87054e019353f32731afa8a17d029c8e87ade5e (patch)
tree96e2e83a11701a55e83373ddeb3668c54a49cc8c
parentcd4e6eaa5f17e82ef52b66b868b1f0f4b33c99f0 (diff)
downloadgcc-c87054e019353f32731afa8a17d029c8e87ade5e.tar.gz
(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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@15985 138bc75d-0d04-0410-961f-82ee72b054a4
-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 cc4430c980a..d85e600f51d 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";
}