]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile/internal/gc: correctly use Float32 in mpgetfltN
authorRobert Griesemer <gri@golang.org>
Fri, 22 May 2015 01:23:51 +0000 (18:23 -0700)
committerRobert Griesemer <gri@golang.org>
Fri, 22 May 2015 21:20:14 +0000 (21:20 +0000)
This resolves the compiler part of issue #10321.

Change-Id: I44b9909f992b37dd34b1c5292decd12de3d3a65e
Reviewed-on: https://go-review.googlesource.com/10355
Reviewed-by: Alan Donovan <adonovan@google.com>
src/cmd/compile/internal/gc/mparith3.go

index 181e91c87dbc872b6ce80bcba84d38789cb5dbe2..58c129fccab503328442572f4f1de94ea67cb657 100644 (file)
@@ -111,15 +111,8 @@ func mpgetfltN(a *Mpflt, prec int, bias int) float64 {
        case 53:
                x, _ = a.Val.Float64()
        case 24:
-               // We should be using a.Val.Float32() here but that seems incorrect
-               // for certain denormal values (all.bash fails). The current code
-               // appears to work for all existing test cases, though there ought
-               // to be issues with denormal numbers that are incorrectly rounded.
-               // TODO(gri) replace with a.Val.Float32() once correctly working
-               // See also: https://github.com/golang/go/issues/10321
-               var t Mpflt
-               t.Val.SetPrec(24).Set(&a.Val)
-               x, _ = t.Val.Float64()
+               x32, _ := a.Val.Float32()
+               x = float64(x32)
        default:
                panic("unreachable")
        }