diff options
author | Keith Randall <khr@golang.org> | 2020-04-10 21:38:49 -0700 |
---|---|---|
committer | Keith Randall <khr@golang.org> | 2020-04-11 15:49:38 +0000 |
commit | a1b802bde7ceab614dcf64e84f972cac5f1b2210 (patch) | |
tree | 635efa310860fce1f665f986f36423cafdf189ea /src/cmd/compile/internal/ssa/rewriteAMD64.go | |
parent | fd18f3ba5031079102ca4dc4cf425c2b496408ba (diff) | |
download | go-a1b802bde7ceab614dcf64e84f972cac5f1b2210.tar.gz go-a1b802bde7ceab614dcf64e84f972cac5f1b2210.zip |
cmd/compile: move some generic rules to strongly typed
Move a lot of the constant folding rules to use strongly
typed AuxInt fields.
We need more than a cast to convert AuxInt to, e.g., float32.
Make conversion functions for converting back and forth.
Change-Id: Ia3d95ee3583ee2179a10938e20210a7617358c88
Reviewed-on: https://go-review.googlesource.com/c/go/+/227866
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Giovanni Bajo <rasky@develer.com>
Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
Diffstat (limited to 'src/cmd/compile/internal/ssa/rewriteAMD64.go')
-rw-r--r-- | src/cmd/compile/internal/ssa/rewriteAMD64.go | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/src/cmd/compile/internal/ssa/rewriteAMD64.go b/src/cmd/compile/internal/ssa/rewriteAMD64.go index 0b566511e4..a392b20e54 100644 --- a/src/cmd/compile/internal/ssa/rewriteAMD64.go +++ b/src/cmd/compile/internal/ssa/rewriteAMD64.go @@ -6940,12 +6940,12 @@ func rewriteValueAMD64_OpAMD64CMPBconst(v *Value) bool { // cond: l.Uses == 1 && clobber(l) // result: @l.Block (CMPBconstload {sym} [makeValAndOff32(int32(c),off)] ptr mem) for { - c := int8(v.AuxInt) + c := auxIntToInt8(v.AuxInt) l := v_0 if l.Op != OpAMD64MOVBload { break } - off := int32(l.AuxInt) + off := auxIntToInt32(l.AuxInt) sym, _ := l.Aux.(Sym) mem := l.Args[1] ptr := l.Args[0] @@ -6956,7 +6956,7 @@ func rewriteValueAMD64_OpAMD64CMPBconst(v *Value) bool { v0 := b.NewValue0(l.Pos, OpAMD64CMPBconstload, types.TypeFlags) v.copyOf(v0) var _auxint ValAndOff = makeValAndOff32(int32(c), off) - v0.AuxInt = int64(_auxint) + v0.AuxInt = ValAndOffToAuxInt(_auxint) var _aux Sym = sym v0.Aux = _aux v0.AddArg2(ptr, mem) @@ -7327,12 +7327,12 @@ func rewriteValueAMD64_OpAMD64CMPLconst(v *Value) bool { // cond: l.Uses == 1 && clobber(l) // result: @l.Block (CMPLconstload {sym} [makeValAndOff32(c,off)] ptr mem) for { - c := int32(v.AuxInt) + c := auxIntToInt32(v.AuxInt) l := v_0 if l.Op != OpAMD64MOVLload { break } - off := int32(l.AuxInt) + off := auxIntToInt32(l.AuxInt) sym, _ := l.Aux.(Sym) mem := l.Args[1] ptr := l.Args[0] @@ -7343,7 +7343,7 @@ func rewriteValueAMD64_OpAMD64CMPLconst(v *Value) bool { v0 := b.NewValue0(l.Pos, OpAMD64CMPLconstload, types.TypeFlags) v.copyOf(v0) var _auxint ValAndOff = makeValAndOff32(c, off) - v0.AuxInt = int64(_auxint) + v0.AuxInt = ValAndOffToAuxInt(_auxint) var _aux Sym = sym v0.Aux = _aux v0.AddArg2(ptr, mem) @@ -7894,12 +7894,12 @@ func rewriteValueAMD64_OpAMD64CMPQconst(v *Value) bool { // cond: l.Uses == 1 && clobber(l) // result: @l.Block (CMPQconstload {sym} [makeValAndOff32(c,off)] ptr mem) for { - c := int32(v.AuxInt) + c := auxIntToInt32(v.AuxInt) l := v_0 if l.Op != OpAMD64MOVQload { break } - off := int32(l.AuxInt) + off := auxIntToInt32(l.AuxInt) sym, _ := l.Aux.(Sym) mem := l.Args[1] ptr := l.Args[0] @@ -7910,7 +7910,7 @@ func rewriteValueAMD64_OpAMD64CMPQconst(v *Value) bool { v0 := b.NewValue0(l.Pos, OpAMD64CMPQconstload, types.TypeFlags) v.copyOf(v0) var _auxint ValAndOff = makeValAndOff32(c, off) - v0.AuxInt = int64(_auxint) + v0.AuxInt = ValAndOffToAuxInt(_auxint) var _aux Sym = sym v0.Aux = _aux v0.AddArg2(ptr, mem) @@ -8266,12 +8266,12 @@ func rewriteValueAMD64_OpAMD64CMPWconst(v *Value) bool { // cond: l.Uses == 1 && clobber(l) // result: @l.Block (CMPWconstload {sym} [makeValAndOff32(int32(c),off)] ptr mem) for { - c := int16(v.AuxInt) + c := auxIntToInt16(v.AuxInt) l := v_0 if l.Op != OpAMD64MOVWload { break } - off := int32(l.AuxInt) + off := auxIntToInt32(l.AuxInt) sym, _ := l.Aux.(Sym) mem := l.Args[1] ptr := l.Args[0] @@ -8282,7 +8282,7 @@ func rewriteValueAMD64_OpAMD64CMPWconst(v *Value) bool { v0 := b.NewValue0(l.Pos, OpAMD64CMPWconstload, types.TypeFlags) v.copyOf(v0) var _auxint ValAndOff = makeValAndOff32(int32(c), off) - v0.AuxInt = int64(_auxint) + v0.AuxInt = ValAndOffToAuxInt(_auxint) var _aux Sym = sym v0.Aux = _aux v0.AddArg2(ptr, mem) |