aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUros Bizjak <ubizjak@gmail.com>2012-10-11 13:44:51 +0200
committerUros Bizjak <uros@gcc.gnu.org>2012-10-11 13:44:51 +0200
commit945a9c1f6d01030ef97317158b0a69b1f637356a (patch)
tree117125f9f0559062650e2152002d4d916b968b31
parent1e2a71c8bfea6e6f61f9ba38f3b81301b85a2abe (diff)
downloadgcc-945a9c1f6d01030ef97317158b0a69b1f637356a.zip
gcc-945a9c1f6d01030ef97317158b0a69b1f637356a.tar.gz
gcc-945a9c1f6d01030ef97317158b0a69b1f637356a.tar.bz2
sfp-exceptions.c (__sfp_handle_exceptions): Emit SSE instructions for 64bit targets only.
* config/i386/sfp-exceptions.c (__sfp_handle_exceptions): Emit SSE instructions for 64bit targets only. From-SVN: r192355
-rw-r--r--libgcc/ChangeLog5
-rw-r--r--libgcc/config/i386/sfp-exceptions.c4
2 files changed, 7 insertions, 2 deletions
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog
index e521dfa..b6c3c8e 100644
--- a/libgcc/ChangeLog
+++ b/libgcc/ChangeLog
@@ -1,5 +1,10 @@
2012-10-10 Uros Bizjak <ubizjak@gmail.com>
+ * config/i386/sfp-exceptions.c (__sfp_handle_exceptions): Emit SSE
+ instructions for 64bit targets only.
+
+2012-10-10 Uros Bizjak <ubizjak@gmail.com>
+
* config/i386/sfp-machine.h (FP_RND_NEAREST, FP_RND_ZERO, FP_RND_PINF,
FP_RND_MINF, FP_RND_MASK, FP_INIT_ROUNDMODE, _FP_DECL_EX): Move to ...
* config/i386/32/sfp-machine.h: ... here.
diff --git a/libgcc/config/i386/sfp-exceptions.c b/libgcc/config/i386/sfp-exceptions.c
index 14b5ca1..0d5c2e0 100644
--- a/libgcc/config/i386/sfp-exceptions.c
+++ b/libgcc/config/i386/sfp-exceptions.c
@@ -46,7 +46,7 @@ __sfp_handle_exceptions (int _fex)
if (_fex & FP_EX_INVALID)
{
float f = 0.0f;
-#ifdef __SSE__
+#ifdef __x86_64__
asm volatile ("%vdivss\t{%0, %d0|%d0, %0}" : "+x" (f));
#else
asm volatile ("fdiv\t{%y0, %0|%0, %y0}" : "+t" (f));
@@ -56,7 +56,7 @@ __sfp_handle_exceptions (int _fex)
if (_fex & FP_EX_DIVZERO)
{
float f = 1.0f, g = 0.0f;
-#ifdef __SSE__
+#ifdef __x86_64__
asm volatile ("%vdivss\t{%1, %d0|%d0, %1}" : "+x" (f) : "xm" (g));
#else
asm volatile ("fdivs\t%1" : "+t" (f) : "m" (g));