Commit 35dd2ed5 authored by Matthew Dempsky's avatar Matthew Dempsky

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: default avatarDave Cheney <dave@cheney.net>
Reviewed-by: default avatarKeith Randall <khr@golang.org>
parent a6c95ae1
......@@ -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
......
......@@ -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)
......
......@@ -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
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment