1
0
mirror of https://github.com/golang/go synced 2024-11-12 05:40:22 -07:00

cmd/compile: give mparith{2,3}.go files more meaningful names

Also, relocate related const and type definitions from go.go.

Change-Id: Ieb9b672da8dd510ca67022b4f7ae49a778a56579
Reviewed-on: https://go-review.googlesource.com/20080
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
Reviewed-by: Dave Cheney <dave@cheney.net>
Reviewed-by: Keith Randall <khr@golang.org>
This commit is contained in:
Matthew Dempsky 2016-02-29 20:20:13 -08:00
parent a6c95ae1df
commit 35dd2ed58d
3 changed files with 27 additions and 28 deletions

View File

@ -6,7 +6,6 @@ package gc
import (
"bytes"
"cmd/compile/internal/big"
"cmd/internal/obj"
)
@ -17,32 +16,6 @@ const (
MaxStackVarSize = 10 * 1024 * 1024
)
const (
// Maximum size in bits for Mpints before signalling
// overflow and also mantissa precision for Mpflts.
Mpprec = 512
// Turn on for constant arithmetic debugging output.
Mpdebug = false
)
// Mpint represents an integer constant.
type Mpint struct {
Val big.Int
Ovf bool // set if Val overflowed compiler limit (sticky)
Rune bool // set if syntax indicates default type rune
}
// Mpflt represents a floating-point constant.
type Mpflt struct {
Val big.Float
}
// Mpcplx represents a complex constant.
type Mpcplx struct {
Real Mpflt
Imag Mpflt
}
type Val struct {
// U contains one of:
// bool bool when n.ValCtype() == CTBOOL

View File

@ -13,6 +13,25 @@ import (
// implements float arithmetic
const (
// Maximum size in bits for Mpints before signalling
// overflow and also mantissa precision for Mpflts.
Mpprec = 512
// Turn on for constant arithmetic debugging output.
Mpdebug = false
)
// Mpflt represents a floating-point constant.
type Mpflt struct {
Val big.Float
}
// Mpcplx represents a complex constant.
type Mpcplx struct {
Real Mpflt
Imag Mpflt
}
func newMpflt() *Mpflt {
var a Mpflt
a.Val.SetPrec(Mpprec)

View File

@ -10,7 +10,14 @@ import (
"fmt"
)
/// implements fix arithmetic
// implements integer arithmetic
// Mpint represents an integer constant.
type Mpint struct {
Val big.Int
Ovf bool // set if Val overflowed compiler limit (sticky)
Rune bool // set if syntax indicates default type rune
}
func mpsetovf(a *Mpint) {
a.Val.SetUint64(1) // avoid spurious div-zero errors