aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/x86_64/fpu/x86_64-math-asm.h
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/x86_64/fpu/x86_64-math-asm.h')
-rw-r--r--sysdeps/x86_64/fpu/x86_64-math-asm.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/sysdeps/x86_64/fpu/x86_64-math-asm.h b/sysdeps/x86_64/fpu/x86_64-math-asm.h
index 07eecf7079..b5482518d7 100644
--- a/sysdeps/x86_64/fpu/x86_64-math-asm.h
+++ b/sysdeps/x86_64/fpu/x86_64-math-asm.h
@@ -46,6 +46,19 @@ ldbl_min: \
fstp %st(0); \
6464:
+/* Likewise, but the argument is not a NaN. */
+#define LDBL_CHECK_FORCE_UFLOW_NONNAN \
+ fldt MO(ldbl_min); \
+ fld %st(1); \
+ fabs; \
+ fcomip %st(1), %st(0); \
+ fstp %st(0); \
+ jnc 6464f; \
+ fld %st(0); \
+ fmul %st(0); \
+ fstp %st(0); \
+6464:
+
/* Likewise, but the argument is nonnegative and not a NaN. */
#define LDBL_CHECK_FORCE_UFLOW_NONNEG \
fldt MO(ldbl_min); \