summaryrefslogtreecommitdiffstats
path: root/lib/msun
diff options
context:
space:
mode:
authorbde <bde@FreeBSD.org>1996-06-01 18:00:07 +0000
committerbde <bde@FreeBSD.org>1996-06-01 18:00:07 +0000
commitcbb7e33d7c911b9eeba2290e625c6fd16d0db7ee (patch)
tree416d05e16a7663d2913983e3dbb5653511cb0349 /lib/msun
parent05a2937332277928beba216df0965442b9dc6968 (diff)
downloadFreeBSD-src-cbb7e33d7c911b9eeba2290e625c6fd16d0db7ee.zip
FreeBSD-src-cbb7e33d7c911b9eeba2290e625c6fd16d0db7ee.tar.gz
Clean up the FP stack before returning. The i387 exp() leaked an FP
register on its first call. Subsequent calls reused the register so the leak didn't accumulate. Fixes PR 1275.
Diffstat (limited to 'lib/msun')
-rw-r--r--lib/msun/i387/e_exp.S3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/msun/i387/e_exp.S b/lib/msun/i387/e_exp.S
index 0e2028e..3ba2d43 100644
--- a/lib/msun/i387/e_exp.S
+++ b/lib/msun/i387/e_exp.S
@@ -35,7 +35,7 @@
#include <machine/asmacros.h>
-RCSID("$Id: e_exp.S,v 1.1.1.1 1994/08/19 09:40:00 jkh Exp $")
+RCSID("$Id: e_exp.S,v 1.2 1994/08/19 11:14:14 jkh Exp $")
/* e^x = 2^(x * log2(e)) */
ENTRY(__ieee754_exp)
@@ -50,4 +50,5 @@ ENTRY(__ieee754_exp)
fld1
faddp /* 2^(fract(x * log2(e))) */
fscale /* e^x */
+ fstpl %st(1)
ret
OpenPOWER on IntegriCloud