aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJames Van Artsdalen <jrv@gnu.org>1993-10-05 05:50:44 +0000
committerJames Van Artsdalen <jrv@gnu.org>1993-10-05 05:50:44 +0000
commit303872755c1358d1a120c05959a046505d1176c4 (patch)
treec906b77bf68ad58a8fb7f741a8030b54a0397472 /gcc
parentea31f1e21381134da0779030114eb13eef64a1ac (diff)
downloadgcc-303872755c1358d1a120c05959a046505d1176c4.zip
gcc-303872755c1358d1a120c05959a046505d1176c4.tar.gz
gcc-303872755c1358d1a120c05959a046505d1176c4.tar.bz2
(output_to_reg): Handle XFmode write to MEM by reading back value after
write if source doesn't die. From-SVN: r5600
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/i386/i386.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index a05ca94..3ceede3 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -157,7 +157,10 @@ output_to_reg (dest, dies)
else
{
if (GET_MODE (dest) == XFmode)
- abort ();
+ {
+ output_asm_insn (AS1 (fstp%z3,%y0), xops);
+ output_asm_insn (AS1 (fld%z3,%y0), xops);
+ }
else
output_asm_insn (AS1 (fst%z3,%y0), xops);
}