fix excess precision in return value of i386 log-family functions
authorRich Felker <dalias@aerifal.cx>
Thu, 6 Feb 2020 18:29:45 +0000 (13:29 -0500)
committerRich Felker <dalias@aerifal.cx>
Thu, 6 Feb 2020 18:29:45 +0000 (13:29 -0500)
src/math/i386/log.s
src/math/i386/log10.s
src/math/i386/log10f.s
src/math/i386/log1p.s
src/math/i386/log1pf.s
src/math/i386/log2.s
src/math/i386/log2f.s
src/math/i386/logf.s

index fcccf0309cb475f55290211edd2249571431afac..08c59924b4afeb3713f59064645ca3daab7c8e6c 100644 (file)
@@ -4,4 +4,6 @@ log:
        fldln2
        fldl 4(%esp)
        fyl2x
+       fstpl 4(%esp)
+       fldl 4(%esp)
        ret
index 28eb5b2f913a03a3180d2bc1ef18e26e3c425a9d..120e91ece873690dd1a931dfd0d16d62551c1bc0 100644 (file)
@@ -4,4 +4,6 @@ log10:
        fldlg2
        fldl 4(%esp)
        fyl2x
+       fstpl 4(%esp)
+       fldl 4(%esp)
        ret
index c0c0c67ef1f12b32f502e36c2c02458f0129f2c3..b055493ad4325913808f513275218d449cc651c4 100644 (file)
@@ -4,4 +4,6 @@ log10f:
        fldlg2
        flds 4(%esp)
        fyl2x
+       fstps 4(%esp)
+       flds 4(%esp)
        ret
index 354f391a7e3707dad653269030da52082e5c4f0a..f3c95f83ade8cc81a783056e38e38b710a5dcdfe 100644 (file)
@@ -10,10 +10,14 @@ log1p:
        cmp $0x00100000,%eax
        jb 2f
        fyl2xp1
+       fstpl 4(%esp)
+       fldl 4(%esp)
        ret
 1:     fld1
        faddp
        fyl2x
+       fstpl 4(%esp)
+       fldl 4(%esp)
        ret
                # subnormal x, return x with underflow
 2:     fsts 4(%esp)
index 4d3484cd3747ad300c8732632e181d8cac716018..9f13d95ffb57ff8418d291b9951e1771f166ba5c 100644 (file)
@@ -10,10 +10,14 @@ log1pf:
        cmp $0x00800000,%eax
        jb 2f
        fyl2xp1
+       fstps 4(%esp)
+       flds 4(%esp)
        ret
 1:     fld1
        faddp
        fyl2x
+       fstps 4(%esp)
+       flds 4(%esp)
        ret
                # subnormal x, return x with underflow
 2:     fxch
index 15088037747fb3cdfbd363e166d44b3686ff73f6..7eff0b616c28d492e0d87cd85fe3ca53ae953a58 100644 (file)
@@ -4,4 +4,6 @@ log2:
        fld1
        fldl 4(%esp)
        fyl2x
+       fstpl 4(%esp)
+       fldl 4(%esp)
        ret
index 00cdce75a0fc5997cfd883c33da578e6016235f2..b32fa2f76ae1d6e33a83a846880f1604713bd691 100644 (file)
@@ -4,4 +4,6 @@ log2f:
        fld1
        flds 4(%esp)
        fyl2x
+       fstps 4(%esp)
+       flds 4(%esp)
        ret
index da7ff3ae111d192894ea54e39e247ef549a86e8c..4d0346a4458626cf794f028551817a867187f70a 100644 (file)
@@ -4,4 +4,6 @@ logf:
        fldln2
        flds 4(%esp)
        fyl2x
+       fstps 4(%esp)
+       flds 4(%esp)
        ret