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 fcccf03..08c5992 100644 (file)
@@ -4,4 +4,6 @@ log:
        fldln2
        fldl 4(%esp)
        fyl2x
+       fstpl 4(%esp)
+       fldl 4(%esp)
        ret
index 28eb5b2..120e91e 100644 (file)
@@ -4,4 +4,6 @@ log10:
        fldlg2
        fldl 4(%esp)
        fyl2x
+       fstpl 4(%esp)
+       fldl 4(%esp)
        ret
index c0c0c67..b055493 100644 (file)
@@ -4,4 +4,6 @@ log10f:
        fldlg2
        flds 4(%esp)
        fyl2x
+       fstps 4(%esp)
+       flds 4(%esp)
        ret
index 354f391..f3c95f8 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 4d3484c..9f13d95 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 1508803..7eff0b6 100644 (file)
@@ -4,4 +4,6 @@ log2:
        fld1
        fldl 4(%esp)
        fyl2x
+       fstpl 4(%esp)
+       fldl 4(%esp)
        ret
index 00cdce7..b32fa2f 100644 (file)
@@ -4,4 +4,6 @@ log2f:
        fld1
        flds 4(%esp)
        fyl2x
+       fstps 4(%esp)
+       flds 4(%esp)
        ret
index da7ff3a..4d0346a 100644 (file)
@@ -4,4 +4,6 @@ logf:
        fldln2
        flds 4(%esp)
        fyl2x
+       fstps 4(%esp)
+       flds 4(%esp)
        ret