aboutsummaryrefslogtreecommitdiff
path: root/sysdeps
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>1996-07-14 10:04:21 +0000
committerRoland McGrath <roland@gnu.org>1996-07-14 10:04:21 +0000
commitc928de790200bc7a81224377d35a91a6103387de (patch)
tree470cac87d54b6d7fe1d25f3a4b0864779de900fe /sysdeps
parent2064087b5f1a0a3a189fcd6a3012376f5545be31 (diff)
downloadglibc-c928de790200bc7a81224377d35a91a6103387de.tar
glibc-c928de790200bc7a81224377d35a91a6103387de.tar.gz
glibc-c928de790200bc7a81224377d35a91a6103387de.tar.bz2
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')
-rw-r--r--sysdeps/i386/fpu/__math.h22
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;
}