aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1992-09-23 03:39:59 +0000
committerRichard Stallman <rms@gnu.org>1992-09-23 03:39:59 +0000
commit8c153768f4f545dd2c50dc016d7def08348cb643 (patch)
treea8d2bd67e57743406ebc32585ea1a5856a78d794
parenta48bb578b49ae95bb737e6a27b1ee08f44b564c4 (diff)
downloadgcc-8c153768f4f545dd2c50dc016d7def08348cb643.zip
gcc-8c153768f4f545dd2c50dc016d7def08348cb643.tar.gz
gcc-8c153768f4f545dd2c50dc016d7def08348cb643.tar.bz2
(perform_fixdfsi): Copy arg to memory variable.
From-SVN: r2209
-rw-r--r--gcc/config/i386/mach.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/config/i386/mach.h b/gcc/config/i386/mach.h
index f87ecf2..6ee7f4a 100644
--- a/gcc/config/i386/mach.h
+++ b/gcc/config/i386/mach.h
@@ -63,15 +63,18 @@
auto unsigned short ostatus; \
auto unsigned short nstatus; \
auto int ret; \
+ auto double tmp; \
\
&ostatus; /* guarantee these land in memory */ \
&nstatus; \
&ret; \
+ &tmp; \
\
asm volatile ("fnstcw %0" : "=m" (ostatus)); \
nstatus = ostatus | 0x0c00; \
asm volatile ("fldcw %0" : /* no outputs */ : "m" (nstatus)); \
- asm volatile ("fldl %0" : /* no outputs */ : "m" (a)); \
+ tmp = a; \
+ asm volatile ("fldl %0" : /* no outputs */ : "m" (tmp)); \
asm volatile ("fistpl %0" : "=m" (ret)); \
asm volatile ("fldcw %0" : /* no outputs */ : "m" (ostatus)); \
\