diff options
author | Uros Bizjak <ubizjak@gmail.com> | 2012-10-11 13:44:51 +0200 |
---|---|---|
committer | Uros Bizjak <uros@gcc.gnu.org> | 2012-10-11 13:44:51 +0200 |
commit | 945a9c1f6d01030ef97317158b0a69b1f637356a (patch) | |
tree | 117125f9f0559062650e2152002d4d916b968b31 | |
parent | 1e2a71c8bfea6e6f61f9ba38f3b81301b85a2abe (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | libgcc/config/i386/sfp-exceptions.c | 4 |
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)); |