aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/gc/mpfloat.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/compile/internal/gc/mpfloat.go')
-rw-r--r--src/cmd/compile/internal/gc/mpfloat.go10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/cmd/compile/internal/gc/mpfloat.go b/src/cmd/compile/internal/gc/mpfloat.go
index ca290d70d5..72cc540556 100644
--- a/src/cmd/compile/internal/gc/mpfloat.go
+++ b/src/cmd/compile/internal/gc/mpfloat.go
@@ -116,11 +116,11 @@ func (a *Mpflt) Cmp(b *Mpflt) int {
return a.Val.Cmp(&b.Val)
}
-func (b *Mpflt) CmpFloat64(c float64) int {
- var a Mpflt
-
- a.SetFloat64(c)
- return b.Cmp(&a)
+func (a *Mpflt) CmpFloat64(c float64) int {
+ if c == 0 {
+ return a.Val.Sign() // common case shortcut
+ }
+ return a.Val.Cmp(big.NewFloat(c))
}
func (a *Mpflt) Float64() float64 {