mirror of
https://github.com/golang/go
synced 2024-11-13 17:30:24 -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:
parent
a6c95ae1df
commit
35dd2ed58d
@ -6,7 +6,6 @@ package gc
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"cmd/compile/internal/big"
|
|
||||||
"cmd/internal/obj"
|
"cmd/internal/obj"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -17,32 +16,6 @@ const (
|
|||||||
MaxStackVarSize = 10 * 1024 * 1024
|
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 {
|
type Val struct {
|
||||||
// U contains one of:
|
// U contains one of:
|
||||||
// bool bool when n.ValCtype() == CTBOOL
|
// bool bool when n.ValCtype() == CTBOOL
|
||||||
|
@ -13,6 +13,25 @@ import (
|
|||||||
|
|
||||||
// implements float arithmetic
|
// 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 {
|
func newMpflt() *Mpflt {
|
||||||
var a Mpflt
|
var a Mpflt
|
||||||
a.Val.SetPrec(Mpprec)
|
a.Val.SetPrec(Mpprec)
|
@ -10,7 +10,14 @@ import (
|
|||||||
"fmt"
|
"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) {
|
func mpsetovf(a *Mpint) {
|
||||||
a.Val.SetUint64(1) // avoid spurious div-zero errors
|
a.Val.SetUint64(1) // avoid spurious div-zero errors
|
Loading…
Reference in New Issue
Block a user