aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libgfortran/ChangeLog5
-rw-r--r--libgfortran/config/fpu-387.h6
2 files changed, 8 insertions, 3 deletions
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index 02524ad..ec2be14 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -1,3 +1,8 @@
+2013-12-11 Tobias Burnus <burnus@net-b.de>
+
+ * config/fpu-387.h (sigill_hdlr, get_fpu_rounding_mode): Emit SSE
+ instructions when __SSE_MATH__ is defined.
+
2013-12-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* intrinsics/erfc_scaled.c (_M_2_SQRTPI): Define if missing.
diff --git a/libgfortran/config/fpu-387.h b/libgfortran/config/fpu-387.h
index b35c315..0317ef1 100644
--- a/libgfortran/config/fpu-387.h
+++ b/libgfortran/config/fpu-387.h
@@ -23,7 +23,7 @@ a copy of the GCC Runtime Library Exception along with this program;
see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
<http://www.gnu.org/licenses/>. */
-#ifndef __x86_64__
+#ifndef __SSE_MATH__
#include "cpuid.h"
#endif
@@ -50,7 +50,7 @@ sigill_hdlr (int sig __attribute((unused)),
static int
has_sse (void)
{
-#ifndef __x86_64__
+#ifndef __SSE_MATH__
unsigned int eax, ebx, ecx, edx;
if (!__get_cpuid (1, &eax, &ebx, &ecx, &edx))
@@ -227,7 +227,7 @@ get_fpu_rounding_mode (void)
{
int round_mode;
-#ifdef __x86_64__
+#ifdef __SSE_MATH__
unsigned int cw;
__asm__ __volatile__ ("%vstmxcsr\t%0" : "=m" (cw));