Commit f70c879a by Uros Bizjak Committed by Uros Bizjak

sfp-machine.h (ASM_INVALID): New define.

	* config/i386/64/sfp-machine.h (ASM_INVALID): New define.
	(ASM_DIVZERO): Ditto.
	(FP_HANLDE_EXCEPTIONS): Use ASM_INVALID and ASM_DIVZERO.

From-SVN: r177978
parent d913744e
2011-08-23 Uros Bizjak <ubizjak@gmail.com>
* config/i386/64/sfp-machine.h (ASM_INVALID): New define.
(ASM_DIVZERO): Ditto.
(FP_HANLDE_EXCEPTIONS): Use ASM_INVALID and ASM_DIVZERO.
2011-08-18 Richard Sandiford <richard.sandiford@linaro.org> 2011-08-18 Richard Sandiford <richard.sandiford@linaro.org>
* config/arm/bpabi-lib.h (RENAME_LIBRARY_SET): Delete. * config/arm/bpabi-lib.h (RENAME_LIBRARY_SET): Delete.
......
...@@ -73,17 +73,25 @@ struct fenv ...@@ -73,17 +73,25 @@ struct fenv
unsigned short int __unused5; unsigned short int __unused5;
}; };
#ifdef __AVX__
#define ASM_INVALID "vdivss %0, %0, %0"
#define ASM_DIVZERO "vdivss %1, %0, %0"
#else
#define ASM_INVALID "divss %0, %0"
#define ASM_DIVZERO "divss %1, %0"
#endif
#define FP_HANDLE_EXCEPTIONS \ #define FP_HANDLE_EXCEPTIONS \
do { \ do { \
if (_fex & FP_EX_INVALID) \ if (_fex & FP_EX_INVALID) \
{ \ { \
float f = 0.0; \ float f = 0.0; \
__asm__ __volatile__ ("divss %0, %0 " : : "x" (f)); \ __asm__ __volatile__ (ASM_INVALID : : "x" (f)); \
} \ } \
if (_fex & FP_EX_DIVZERO) \ if (_fex & FP_EX_DIVZERO) \
{ \ { \
float f = 1.0, g = 0.0; \ float f = 1.0, g = 0.0; \
__asm__ __volatile__ ("divss %1, %0" : : "x" (f), "x" (g)); \ __asm__ __volatile__ (ASM_DIVZERO : : "x" (f), "x" (g)); \
} \ } \
if (_fex & FP_EX_OVERFLOW) \ if (_fex & FP_EX_OVERFLOW) \
{ \ { \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment