diff options
author | Ulrich Drepper <drepper@redhat.com> | 1999-01-29 10:57:47 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1999-01-29 10:57:47 +0000 |
commit | f8aa49875333b3ce3f790a407b0597601f233a1a (patch) | |
tree | 24825f4ac5278738d459753701f70a9fc6914217 /sysdeps/alpha | |
parent | 068bbaf6e03542833233fb8789481e0ac05c8768 (diff) | |
download | glibc-f8aa49875333b3ce3f790a407b0597601f233a1a.tar glibc-f8aa49875333b3ce3f790a407b0597601f233a1a.tar.gz glibc-f8aa49875333b3ce3f790a407b0597601f233a1a.tar.bz2 glibc-f8aa49875333b3ce3f790a407b0597601f233a1a.zip |
(__floor): Don't depend on inlining, duplicate the code.
Diffstat (limited to 'sysdeps/alpha')
-rw-r--r-- | sysdeps/alpha/fpu/s_floor.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/sysdeps/alpha/fpu/s_floor.c b/sysdeps/alpha/fpu/s_floor.c index 7b647923e2..c7e14662fe 100644 --- a/sysdeps/alpha/fpu/s_floor.c +++ b/sysdeps/alpha/fpu/s_floor.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1998 Free Software Foundation, Inc. +/* Copyright (C) 1998, 1999 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Richard Henderson. @@ -29,7 +29,20 @@ double __floor (double x) { - return __i_floor(x); + if (x != 0 && fabs (x) < 9007199254740992.0) /* 1 << DBL_MANT_DIG */ + { + double __tmp1; + __asm ( +#ifdef _IEEE_FP_INEXACT + "cvttq/svim %2,%1\n\t" +#else + "cvttq/svm %2,%1\n\t" +#endif + "cvtqt/m %1,%0\n\t" + : "=f"(x), "=&f"(__tmp1) + : "f"(x)); + } + return x; } weak_alias (__floor, floor) |