aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/ssa/rewriteAMD64.go
diff options
context:
space:
mode:
authorKeith Randall <khr@golang.org>2020-04-10 21:38:49 -0700
committerKeith Randall <khr@golang.org>2020-04-11 15:49:38 +0000
commita1b802bde7ceab614dcf64e84f972cac5f1b2210 (patch)
tree635efa310860fce1f665f986f36423cafdf189ea /src/cmd/compile/internal/ssa/rewriteAMD64.go
parentfd18f3ba5031079102ca4dc4cf425c2b496408ba (diff)
downloadgo-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.go24
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)