Use inline asm for DLA_FMS because of broken old compilers
This commit is contained in:
parent
af968f62f2
commit
a0cf1edd4c
|
@ -1,5 +1,8 @@
|
||||||
2011-10-24 Ulrich Drepper <drepper@gmail.com>
|
2011-10-24 Ulrich Drepper <drepper@gmail.com>
|
||||||
|
|
||||||
|
* sysdeps/x86_64/dla.h (DLA_FMS): Some compilers fail to inline
|
||||||
|
__builtin_fma in some situations. Have to use an asm.
|
||||||
|
|
||||||
* config.make.in: Add have-mfma4 entry.
|
* config.make.in: Add have-mfma4 entry.
|
||||||
* configure.in: Substitute libc_cv_cc_fma4.
|
* configure.in: Substitute libc_cv_cc_fma4.
|
||||||
* math/Makefile (dbl-only-routines): Add sincostab.
|
* math/Makefile (dbl-only-routines): Add sincostab.
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
#if defined __FMA4__ || defined __FMA__
|
#ifdef __FMA4__
|
||||||
# define DLA_FMS(x,y,z) \
|
# define DLA_FMS(x,y,z) \
|
||||||
__builtin_fma (x, y, -z)
|
({ double __z; \
|
||||||
|
asm ("vfmsubsd %3, %2, %1, %0" \
|
||||||
|
: "=x" (__z) \
|
||||||
|
: "x" ((double) (x)), "xm" ((double) (y)) , "x" ((double) (z))); \
|
||||||
|
__z; })
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "sysdeps/ieee754/dbl-64/dla.h"
|
#include "sysdeps/ieee754/dbl-64/dla.h"
|
||||||
|
|
Loading…
Reference in New Issue