summaryrefslogtreecommitdiff
path: root/libgfortran
diff options
context:
space:
mode:
authorro <ro@138bc75d-0d04-0410-961f-82ee72b054a4>2010-08-26 15:29:31 +0000
committerro <ro@138bc75d-0d04-0410-961f-82ee72b054a4>2010-08-26 15:29:31 +0000
commitb34a1ca117eb3b03cc1d64a7b72cf06f43f08b1c (patch)
treeb5c6112ab2df82d751a79ea1b3ab7719d620160e /libgfortran
parent1aa0efa877a4483ecd2dc1edb9395ae38b13b0c1 (diff)
downloadgcc-b34a1ca117eb3b03cc1d64a7b72cf06f43f08b1c.tar.gz
* config/fpu-387.h (has_sse): Remove cw_sse, unused.
Use fixed-length asm. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@163566 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libgfortran')
-rw-r--r--libgfortran/ChangeLog5
-rw-r--r--libgfortran/config/fpu-387.h5
2 files changed, 8 insertions, 2 deletions
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index c79027adcb7..0e5da98f17d 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -1,3 +1,8 @@
+2010-08-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * config/fpu-387.h (has_sse): Remove cw_sse, unused.
+ Use fixed-length asm.
+
2010-08-23 Tobias Burnus <burnus@net-b.de>
PR fortran/45323
diff --git a/libgfortran/config/fpu-387.h b/libgfortran/config/fpu-387.h
index 5fe51b2d209..2bd9efb5512 100644
--- a/libgfortran/config/fpu-387.h
+++ b/libgfortran/config/fpu-387.h
@@ -64,7 +64,6 @@ has_sse (void)
if (edx & bit_SSE)
{
struct sigaction act, oact;
- unsigned int cw_sse;
act.sa_handler = sigill_hdlr;
sigemptyset (&act.sa_mask);
@@ -72,7 +71,9 @@ has_sse (void)
act.sa_flags = SA_SIGINFO;
sigaction (SIGILL, &act, &oact);
- asm volatile ("stmxcsr %0" : "=m" (cw_sse));
+ /* We need a single SSE instruction here so the handler can safely skip
+ over it. */
+ __asm__ volatile ("movss %xmm2,%xmm1");
sigaction (SIGILL, &oact, NULL);