summaryrefslogtreecommitdiff
path: root/sysdeps
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/gnu/utmpbits.h7
-rw-r--r--sysdeps/libm-i387/e_exp.S14
2 files changed, 19 insertions, 2 deletions
diff --git a/sysdeps/gnu/utmpbits.h b/sysdeps/gnu/utmpbits.h
index 8b939cee86..e8c41f8814 100644
--- a/sysdeps/gnu/utmpbits.h
+++ b/sysdeps/gnu/utmpbits.h
@@ -77,7 +77,12 @@ struct utmp
#define ut_time ut_tv.tv_sec /* Backwards compatibility. */
+/* Tell the user that we have a modern system with UT_TYPE, UT_ID
+ and UT_TV fields. */
+#define _HAVE_UT_TYPE 1
+#define _HAVE_UT_ID 1
+#define _HAVE_UT_TV 1
+
__END_DECLS
#endif /* !_UTMP_H_ */
-
diff --git a/sysdeps/libm-i387/e_exp.S b/sysdeps/libm-i387/e_exp.S
index 8c41ce09dd..3ed039bc87 100644
--- a/sysdeps/libm-i387/e_exp.S
+++ b/sysdeps/libm-i387/e_exp.S
@@ -10,14 +10,26 @@ RCSID("$NetBSD: e_exp.S,v 1.4 1995/05/08 23:47:04 jtc Exp $")
/* e^x = 2^(x * log2(e)) */
ENTRY(__ieee754_exp)
fldl 4(%esp)
+ fxam
+ fstsw %ax
+ sahf
+ jnc .LnoInf
+ jp .LisInf
+.LnoInf:
fldl2e
fmulp /* x * log2(e) */
fstl %st(1)
frndint /* int(x * log2(e)) */
fstl %st(2)
fsubrp /* fract(x * log2(e)) */
- f2xm1 /* 2^(fract(x * log2(e))) - 1 */
+ f2xm1 /* 2^(fract(x * log2(e))) - 1 */
fld1
faddp /* 2^(fract(x * log2(e))) */
fscale /* e^x */
ret
+
+.LisInf:
+ andb $2, %ah
+ jz .LpInf
+ fldz
+.LpInf: ret