* sysdeps/alpha/Makefile (sysdep-CFLAGS): Force dynamic rounding.

* sysdeps/alpha/fpu/bits/mathinline.h (__signbitl): New.
        * sysdeps/alpha/fpu/libm-test-ulps: Regenerate.
        * sysdeps/unix/sysv/linux/alpha/alphaev6/fpu/Implies: New file.
        * sysdeps/unix/sysv/linux/alpha/alphaev67/fpu/Implies: New file.
        * sysdeps/unix/sysv/linux/alpha/fpu/Implies: New file.
This commit is contained in:
Richard Henderson 2007-03-14 00:40:50 +00:00
parent 0c3c8450b7
commit 9ea0d86579
6 changed files with 451 additions and 75 deletions

View File

@ -38,9 +38,10 @@ ifeq ($(subdir),elf)
CFLAGS-rtld.c = -mbuild-constants
endif
# For now, build everything with full IEEE math support.
# TODO: build separate libm and libm-ieee.
sysdep-CFLAGS += -mieee
# Build everything with full IEEE math support, and with dynamic rounding;
# there are a number of math routines that are defined to work with the
# "current" rounding mode, and it's easiest to set this with all of them.
sysdep-CFLAGS += -mieee -mfp-rounding-mode=d
# libc.so requires about 16k for the small data area, which is well
# below the 64k maximum.

View File

@ -178,6 +178,16 @@ __NTH (__signbit (double __x))
return __u.__i < 0;
}
__MATH_INLINE int
__NTH (__signbitl (long double __x))
{
__extension__ union {
long double __d;
long __i[sizeof(long double)/sizeof(long)];
} __u = { __d: __x };
return __u.__i[sizeof(long double)/sizeof(long) - 1] < 0;
}
#endif /* C99 */
#endif /* __NO_MATH_INLINES */

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,2 @@
# Override ldbl-opt with alpha specific routines.
alpha/alphaev6/fpu

View File

@ -0,0 +1,2 @@
# Override ldbl-opt with alpha specific routines.
alpha/alphaev67/fpu

View File

@ -0,0 +1,2 @@
# Override ldbl-opt with alpha specific routines.
alpha/fpu