From 945a9c1f6d01030ef97317158b0a69b1f637356a Mon Sep 17 00:00:00 2001 From: Uros Bizjak Date: Thu, 11 Oct 2012 13:44:51 +0200 Subject: [PATCH] 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 --- libgcc/ChangeLog | 5 +++++ libgcc/config/i386/sfp-exceptions.c | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog index e521dfaf01d..b6c3c8e5bc8 100644 --- a/libgcc/ChangeLog +++ b/libgcc/ChangeLog @@ -1,3 +1,8 @@ +2012-10-10 Uros Bizjak + + * config/i386/sfp-exceptions.c (__sfp_handle_exceptions): Emit SSE + instructions for 64bit targets only. + 2012-10-10 Uros Bizjak * config/i386/sfp-machine.h (FP_RND_NEAREST, FP_RND_ZERO, FP_RND_PINF, diff --git a/libgcc/config/i386/sfp-exceptions.c b/libgcc/config/i386/sfp-exceptions.c index 14b5ca1dbb3..0d5c2e0e3f5 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));