summaryrefslogtreecommitdiff
path: root/sysdeps/i386/fpu/e_asinf.S
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/i386/fpu/e_asinf.S')
-rw-r--r--sysdeps/i386/fpu/e_asinf.S23
1 files changed, 4 insertions, 19 deletions
diff --git a/sysdeps/i386/fpu/e_asinf.S b/sysdeps/i386/fpu/e_asinf.S
index f7bda77fa6..1102bdedfd 100644
--- a/sysdeps/i386/fpu/e_asinf.S
+++ b/sysdeps/i386/fpu/e_asinf.S
@@ -5,15 +5,13 @@
*/
#include <machine/asm.h>
+#include <i386-math-asm.h>
RCSID("$NetBSD: $")
.section .rodata.cst4,"aM",@progbits,4
- .p2align 2
- .type flt_min,@object
-flt_min: .byte 0, 0, 0x80, 0
- ASM_SIZE_DIRECTIVE(flt_min)
+DEFINE_FLT_MIN
#ifdef PIC
# define MO(op) op##@GOTOFF(%ecx)
@@ -35,20 +33,7 @@ ENTRY(__ieee754_asinf)
fsubp /* 1 - x^2 */
fsqrt /* sqrt (1 - x^2) */
fpatan
- flds MO(flt_min)
- fld %st(1)
- fabs
- fucompp
- fnstsw
- sahf
- jnc 1f
- subl $4, %esp
- cfi_adjust_cfa_offset (4)
- fld %st(0)
- fmul %st(0)
- fstps (%esp)
- addl $4, %esp
- cfi_adjust_cfa_offset (-4)
-1: ret
+ FLT_CHECK_FORCE_UFLOW
+ ret
END (__ieee754_asinf)
strong_alias (__ieee754_asinf, __asinf_finite)