summaryrefslogtreecommitdiff
path: root/sysdeps/i386/fpu/e_expl.S
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/i386/fpu/e_expl.S')
-rw-r--r--sysdeps/i386/fpu/e_expl.S19
1 files changed, 4 insertions, 15 deletions
diff --git a/sysdeps/i386/fpu/e_expl.S b/sysdeps/i386/fpu/e_expl.S
index 711c86a6e8..64e0d96839 100644
--- a/sysdeps/i386/fpu/e_expl.S
+++ b/sysdeps/i386/fpu/e_expl.S
@@ -23,6 +23,7 @@
*/
#include <machine/asm.h>
+#include <i386-math-asm.h>
#ifdef USE_AS_EXP10L
# define IEEE754_EXPL __ieee754_exp10l
@@ -65,10 +66,7 @@ c1: .byte 0x20, 0xfa, 0xee, 0xc2, 0x5f, 0x70, 0xa5, 0xec, 0xed, 0x3f
csat: .byte 0, 0, 0, 0, 0, 0, 0, 0x80, 0x0e, 0x40
.byte 0, 0, 0, 0, 0, 0
ASM_SIZE_DIRECTIVE(csat)
- .type cmin,@object
-cmin: .byte 0, 0, 0, 0, 0, 0, 0, 0x80, 0x1, 0
- .byte 0, 0, 0, 0, 0, 0
- ASM_SIZE_DIRECTIVE(cmin)
+DEFINE_LDBL_MIN
#endif
#ifdef PIC
@@ -199,18 +197,9 @@ ENTRY(IEEE754_EXPL)
fstp %st(1) /* 2 */
fscale /* 2 scale factor is st(1); base^x */
fstp %st(1) /* 1 */
- /* Ensure underflow for tiny result. */
- fldt MO(cmin) /* 2 cmin */
- fld %st(1) /* 3 */
- fcompp /* 1 */
- fnstsw
- sahf
- jnc 6f
- fld %st
- fmul %st
- fstp %st
+ LDBL_CHECK_FORCE_UFLOW_NONNEG
#endif
-6: fstp %st(1) /* 0 */
+ fstp %st(1) /* 0 */
jmp 2f
1:
#ifdef USE_AS_EXPM1L