diff options
author | Roland McGrath <roland@gnu.org> | 1996-07-14 10:04:21 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 1996-07-14 10:04:21 +0000 |
commit | c928de790200bc7a81224377d35a91a6103387de (patch) | |
tree | 470cac87d54b6d7fe1d25f3a4b0864779de900fe /sysdeps/i386/fpu | |
parent | 2064087b5f1a0a3a189fcd6a3012376f5545be31 (diff) | |
download | glibc-c928de790200bc7a81224377d35a91a6103387de.tar.gz glibc-c928de790200bc7a81224377d35a91a6103387de.tar.xz glibc-c928de790200bc7a81224377d35a91a6103387de.zip |
* elf/dl-deps.c (_dl_map_object_deps): Start TAILP at last preload.
* elf/dl-open.c (_dl_open): Force an indirect call for _dl_relocate_object so there is no chance a PLT fixup will be done and clobber _dl_global_scope before our call happens. * sysdeps/i386/fpu/__math.h (tan): Correct output constraint from =u to =t; must operate on top of fp reg stack, not second from top. Correct input constraint to 0 from t; must be explicit when input and output are the same register. (floor): Use __volatile instead of volatile. (ceil): Likewise. * manual/Makefile ($(objpfx)stamp%-$(subdir)): Separate rule from other targets.
Diffstat (limited to 'sysdeps/i386/fpu')
-rw-r--r-- | sysdeps/i386/fpu/__math.h | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/sysdeps/i386/fpu/__math.h b/sysdeps/i386/fpu/__math.h index 9648ef592e..3efa7512eb 100644 --- a/sysdeps/i386/fpu/__math.h +++ b/sysdeps/i386/fpu/__math.h @@ -120,7 +120,7 @@ tan (double __x) register double __value; __asm __volatile__ ("fptan" - : "=u" (__value) : "t" (__x)); + : "=t" (__value) : "0" (__x)); return __value; } @@ -334,13 +334,13 @@ __MATH_INLINE double floor (double __x) { register double __value; - volatile short __cw, __cwtmp; + __volatile unsigned short int __cw, __cwtmp; - __asm volatile ("fnstcw %0" : "=m" (__cw)); + __asm __volatile ("fnstcw %0" : "=m" (__cw)); __cwtmp = (__cw & 0xf3ff) | 0x0400; /* rounding down */ - __asm volatile ("fldcw %0" : : "m" (__cwtmp)); - __asm volatile ("frndint" : "=t" (__value) : "0" (__x)); - __asm volatile ("fldcw %0" : : "m" (__cw)); + __asm __volatile ("fldcw %0" : : "m" (__cwtmp)); + __asm __volatile ("frndint" : "=t" (__value) : "0" (__x)); + __asm __volatile ("fldcw %0" : : "m" (__cw)); return __value; } @@ -350,13 +350,13 @@ __MATH_INLINE double ceil (double __x) { register double __value; - volatile short __cw, __cwtmp; + __volatile unsigned short int __cw, __cwtmp; - __asm volatile ("fnstcw %0" : "=m" (__cw)); + __asm __volatile ("fnstcw %0" : "=m" (__cw)); __cwtmp = (__cw & 0xf3ff) | 0x0800; /* rounding up */ - __asm volatile ("fldcw %0" : : "m" (__cwtmp)); - __asm volatile ("frndint" : "=t" (__value) : "0" (__x)); - __asm volatile ("fldcw %0" : : "m" (__cw)); + __asm __volatile ("fldcw %0" : : "m" (__cwtmp)); + __asm __volatile ("frndint" : "=t" (__value) : "0" (__x)); + __asm __volatile ("fldcw %0" : : "m" (__cw)); return __value; } |