summaryrefslogtreecommitdiff
path: root/sysdeps/i386/fpu/e_hypot.S
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/i386/fpu/e_hypot.S')
-rw-r--r--sysdeps/i386/fpu/e_hypot.S15
1 files changed, 14 insertions, 1 deletions
diff --git a/sysdeps/i386/fpu/e_hypot.S b/sysdeps/i386/fpu/e_hypot.S
index 63083ad4c9..0ca788407f 100644
--- a/sysdeps/i386/fpu/e_hypot.S
+++ b/sysdeps/i386/fpu/e_hypot.S
@@ -1,5 +1,5 @@
/* Compute the hypothenuse of X and Y.
- Copyright (C) 1998-2015 Free Software Foundation, Inc.
+ Copyright (C) 1998-2016 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@@ -18,9 +18,21 @@
<http://www.gnu.org/licenses/>. */
#include <sysdep.h>
+#include <i386-math-asm.h>
+
+DEFINE_DBL_MIN
+
+#ifdef PIC
+# define MO(op) op##@GOTOFF(%edx)
+#else
+# define MO(op) op
+#endif
.text
ENTRY(__ieee754_hypot)
+#ifdef PIC
+ LOAD_PIC_REG (dx)
+#endif
fldl 4(%esp) // x
fxam
fnstsw
@@ -37,6 +49,7 @@ ENTRY(__ieee754_hypot)
fmul %st(0) // x * x : y * y
faddp // x * x + y * y
fsqrt
+ DBL_NARROW_EVAL_UFLOW_NONNEG
2: ret
// We have to test whether any of the parameters is Inf.