From: Ulrich Drepper Date: Fri, 29 Jan 1999 10:57:47 +0000 (+0000) Subject: (__floor): Don't depend on inlining, duplicate the code. X-Git-Tag: glibc-2.16-ports-before-merge~2942 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f8aa49875333b3ce3f790a407b0597601f233a1a;p=thirdparty%2Fglibc.git (__floor): Don't depend on inlining, duplicate the code. --- diff --git a/sysdeps/alpha/fpu/s_floor.c b/sysdeps/alpha/fpu/s_floor.c index 7b647923e28..c7e14662fe2 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)