From d7c073ecbfc3ecc506bfc753b271973b47f8bc15 Mon Sep 17 00:00:00 2001 From: Josh Bleecher Snyder Date: Wed, 30 Oct 2019 10:29:47 -0700 Subject: [PATCH] cmd/compile: add specialized Value reset for OpCopy This: * Simplifies and shortens the generated code for rewrite rules. * Shrinks cmd/compile by 86k (0.4%) and makes it easier to compile. * Removes the stmt boundary code wrangling from Value.reset, in favor of doing it in the one place where it actually does some work, namely the writebarrier pass. (This was ascertained by inspecting the code for cases in which notStmtBoundary values were generated.) Passes toolstash-check -all. Change-Id: I25671d4c4bbd772f235195d11da090878ea2cc07 Reviewed-on: https://go-review.googlesource.com/c/go/+/221421 Run-TryBot: Josh Bleecher Snyder TryBot-Result: Gobot Gobot Reviewed-by: David Chase --- src/cmd/compile/internal/ssa/gen/rulegen.go | 7 +- src/cmd/compile/internal/ssa/numberlines.go | 9 +- src/cmd/compile/internal/ssa/rewrite386.go | 126 +-- src/cmd/compile/internal/ssa/rewriteAMD64.go | 961 +++++------------- src/cmd/compile/internal/ssa/rewriteARM.go | 132 +-- src/cmd/compile/internal/ssa/rewriteARM64.go | 230 ++--- src/cmd/compile/internal/ssa/rewriteMIPS.go | 80 +- src/cmd/compile/internal/ssa/rewriteMIPS64.go | 44 +- src/cmd/compile/internal/ssa/rewritePPC64.go | 368 ++----- .../compile/internal/ssa/rewriteRISCV64.go | 12 +- src/cmd/compile/internal/ssa/rewriteS390X.go | 415 +++----- src/cmd/compile/internal/ssa/rewriteWasm.go | 60 +- src/cmd/compile/internal/ssa/rewritedec.go | 36 +- src/cmd/compile/internal/ssa/rewritedec64.go | 12 +- .../compile/internal/ssa/rewritegeneric.go | 527 +++------- src/cmd/compile/internal/ssa/value.go | 20 +- src/cmd/compile/internal/ssa/writebarrier.go | 1 + 17 files changed, 820 insertions(+), 2220 deletions(-) diff --git a/src/cmd/compile/internal/ssa/gen/rulegen.go b/src/cmd/compile/internal/ssa/gen/rulegen.go index 0fba0546e7..53c6bdbf65 100644 --- a/src/cmd/compile/internal/ssa/gen/rulegen.go +++ b/src/cmd/compile/internal/ssa/gen/rulegen.go @@ -1093,9 +1093,7 @@ func genResult0(rr *RuleRewrite, arch arch, result string, top, move bool, pos s // It in not safe in general to move a variable between blocks // (and particularly not a phi node). // Introduce a copy. - rr.add(stmtf("v.reset(OpCopy)")) - rr.add(stmtf("v.Type = %s.Type", result)) - rr.add(stmtf("v.AddArg(%s)", result)) + rr.add(stmtf("v.copyOf(%s)", result)) } return result } @@ -1123,8 +1121,7 @@ func genResult0(rr *RuleRewrite, arch arch, result string, top, move bool, pos s rr.add(declf(v, "b.NewValue0(%s, Op%s%s, %s)", pos, oparch, op.name, typ)) if move && top { // Rewrite original into a copy - rr.add(stmtf("v.reset(OpCopy)")) - rr.add(stmtf("v.AddArg(%s)", v)) + rr.add(stmtf("v.copyOf(%s)", v)) } } diff --git a/src/cmd/compile/internal/ssa/numberlines.go b/src/cmd/compile/internal/ssa/numberlines.go index 3d77fe5bb4..f4e62b88c4 100644 --- a/src/cmd/compile/internal/ssa/numberlines.go +++ b/src/cmd/compile/internal/ssa/numberlines.go @@ -66,12 +66,9 @@ func nextGoodStatementIndex(v *Value, i int, b *Block) int { return i } -// notStmtBoundary indicates which value opcodes can never be a statement -// boundary because they don't correspond to a user's understanding of a -// statement boundary. Called from *Value.reset(), and *Func.newValue(), -// located here to keep all the statement boundary heuristics in one place. -// Note: *Value.reset() filters out OpCopy because of how that is used in -// rewrite. +// notStmtBoundary reports whether a value with opcode op can never be a statement +// boundary. Such values don't correspond to a user's understanding of a +// statement boundary. func notStmtBoundary(op Op) bool { switch op { case OpCopy, OpPhi, OpVarKill, OpVarDef, OpVarLive, OpUnknown, OpFwdRef, OpArg: diff --git a/src/cmd/compile/internal/ssa/rewrite386.go b/src/cmd/compile/internal/ssa/rewrite386.go index 7a75b7121f..bff76e9029 100644 --- a/src/cmd/compile/internal/ssa/rewrite386.go +++ b/src/cmd/compile/internal/ssa/rewrite386.go @@ -1235,9 +1235,7 @@ func rewriteValue386_Op386ADDLconst(v *Value) bool { if !(int32(c) == 0) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (ADDLconst [c] (MOVLconst [d])) @@ -1950,9 +1948,7 @@ func rewriteValue386_Op386ANDL(v *Value) bool { if x != v_1 { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -1994,9 +1990,7 @@ func rewriteValue386_Op386ANDLconst(v *Value) bool { if !(int32(c) == -1) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (ANDLconst [c] (MOVLconst [d])) @@ -2706,8 +2700,7 @@ func rewriteValue386_Op386CMPBconst(v *Value) bool { } b = l.Block v0 := b.NewValue0(l.Pos, Op386CMPBconstload, types.TypeFlags) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = makeValAndOff(c, off) v0.Aux = sym v0.AddArg2(ptr, mem) @@ -3015,8 +3008,7 @@ func rewriteValue386_Op386CMPLconst(v *Value) bool { } b = l.Block v0 := b.NewValue0(l.Pos, Op386CMPLconstload, types.TypeFlags) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = makeValAndOff(c, off) v0.Aux = sym v0.AddArg2(ptr, mem) @@ -3309,8 +3301,7 @@ func rewriteValue386_Op386CMPWconst(v *Value) bool { } b = l.Block v0 := b.NewValue0(l.Pos, Op386CMPWconstload, types.TypeFlags) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = makeValAndOff(c, off) v0.Aux = sym v0.AddArg2(ptr, mem) @@ -4054,8 +4045,7 @@ func rewriteValue386_Op386MOVBLSX(v *Value) bool { } b = x.Block v0 := b.NewValue0(x.Pos, Op386MOVBLSXload, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = off v0.Aux = sym v0.AddArg2(ptr, mem) @@ -4151,8 +4141,7 @@ func rewriteValue386_Op386MOVBLZX(v *Value) bool { } b = x.Block v0 := b.NewValue0(x.Pos, Op386MOVBload, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = off v0.Aux = sym v0.AddArg2(ptr, mem) @@ -4176,8 +4165,7 @@ func rewriteValue386_Op386MOVBLZX(v *Value) bool { } b = x.Block v0 := b.NewValue0(v.Pos, Op386MOVBloadidx1, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = off v0.Aux = sym v0.AddArg3(ptr, idx, mem) @@ -5127,9 +5115,7 @@ func rewriteValue386_Op386MOVLload(v *Value) bool { if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVLload [off1] {sym} (ADDLconst [off2] ptr) mem) @@ -7495,8 +7481,7 @@ func rewriteValue386_Op386MOVWLSX(v *Value) bool { } b = x.Block v0 := b.NewValue0(x.Pos, Op386MOVWLSXload, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = off v0.Aux = sym v0.AddArg2(ptr, mem) @@ -7592,8 +7577,7 @@ func rewriteValue386_Op386MOVWLZX(v *Value) bool { } b = x.Block v0 := b.NewValue0(x.Pos, Op386MOVWload, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = off v0.Aux = sym v0.AddArg2(ptr, mem) @@ -7617,8 +7601,7 @@ func rewriteValue386_Op386MOVWLZX(v *Value) bool { } b = x.Block v0 := b.NewValue0(v.Pos, Op386MOVWloadidx1, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = off v0.Aux = sym v0.AddArg3(ptr, idx, mem) @@ -7642,8 +7625,7 @@ func rewriteValue386_Op386MOVWLZX(v *Value) bool { } b = x.Block v0 := b.NewValue0(v.Pos, Op386MOVWloadidx2, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = off v0.Aux = sym v0.AddArg3(ptr, idx, mem) @@ -8899,9 +8881,7 @@ func rewriteValue386_Op386MULLconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MULLconst [3] x) @@ -9750,9 +9730,7 @@ func rewriteValue386_Op386ORL(v *Value) bool { if x != v_1 { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (ORL x0:(MOVBload [i0] {s} p mem) s0:(SHLLconst [8] x1:(MOVBload [i1] {s} p mem))) @@ -9786,8 +9764,7 @@ func rewriteValue386_Op386ORL(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(x1.Pos, Op386MOVWload, typ.UInt16) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = i0 v0.Aux = s v0.AddArg2(p, mem) @@ -9850,8 +9827,7 @@ func rewriteValue386_Op386ORL(v *Value) bool { } b = mergePoint(b, x0, x1, x2) v0 := b.NewValue0(x2.Pos, Op386MOVLload, typ.UInt32) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = i0 v0.Aux = s v0.AddArg2(p, mem) @@ -9898,8 +9874,7 @@ func rewriteValue386_Op386ORL(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(v.Pos, Op386MOVWloadidx1, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = i0 v0.Aux = s v0.AddArg3(p, idx, mem) @@ -9974,8 +9949,7 @@ func rewriteValue386_Op386ORL(v *Value) bool { } b = mergePoint(b, x0, x1, x2) v0 := b.NewValue0(v.Pos, Op386MOVLloadidx1, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = i0 v0.Aux = s v0.AddArg3(p, idx, mem) @@ -10000,9 +9974,7 @@ func rewriteValue386_Op386ORLconst(v *Value) bool { if !(int32(c) == 0) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (ORLconst [c] _) @@ -10489,9 +10461,7 @@ func rewriteValue386_Op386ROLBconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -10519,9 +10489,7 @@ func rewriteValue386_Op386ROLLconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -10549,9 +10517,7 @@ func rewriteValue386_Op386ROLWconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -10583,9 +10549,7 @@ func rewriteValue386_Op386SARBconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (SARBconst [c] (MOVLconst [d])) @@ -10641,9 +10605,7 @@ func rewriteValue386_Op386SARLconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (SARLconst [c] (MOVLconst [d])) @@ -10687,9 +10649,7 @@ func rewriteValue386_Op386SARWconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (SARWconst [c] (MOVLconst [d])) @@ -11469,9 +11429,7 @@ func rewriteValue386_Op386SHLLconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -11522,9 +11480,7 @@ func rewriteValue386_Op386SHRBconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -11568,9 +11524,7 @@ func rewriteValue386_Op386SHRLconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -11621,9 +11575,7 @@ func rewriteValue386_Op386SHRWconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -11747,9 +11699,7 @@ func rewriteValue386_Op386SUBLconst(v *Value) bool { if !(int32(c) == 0) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (SUBLconst [c] x) @@ -12419,9 +12369,7 @@ func rewriteValue386_Op386XORLconst(v *Value) bool { if !(int32(c) == 0) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (XORLconst [c] (MOVLconst [d])) @@ -14043,9 +13991,7 @@ func rewriteValue386_OpMove(v *Value) bool { break } mem := v_2 - v.reset(OpCopy) - v.Type = mem.Type - v.AddArg(mem) + v.copyOf(mem) return true } // match: (Move [1] dst src mem) @@ -15773,9 +15719,7 @@ func rewriteValue386_OpZero(v *Value) bool { break } mem := v_1 - v.reset(OpCopy) - v.Type = mem.Type - v.AddArg(mem) + v.copyOf(mem) return true } // match: (Zero [1] destptr mem) diff --git a/src/cmd/compile/internal/ssa/rewriteAMD64.go b/src/cmd/compile/internal/ssa/rewriteAMD64.go index 566a7aaf66..a30c609a68 100644 --- a/src/cmd/compile/internal/ssa/rewriteAMD64.go +++ b/src/cmd/compile/internal/ssa/rewriteAMD64.go @@ -1705,9 +1705,7 @@ func rewriteValueAMD64_OpAMD64ADDLconst(v *Value) bool { if !(int32(c) == 0) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (ADDLconst [c] (MOVLconst [d])) @@ -2324,9 +2322,7 @@ func rewriteValueAMD64_OpAMD64ADDQconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (ADDQconst [c] (MOVQconst [d])) @@ -2824,9 +2820,7 @@ func rewriteValueAMD64_OpAMD64ANDL(v *Value) bool { if x != v_1 { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (ANDL x l:(MOVLload [off] {sym} ptr mem)) @@ -2943,9 +2937,7 @@ func rewriteValueAMD64_OpAMD64ANDLconst(v *Value) bool { if !(int32(c) == -1) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (ANDLconst [c] (MOVLconst [d])) @@ -3208,9 +3200,7 @@ func rewriteValueAMD64_OpAMD64ANDQ(v *Value) bool { if x != v_1 { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (ANDQ x l:(MOVQload [off] {sym} ptr mem)) @@ -3334,9 +3324,7 @@ func rewriteValueAMD64_OpAMD64ANDQconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (ANDQconst [c] (MOVQconst [d])) @@ -4725,9 +4713,7 @@ func rewriteValueAMD64_OpAMD64CMOVLCC(v *Value) bool { if v_2.Op != OpAMD64FlagEQ { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVLCC _ x (FlagGT_UGT)) @@ -4737,9 +4723,7 @@ func rewriteValueAMD64_OpAMD64CMOVLCC(v *Value) bool { if v_2.Op != OpAMD64FlagGT_UGT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVLCC y _ (FlagGT_ULT)) @@ -4749,9 +4733,7 @@ func rewriteValueAMD64_OpAMD64CMOVLCC(v *Value) bool { if v_2.Op != OpAMD64FlagGT_ULT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVLCC y _ (FlagLT_ULT)) @@ -4761,9 +4743,7 @@ func rewriteValueAMD64_OpAMD64CMOVLCC(v *Value) bool { if v_2.Op != OpAMD64FlagLT_ULT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVLCC _ x (FlagLT_UGT)) @@ -4773,9 +4753,7 @@ func rewriteValueAMD64_OpAMD64CMOVLCC(v *Value) bool { if v_2.Op != OpAMD64FlagLT_UGT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -4804,9 +4782,7 @@ func rewriteValueAMD64_OpAMD64CMOVLCS(v *Value) bool { if v_2.Op != OpAMD64FlagEQ { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVLCS y _ (FlagGT_UGT)) @@ -4816,9 +4792,7 @@ func rewriteValueAMD64_OpAMD64CMOVLCS(v *Value) bool { if v_2.Op != OpAMD64FlagGT_UGT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVLCS _ x (FlagGT_ULT)) @@ -4828,9 +4802,7 @@ func rewriteValueAMD64_OpAMD64CMOVLCS(v *Value) bool { if v_2.Op != OpAMD64FlagGT_ULT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVLCS _ x (FlagLT_ULT)) @@ -4840,9 +4812,7 @@ func rewriteValueAMD64_OpAMD64CMOVLCS(v *Value) bool { if v_2.Op != OpAMD64FlagLT_ULT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVLCS y _ (FlagLT_UGT)) @@ -4852,9 +4822,7 @@ func rewriteValueAMD64_OpAMD64CMOVLCS(v *Value) bool { if v_2.Op != OpAMD64FlagLT_UGT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } return false @@ -4883,9 +4851,7 @@ func rewriteValueAMD64_OpAMD64CMOVLEQ(v *Value) bool { if v_2.Op != OpAMD64FlagEQ { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVLEQ y _ (FlagGT_UGT)) @@ -4895,9 +4861,7 @@ func rewriteValueAMD64_OpAMD64CMOVLEQ(v *Value) bool { if v_2.Op != OpAMD64FlagGT_UGT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVLEQ y _ (FlagGT_ULT)) @@ -4907,9 +4871,7 @@ func rewriteValueAMD64_OpAMD64CMOVLEQ(v *Value) bool { if v_2.Op != OpAMD64FlagGT_ULT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVLEQ y _ (FlagLT_ULT)) @@ -4919,9 +4881,7 @@ func rewriteValueAMD64_OpAMD64CMOVLEQ(v *Value) bool { if v_2.Op != OpAMD64FlagLT_ULT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVLEQ y _ (FlagLT_UGT)) @@ -4931,9 +4891,7 @@ func rewriteValueAMD64_OpAMD64CMOVLEQ(v *Value) bool { if v_2.Op != OpAMD64FlagLT_UGT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } return false @@ -4962,9 +4920,7 @@ func rewriteValueAMD64_OpAMD64CMOVLGE(v *Value) bool { if v_2.Op != OpAMD64FlagEQ { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVLGE _ x (FlagGT_UGT)) @@ -4974,9 +4930,7 @@ func rewriteValueAMD64_OpAMD64CMOVLGE(v *Value) bool { if v_2.Op != OpAMD64FlagGT_UGT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVLGE _ x (FlagGT_ULT)) @@ -4986,9 +4940,7 @@ func rewriteValueAMD64_OpAMD64CMOVLGE(v *Value) bool { if v_2.Op != OpAMD64FlagGT_ULT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVLGE y _ (FlagLT_ULT)) @@ -4998,9 +4950,7 @@ func rewriteValueAMD64_OpAMD64CMOVLGE(v *Value) bool { if v_2.Op != OpAMD64FlagLT_ULT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVLGE y _ (FlagLT_UGT)) @@ -5010,9 +4960,7 @@ func rewriteValueAMD64_OpAMD64CMOVLGE(v *Value) bool { if v_2.Op != OpAMD64FlagLT_UGT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } return false @@ -5041,9 +4989,7 @@ func rewriteValueAMD64_OpAMD64CMOVLGT(v *Value) bool { if v_2.Op != OpAMD64FlagEQ { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVLGT _ x (FlagGT_UGT)) @@ -5053,9 +4999,7 @@ func rewriteValueAMD64_OpAMD64CMOVLGT(v *Value) bool { if v_2.Op != OpAMD64FlagGT_UGT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVLGT _ x (FlagGT_ULT)) @@ -5065,9 +5009,7 @@ func rewriteValueAMD64_OpAMD64CMOVLGT(v *Value) bool { if v_2.Op != OpAMD64FlagGT_ULT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVLGT y _ (FlagLT_ULT)) @@ -5077,9 +5019,7 @@ func rewriteValueAMD64_OpAMD64CMOVLGT(v *Value) bool { if v_2.Op != OpAMD64FlagLT_ULT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVLGT y _ (FlagLT_UGT)) @@ -5089,9 +5029,7 @@ func rewriteValueAMD64_OpAMD64CMOVLGT(v *Value) bool { if v_2.Op != OpAMD64FlagLT_UGT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } return false @@ -5120,9 +5058,7 @@ func rewriteValueAMD64_OpAMD64CMOVLHI(v *Value) bool { if v_2.Op != OpAMD64FlagEQ { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVLHI _ x (FlagGT_UGT)) @@ -5132,9 +5068,7 @@ func rewriteValueAMD64_OpAMD64CMOVLHI(v *Value) bool { if v_2.Op != OpAMD64FlagGT_UGT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVLHI y _ (FlagGT_ULT)) @@ -5144,9 +5078,7 @@ func rewriteValueAMD64_OpAMD64CMOVLHI(v *Value) bool { if v_2.Op != OpAMD64FlagGT_ULT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVLHI y _ (FlagLT_ULT)) @@ -5156,9 +5088,7 @@ func rewriteValueAMD64_OpAMD64CMOVLHI(v *Value) bool { if v_2.Op != OpAMD64FlagLT_ULT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVLHI _ x (FlagLT_UGT)) @@ -5168,9 +5098,7 @@ func rewriteValueAMD64_OpAMD64CMOVLHI(v *Value) bool { if v_2.Op != OpAMD64FlagLT_UGT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -5199,9 +5127,7 @@ func rewriteValueAMD64_OpAMD64CMOVLLE(v *Value) bool { if v_2.Op != OpAMD64FlagEQ { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVLLE y _ (FlagGT_UGT)) @@ -5211,9 +5137,7 @@ func rewriteValueAMD64_OpAMD64CMOVLLE(v *Value) bool { if v_2.Op != OpAMD64FlagGT_UGT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVLLE y _ (FlagGT_ULT)) @@ -5223,9 +5147,7 @@ func rewriteValueAMD64_OpAMD64CMOVLLE(v *Value) bool { if v_2.Op != OpAMD64FlagGT_ULT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVLLE _ x (FlagLT_ULT)) @@ -5235,9 +5157,7 @@ func rewriteValueAMD64_OpAMD64CMOVLLE(v *Value) bool { if v_2.Op != OpAMD64FlagLT_ULT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVLLE _ x (FlagLT_UGT)) @@ -5247,9 +5167,7 @@ func rewriteValueAMD64_OpAMD64CMOVLLE(v *Value) bool { if v_2.Op != OpAMD64FlagLT_UGT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -5278,9 +5196,7 @@ func rewriteValueAMD64_OpAMD64CMOVLLS(v *Value) bool { if v_2.Op != OpAMD64FlagEQ { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVLLS y _ (FlagGT_UGT)) @@ -5290,9 +5206,7 @@ func rewriteValueAMD64_OpAMD64CMOVLLS(v *Value) bool { if v_2.Op != OpAMD64FlagGT_UGT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVLLS _ x (FlagGT_ULT)) @@ -5302,9 +5216,7 @@ func rewriteValueAMD64_OpAMD64CMOVLLS(v *Value) bool { if v_2.Op != OpAMD64FlagGT_ULT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVLLS _ x (FlagLT_ULT)) @@ -5314,9 +5226,7 @@ func rewriteValueAMD64_OpAMD64CMOVLLS(v *Value) bool { if v_2.Op != OpAMD64FlagLT_ULT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVLLS y _ (FlagLT_UGT)) @@ -5326,9 +5236,7 @@ func rewriteValueAMD64_OpAMD64CMOVLLS(v *Value) bool { if v_2.Op != OpAMD64FlagLT_UGT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } return false @@ -5357,9 +5265,7 @@ func rewriteValueAMD64_OpAMD64CMOVLLT(v *Value) bool { if v_2.Op != OpAMD64FlagEQ { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVLLT y _ (FlagGT_UGT)) @@ -5369,9 +5275,7 @@ func rewriteValueAMD64_OpAMD64CMOVLLT(v *Value) bool { if v_2.Op != OpAMD64FlagGT_UGT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVLLT y _ (FlagGT_ULT)) @@ -5381,9 +5285,7 @@ func rewriteValueAMD64_OpAMD64CMOVLLT(v *Value) bool { if v_2.Op != OpAMD64FlagGT_ULT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVLLT _ x (FlagLT_ULT)) @@ -5393,9 +5295,7 @@ func rewriteValueAMD64_OpAMD64CMOVLLT(v *Value) bool { if v_2.Op != OpAMD64FlagLT_ULT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVLLT _ x (FlagLT_UGT)) @@ -5405,9 +5305,7 @@ func rewriteValueAMD64_OpAMD64CMOVLLT(v *Value) bool { if v_2.Op != OpAMD64FlagLT_UGT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -5436,9 +5334,7 @@ func rewriteValueAMD64_OpAMD64CMOVLNE(v *Value) bool { if v_2.Op != OpAMD64FlagEQ { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVLNE _ x (FlagGT_UGT)) @@ -5448,9 +5344,7 @@ func rewriteValueAMD64_OpAMD64CMOVLNE(v *Value) bool { if v_2.Op != OpAMD64FlagGT_UGT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVLNE _ x (FlagGT_ULT)) @@ -5460,9 +5354,7 @@ func rewriteValueAMD64_OpAMD64CMOVLNE(v *Value) bool { if v_2.Op != OpAMD64FlagGT_ULT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVLNE _ x (FlagLT_ULT)) @@ -5472,9 +5364,7 @@ func rewriteValueAMD64_OpAMD64CMOVLNE(v *Value) bool { if v_2.Op != OpAMD64FlagLT_ULT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVLNE _ x (FlagLT_UGT)) @@ -5484,9 +5374,7 @@ func rewriteValueAMD64_OpAMD64CMOVLNE(v *Value) bool { if v_2.Op != OpAMD64FlagLT_UGT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -5515,9 +5403,7 @@ func rewriteValueAMD64_OpAMD64CMOVQCC(v *Value) bool { if v_2.Op != OpAMD64FlagEQ { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVQCC _ x (FlagGT_UGT)) @@ -5527,9 +5413,7 @@ func rewriteValueAMD64_OpAMD64CMOVQCC(v *Value) bool { if v_2.Op != OpAMD64FlagGT_UGT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVQCC y _ (FlagGT_ULT)) @@ -5539,9 +5423,7 @@ func rewriteValueAMD64_OpAMD64CMOVQCC(v *Value) bool { if v_2.Op != OpAMD64FlagGT_ULT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVQCC y _ (FlagLT_ULT)) @@ -5551,9 +5433,7 @@ func rewriteValueAMD64_OpAMD64CMOVQCC(v *Value) bool { if v_2.Op != OpAMD64FlagLT_ULT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVQCC _ x (FlagLT_UGT)) @@ -5563,9 +5443,7 @@ func rewriteValueAMD64_OpAMD64CMOVQCC(v *Value) bool { if v_2.Op != OpAMD64FlagLT_UGT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -5594,9 +5472,7 @@ func rewriteValueAMD64_OpAMD64CMOVQCS(v *Value) bool { if v_2.Op != OpAMD64FlagEQ { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVQCS y _ (FlagGT_UGT)) @@ -5606,9 +5482,7 @@ func rewriteValueAMD64_OpAMD64CMOVQCS(v *Value) bool { if v_2.Op != OpAMD64FlagGT_UGT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVQCS _ x (FlagGT_ULT)) @@ -5618,9 +5492,7 @@ func rewriteValueAMD64_OpAMD64CMOVQCS(v *Value) bool { if v_2.Op != OpAMD64FlagGT_ULT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVQCS _ x (FlagLT_ULT)) @@ -5630,9 +5502,7 @@ func rewriteValueAMD64_OpAMD64CMOVQCS(v *Value) bool { if v_2.Op != OpAMD64FlagLT_ULT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVQCS y _ (FlagLT_UGT)) @@ -5642,9 +5512,7 @@ func rewriteValueAMD64_OpAMD64CMOVQCS(v *Value) bool { if v_2.Op != OpAMD64FlagLT_UGT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } return false @@ -5673,9 +5541,7 @@ func rewriteValueAMD64_OpAMD64CMOVQEQ(v *Value) bool { if v_2.Op != OpAMD64FlagEQ { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVQEQ y _ (FlagGT_UGT)) @@ -5685,9 +5551,7 @@ func rewriteValueAMD64_OpAMD64CMOVQEQ(v *Value) bool { if v_2.Op != OpAMD64FlagGT_UGT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVQEQ y _ (FlagGT_ULT)) @@ -5697,9 +5561,7 @@ func rewriteValueAMD64_OpAMD64CMOVQEQ(v *Value) bool { if v_2.Op != OpAMD64FlagGT_ULT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVQEQ y _ (FlagLT_ULT)) @@ -5709,9 +5571,7 @@ func rewriteValueAMD64_OpAMD64CMOVQEQ(v *Value) bool { if v_2.Op != OpAMD64FlagLT_ULT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVQEQ y _ (FlagLT_UGT)) @@ -5721,9 +5581,7 @@ func rewriteValueAMD64_OpAMD64CMOVQEQ(v *Value) bool { if v_2.Op != OpAMD64FlagLT_UGT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVQEQ x _ (Select1 (BSFQ (ORQconst [c] _)))) @@ -5746,9 +5604,7 @@ func rewriteValueAMD64_OpAMD64CMOVQEQ(v *Value) bool { if !(c != 0) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -5777,9 +5633,7 @@ func rewriteValueAMD64_OpAMD64CMOVQGE(v *Value) bool { if v_2.Op != OpAMD64FlagEQ { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVQGE _ x (FlagGT_UGT)) @@ -5789,9 +5643,7 @@ func rewriteValueAMD64_OpAMD64CMOVQGE(v *Value) bool { if v_2.Op != OpAMD64FlagGT_UGT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVQGE _ x (FlagGT_ULT)) @@ -5801,9 +5653,7 @@ func rewriteValueAMD64_OpAMD64CMOVQGE(v *Value) bool { if v_2.Op != OpAMD64FlagGT_ULT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVQGE y _ (FlagLT_ULT)) @@ -5813,9 +5663,7 @@ func rewriteValueAMD64_OpAMD64CMOVQGE(v *Value) bool { if v_2.Op != OpAMD64FlagLT_ULT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVQGE y _ (FlagLT_UGT)) @@ -5825,9 +5673,7 @@ func rewriteValueAMD64_OpAMD64CMOVQGE(v *Value) bool { if v_2.Op != OpAMD64FlagLT_UGT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } return false @@ -5856,9 +5702,7 @@ func rewriteValueAMD64_OpAMD64CMOVQGT(v *Value) bool { if v_2.Op != OpAMD64FlagEQ { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVQGT _ x (FlagGT_UGT)) @@ -5868,9 +5712,7 @@ func rewriteValueAMD64_OpAMD64CMOVQGT(v *Value) bool { if v_2.Op != OpAMD64FlagGT_UGT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVQGT _ x (FlagGT_ULT)) @@ -5880,9 +5722,7 @@ func rewriteValueAMD64_OpAMD64CMOVQGT(v *Value) bool { if v_2.Op != OpAMD64FlagGT_ULT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVQGT y _ (FlagLT_ULT)) @@ -5892,9 +5732,7 @@ func rewriteValueAMD64_OpAMD64CMOVQGT(v *Value) bool { if v_2.Op != OpAMD64FlagLT_ULT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVQGT y _ (FlagLT_UGT)) @@ -5904,9 +5742,7 @@ func rewriteValueAMD64_OpAMD64CMOVQGT(v *Value) bool { if v_2.Op != OpAMD64FlagLT_UGT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } return false @@ -5935,9 +5771,7 @@ func rewriteValueAMD64_OpAMD64CMOVQHI(v *Value) bool { if v_2.Op != OpAMD64FlagEQ { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVQHI _ x (FlagGT_UGT)) @@ -5947,9 +5781,7 @@ func rewriteValueAMD64_OpAMD64CMOVQHI(v *Value) bool { if v_2.Op != OpAMD64FlagGT_UGT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVQHI y _ (FlagGT_ULT)) @@ -5959,9 +5791,7 @@ func rewriteValueAMD64_OpAMD64CMOVQHI(v *Value) bool { if v_2.Op != OpAMD64FlagGT_ULT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVQHI y _ (FlagLT_ULT)) @@ -5971,9 +5801,7 @@ func rewriteValueAMD64_OpAMD64CMOVQHI(v *Value) bool { if v_2.Op != OpAMD64FlagLT_ULT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVQHI _ x (FlagLT_UGT)) @@ -5983,9 +5811,7 @@ func rewriteValueAMD64_OpAMD64CMOVQHI(v *Value) bool { if v_2.Op != OpAMD64FlagLT_UGT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -6014,9 +5840,7 @@ func rewriteValueAMD64_OpAMD64CMOVQLE(v *Value) bool { if v_2.Op != OpAMD64FlagEQ { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVQLE y _ (FlagGT_UGT)) @@ -6026,9 +5850,7 @@ func rewriteValueAMD64_OpAMD64CMOVQLE(v *Value) bool { if v_2.Op != OpAMD64FlagGT_UGT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVQLE y _ (FlagGT_ULT)) @@ -6038,9 +5860,7 @@ func rewriteValueAMD64_OpAMD64CMOVQLE(v *Value) bool { if v_2.Op != OpAMD64FlagGT_ULT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVQLE _ x (FlagLT_ULT)) @@ -6050,9 +5870,7 @@ func rewriteValueAMD64_OpAMD64CMOVQLE(v *Value) bool { if v_2.Op != OpAMD64FlagLT_ULT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVQLE _ x (FlagLT_UGT)) @@ -6062,9 +5880,7 @@ func rewriteValueAMD64_OpAMD64CMOVQLE(v *Value) bool { if v_2.Op != OpAMD64FlagLT_UGT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -6093,9 +5909,7 @@ func rewriteValueAMD64_OpAMD64CMOVQLS(v *Value) bool { if v_2.Op != OpAMD64FlagEQ { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVQLS y _ (FlagGT_UGT)) @@ -6105,9 +5919,7 @@ func rewriteValueAMD64_OpAMD64CMOVQLS(v *Value) bool { if v_2.Op != OpAMD64FlagGT_UGT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVQLS _ x (FlagGT_ULT)) @@ -6117,9 +5929,7 @@ func rewriteValueAMD64_OpAMD64CMOVQLS(v *Value) bool { if v_2.Op != OpAMD64FlagGT_ULT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVQLS _ x (FlagLT_ULT)) @@ -6129,9 +5939,7 @@ func rewriteValueAMD64_OpAMD64CMOVQLS(v *Value) bool { if v_2.Op != OpAMD64FlagLT_ULT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVQLS y _ (FlagLT_UGT)) @@ -6141,9 +5949,7 @@ func rewriteValueAMD64_OpAMD64CMOVQLS(v *Value) bool { if v_2.Op != OpAMD64FlagLT_UGT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } return false @@ -6172,9 +5978,7 @@ func rewriteValueAMD64_OpAMD64CMOVQLT(v *Value) bool { if v_2.Op != OpAMD64FlagEQ { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVQLT y _ (FlagGT_UGT)) @@ -6184,9 +5988,7 @@ func rewriteValueAMD64_OpAMD64CMOVQLT(v *Value) bool { if v_2.Op != OpAMD64FlagGT_UGT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVQLT y _ (FlagGT_ULT)) @@ -6196,9 +5998,7 @@ func rewriteValueAMD64_OpAMD64CMOVQLT(v *Value) bool { if v_2.Op != OpAMD64FlagGT_ULT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVQLT _ x (FlagLT_ULT)) @@ -6208,9 +6008,7 @@ func rewriteValueAMD64_OpAMD64CMOVQLT(v *Value) bool { if v_2.Op != OpAMD64FlagLT_ULT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVQLT _ x (FlagLT_UGT)) @@ -6220,9 +6018,7 @@ func rewriteValueAMD64_OpAMD64CMOVQLT(v *Value) bool { if v_2.Op != OpAMD64FlagLT_UGT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -6251,9 +6047,7 @@ func rewriteValueAMD64_OpAMD64CMOVQNE(v *Value) bool { if v_2.Op != OpAMD64FlagEQ { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVQNE _ x (FlagGT_UGT)) @@ -6263,9 +6057,7 @@ func rewriteValueAMD64_OpAMD64CMOVQNE(v *Value) bool { if v_2.Op != OpAMD64FlagGT_UGT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVQNE _ x (FlagGT_ULT)) @@ -6275,9 +6067,7 @@ func rewriteValueAMD64_OpAMD64CMOVQNE(v *Value) bool { if v_2.Op != OpAMD64FlagGT_ULT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVQNE _ x (FlagLT_ULT)) @@ -6287,9 +6077,7 @@ func rewriteValueAMD64_OpAMD64CMOVQNE(v *Value) bool { if v_2.Op != OpAMD64FlagLT_ULT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVQNE _ x (FlagLT_UGT)) @@ -6299,9 +6087,7 @@ func rewriteValueAMD64_OpAMD64CMOVQNE(v *Value) bool { if v_2.Op != OpAMD64FlagLT_UGT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -6330,9 +6116,7 @@ func rewriteValueAMD64_OpAMD64CMOVWCC(v *Value) bool { if v_2.Op != OpAMD64FlagEQ { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVWCC _ x (FlagGT_UGT)) @@ -6342,9 +6126,7 @@ func rewriteValueAMD64_OpAMD64CMOVWCC(v *Value) bool { if v_2.Op != OpAMD64FlagGT_UGT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVWCC y _ (FlagGT_ULT)) @@ -6354,9 +6136,7 @@ func rewriteValueAMD64_OpAMD64CMOVWCC(v *Value) bool { if v_2.Op != OpAMD64FlagGT_ULT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVWCC y _ (FlagLT_ULT)) @@ -6366,9 +6146,7 @@ func rewriteValueAMD64_OpAMD64CMOVWCC(v *Value) bool { if v_2.Op != OpAMD64FlagLT_ULT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVWCC _ x (FlagLT_UGT)) @@ -6378,9 +6156,7 @@ func rewriteValueAMD64_OpAMD64CMOVWCC(v *Value) bool { if v_2.Op != OpAMD64FlagLT_UGT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -6409,9 +6185,7 @@ func rewriteValueAMD64_OpAMD64CMOVWCS(v *Value) bool { if v_2.Op != OpAMD64FlagEQ { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVWCS y _ (FlagGT_UGT)) @@ -6421,9 +6195,7 @@ func rewriteValueAMD64_OpAMD64CMOVWCS(v *Value) bool { if v_2.Op != OpAMD64FlagGT_UGT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVWCS _ x (FlagGT_ULT)) @@ -6433,9 +6205,7 @@ func rewriteValueAMD64_OpAMD64CMOVWCS(v *Value) bool { if v_2.Op != OpAMD64FlagGT_ULT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVWCS _ x (FlagLT_ULT)) @@ -6445,9 +6215,7 @@ func rewriteValueAMD64_OpAMD64CMOVWCS(v *Value) bool { if v_2.Op != OpAMD64FlagLT_ULT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVWCS y _ (FlagLT_UGT)) @@ -6457,9 +6225,7 @@ func rewriteValueAMD64_OpAMD64CMOVWCS(v *Value) bool { if v_2.Op != OpAMD64FlagLT_UGT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } return false @@ -6488,9 +6254,7 @@ func rewriteValueAMD64_OpAMD64CMOVWEQ(v *Value) bool { if v_2.Op != OpAMD64FlagEQ { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVWEQ y _ (FlagGT_UGT)) @@ -6500,9 +6264,7 @@ func rewriteValueAMD64_OpAMD64CMOVWEQ(v *Value) bool { if v_2.Op != OpAMD64FlagGT_UGT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVWEQ y _ (FlagGT_ULT)) @@ -6512,9 +6274,7 @@ func rewriteValueAMD64_OpAMD64CMOVWEQ(v *Value) bool { if v_2.Op != OpAMD64FlagGT_ULT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVWEQ y _ (FlagLT_ULT)) @@ -6524,9 +6284,7 @@ func rewriteValueAMD64_OpAMD64CMOVWEQ(v *Value) bool { if v_2.Op != OpAMD64FlagLT_ULT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVWEQ y _ (FlagLT_UGT)) @@ -6536,9 +6294,7 @@ func rewriteValueAMD64_OpAMD64CMOVWEQ(v *Value) bool { if v_2.Op != OpAMD64FlagLT_UGT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } return false @@ -6567,9 +6323,7 @@ func rewriteValueAMD64_OpAMD64CMOVWGE(v *Value) bool { if v_2.Op != OpAMD64FlagEQ { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVWGE _ x (FlagGT_UGT)) @@ -6579,9 +6333,7 @@ func rewriteValueAMD64_OpAMD64CMOVWGE(v *Value) bool { if v_2.Op != OpAMD64FlagGT_UGT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVWGE _ x (FlagGT_ULT)) @@ -6591,9 +6343,7 @@ func rewriteValueAMD64_OpAMD64CMOVWGE(v *Value) bool { if v_2.Op != OpAMD64FlagGT_ULT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVWGE y _ (FlagLT_ULT)) @@ -6603,9 +6353,7 @@ func rewriteValueAMD64_OpAMD64CMOVWGE(v *Value) bool { if v_2.Op != OpAMD64FlagLT_ULT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVWGE y _ (FlagLT_UGT)) @@ -6615,9 +6363,7 @@ func rewriteValueAMD64_OpAMD64CMOVWGE(v *Value) bool { if v_2.Op != OpAMD64FlagLT_UGT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } return false @@ -6646,9 +6392,7 @@ func rewriteValueAMD64_OpAMD64CMOVWGT(v *Value) bool { if v_2.Op != OpAMD64FlagEQ { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVWGT _ x (FlagGT_UGT)) @@ -6658,9 +6402,7 @@ func rewriteValueAMD64_OpAMD64CMOVWGT(v *Value) bool { if v_2.Op != OpAMD64FlagGT_UGT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVWGT _ x (FlagGT_ULT)) @@ -6670,9 +6412,7 @@ func rewriteValueAMD64_OpAMD64CMOVWGT(v *Value) bool { if v_2.Op != OpAMD64FlagGT_ULT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVWGT y _ (FlagLT_ULT)) @@ -6682,9 +6422,7 @@ func rewriteValueAMD64_OpAMD64CMOVWGT(v *Value) bool { if v_2.Op != OpAMD64FlagLT_ULT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVWGT y _ (FlagLT_UGT)) @@ -6694,9 +6432,7 @@ func rewriteValueAMD64_OpAMD64CMOVWGT(v *Value) bool { if v_2.Op != OpAMD64FlagLT_UGT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } return false @@ -6725,9 +6461,7 @@ func rewriteValueAMD64_OpAMD64CMOVWHI(v *Value) bool { if v_2.Op != OpAMD64FlagEQ { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVWHI _ x (FlagGT_UGT)) @@ -6737,9 +6471,7 @@ func rewriteValueAMD64_OpAMD64CMOVWHI(v *Value) bool { if v_2.Op != OpAMD64FlagGT_UGT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVWHI y _ (FlagGT_ULT)) @@ -6749,9 +6481,7 @@ func rewriteValueAMD64_OpAMD64CMOVWHI(v *Value) bool { if v_2.Op != OpAMD64FlagGT_ULT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVWHI y _ (FlagLT_ULT)) @@ -6761,9 +6491,7 @@ func rewriteValueAMD64_OpAMD64CMOVWHI(v *Value) bool { if v_2.Op != OpAMD64FlagLT_ULT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVWHI _ x (FlagLT_UGT)) @@ -6773,9 +6501,7 @@ func rewriteValueAMD64_OpAMD64CMOVWHI(v *Value) bool { if v_2.Op != OpAMD64FlagLT_UGT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -6804,9 +6530,7 @@ func rewriteValueAMD64_OpAMD64CMOVWLE(v *Value) bool { if v_2.Op != OpAMD64FlagEQ { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVWLE y _ (FlagGT_UGT)) @@ -6816,9 +6540,7 @@ func rewriteValueAMD64_OpAMD64CMOVWLE(v *Value) bool { if v_2.Op != OpAMD64FlagGT_UGT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVWLE y _ (FlagGT_ULT)) @@ -6828,9 +6550,7 @@ func rewriteValueAMD64_OpAMD64CMOVWLE(v *Value) bool { if v_2.Op != OpAMD64FlagGT_ULT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVWLE _ x (FlagLT_ULT)) @@ -6840,9 +6560,7 @@ func rewriteValueAMD64_OpAMD64CMOVWLE(v *Value) bool { if v_2.Op != OpAMD64FlagLT_ULT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVWLE _ x (FlagLT_UGT)) @@ -6852,9 +6570,7 @@ func rewriteValueAMD64_OpAMD64CMOVWLE(v *Value) bool { if v_2.Op != OpAMD64FlagLT_UGT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -6883,9 +6599,7 @@ func rewriteValueAMD64_OpAMD64CMOVWLS(v *Value) bool { if v_2.Op != OpAMD64FlagEQ { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVWLS y _ (FlagGT_UGT)) @@ -6895,9 +6609,7 @@ func rewriteValueAMD64_OpAMD64CMOVWLS(v *Value) bool { if v_2.Op != OpAMD64FlagGT_UGT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVWLS _ x (FlagGT_ULT)) @@ -6907,9 +6619,7 @@ func rewriteValueAMD64_OpAMD64CMOVWLS(v *Value) bool { if v_2.Op != OpAMD64FlagGT_ULT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVWLS _ x (FlagLT_ULT)) @@ -6919,9 +6629,7 @@ func rewriteValueAMD64_OpAMD64CMOVWLS(v *Value) bool { if v_2.Op != OpAMD64FlagLT_ULT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVWLS y _ (FlagLT_UGT)) @@ -6931,9 +6639,7 @@ func rewriteValueAMD64_OpAMD64CMOVWLS(v *Value) bool { if v_2.Op != OpAMD64FlagLT_UGT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } return false @@ -6962,9 +6668,7 @@ func rewriteValueAMD64_OpAMD64CMOVWLT(v *Value) bool { if v_2.Op != OpAMD64FlagEQ { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVWLT y _ (FlagGT_UGT)) @@ -6974,9 +6678,7 @@ func rewriteValueAMD64_OpAMD64CMOVWLT(v *Value) bool { if v_2.Op != OpAMD64FlagGT_UGT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVWLT y _ (FlagGT_ULT)) @@ -6986,9 +6688,7 @@ func rewriteValueAMD64_OpAMD64CMOVWLT(v *Value) bool { if v_2.Op != OpAMD64FlagGT_ULT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVWLT _ x (FlagLT_ULT)) @@ -6998,9 +6698,7 @@ func rewriteValueAMD64_OpAMD64CMOVWLT(v *Value) bool { if v_2.Op != OpAMD64FlagLT_ULT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVWLT _ x (FlagLT_UGT)) @@ -7010,9 +6708,7 @@ func rewriteValueAMD64_OpAMD64CMOVWLT(v *Value) bool { if v_2.Op != OpAMD64FlagLT_UGT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -7041,9 +6737,7 @@ func rewriteValueAMD64_OpAMD64CMOVWNE(v *Value) bool { if v_2.Op != OpAMD64FlagEQ { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CMOVWNE _ x (FlagGT_UGT)) @@ -7053,9 +6747,7 @@ func rewriteValueAMD64_OpAMD64CMOVWNE(v *Value) bool { if v_2.Op != OpAMD64FlagGT_UGT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVWNE _ x (FlagGT_ULT)) @@ -7065,9 +6757,7 @@ func rewriteValueAMD64_OpAMD64CMOVWNE(v *Value) bool { if v_2.Op != OpAMD64FlagGT_ULT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVWNE _ x (FlagLT_ULT)) @@ -7077,9 +6767,7 @@ func rewriteValueAMD64_OpAMD64CMOVWNE(v *Value) bool { if v_2.Op != OpAMD64FlagLT_ULT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVWNE _ x (FlagLT_UGT)) @@ -7089,9 +6777,7 @@ func rewriteValueAMD64_OpAMD64CMOVWNE(v *Value) bool { if v_2.Op != OpAMD64FlagLT_UGT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -7338,8 +7024,7 @@ func rewriteValueAMD64_OpAMD64CMPBconst(v *Value) bool { } b = l.Block v0 := b.NewValue0(l.Pos, OpAMD64CMPBconstload, types.TypeFlags) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = makeValAndOff(c, off) v0.Aux = sym v0.AddArg2(ptr, mem) @@ -7724,8 +7409,7 @@ func rewriteValueAMD64_OpAMD64CMPLconst(v *Value) bool { } b = l.Block v0 := b.NewValue0(l.Pos, OpAMD64CMPLconstload, types.TypeFlags) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = makeValAndOff(c, off) v0.Aux = sym v0.AddArg2(ptr, mem) @@ -8290,8 +7974,7 @@ func rewriteValueAMD64_OpAMD64CMPQconst(v *Value) bool { } b = l.Block v0 := b.NewValue0(l.Pos, OpAMD64CMPQconstload, types.TypeFlags) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = makeValAndOff(c, off) v0.Aux = sym v0.AddArg2(ptr, mem) @@ -8661,8 +8344,7 @@ func rewriteValueAMD64_OpAMD64CMPWconst(v *Value) bool { } b = l.Block v0 := b.NewValue0(l.Pos, OpAMD64CMPWconstload, types.TypeFlags) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = makeValAndOff(c, off) v0.Aux = sym v0.AddArg2(ptr, mem) @@ -9964,8 +9646,7 @@ func rewriteValueAMD64_OpAMD64MOVBQSX(v *Value) bool { } b = x.Block v0 := b.NewValue0(x.Pos, OpAMD64MOVBQSXload, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = off v0.Aux = sym v0.AddArg2(ptr, mem) @@ -9988,8 +9669,7 @@ func rewriteValueAMD64_OpAMD64MOVBQSX(v *Value) bool { } b = x.Block v0 := b.NewValue0(x.Pos, OpAMD64MOVBQSXload, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = off v0.Aux = sym v0.AddArg2(ptr, mem) @@ -10012,8 +9692,7 @@ func rewriteValueAMD64_OpAMD64MOVBQSX(v *Value) bool { } b = x.Block v0 := b.NewValue0(x.Pos, OpAMD64MOVBQSXload, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = off v0.Aux = sym v0.AddArg2(ptr, mem) @@ -10036,8 +9715,7 @@ func rewriteValueAMD64_OpAMD64MOVBQSX(v *Value) bool { } b = x.Block v0 := b.NewValue0(x.Pos, OpAMD64MOVBQSXload, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = off v0.Aux = sym v0.AddArg2(ptr, mem) @@ -10142,8 +9820,7 @@ func rewriteValueAMD64_OpAMD64MOVBQZX(v *Value) bool { } b = x.Block v0 := b.NewValue0(x.Pos, OpAMD64MOVBload, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = off v0.Aux = sym v0.AddArg2(ptr, mem) @@ -10166,8 +9843,7 @@ func rewriteValueAMD64_OpAMD64MOVBQZX(v *Value) bool { } b = x.Block v0 := b.NewValue0(x.Pos, OpAMD64MOVBload, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = off v0.Aux = sym v0.AddArg2(ptr, mem) @@ -10190,8 +9866,7 @@ func rewriteValueAMD64_OpAMD64MOVBQZX(v *Value) bool { } b = x.Block v0 := b.NewValue0(x.Pos, OpAMD64MOVBload, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = off v0.Aux = sym v0.AddArg2(ptr, mem) @@ -10214,8 +9889,7 @@ func rewriteValueAMD64_OpAMD64MOVBQZX(v *Value) bool { } b = x.Block v0 := b.NewValue0(x.Pos, OpAMD64MOVBload, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = off v0.Aux = sym v0.AddArg2(ptr, mem) @@ -10229,9 +9903,7 @@ func rewriteValueAMD64_OpAMD64MOVBQZX(v *Value) bool { if !(zeroUpper56Bits(x, 3)) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVBQZX x:(MOVBloadidx1 [off] {sym} ptr idx mem)) @@ -10252,8 +9924,7 @@ func rewriteValueAMD64_OpAMD64MOVBQZX(v *Value) bool { } b = x.Block v0 := b.NewValue0(v.Pos, OpAMD64MOVBloadidx1, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = off v0.Aux = sym v0.AddArg3(ptr, idx, mem) @@ -12279,8 +11950,7 @@ func rewriteValueAMD64_OpAMD64MOVLQSX(v *Value) bool { } b = x.Block v0 := b.NewValue0(x.Pos, OpAMD64MOVLQSXload, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = off v0.Aux = sym v0.AddArg2(ptr, mem) @@ -12303,8 +11973,7 @@ func rewriteValueAMD64_OpAMD64MOVLQSX(v *Value) bool { } b = x.Block v0 := b.NewValue0(x.Pos, OpAMD64MOVLQSXload, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = off v0.Aux = sym v0.AddArg2(ptr, mem) @@ -12431,8 +12100,7 @@ func rewriteValueAMD64_OpAMD64MOVLQZX(v *Value) bool { } b = x.Block v0 := b.NewValue0(x.Pos, OpAMD64MOVLload, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = off v0.Aux = sym v0.AddArg2(ptr, mem) @@ -12455,8 +12123,7 @@ func rewriteValueAMD64_OpAMD64MOVLQZX(v *Value) bool { } b = x.Block v0 := b.NewValue0(x.Pos, OpAMD64MOVLload, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = off v0.Aux = sym v0.AddArg2(ptr, mem) @@ -12470,9 +12137,7 @@ func rewriteValueAMD64_OpAMD64MOVLQZX(v *Value) bool { if !(zeroUpper32Bits(x, 3)) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVLQZX x:(MOVLloadidx1 [off] {sym} ptr idx mem)) @@ -12493,8 +12158,7 @@ func rewriteValueAMD64_OpAMD64MOVLQZX(v *Value) bool { } b = x.Block v0 := b.NewValue0(v.Pos, OpAMD64MOVLloadidx1, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = off v0.Aux = sym v0.AddArg3(ptr, idx, mem) @@ -12518,8 +12182,7 @@ func rewriteValueAMD64_OpAMD64MOVLQZX(v *Value) bool { } b = x.Block v0 := b.NewValue0(v.Pos, OpAMD64MOVLloadidx4, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = off v0.Aux = sym v0.AddArg3(ptr, idx, mem) @@ -12640,8 +12303,7 @@ func rewriteValueAMD64_OpAMD64MOVLf2i(v *Value) bool { } b = b.Func.Entry v0 := b.NewValue0(v.Pos, OpArg, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = off v0.Aux = sym return true @@ -12667,8 +12329,7 @@ func rewriteValueAMD64_OpAMD64MOVLi2f(v *Value) bool { } b = b.Func.Entry v0 := b.NewValue0(v.Pos, OpArg, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = off v0.Aux = sym return true @@ -15152,8 +14813,7 @@ func rewriteValueAMD64_OpAMD64MOVQf2i(v *Value) bool { } b = b.Func.Entry v0 := b.NewValue0(v.Pos, OpArg, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = off v0.Aux = sym return true @@ -15179,8 +14839,7 @@ func rewriteValueAMD64_OpAMD64MOVQi2f(v *Value) bool { } b = b.Func.Entry v0 := b.NewValue0(v.Pos, OpArg, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = off v0.Aux = sym return true @@ -15210,9 +14869,7 @@ func rewriteValueAMD64_OpAMD64MOVQload(v *Value) bool { if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVQload [off1] {sym} (ADDQconst [off2] ptr) mem) @@ -18082,8 +17739,7 @@ func rewriteValueAMD64_OpAMD64MOVWQSX(v *Value) bool { } b = x.Block v0 := b.NewValue0(x.Pos, OpAMD64MOVWQSXload, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = off v0.Aux = sym v0.AddArg2(ptr, mem) @@ -18106,8 +17762,7 @@ func rewriteValueAMD64_OpAMD64MOVWQSX(v *Value) bool { } b = x.Block v0 := b.NewValue0(x.Pos, OpAMD64MOVWQSXload, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = off v0.Aux = sym v0.AddArg2(ptr, mem) @@ -18130,8 +17785,7 @@ func rewriteValueAMD64_OpAMD64MOVWQSX(v *Value) bool { } b = x.Block v0 := b.NewValue0(x.Pos, OpAMD64MOVWQSXload, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = off v0.Aux = sym v0.AddArg2(ptr, mem) @@ -18247,8 +17901,7 @@ func rewriteValueAMD64_OpAMD64MOVWQZX(v *Value) bool { } b = x.Block v0 := b.NewValue0(x.Pos, OpAMD64MOVWload, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = off v0.Aux = sym v0.AddArg2(ptr, mem) @@ -18271,8 +17924,7 @@ func rewriteValueAMD64_OpAMD64MOVWQZX(v *Value) bool { } b = x.Block v0 := b.NewValue0(x.Pos, OpAMD64MOVWload, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = off v0.Aux = sym v0.AddArg2(ptr, mem) @@ -18295,8 +17947,7 @@ func rewriteValueAMD64_OpAMD64MOVWQZX(v *Value) bool { } b = x.Block v0 := b.NewValue0(x.Pos, OpAMD64MOVWload, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = off v0.Aux = sym v0.AddArg2(ptr, mem) @@ -18310,9 +17961,7 @@ func rewriteValueAMD64_OpAMD64MOVWQZX(v *Value) bool { if !(zeroUpper48Bits(x, 3)) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVWQZX x:(MOVWloadidx1 [off] {sym} ptr idx mem)) @@ -18333,8 +17982,7 @@ func rewriteValueAMD64_OpAMD64MOVWQZX(v *Value) bool { } b = x.Block v0 := b.NewValue0(v.Pos, OpAMD64MOVWloadidx1, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = off v0.Aux = sym v0.AddArg3(ptr, idx, mem) @@ -18358,8 +18006,7 @@ func rewriteValueAMD64_OpAMD64MOVWQZX(v *Value) bool { } b = x.Block v0 := b.NewValue0(v.Pos, OpAMD64MOVWloadidx2, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = off v0.Aux = sym v0.AddArg3(ptr, idx, mem) @@ -20132,9 +19779,7 @@ func rewriteValueAMD64_OpAMD64MULLconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MULLconst [ 3] x) @@ -20587,9 +20232,7 @@ func rewriteValueAMD64_OpAMD64MULQconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MULQconst [ 3] x) @@ -21163,9 +20806,7 @@ func rewriteValueAMD64_OpAMD64NEGL(v *Value) bool { break } x := v_0.Args[0] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (NEGL s:(SUBL x y)) @@ -21207,9 +20848,7 @@ func rewriteValueAMD64_OpAMD64NEGQ(v *Value) bool { break } x := v_0.Args[0] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (NEGQ s:(SUBQ x y)) @@ -22050,9 +21689,7 @@ func rewriteValueAMD64_OpAMD64ORL(v *Value) bool { if x != v_1 { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (ORL x0:(MOVBload [i0] {s} p mem) sh:(SHLLconst [8] x1:(MOVBload [i1] {s} p mem))) @@ -22086,8 +21723,7 @@ func rewriteValueAMD64_OpAMD64ORL(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(x1.Pos, OpAMD64MOVWload, typ.UInt16) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = i0 v0.Aux = s v0.AddArg2(p, mem) @@ -22126,8 +21762,7 @@ func rewriteValueAMD64_OpAMD64ORL(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(x1.Pos, OpAMD64MOVLload, typ.UInt32) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = i0 v0.Aux = s v0.AddArg2(p, mem) @@ -22184,8 +21819,7 @@ func rewriteValueAMD64_OpAMD64ORL(v *Value) bool { } b = mergePoint(b, x0, x1, y) v0 := b.NewValue0(x0.Pos, OpAMD64ORL, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(x0.Pos, OpAMD64SHLLconst, v.Type) v1.AuxInt = j0 v2 := b.NewValue0(x0.Pos, OpAMD64MOVWload, typ.UInt16) @@ -22237,8 +21871,7 @@ func rewriteValueAMD64_OpAMD64ORL(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(v.Pos, OpAMD64MOVWloadidx1, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = i0 v0.Aux = s v0.AddArg3(p, idx, mem) @@ -22286,8 +21919,7 @@ func rewriteValueAMD64_OpAMD64ORL(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(v.Pos, OpAMD64MOVLloadidx1, typ.UInt32) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = i0 v0.Aux = s v0.AddArg3(p, idx, mem) @@ -22353,8 +21985,7 @@ func rewriteValueAMD64_OpAMD64ORL(v *Value) bool { } b = mergePoint(b, x0, x1, y) v0 := b.NewValue0(v.Pos, OpAMD64ORL, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(v.Pos, OpAMD64SHLLconst, v.Type) v1.AuxInt = j0 v2 := b.NewValue0(v.Pos, OpAMD64MOVWloadidx1, typ.UInt16) @@ -22401,8 +22032,7 @@ func rewriteValueAMD64_OpAMD64ORL(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(x0.Pos, OpAMD64ROLWconst, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = 8 v1 := b.NewValue0(x0.Pos, OpAMD64MOVWload, typ.UInt16) v1.AuxInt = i0 @@ -22452,8 +22082,7 @@ func rewriteValueAMD64_OpAMD64ORL(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(x0.Pos, OpAMD64BSWAPL, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(x0.Pos, OpAMD64MOVLload, typ.UInt32) v1.AuxInt = i0 v1.Aux = s @@ -22512,8 +22141,7 @@ func rewriteValueAMD64_OpAMD64ORL(v *Value) bool { } b = mergePoint(b, x0, x1, y) v0 := b.NewValue0(x1.Pos, OpAMD64ORL, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(x1.Pos, OpAMD64SHLLconst, v.Type) v1.AuxInt = j1 v2 := b.NewValue0(x1.Pos, OpAMD64ROLWconst, typ.UInt16) @@ -22568,8 +22196,7 @@ func rewriteValueAMD64_OpAMD64ORL(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(v.Pos, OpAMD64ROLWconst, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = 8 v1 := b.NewValue0(v.Pos, OpAMD64MOVWloadidx1, typ.UInt16) v1.AuxInt = i0 @@ -22628,8 +22255,7 @@ func rewriteValueAMD64_OpAMD64ORL(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(v.Pos, OpAMD64BSWAPL, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(v.Pos, OpAMD64MOVLloadidx1, typ.UInt32) v1.AuxInt = i0 v1.Aux = s @@ -22697,8 +22323,7 @@ func rewriteValueAMD64_OpAMD64ORL(v *Value) bool { } b = mergePoint(b, x0, x1, y) v0 := b.NewValue0(v.Pos, OpAMD64ORL, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(v.Pos, OpAMD64SHLLconst, v.Type) v1.AuxInt = j1 v2 := b.NewValue0(v.Pos, OpAMD64ROLWconst, typ.UInt16) @@ -22797,9 +22422,7 @@ func rewriteValueAMD64_OpAMD64ORLconst(v *Value) bool { if !(int32(c) == 0) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (ORLconst [c] _) @@ -23330,9 +22953,7 @@ func rewriteValueAMD64_OpAMD64ORQ(v *Value) bool { if x != v_1 { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (ORQ x0:(MOVBload [i0] {s} p mem) sh:(SHLQconst [8] x1:(MOVBload [i1] {s} p mem))) @@ -23366,8 +22987,7 @@ func rewriteValueAMD64_OpAMD64ORQ(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(x1.Pos, OpAMD64MOVWload, typ.UInt16) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = i0 v0.Aux = s v0.AddArg2(p, mem) @@ -23406,8 +23026,7 @@ func rewriteValueAMD64_OpAMD64ORQ(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(x1.Pos, OpAMD64MOVLload, typ.UInt32) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = i0 v0.Aux = s v0.AddArg2(p, mem) @@ -23446,8 +23065,7 @@ func rewriteValueAMD64_OpAMD64ORQ(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(x1.Pos, OpAMD64MOVQload, typ.UInt64) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = i0 v0.Aux = s v0.AddArg2(p, mem) @@ -23504,8 +23122,7 @@ func rewriteValueAMD64_OpAMD64ORQ(v *Value) bool { } b = mergePoint(b, x0, x1, y) v0 := b.NewValue0(x0.Pos, OpAMD64ORQ, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(x0.Pos, OpAMD64SHLQconst, v.Type) v1.AuxInt = j0 v2 := b.NewValue0(x0.Pos, OpAMD64MOVWload, typ.UInt16) @@ -23568,8 +23185,7 @@ func rewriteValueAMD64_OpAMD64ORQ(v *Value) bool { } b = mergePoint(b, x0, x1, y) v0 := b.NewValue0(x0.Pos, OpAMD64ORQ, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(x0.Pos, OpAMD64SHLQconst, v.Type) v1.AuxInt = j0 v2 := b.NewValue0(x0.Pos, OpAMD64MOVLload, typ.UInt32) @@ -23621,8 +23237,7 @@ func rewriteValueAMD64_OpAMD64ORQ(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(v.Pos, OpAMD64MOVWloadidx1, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = i0 v0.Aux = s v0.AddArg3(p, idx, mem) @@ -23670,8 +23285,7 @@ func rewriteValueAMD64_OpAMD64ORQ(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(v.Pos, OpAMD64MOVLloadidx1, typ.UInt32) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = i0 v0.Aux = s v0.AddArg3(p, idx, mem) @@ -23719,8 +23333,7 @@ func rewriteValueAMD64_OpAMD64ORQ(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(v.Pos, OpAMD64MOVQloadidx1, typ.UInt64) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = i0 v0.Aux = s v0.AddArg3(p, idx, mem) @@ -23786,8 +23399,7 @@ func rewriteValueAMD64_OpAMD64ORQ(v *Value) bool { } b = mergePoint(b, x0, x1, y) v0 := b.NewValue0(v.Pos, OpAMD64ORQ, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(v.Pos, OpAMD64SHLQconst, v.Type) v1.AuxInt = j0 v2 := b.NewValue0(v.Pos, OpAMD64MOVWloadidx1, typ.UInt16) @@ -23859,8 +23471,7 @@ func rewriteValueAMD64_OpAMD64ORQ(v *Value) bool { } b = mergePoint(b, x0, x1, y) v0 := b.NewValue0(v.Pos, OpAMD64ORQ, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(v.Pos, OpAMD64SHLQconst, v.Type) v1.AuxInt = j0 v2 := b.NewValue0(v.Pos, OpAMD64MOVLloadidx1, typ.UInt32) @@ -23907,8 +23518,7 @@ func rewriteValueAMD64_OpAMD64ORQ(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(x0.Pos, OpAMD64ROLWconst, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = 8 v1 := b.NewValue0(x0.Pos, OpAMD64MOVWload, typ.UInt16) v1.AuxInt = i0 @@ -23958,8 +23568,7 @@ func rewriteValueAMD64_OpAMD64ORQ(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(x0.Pos, OpAMD64BSWAPL, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(x0.Pos, OpAMD64MOVLload, typ.UInt32) v1.AuxInt = i0 v1.Aux = s @@ -24008,8 +23617,7 @@ func rewriteValueAMD64_OpAMD64ORQ(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(x0.Pos, OpAMD64BSWAPQ, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(x0.Pos, OpAMD64MOVQload, typ.UInt64) v1.AuxInt = i0 v1.Aux = s @@ -24068,8 +23676,7 @@ func rewriteValueAMD64_OpAMD64ORQ(v *Value) bool { } b = mergePoint(b, x0, x1, y) v0 := b.NewValue0(x1.Pos, OpAMD64ORQ, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(x1.Pos, OpAMD64SHLQconst, v.Type) v1.AuxInt = j1 v2 := b.NewValue0(x1.Pos, OpAMD64ROLWconst, typ.UInt16) @@ -24143,8 +23750,7 @@ func rewriteValueAMD64_OpAMD64ORQ(v *Value) bool { } b = mergePoint(b, x0, x1, y) v0 := b.NewValue0(x1.Pos, OpAMD64ORQ, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(x1.Pos, OpAMD64SHLQconst, v.Type) v1.AuxInt = j1 v2 := b.NewValue0(x1.Pos, OpAMD64BSWAPL, typ.UInt32) @@ -24198,8 +23804,7 @@ func rewriteValueAMD64_OpAMD64ORQ(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(v.Pos, OpAMD64ROLWconst, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = 8 v1 := b.NewValue0(v.Pos, OpAMD64MOVWloadidx1, typ.UInt16) v1.AuxInt = i0 @@ -24258,8 +23863,7 @@ func rewriteValueAMD64_OpAMD64ORQ(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(v.Pos, OpAMD64BSWAPL, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(v.Pos, OpAMD64MOVLloadidx1, typ.UInt32) v1.AuxInt = i0 v1.Aux = s @@ -24317,8 +23921,7 @@ func rewriteValueAMD64_OpAMD64ORQ(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(v.Pos, OpAMD64BSWAPQ, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(v.Pos, OpAMD64MOVQloadidx1, typ.UInt64) v1.AuxInt = i0 v1.Aux = s @@ -24386,8 +23989,7 @@ func rewriteValueAMD64_OpAMD64ORQ(v *Value) bool { } b = mergePoint(b, x0, x1, y) v0 := b.NewValue0(v.Pos, OpAMD64ORQ, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(v.Pos, OpAMD64SHLQconst, v.Type) v1.AuxInt = j1 v2 := b.NewValue0(v.Pos, OpAMD64ROLWconst, typ.UInt16) @@ -24470,8 +24072,7 @@ func rewriteValueAMD64_OpAMD64ORQ(v *Value) bool { } b = mergePoint(b, x0, x1, y) v0 := b.NewValue0(v.Pos, OpAMD64ORQ, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(v.Pos, OpAMD64SHLQconst, v.Type) v1.AuxInt = j1 v2 := b.NewValue0(v.Pos, OpAMD64BSWAPL, typ.UInt32) @@ -24567,9 +24168,7 @@ func rewriteValueAMD64_OpAMD64ORQconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (ORQconst [-1] _) @@ -24847,9 +24446,7 @@ func rewriteValueAMD64_OpAMD64ROLBconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -24932,9 +24529,7 @@ func rewriteValueAMD64_OpAMD64ROLLconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -25017,9 +24612,7 @@ func rewriteValueAMD64_OpAMD64ROLQconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -25102,9 +24695,7 @@ func rewriteValueAMD64_OpAMD64ROLWconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -25369,9 +24960,7 @@ func rewriteValueAMD64_OpAMD64SARBconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (SARBconst [c] (MOVQconst [d])) @@ -25593,9 +25182,7 @@ func rewriteValueAMD64_OpAMD64SARLconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (SARLconst [c] (MOVQconst [d])) @@ -25817,9 +25404,7 @@ func rewriteValueAMD64_OpAMD64SARQconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (SARQconst [c] (MOVQconst [d])) @@ -25876,9 +25461,7 @@ func rewriteValueAMD64_OpAMD64SARWconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (SARWconst [c] (MOVQconst [d])) @@ -30170,9 +29753,7 @@ func rewriteValueAMD64_OpAMD64SHLLconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (SHLLconst [d] (MOVLconst [c])) @@ -30406,9 +29987,7 @@ func rewriteValueAMD64_OpAMD64SHLQconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (SHLQconst [d] (MOVQconst [c])) @@ -30515,9 +30094,7 @@ func rewriteValueAMD64_OpAMD64SHRBconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -30739,9 +30316,7 @@ func rewriteValueAMD64_OpAMD64SHRLconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -30963,9 +30538,7 @@ func rewriteValueAMD64_OpAMD64SHRQconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -31048,9 +30621,7 @@ func rewriteValueAMD64_OpAMD64SHRWconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -31133,9 +30704,7 @@ func rewriteValueAMD64_OpAMD64SUBLconst(v *Value) bool { if !(int32(c) == 0) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (SUBLconst [c] x) @@ -31380,9 +30949,7 @@ func rewriteValueAMD64_OpAMD64SUBQconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (SUBQconst [c] x) @@ -31797,8 +31364,7 @@ func rewriteValueAMD64_OpAMD64TESTB(v *Value) bool { } b = l.Block v0 := b.NewValue0(l.Pos, OpAMD64CMPBconstload, types.TypeFlags) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = makeValAndOff(0, off) v0.Aux = sym v0.AddArg2(ptr, mem) @@ -31866,8 +31432,7 @@ func rewriteValueAMD64_OpAMD64TESTL(v *Value) bool { } b = l.Block v0 := b.NewValue0(l.Pos, OpAMD64CMPLconstload, types.TypeFlags) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = makeValAndOff(0, off) v0.Aux = sym v0.AddArg2(ptr, mem) @@ -31949,8 +31514,7 @@ func rewriteValueAMD64_OpAMD64TESTQ(v *Value) bool { } b = l.Block v0 := b.NewValue0(l.Pos, OpAMD64CMPQconstload, types.TypeFlags) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = makeValAndOff(0, off) v0.Aux = sym v0.AddArg2(ptr, mem) @@ -32028,8 +31592,7 @@ func rewriteValueAMD64_OpAMD64TESTW(v *Value) bool { } b = l.Block v0 := b.NewValue0(l.Pos, OpAMD64CMPWconstload, types.TypeFlags) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = makeValAndOff(0, off) v0.Aux = sym v0.AddArg2(ptr, mem) @@ -32549,9 +32112,7 @@ func rewriteValueAMD64_OpAMD64XORLconst(v *Value) bool { if !(int32(c) == 0) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (XORLconst [c] (MOVLconst [d])) @@ -32916,9 +32477,7 @@ func rewriteValueAMD64_OpAMD64XORQconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (XORQconst [c] (MOVQconst [d])) @@ -35955,9 +35514,7 @@ func rewriteValueAMD64_OpMove(v *Value) bool { break } mem := v_2 - v.reset(OpCopy) - v.Type = mem.Type - v.AddArg(mem) + v.copyOf(mem) return true } // match: (Move [1] dst src mem) @@ -38272,9 +37829,7 @@ func rewriteValueAMD64_OpSelect1(v *Value) bool { break } x := v_0_0_0.Args[0] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (Select1 (AddTupleFirst32 _ tuple)) @@ -38438,9 +37993,7 @@ func rewriteValueAMD64_OpZero(v *Value) bool { break } mem := v_1 - v.reset(OpCopy) - v.Type = mem.Type - v.AddArg(mem) + v.copyOf(mem) return true } // match: (Zero [1] destptr mem) diff --git a/src/cmd/compile/internal/ssa/rewriteARM.go b/src/cmd/compile/internal/ssa/rewriteARM.go index 5be3e34dcb..bf1cf2d183 100644 --- a/src/cmd/compile/internal/ssa/rewriteARM.go +++ b/src/cmd/compile/internal/ssa/rewriteARM.go @@ -1938,9 +1938,7 @@ func rewriteValueARM_OpARMADDconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (ADDconst [c] x) @@ -2440,9 +2438,7 @@ func rewriteValueARM_OpARMAND(v *Value) bool { if x != v_1 { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (AND x (MVN y)) @@ -2534,9 +2530,7 @@ func rewriteValueARM_OpARMANDconst(v *Value) bool { if !(int32(c) == -1) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (ANDconst [c] x) @@ -2644,9 +2638,7 @@ func rewriteValueARM_OpARMANDshiftLL(v *Value) bool { if x != y.Args[0] || !(c == d) { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } return false @@ -2737,9 +2729,7 @@ func rewriteValueARM_OpARMANDshiftRA(v *Value) bool { if x != y.Args[0] || !(c == d) { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } return false @@ -2830,9 +2820,7 @@ func rewriteValueARM_OpARMANDshiftRL(v *Value) bool { if x != y.Args[0] || !(c == d) { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } return false @@ -3025,9 +3013,7 @@ func rewriteValueARM_OpARMBICconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (BICconst [c] _) @@ -3723,9 +3709,7 @@ func rewriteValueARM_OpARMCMOVWHSconst(v *Value) bool { if v_1.Op != OpARMFlagLT_ULT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVWHSconst _ (FlagLT_UGT) [c]) @@ -3746,9 +3730,7 @@ func rewriteValueARM_OpARMCMOVWHSconst(v *Value) bool { if v_1.Op != OpARMFlagGT_ULT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVWHSconst _ (FlagGT_UGT) [c]) @@ -3810,9 +3792,7 @@ func rewriteValueARM_OpARMCMOVWLSconst(v *Value) bool { if v_1.Op != OpARMFlagLT_UGT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVWLSconst _ (FlagGT_ULT) [c]) @@ -3833,9 +3813,7 @@ func rewriteValueARM_OpARMCMOVWLSconst(v *Value) bool { if v_1.Op != OpARMFlagGT_UGT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CMOVWLSconst x (InvertFlags flags) [c]) @@ -5779,9 +5757,7 @@ func rewriteValueARM_OpARMMOVDload(v *Value) bool { if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -5928,9 +5904,7 @@ func rewriteValueARM_OpARMMOVFload(v *Value) bool { if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -6747,9 +6721,7 @@ func rewriteValueARM_OpARMMOVWload(v *Value) bool { if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVWload [0] {sym} (ADD ptr idx) mem) @@ -6879,9 +6851,7 @@ func rewriteValueARM_OpARMMOVWloadidx(v *Value) bool { if !(isSamePtr(ptr, ptr2)) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVWloadidx ptr (MOVWconst [c]) mem) @@ -7028,9 +6998,7 @@ func rewriteValueARM_OpARMMOVWloadshiftLL(v *Value) bool { if !(c == d && isSamePtr(ptr, ptr2)) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVWloadshiftLL ptr (MOVWconst [c]) [d] mem) @@ -7074,9 +7042,7 @@ func rewriteValueARM_OpARMMOVWloadshiftRA(v *Value) bool { if !(c == d && isSamePtr(ptr, ptr2)) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVWloadshiftRA ptr (MOVWconst [c]) [d] mem) @@ -7120,9 +7086,7 @@ func rewriteValueARM_OpARMMOVWloadshiftRL(v *Value) bool { if !(c == d && isSamePtr(ptr, ptr2)) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVWloadshiftRL ptr (MOVWconst [c]) [d] mem) @@ -7575,9 +7539,7 @@ func rewriteValueARM_OpARMMUL(v *Value) bool { if v_1.Op != OpARMMOVWconst || v_1.AuxInt != 1 { continue } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } break @@ -7783,9 +7745,7 @@ func rewriteValueARM_OpARMMULA(v *Value) bool { break } a := v_2 - v.reset(OpCopy) - v.Type = a.Type - v.AddArg(a) + v.copyOf(a) return true } // match: (MULA x (MOVWconst [1]) a) @@ -7976,9 +7936,7 @@ func rewriteValueARM_OpARMMULA(v *Value) bool { break } a := v_2 - v.reset(OpCopy) - v.Type = a.Type - v.AddArg(a) + v.copyOf(a) return true } // match: (MULA (MOVWconst [1]) x a) @@ -8241,9 +8199,7 @@ func rewriteValueARM_OpARMMULS(v *Value) bool { break } a := v_2 - v.reset(OpCopy) - v.Type = a.Type - v.AddArg(a) + v.copyOf(a) return true } // match: (MULS x (MOVWconst [1]) a) @@ -8434,9 +8390,7 @@ func rewriteValueARM_OpARMMULS(v *Value) bool { break } a := v_2 - v.reset(OpCopy) - v.Type = a.Type - v.AddArg(a) + v.copyOf(a) return true } // match: (MULS (MOVWconst [1]) x a) @@ -9084,9 +9038,7 @@ func rewriteValueARM_OpARMOR(v *Value) bool { if x != v_1 { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -9100,9 +9052,7 @@ func rewriteValueARM_OpARMORconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (ORconst [c] _) @@ -9244,9 +9194,7 @@ func rewriteValueARM_OpARMORshiftLL(v *Value) bool { if x != y.Args[0] || !(c == d) { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } return false @@ -9337,9 +9285,7 @@ func rewriteValueARM_OpARMORshiftRA(v *Value) bool { if x != y.Args[0] || !(c == d) { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } return false @@ -9446,9 +9392,7 @@ func rewriteValueARM_OpARMORshiftRL(v *Value) bool { if x != y.Args[0] || !(c == d) { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } return false @@ -11952,9 +11896,7 @@ func rewriteValueARM_OpARMSUBconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (SUBconst [c] x) @@ -13253,9 +13195,7 @@ func rewriteValueARM_OpARMXORconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (XORconst [c] (MOVWconst [d])) @@ -15168,9 +15108,7 @@ func rewriteValueARM_OpMove(v *Value) bool { break } mem := v_2 - v.reset(OpCopy) - v.Type = mem.Type - v.AddArg(mem) + v.copyOf(mem) return true } // match: (Move [1] dst src mem) @@ -16402,9 +16340,7 @@ func rewriteValueARM_OpSelect0(v *Value) bool { if v_0_1.Op != OpARMMOVWconst || v_0_1.AuxInt != 1 { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (Select0 (CALLudiv x (MOVWconst [c]))) @@ -16637,9 +16573,7 @@ func rewriteValueARM_OpZero(v *Value) bool { break } mem := v_1 - v.reset(OpCopy) - v.Type = mem.Type - v.AddArg(mem) + v.copyOf(mem) return true } // match: (Zero [1] ptr mem) diff --git a/src/cmd/compile/internal/ssa/rewriteARM64.go b/src/cmd/compile/internal/ssa/rewriteARM64.go index dd3a8b922b..a6b13497ac 100644 --- a/src/cmd/compile/internal/ssa/rewriteARM64.go +++ b/src/cmd/compile/internal/ssa/rewriteARM64.go @@ -1613,9 +1613,7 @@ func rewriteValueARM64_OpARM64ADDconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (ADDconst [c] (MOVDconst [d])) @@ -1915,9 +1913,7 @@ func rewriteValueARM64_OpARM64AND(v *Value) bool { if x != v_1 { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (AND x (MVN y)) @@ -2022,9 +2018,7 @@ func rewriteValueARM64_OpARM64ANDconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (ANDconst [c] (MOVDconst [d])) @@ -2179,9 +2173,7 @@ func rewriteValueARM64_OpARM64ANDshiftLL(v *Value) bool { if x != y.Args[0] || !(c == d) { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } return false @@ -2235,9 +2227,7 @@ func rewriteValueARM64_OpARM64ANDshiftRA(v *Value) bool { if x != y.Args[0] || !(c == d) { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } return false @@ -2291,9 +2281,7 @@ func rewriteValueARM64_OpARM64ANDshiftRL(v *Value) bool { if x != y.Args[0] || !(c == d) { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } return false @@ -3504,9 +3492,7 @@ func rewriteValueARM64_OpARM64CSEL(v *Value) bool { if !(ccARM64Eval(cc, flag) > 0) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CSEL {cc} _ y flag) @@ -3519,9 +3505,7 @@ func rewriteValueARM64_OpARM64CSEL(v *Value) bool { if !(ccARM64Eval(cc, flag) < 0) { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (CSEL {cc} x y (CMPWconst [0] boolval)) @@ -3591,9 +3575,7 @@ func rewriteValueARM64_OpARM64CSEL0(v *Value) bool { if !(ccARM64Eval(cc, flag) > 0) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (CSEL0 {cc} _ flag) @@ -4094,8 +4076,7 @@ func rewriteValueARM64_OpARM64FMOVDfpgp(v *Value) bool { sym := v_0.Aux b = b.Func.Entry v0 := b.NewValue0(v.Pos, OpArg, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = off v0.Aux = sym return true @@ -4116,8 +4097,7 @@ func rewriteValueARM64_OpARM64FMOVDgpfp(v *Value) bool { sym := v_0.Aux b = b.Func.Entry v0 := b.NewValue0(v.Pos, OpArg, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = off v0.Aux = sym return true @@ -5474,9 +5454,7 @@ func rewriteValueARM64_OpARM64MADD(v *Value) bool { if v_2.Op != OpARM64MOVDconst || v_2.AuxInt != 0 { break } - v.reset(OpCopy) - v.Type = a.Type - v.AddArg(a) + v.copyOf(a) return true } // match: (MADD a x (MOVDconst [1])) @@ -5652,9 +5630,7 @@ func rewriteValueARM64_OpARM64MADD(v *Value) bool { if v_1.Op != OpARM64MOVDconst || v_1.AuxInt != 0 { break } - v.reset(OpCopy) - v.Type = a.Type - v.AddArg(a) + v.copyOf(a) return true } // match: (MADD a (MOVDconst [1]) x) @@ -5880,9 +5856,7 @@ func rewriteValueARM64_OpARM64MADDW(v *Value) bool { if !(int32(c) == 0) { break } - v.reset(OpCopy) - v.Type = a.Type - v.AddArg(a) + v.copyOf(a) return true } // match: (MADDW a x (MOVDconst [c])) @@ -6073,9 +6047,7 @@ func rewriteValueARM64_OpARM64MADDW(v *Value) bool { if !(int32(c) == 0) { break } - v.reset(OpCopy) - v.Type = a.Type - v.AddArg(a) + v.copyOf(a) return true } // match: (MADDW a (MOVDconst [c]) x) @@ -6284,9 +6256,7 @@ func rewriteValueARM64_OpARM64MNEG(v *Value) bool { if v_1.Op != OpARM64MOVDconst || v_1.AuxInt != -1 { continue } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } break @@ -6521,9 +6491,7 @@ func rewriteValueARM64_OpARM64MNEGW(v *Value) bool { if !(int32(c) == -1) { continue } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } break @@ -13868,9 +13836,7 @@ func rewriteValueARM64_OpARM64MSUB(v *Value) bool { if v_2.Op != OpARM64MOVDconst || v_2.AuxInt != 0 { break } - v.reset(OpCopy) - v.Type = a.Type - v.AddArg(a) + v.copyOf(a) return true } // match: (MSUB a x (MOVDconst [1])) @@ -14046,9 +14012,7 @@ func rewriteValueARM64_OpARM64MSUB(v *Value) bool { if v_1.Op != OpARM64MOVDconst || v_1.AuxInt != 0 { break } - v.reset(OpCopy) - v.Type = a.Type - v.AddArg(a) + v.copyOf(a) return true } // match: (MSUB a (MOVDconst [1]) x) @@ -14274,9 +14238,7 @@ func rewriteValueARM64_OpARM64MSUBW(v *Value) bool { if !(int32(c) == 0) { break } - v.reset(OpCopy) - v.Type = a.Type - v.AddArg(a) + v.copyOf(a) return true } // match: (MSUBW a x (MOVDconst [c])) @@ -14467,9 +14429,7 @@ func rewriteValueARM64_OpARM64MSUBW(v *Value) bool { if !(int32(c) == 0) { break } - v.reset(OpCopy) - v.Type = a.Type - v.AddArg(a) + v.copyOf(a) return true } // match: (MSUBW a (MOVDconst [c]) x) @@ -14720,9 +14680,7 @@ func rewriteValueARM64_OpARM64MUL(v *Value) bool { if v_1.Op != OpARM64MOVDconst || v_1.AuxInt != 1 { continue } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } break @@ -14972,9 +14930,7 @@ func rewriteValueARM64_OpARM64MULW(v *Value) bool { if !(int32(c) == 1) { continue } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } break @@ -15506,9 +15462,7 @@ func rewriteValueARM64_OpARM64OR(v *Value) bool { if x != v_1 { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (OR x (MVN y)) @@ -16005,8 +15959,7 @@ func rewriteValueARM64_OpARM64OR(v *Value) bool { } b = mergePoint(b, x0, x1, x2, x3) v0 := b.NewValue0(x3.Pos, OpARM64MOVWUload, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.Aux = s v1 := b.NewValue0(x3.Pos, OpOffPtr, p.Type) v1.AuxInt = i0 @@ -16097,8 +16050,7 @@ func rewriteValueARM64_OpARM64OR(v *Value) bool { } b = mergePoint(b, x0, x1, x2, x3) v0 := b.NewValue0(x2.Pos, OpARM64MOVWUloadidx, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AddArg3(ptr0, idx0, mem) return true } @@ -16186,8 +16138,7 @@ func rewriteValueARM64_OpARM64OR(v *Value) bool { } b = mergePoint(b, x0, x1, x2, x3) v0 := b.NewValue0(v.Pos, OpARM64MOVWUloadidx, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AddArg3(ptr, idx, mem) return true } @@ -16359,8 +16310,7 @@ func rewriteValueARM64_OpARM64OR(v *Value) bool { } b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) v0 := b.NewValue0(x7.Pos, OpARM64MOVDload, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.Aux = s v1 := b.NewValue0(x7.Pos, OpOffPtr, p.Type) v1.AuxInt = i0 @@ -16519,8 +16469,7 @@ func rewriteValueARM64_OpARM64OR(v *Value) bool { } b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) v0 := b.NewValue0(x6.Pos, OpARM64MOVDloadidx, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AddArg3(ptr0, idx0, mem) return true } @@ -16692,8 +16641,7 @@ func rewriteValueARM64_OpARM64OR(v *Value) bool { } b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) v0 := b.NewValue0(v.Pos, OpARM64MOVDloadidx, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AddArg3(ptr, idx, mem) return true } @@ -16781,8 +16729,7 @@ func rewriteValueARM64_OpARM64OR(v *Value) bool { } b = mergePoint(b, x0, x1, x2, x3) v0 := b.NewValue0(x3.Pos, OpARM64REVW, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(x3.Pos, OpARM64MOVWUload, t) v1.Aux = s v2 := b.NewValue0(x3.Pos, OpOffPtr, p.Type) @@ -16875,8 +16822,7 @@ func rewriteValueARM64_OpARM64OR(v *Value) bool { } b = mergePoint(b, x0, x1, x2, x3) v0 := b.NewValue0(x3.Pos, OpARM64REVW, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(x3.Pos, OpARM64MOVWUloadidx, t) v1.AddArg3(ptr0, idx0, mem) v0.AddArg(v1) @@ -16966,8 +16912,7 @@ func rewriteValueARM64_OpARM64OR(v *Value) bool { } b = mergePoint(b, x0, x1, x2, x3) v0 := b.NewValue0(v.Pos, OpARM64REVW, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(v.Pos, OpARM64MOVWUloadidx, t) v1.AddArg3(ptr, idx, mem) v0.AddArg(v1) @@ -17141,8 +17086,7 @@ func rewriteValueARM64_OpARM64OR(v *Value) bool { } b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) v0 := b.NewValue0(x7.Pos, OpARM64REV, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(x7.Pos, OpARM64MOVDload, t) v1.Aux = s v2 := b.NewValue0(x7.Pos, OpOffPtr, p.Type) @@ -17303,8 +17247,7 @@ func rewriteValueARM64_OpARM64OR(v *Value) bool { } b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) v0 := b.NewValue0(x7.Pos, OpARM64REV, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(x7.Pos, OpARM64MOVDloadidx, t) v1.AddArg3(ptr0, idx0, mem) v0.AddArg(v1) @@ -17478,8 +17421,7 @@ func rewriteValueARM64_OpARM64OR(v *Value) bool { } b = mergePoint(b, x0, x1, x2, x3, x4, x5, x6, x7) v0 := b.NewValue0(v.Pos, OpARM64REV, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(v.Pos, OpARM64MOVDloadidx, t) v1.AddArg3(ptr, idx, mem) v0.AddArg(v1) @@ -17692,9 +17634,7 @@ func rewriteValueARM64_OpARM64ORconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (ORconst [-1] _) @@ -17803,9 +17743,7 @@ func rewriteValueARM64_OpARM64ORshiftLL(v *Value) bool { if x != y.Args[0] || !(c == d) { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: ( ORshiftLL [c] (SRLconst x [64-c]) x) @@ -17951,8 +17889,7 @@ func rewriteValueARM64_OpARM64ORshiftLL(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(x1.Pos, OpARM64MOVHUload, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.Aux = s v1 := b.NewValue0(x1.Pos, OpOffPtr, p.Type) v1.AuxInt = i0 @@ -18004,8 +17941,7 @@ func rewriteValueARM64_OpARM64ORshiftLL(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(x1.Pos, OpARM64MOVHUloadidx, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AddArg3(ptr0, idx0, mem) return true } @@ -18048,8 +17984,7 @@ func rewriteValueARM64_OpARM64ORshiftLL(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(v.Pos, OpARM64MOVHUloadidx, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AddArg3(ptr, idx, mem) return true } @@ -18108,8 +18043,7 @@ func rewriteValueARM64_OpARM64ORshiftLL(v *Value) bool { } b = mergePoint(b, x0, x1, x2) v0 := b.NewValue0(x2.Pos, OpARM64MOVWUload, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.Aux = s v1 := b.NewValue0(x2.Pos, OpOffPtr, p.Type) v1.AuxInt = i0 @@ -18175,8 +18109,7 @@ func rewriteValueARM64_OpARM64ORshiftLL(v *Value) bool { } b = mergePoint(b, x0, x1, x2) v0 := b.NewValue0(x2.Pos, OpARM64MOVWUloadidx, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AddArg3(ptr0, idx0, mem) return true } @@ -18236,8 +18169,7 @@ func rewriteValueARM64_OpARM64ORshiftLL(v *Value) bool { } b = mergePoint(b, x0, x1, x2) v0 := b.NewValue0(v.Pos, OpARM64MOVWUloadidx, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AddArg3(ptr, idx, mem) return true } @@ -18295,8 +18227,7 @@ func rewriteValueARM64_OpARM64ORshiftLL(v *Value) bool { } b = mergePoint(b, x0, x1, x2) v0 := b.NewValue0(x2.Pos, OpARM64MOVWUloadidx, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(x2.Pos, OpARM64SLLconst, idx0.Type) v1.AuxInt = 1 v1.AddArg(idx0) @@ -18400,8 +18331,7 @@ func rewriteValueARM64_OpARM64ORshiftLL(v *Value) bool { } b = mergePoint(b, x0, x1, x2, x3, x4) v0 := b.NewValue0(x4.Pos, OpARM64MOVDload, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.Aux = s v1 := b.NewValue0(x4.Pos, OpOffPtr, p.Type) v1.AuxInt = i0 @@ -18501,8 +18431,7 @@ func rewriteValueARM64_OpARM64ORshiftLL(v *Value) bool { } b = mergePoint(b, x0, x1, x2, x3, x4) v0 := b.NewValue0(x4.Pos, OpARM64MOVDloadidx, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AddArg3(ptr0, idx0, mem) return true } @@ -18596,8 +18525,7 @@ func rewriteValueARM64_OpARM64ORshiftLL(v *Value) bool { } b = mergePoint(b, x0, x1, x2, x3, x4) v0 := b.NewValue0(x4.Pos, OpARM64MOVDloadidx, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(x4.Pos, OpARM64SLLconst, idx0.Type) v1.AuxInt = 2 v1.AddArg(idx0) @@ -18700,8 +18628,7 @@ func rewriteValueARM64_OpARM64ORshiftLL(v *Value) bool { } b = mergePoint(b, x0, x1, x2, x3, x4) v0 := b.NewValue0(v.Pos, OpARM64MOVDloadidx, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AddArg3(ptr, idx, mem) return true } @@ -18743,8 +18670,7 @@ func rewriteValueARM64_OpARM64ORshiftLL(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(x1.Pos, OpARM64REV16W, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(x1.Pos, OpARM64MOVHUload, t) v1.AuxInt = i0 v1.Aux = s @@ -18796,8 +18722,7 @@ func rewriteValueARM64_OpARM64ORshiftLL(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(x0.Pos, OpARM64REV16W, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(x0.Pos, OpARM64MOVHUloadidx, t) v1.AddArg3(ptr0, idx0, mem) v0.AddArg(v1) @@ -18842,8 +18767,7 @@ func rewriteValueARM64_OpARM64ORshiftLL(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(v.Pos, OpARM64REV16W, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(v.Pos, OpARM64MOVHUloadidx, t) v1.AddArg3(ptr, idx, mem) v0.AddArg(v1) @@ -18908,8 +18832,7 @@ func rewriteValueARM64_OpARM64ORshiftLL(v *Value) bool { } b = mergePoint(b, x0, x1, x2) v0 := b.NewValue0(x2.Pos, OpARM64REVW, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(x2.Pos, OpARM64MOVWUload, t) v1.Aux = s v2 := b.NewValue0(x2.Pos, OpOffPtr, p.Type) @@ -18981,8 +18904,7 @@ func rewriteValueARM64_OpARM64ORshiftLL(v *Value) bool { } b = mergePoint(b, x0, x1, x2) v0 := b.NewValue0(x1.Pos, OpARM64REVW, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(x1.Pos, OpARM64MOVWUloadidx, t) v1.AddArg3(ptr0, idx0, mem) v0.AddArg(v1) @@ -19048,8 +18970,7 @@ func rewriteValueARM64_OpARM64ORshiftLL(v *Value) bool { } b = mergePoint(b, x0, x1, x2) v0 := b.NewValue0(v.Pos, OpARM64REVW, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(v.Pos, OpARM64MOVWUloadidx, t) v1.AddArg3(ptr, idx, mem) v0.AddArg(v1) @@ -19156,8 +19077,7 @@ func rewriteValueARM64_OpARM64ORshiftLL(v *Value) bool { } b = mergePoint(b, x0, x1, x2, x3, x4) v0 := b.NewValue0(x4.Pos, OpARM64REV, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(x4.Pos, OpARM64MOVDload, t) v1.Aux = s v2 := b.NewValue0(x4.Pos, OpOffPtr, p.Type) @@ -19263,8 +19183,7 @@ func rewriteValueARM64_OpARM64ORshiftLL(v *Value) bool { } b = mergePoint(b, x0, x1, x2, x3, x4) v0 := b.NewValue0(x3.Pos, OpARM64REV, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(x3.Pos, OpARM64MOVDloadidx, t) v1.AddArg3(ptr0, idx0, mem) v0.AddArg(v1) @@ -19372,8 +19291,7 @@ func rewriteValueARM64_OpARM64ORshiftLL(v *Value) bool { } b = mergePoint(b, x0, x1, x2, x3, x4) v0 := b.NewValue0(v.Pos, OpARM64REV, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(v.Pos, OpARM64MOVDloadidx, t) v1.AddArg3(ptr, idx, mem) v0.AddArg(v1) @@ -19430,9 +19348,7 @@ func rewriteValueARM64_OpARM64ORshiftRA(v *Value) bool { if x != y.Args[0] || !(c == d) { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } return false @@ -19486,9 +19402,7 @@ func rewriteValueARM64_OpARM64ORshiftRL(v *Value) bool { if x != y.Args[0] || !(c == d) { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: ( ORshiftRL [c] (SLLconst x [64-c]) x) @@ -20455,9 +20369,7 @@ func rewriteValueARM64_OpARM64SUBconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (SUBconst [c] (MOVDconst [d])) @@ -21035,9 +20947,7 @@ func rewriteValueARM64_OpARM64UDIV(v *Value) bool { if v_1.Op != OpARM64MOVDconst || v_1.AuxInt != 1 { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (UDIV x (MOVDconst [c])) @@ -21089,9 +20999,7 @@ func rewriteValueARM64_OpARM64UDIVW(v *Value) bool { if !(uint32(c) == 1) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (UDIVW x (MOVDconst [c])) @@ -21666,9 +21574,7 @@ func rewriteValueARM64_OpARM64XORconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (XORconst [-1] x) @@ -23648,9 +23554,7 @@ func rewriteValueARM64_OpMove(v *Value) bool { break } mem := v_2 - v.reset(OpCopy) - v.Type = mem.Type - v.AddArg(mem) + v.copyOf(mem) return true } // match: (Move [1] dst src mem) @@ -25446,9 +25350,7 @@ func rewriteValueARM64_OpZero(v *Value) bool { break } mem := v_1 - v.reset(OpCopy) - v.Type = mem.Type - v.AddArg(mem) + v.copyOf(mem) return true } // match: (Zero [1] ptr mem) diff --git a/src/cmd/compile/internal/ssa/rewriteMIPS.go b/src/cmd/compile/internal/ssa/rewriteMIPS.go index 58dc71bd04..e036885a16 100644 --- a/src/cmd/compile/internal/ssa/rewriteMIPS.go +++ b/src/cmd/compile/internal/ssa/rewriteMIPS.go @@ -2094,9 +2094,7 @@ func rewriteValueMIPS_OpMIPSADDconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (ADDconst [c] (MOVWconst [d])) @@ -2168,9 +2166,7 @@ func rewriteValueMIPS_OpMIPSAND(v *Value) bool { if x != v_1 { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (AND (SGTUconst [1] x) (SGTUconst [1] y)) @@ -2215,9 +2211,7 @@ func rewriteValueMIPS_OpMIPSANDconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (ANDconst [c] (MOVWconst [d])) @@ -2259,9 +2253,7 @@ func rewriteValueMIPS_OpMIPSCMOVZ(v *Value) bool { if v_2.Op != OpMIPSMOVWconst || v_2.AuxInt != 0 { break } - v.reset(OpCopy) - v.Type = f.Type - v.AddArg(f) + v.copyOf(f) return true } // match: (CMOVZ a _ (MOVWconst [c])) @@ -2276,9 +2268,7 @@ func rewriteValueMIPS_OpMIPSCMOVZ(v *Value) bool { if !(c != 0) { break } - v.reset(OpCopy) - v.Type = a.Type - v.AddArg(a) + v.copyOf(a) return true } // match: (CMOVZ a (MOVWconst [0]) c) @@ -2320,9 +2310,7 @@ func rewriteValueMIPS_OpMIPSCMOVZzero(v *Value) bool { if !(c != 0) { break } - v.reset(OpCopy) - v.Type = a.Type - v.AddArg(a) + v.copyOf(a) return true } return false @@ -2484,8 +2472,7 @@ func rewriteValueMIPS_OpMIPSMOVBUreg(v *Value) bool { } b = x.Block v0 := b.NewValue0(x.Pos, OpMIPSMOVBUload, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = off v0.Aux = sym v0.AddArg2(ptr, mem) @@ -2632,8 +2619,7 @@ func rewriteValueMIPS_OpMIPSMOVBreg(v *Value) bool { } b = x.Block v0 := b.NewValue0(x.Pos, OpMIPSMOVBload, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = off v0.Aux = sym v0.AddArg2(ptr, mem) @@ -2936,9 +2922,7 @@ func rewriteValueMIPS_OpMIPSMOVDload(v *Value) bool { if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -3060,9 +3044,7 @@ func rewriteValueMIPS_OpMIPSMOVFload(v *Value) bool { if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -3257,8 +3239,7 @@ func rewriteValueMIPS_OpMIPSMOVHUreg(v *Value) bool { } b = x.Block v0 := b.NewValue0(x.Pos, OpMIPSMOVHUload, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = off v0.Aux = sym v0.AddArg2(ptr, mem) @@ -3451,8 +3432,7 @@ func rewriteValueMIPS_OpMIPSMOVHreg(v *Value) bool { } b = x.Block v0 := b.NewValue0(x.Pos, OpMIPSMOVHload, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = off v0.Aux = sym v0.AddArg2(ptr, mem) @@ -3721,9 +3701,7 @@ func rewriteValueMIPS_OpMIPSMOVWload(v *Value) bool { if !(sym == sym2 && off == off2 && isSamePtr(ptr, ptr2)) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -3913,9 +3891,7 @@ func rewriteValueMIPS_OpMIPSMUL(v *Value) bool { continue } x := v_1 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } break @@ -4053,9 +4029,7 @@ func rewriteValueMIPS_OpMIPSOR(v *Value) bool { if x != v_1 { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (OR (SGTUzero x) (SGTUzero y)) @@ -4089,9 +4063,7 @@ func rewriteValueMIPS_OpMIPSORconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (ORconst [-1] _) @@ -4712,9 +4684,7 @@ func rewriteValueMIPS_OpMIPSSUBconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (SUBconst [c] (MOVWconst [d])) @@ -4800,9 +4770,7 @@ func rewriteValueMIPS_OpMIPSXORconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (XORconst [-1] x) @@ -4977,9 +4945,7 @@ func rewriteValueMIPS_OpMove(v *Value) bool { break } mem := v_2 - v.reset(OpCopy) - v.Type = mem.Type - v.AddArg(mem) + v.copyOf(mem) return true } // match: (Move [1] dst src mem) @@ -6699,9 +6665,7 @@ func rewriteValueMIPS_OpSelect1(v *Value) bool { continue } x := v_0_1 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } break @@ -6962,9 +6926,7 @@ func rewriteValueMIPS_OpZero(v *Value) bool { break } mem := v_1 - v.reset(OpCopy) - v.Type = mem.Type - v.AddArg(mem) + v.copyOf(mem) return true } // match: (Zero [1] ptr mem) diff --git a/src/cmd/compile/internal/ssa/rewriteMIPS64.go b/src/cmd/compile/internal/ssa/rewriteMIPS64.go index 346fa6f28e..4413c535d6 100644 --- a/src/cmd/compile/internal/ssa/rewriteMIPS64.go +++ b/src/cmd/compile/internal/ssa/rewriteMIPS64.go @@ -2327,9 +2327,7 @@ func rewriteValueMIPS64_OpMIPS64ADDVconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (ADDVconst [c] (MOVVconst [d])) @@ -2412,9 +2410,7 @@ func rewriteValueMIPS64_OpMIPS64AND(v *Value) bool { if x != v_1 { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -2438,9 +2434,7 @@ func rewriteValueMIPS64_OpMIPS64ANDconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (ANDconst [c] (MOVVconst [d])) @@ -4290,9 +4284,7 @@ func rewriteValueMIPS64_OpMIPS64OR(v *Value) bool { if x != v_1 { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -4306,9 +4298,7 @@ func rewriteValueMIPS64_OpMIPS64ORconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (ORconst [-1] _) @@ -4867,9 +4857,7 @@ func rewriteValueMIPS64_OpMIPS64SUBVconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (SUBVconst [c] (MOVVconst [d])) @@ -4967,9 +4955,7 @@ func rewriteValueMIPS64_OpMIPS64XORconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (XORconst [-1] x) @@ -5190,9 +5176,7 @@ func rewriteValueMIPS64_OpMove(v *Value) bool { break } mem := v_2 - v.reset(OpCopy) - v.Type = mem.Type - v.AddArg(mem) + v.copyOf(mem) return true } // match: (Move [1] dst src mem) @@ -7104,9 +7088,7 @@ func rewriteValueMIPS64_OpSelect1(v *Value) bool { if v_0_1.Op != OpMIPS64MOVVconst || v_0_1.AuxInt != 1 { continue } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } break @@ -7149,9 +7131,7 @@ func rewriteValueMIPS64_OpSelect1(v *Value) bool { if v_0_1.Op != OpMIPS64MOVVconst || v_0_1.AuxInt != 1 { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (Select1 (DIVVU x (MOVVconst [c]))) @@ -7369,9 +7349,7 @@ func rewriteValueMIPS64_OpZero(v *Value) bool { break } mem := v_1 - v.reset(OpCopy) - v.Type = mem.Type - v.AddArg(mem) + v.copyOf(mem) return true } // match: (Zero [1] ptr mem) diff --git a/src/cmd/compile/internal/ssa/rewritePPC64.go b/src/cmd/compile/internal/ssa/rewritePPC64.go index c7b4f44920..279fed4edb 100644 --- a/src/cmd/compile/internal/ssa/rewritePPC64.go +++ b/src/cmd/compile/internal/ssa/rewritePPC64.go @@ -3424,9 +3424,7 @@ func rewriteValuePPC64_OpMove(v *Value) bool { break } mem := v_2 - v.reset(OpCopy) - v.Type = mem.Type - v.AddArg(mem) + v.copyOf(mem) return true } // match: (Move [1] dst src mem) @@ -3999,9 +3997,7 @@ func rewriteValuePPC64_OpPPC64ADDconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (ADDconst [c] (MOVDaddr [d] {sym} x)) @@ -4094,9 +4090,7 @@ func rewriteValuePPC64_OpPPC64AND(v *Value) bool { if y.Op != OpPPC64MOVWZreg || !(c&0xFFFFFFFF == 0xFFFFFFFF) { continue } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } break @@ -4164,9 +4158,7 @@ func rewriteValuePPC64_OpPPC64ANDconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (ANDconst [0] _) @@ -4188,9 +4180,7 @@ func rewriteValuePPC64_OpPPC64ANDconst(v *Value) bool { if y.Op != OpPPC64MOVBZreg || !(c&0xFF == 0xFF) { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (ANDconst [0xFF] y:(MOVBreg _)) @@ -4203,9 +4193,7 @@ func rewriteValuePPC64_OpPPC64ANDconst(v *Value) bool { if y.Op != OpPPC64MOVBreg { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (ANDconst [c] y:(MOVHZreg _)) @@ -4217,9 +4205,7 @@ func rewriteValuePPC64_OpPPC64ANDconst(v *Value) bool { if y.Op != OpPPC64MOVHZreg || !(c&0xFFFF == 0xFFFF) { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (ANDconst [0xFFFF] y:(MOVHreg _)) @@ -4232,9 +4218,7 @@ func rewriteValuePPC64_OpPPC64ANDconst(v *Value) bool { if y.Op != OpPPC64MOVHreg { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (ANDconst [c] (MOVBreg x)) @@ -5464,9 +5448,7 @@ func rewriteValuePPC64_OpPPC64ISEL(v *Value) bool { if v_2.Op != OpPPC64FlagEQ { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (ISEL [2] _ y (FlagLT)) @@ -5479,9 +5461,7 @@ func rewriteValuePPC64_OpPPC64ISEL(v *Value) bool { if v_2.Op != OpPPC64FlagLT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (ISEL [2] _ y (FlagGT)) @@ -5494,9 +5474,7 @@ func rewriteValuePPC64_OpPPC64ISEL(v *Value) bool { if v_2.Op != OpPPC64FlagGT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (ISEL [6] _ y (FlagEQ)) @@ -5509,9 +5487,7 @@ func rewriteValuePPC64_OpPPC64ISEL(v *Value) bool { if v_2.Op != OpPPC64FlagEQ { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (ISEL [6] x _ (FlagLT)) @@ -5524,9 +5500,7 @@ func rewriteValuePPC64_OpPPC64ISEL(v *Value) bool { if v_2.Op != OpPPC64FlagLT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (ISEL [6] x _ (FlagGT)) @@ -5539,9 +5513,7 @@ func rewriteValuePPC64_OpPPC64ISEL(v *Value) bool { if v_2.Op != OpPPC64FlagGT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (ISEL [0] _ y (FlagEQ)) @@ -5554,9 +5526,7 @@ func rewriteValuePPC64_OpPPC64ISEL(v *Value) bool { if v_2.Op != OpPPC64FlagEQ { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (ISEL [0] _ y (FlagGT)) @@ -5569,9 +5539,7 @@ func rewriteValuePPC64_OpPPC64ISEL(v *Value) bool { if v_2.Op != OpPPC64FlagGT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (ISEL [0] x _ (FlagLT)) @@ -5584,9 +5552,7 @@ func rewriteValuePPC64_OpPPC64ISEL(v *Value) bool { if v_2.Op != OpPPC64FlagLT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (ISEL [5] _ x (FlagEQ)) @@ -5599,9 +5565,7 @@ func rewriteValuePPC64_OpPPC64ISEL(v *Value) bool { if v_2.Op != OpPPC64FlagEQ { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (ISEL [5] _ x (FlagLT)) @@ -5614,9 +5578,7 @@ func rewriteValuePPC64_OpPPC64ISEL(v *Value) bool { if v_2.Op != OpPPC64FlagLT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (ISEL [5] y _ (FlagGT)) @@ -5629,9 +5591,7 @@ func rewriteValuePPC64_OpPPC64ISEL(v *Value) bool { if v_2.Op != OpPPC64FlagGT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (ISEL [1] _ y (FlagEQ)) @@ -5644,9 +5604,7 @@ func rewriteValuePPC64_OpPPC64ISEL(v *Value) bool { if v_2.Op != OpPPC64FlagEQ { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (ISEL [1] _ y (FlagLT)) @@ -5659,9 +5617,7 @@ func rewriteValuePPC64_OpPPC64ISEL(v *Value) bool { if v_2.Op != OpPPC64FlagLT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (ISEL [1] x _ (FlagGT)) @@ -5674,9 +5630,7 @@ func rewriteValuePPC64_OpPPC64ISEL(v *Value) bool { if v_2.Op != OpPPC64FlagGT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (ISEL [4] x _ (FlagEQ)) @@ -5689,9 +5643,7 @@ func rewriteValuePPC64_OpPPC64ISEL(v *Value) bool { if v_2.Op != OpPPC64FlagEQ { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (ISEL [4] x _ (FlagGT)) @@ -5704,9 +5656,7 @@ func rewriteValuePPC64_OpPPC64ISEL(v *Value) bool { if v_2.Op != OpPPC64FlagGT { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (ISEL [4] _ y (FlagLT)) @@ -5719,9 +5669,7 @@ func rewriteValuePPC64_OpPPC64ISEL(v *Value) bool { if v_2.Op != OpPPC64FlagLT { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (ISEL [n] x y (InvertFlags bool)) @@ -6173,8 +6121,7 @@ func rewriteValuePPC64_OpPPC64MFVSRD(v *Value) bool { } b = x.Block v0 := b.NewValue0(x.Pos, OpPPC64MOVDload, typ.Int64) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = off v0.Aux = sym v0.AddArg2(ptr, mem) @@ -6311,9 +6258,7 @@ func rewriteValuePPC64_OpPPC64MOVBZreg(v *Value) bool { if !(uint64(c) <= 0xFF) { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (MOVBZreg (SRWconst [c] (MOVBZreg x))) @@ -6393,9 +6338,7 @@ func rewriteValuePPC64_OpPPC64MOVBZreg(v *Value) bool { if y.Op != OpPPC64MOVBZreg { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (MOVBZreg (MOVBreg x)) @@ -6417,9 +6360,7 @@ func rewriteValuePPC64_OpPPC64MOVBZreg(v *Value) bool { break } _ = x.Args[1] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVBZreg x:(MOVBZloadidx _ _ _)) @@ -6430,9 +6371,7 @@ func rewriteValuePPC64_OpPPC64MOVBZreg(v *Value) bool { break } _ = x.Args[2] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVBZreg x:(Arg )) @@ -6447,9 +6386,7 @@ func rewriteValuePPC64_OpPPC64MOVBZreg(v *Value) bool { if !(is8BitInt(t) && !isSigned(t)) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVBZreg (MOVDconst [c])) @@ -6481,9 +6418,7 @@ func rewriteValuePPC64_OpPPC64MOVBreg(v *Value) bool { if !(uint64(c) <= 0x7F) { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (MOVBreg (SRAWconst [c] (MOVBreg x))) @@ -6597,9 +6532,7 @@ func rewriteValuePPC64_OpPPC64MOVBreg(v *Value) bool { if y.Op != OpPPC64MOVBreg { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (MOVBreg (MOVBZreg x)) @@ -6625,9 +6558,7 @@ func rewriteValuePPC64_OpPPC64MOVBreg(v *Value) bool { if !(is8BitInt(t) && isSigned(t)) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVBreg (MOVDconst [c])) @@ -8234,9 +8165,7 @@ func rewriteValuePPC64_OpPPC64MOVHZreg(v *Value) bool { if !(uint64(c) <= 0xFFFF) { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (MOVHZreg (SRWconst [c] (MOVBZreg x))) @@ -8335,9 +8264,7 @@ func rewriteValuePPC64_OpPPC64MOVHZreg(v *Value) bool { if y.Op != OpPPC64MOVHZreg { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (MOVHZreg y:(MOVBZreg _)) @@ -8347,9 +8274,7 @@ func rewriteValuePPC64_OpPPC64MOVHZreg(v *Value) bool { if y.Op != OpPPC64MOVBZreg { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (MOVHZreg y:(MOVHBRload _ _)) @@ -8360,9 +8285,7 @@ func rewriteValuePPC64_OpPPC64MOVHZreg(v *Value) bool { break } _ = y.Args[1] - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (MOVHZreg y:(MOVHreg x)) @@ -8385,9 +8308,7 @@ func rewriteValuePPC64_OpPPC64MOVHZreg(v *Value) bool { break } _ = x.Args[1] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVHZreg x:(MOVBZloadidx _ _ _)) @@ -8398,9 +8319,7 @@ func rewriteValuePPC64_OpPPC64MOVHZreg(v *Value) bool { break } _ = x.Args[2] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVHZreg x:(MOVHZload _ _)) @@ -8411,9 +8330,7 @@ func rewriteValuePPC64_OpPPC64MOVHZreg(v *Value) bool { break } _ = x.Args[1] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVHZreg x:(MOVHZloadidx _ _ _)) @@ -8424,9 +8341,7 @@ func rewriteValuePPC64_OpPPC64MOVHZreg(v *Value) bool { break } _ = x.Args[2] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVHZreg x:(Arg )) @@ -8441,9 +8356,7 @@ func rewriteValuePPC64_OpPPC64MOVHZreg(v *Value) bool { if !((is8BitInt(t) || is16BitInt(t)) && !isSigned(t)) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVHZreg (MOVDconst [c])) @@ -8588,9 +8501,7 @@ func rewriteValuePPC64_OpPPC64MOVHreg(v *Value) bool { if !(uint64(c) <= 0x7FFF) { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (MOVHreg (SRAWconst [c] (MOVBreg x))) @@ -8723,9 +8634,7 @@ func rewriteValuePPC64_OpPPC64MOVHreg(v *Value) bool { if y.Op != OpPPC64MOVHreg { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (MOVHreg y:(MOVBreg _)) @@ -8735,9 +8644,7 @@ func rewriteValuePPC64_OpPPC64MOVHreg(v *Value) bool { if y.Op != OpPPC64MOVBreg { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (MOVHreg y:(MOVHZreg x)) @@ -8760,9 +8667,7 @@ func rewriteValuePPC64_OpPPC64MOVHreg(v *Value) bool { break } _ = x.Args[1] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVHreg x:(MOVHloadidx _ _ _)) @@ -8773,9 +8678,7 @@ func rewriteValuePPC64_OpPPC64MOVHreg(v *Value) bool { break } _ = x.Args[2] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVHreg x:(Arg )) @@ -8790,9 +8693,7 @@ func rewriteValuePPC64_OpPPC64MOVHreg(v *Value) bool { if !((is8BitInt(t) || is16BitInt(t)) && isSigned(t)) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVHreg (MOVDconst [c])) @@ -9356,9 +9257,7 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool { if !(uint64(c) <= 0xFFFFFFFF) { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (MOVWZreg y:(AND (MOVDconst [c]) _)) @@ -9380,9 +9279,7 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool { if !(uint64(c) <= 0xFFFFFFFF) { continue } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } break @@ -9485,9 +9382,7 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool { if y.Op != OpPPC64MOVWZreg { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (MOVWZreg y:(MOVHZreg _)) @@ -9497,9 +9392,7 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool { if y.Op != OpPPC64MOVHZreg { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (MOVWZreg y:(MOVBZreg _)) @@ -9509,9 +9402,7 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool { if y.Op != OpPPC64MOVBZreg { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (MOVWZreg y:(MOVHBRload _ _)) @@ -9522,9 +9413,7 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool { break } _ = y.Args[1] - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (MOVWZreg y:(MOVWBRload _ _)) @@ -9535,9 +9424,7 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool { break } _ = y.Args[1] - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (MOVWZreg y:(MOVWreg x)) @@ -9560,9 +9447,7 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool { break } _ = x.Args[1] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVWZreg x:(MOVBZloadidx _ _ _)) @@ -9573,9 +9458,7 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool { break } _ = x.Args[2] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVWZreg x:(MOVHZload _ _)) @@ -9586,9 +9469,7 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool { break } _ = x.Args[1] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVWZreg x:(MOVHZloadidx _ _ _)) @@ -9599,9 +9480,7 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool { break } _ = x.Args[2] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVWZreg x:(MOVWZload _ _)) @@ -9612,9 +9491,7 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool { break } _ = x.Args[1] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVWZreg x:(MOVWZloadidx _ _ _)) @@ -9625,9 +9502,7 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool { break } _ = x.Args[2] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVWZreg x:(Arg )) @@ -9642,9 +9517,7 @@ func rewriteValuePPC64_OpPPC64MOVWZreg(v *Value) bool { if !((is8BitInt(t) || is16BitInt(t) || is32BitInt(t)) && !isSigned(t)) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVWZreg (MOVDconst [c])) @@ -9789,9 +9662,7 @@ func rewriteValuePPC64_OpPPC64MOVWreg(v *Value) bool { if !(uint64(c) <= 0xFFFF) { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (MOVWreg y:(AND (MOVDconst [c]) _)) @@ -9813,9 +9684,7 @@ func rewriteValuePPC64_OpPPC64MOVWreg(v *Value) bool { if !(uint64(c) <= 0x7FFFFFFF) { continue } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } break @@ -9935,9 +9804,7 @@ func rewriteValuePPC64_OpPPC64MOVWreg(v *Value) bool { if y.Op != OpPPC64MOVWreg { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (MOVWreg y:(MOVHreg _)) @@ -9947,9 +9814,7 @@ func rewriteValuePPC64_OpPPC64MOVWreg(v *Value) bool { if y.Op != OpPPC64MOVHreg { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (MOVWreg y:(MOVBreg _)) @@ -9959,9 +9824,7 @@ func rewriteValuePPC64_OpPPC64MOVWreg(v *Value) bool { if y.Op != OpPPC64MOVBreg { break } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } // match: (MOVWreg y:(MOVWZreg x)) @@ -9984,9 +9847,7 @@ func rewriteValuePPC64_OpPPC64MOVWreg(v *Value) bool { break } _ = x.Args[1] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVWreg x:(MOVHloadidx _ _ _)) @@ -9997,9 +9858,7 @@ func rewriteValuePPC64_OpPPC64MOVWreg(v *Value) bool { break } _ = x.Args[2] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVWreg x:(MOVWload _ _)) @@ -10010,9 +9869,7 @@ func rewriteValuePPC64_OpPPC64MOVWreg(v *Value) bool { break } _ = x.Args[1] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVWreg x:(MOVWloadidx _ _ _)) @@ -10023,9 +9880,7 @@ func rewriteValuePPC64_OpPPC64MOVWreg(v *Value) bool { break } _ = x.Args[2] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVWreg x:(Arg )) @@ -10040,9 +9895,7 @@ func rewriteValuePPC64_OpPPC64MOVWreg(v *Value) bool { if !((is8BitInt(t) || is16BitInt(t) || is32BitInt(t)) && isSigned(t)) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVWreg (MOVDconst [c])) @@ -10343,8 +10196,7 @@ func rewriteValuePPC64_OpPPC64MTVSRD(v *Value) bool { } b = x.Block v0 := b.NewValue0(x.Pos, OpPPC64FMOVDload, typ.Float64) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = off v0.Aux = sym v0.AddArg2(ptr, mem) @@ -10637,8 +10489,7 @@ func rewriteValuePPC64_OpPPC64OR(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(x1.Pos, OpPPC64MOVHZload, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = i0 v0.Aux = s v0.AddArg2(p, mem) @@ -10678,8 +10529,7 @@ func rewriteValuePPC64_OpPPC64OR(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(x1.Pos, OpPPC64MOVHZload, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = i0 v0.Aux = s v0.AddArg2(p, mem) @@ -10719,8 +10569,7 @@ func rewriteValuePPC64_OpPPC64OR(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(x1.Pos, OpPPC64MOVHBRload, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(x1.Pos, OpPPC64MOVDaddr, typ.Uintptr) v1.AuxInt = i0 v1.Aux = s @@ -10762,8 +10611,7 @@ func rewriteValuePPC64_OpPPC64OR(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(x1.Pos, OpPPC64MOVHBRload, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(x1.Pos, OpPPC64MOVDaddr, typ.Uintptr) v1.AuxInt = i0 v1.Aux = s @@ -10811,8 +10659,7 @@ func rewriteValuePPC64_OpPPC64OR(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(x1.Pos, OpPPC64SLDconst, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = n1 v1 := b.NewValue0(x1.Pos, OpPPC64MOVHBRload, t) v2 := b.NewValue0(x1.Pos, OpPPC64MOVDaddr, typ.Uintptr) @@ -10863,8 +10710,7 @@ func rewriteValuePPC64_OpPPC64OR(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(x1.Pos, OpPPC64SLDconst, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = n1 v1 := b.NewValue0(x1.Pos, OpPPC64MOVHBRload, t) v2 := b.NewValue0(x1.Pos, OpPPC64MOVDaddr, typ.Uintptr) @@ -10933,8 +10779,7 @@ func rewriteValuePPC64_OpPPC64OR(v *Value) bool { } b = mergePoint(b, x0, x1, x2) v0 := b.NewValue0(x0.Pos, OpPPC64MOVWZload, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = i0 v0.Aux = s v0.AddArg2(p, mem) @@ -10999,8 +10844,7 @@ func rewriteValuePPC64_OpPPC64OR(v *Value) bool { } b = mergePoint(b, x0, x1, x2) v0 := b.NewValue0(x0.Pos, OpPPC64MOVWZload, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = i0 v0.Aux = s v0.AddArg2(p, mem) @@ -11066,8 +10910,7 @@ func rewriteValuePPC64_OpPPC64OR(v *Value) bool { } b = mergePoint(b, x0, x1, x2) v0 := b.NewValue0(x0.Pos, OpPPC64MOVWBRload, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(x0.Pos, OpPPC64MOVDaddr, typ.Uintptr) v1.AuxInt = i0 v1.Aux = s @@ -11135,8 +10978,7 @@ func rewriteValuePPC64_OpPPC64OR(v *Value) bool { } b = mergePoint(b, x0, x1, x2) v0 := b.NewValue0(x0.Pos, OpPPC64MOVWBRload, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(x0.Pos, OpPPC64MOVDaddr, typ.Uintptr) v1.AuxInt = i0 v1.Aux = s @@ -11204,8 +11046,7 @@ func rewriteValuePPC64_OpPPC64OR(v *Value) bool { } b = mergePoint(b, x0, x1, x2) v0 := b.NewValue0(x2.Pos, OpPPC64MOVWBRload, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(x2.Pos, OpPPC64MOVDaddr, typ.Uintptr) v1.AuxInt = i0 v1.Aux = s @@ -11273,8 +11114,7 @@ func rewriteValuePPC64_OpPPC64OR(v *Value) bool { } b = mergePoint(b, x0, x1, x2) v0 := b.NewValue0(x2.Pos, OpPPC64MOVWBRload, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(x2.Pos, OpPPC64MOVDaddr, typ.Uintptr) v1.AuxInt = i0 v1.Aux = s @@ -11346,8 +11186,7 @@ func rewriteValuePPC64_OpPPC64OR(v *Value) bool { } b = mergePoint(b, x0, x1, x2) v0 := b.NewValue0(x0.Pos, OpPPC64SLDconst, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = 32 v1 := b.NewValue0(x0.Pos, OpPPC64MOVWBRload, t) v2 := b.NewValue0(x0.Pos, OpPPC64MOVDaddr, typ.Uintptr) @@ -11422,8 +11261,7 @@ func rewriteValuePPC64_OpPPC64OR(v *Value) bool { } b = mergePoint(b, x0, x1, x2) v0 := b.NewValue0(x0.Pos, OpPPC64SLDconst, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = 32 v1 := b.NewValue0(x0.Pos, OpPPC64MOVWBRload, t) v2 := b.NewValue0(x0.Pos, OpPPC64MOVDaddr, typ.Uintptr) @@ -11541,8 +11379,7 @@ func rewriteValuePPC64_OpPPC64OR(v *Value) bool { } b = mergePoint(b, x0, x4, x5, x6, x7) v0 := b.NewValue0(x0.Pos, OpPPC64MOVDload, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = i0 v0.Aux = s v0.AddArg2(p, mem) @@ -11658,8 +11495,7 @@ func rewriteValuePPC64_OpPPC64OR(v *Value) bool { } b = mergePoint(b, x0, x1, x2, x3, x4) v0 := b.NewValue0(x4.Pos, OpPPC64MOVDBRload, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(x4.Pos, OpPPC64MOVDaddr, typ.Uintptr) v1.AuxInt = i0 v1.Aux = s @@ -11777,8 +11613,7 @@ func rewriteValuePPC64_OpPPC64OR(v *Value) bool { } b = mergePoint(b, x3, x4, x5, x6, x7) v0 := b.NewValue0(x3.Pos, OpPPC64MOVDBRload, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(x3.Pos, OpPPC64MOVDaddr, typ.Uintptr) v1.AuxInt = i0 v1.Aux = s @@ -11896,8 +11731,7 @@ func rewriteValuePPC64_OpPPC64OR(v *Value) bool { } b = mergePoint(b, x3, x4, x5, x6, x7) v0 := b.NewValue0(x3.Pos, OpPPC64MOVDBRload, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(x3.Pos, OpPPC64MOVDaddr, typ.Uintptr) v1.AuxInt = i0 v1.Aux = s @@ -11922,9 +11756,7 @@ func rewriteValuePPC64_OpPPC64ORN(v *Value) bool { if v_1.Op != OpPPC64MOVDconst || v_1.AuxInt != -1 { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -11962,9 +11794,7 @@ func rewriteValuePPC64_OpPPC64ORconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -12223,9 +12053,7 @@ func rewriteValuePPC64_OpPPC64XORconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -15075,9 +14903,7 @@ func rewriteValuePPC64_OpZero(v *Value) bool { break } mem := v_1 - v.reset(OpCopy) - v.Type = mem.Type - v.AddArg(mem) + v.copyOf(mem) return true } // match: (Zero [1] destptr mem) diff --git a/src/cmd/compile/internal/ssa/rewriteRISCV64.go b/src/cmd/compile/internal/ssa/rewriteRISCV64.go index e40fe69930..f20f744456 100644 --- a/src/cmd/compile/internal/ssa/rewriteRISCV64.go +++ b/src/cmd/compile/internal/ssa/rewriteRISCV64.go @@ -1864,9 +1864,7 @@ func rewriteValueRISCV64_OpMove(v *Value) bool { break } mem := v_2 - v.reset(OpCopy) - v.Type = mem.Type - v.AddArg(mem) + v.copyOf(mem) return true } // match: (Move [1] dst src mem) @@ -2289,9 +2287,7 @@ func rewriteValueRISCV64_OpRISCV64ADDI(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -4081,9 +4077,7 @@ func rewriteValueRISCV64_OpZero(v *Value) bool { break } mem := v_1 - v.reset(OpCopy) - v.Type = mem.Type - v.AddArg(mem) + v.copyOf(mem) return true } // match: (Zero [1] ptr mem) diff --git a/src/cmd/compile/internal/ssa/rewriteS390X.go b/src/cmd/compile/internal/ssa/rewriteS390X.go index 7a78dfdac7..874bac1fde 100644 --- a/src/cmd/compile/internal/ssa/rewriteS390X.go +++ b/src/cmd/compile/internal/ssa/rewriteS390X.go @@ -3097,9 +3097,7 @@ func rewriteValueS390X_OpMove(v *Value) bool { break } mem := v_2 - v.reset(OpCopy) - v.Type = mem.Type - v.AddArg(mem) + v.copyOf(mem) return true } // match: (Move [1] dst src mem) @@ -5450,9 +5448,7 @@ func rewriteValueS390X_OpS390XADDWconst(v *Value) bool { if !(int32(c) == 0) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (ADDWconst [c] (MOVDconst [d])) @@ -5604,9 +5600,7 @@ func rewriteValueS390X_OpS390XADDconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (ADDconst [c] (MOVDconst [d])) @@ -5849,9 +5843,7 @@ func rewriteValueS390X_OpS390XAND(v *Value) bool { if x != v_1 { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (AND x g:(MOVDload [off] {sym} ptr mem)) @@ -5909,9 +5901,7 @@ func rewriteValueS390X_OpS390XANDW(v *Value) bool { if x != v_1 { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (ANDW x g:(MOVWload [off] {sym} ptr mem)) @@ -6029,9 +6019,7 @@ func rewriteValueS390X_OpS390XANDWconst(v *Value) bool { if !(int32(c) == -1) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (ANDWconst [c] (MOVDconst [d])) @@ -6132,9 +6120,7 @@ func rewriteValueS390X_OpS390XANDconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (ANDconst [c] (MOVDconst [d])) @@ -7285,9 +7271,7 @@ func rewriteValueS390X_OpS390XFMOVDload(v *Value) bool { if !(isSamePtr(ptr1, ptr2)) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (FMOVDload [off1] {sym} (ADDconst [off2] ptr) mem) @@ -7610,9 +7594,7 @@ func rewriteValueS390X_OpS390XFMOVSload(v *Value) bool { if !(isSamePtr(ptr1, ptr2)) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (FMOVSload [off1] {sym} (ADDconst [off2] ptr) mem) @@ -8094,8 +8076,7 @@ func rewriteValueS390X_OpS390XLDGR(v *Value) bool { } b = x.Block v0 := b.NewValue0(x.Pos, OpS390XLNDFR, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(x.Pos, OpS390XLDGR, t) v2 := b.NewValue0(x.Pos, OpS390XMOVDload, t1) v2.AuxInt = off @@ -8112,9 +8093,7 @@ func rewriteValueS390X_OpS390XLDGR(v *Value) bool { break } x := v_0.Args[0] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -8162,9 +8141,7 @@ func rewriteValueS390X_OpS390XLGDR(v *Value) bool { break } x := v_0.Args[0] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -8197,9 +8174,7 @@ func rewriteValueS390X_OpS390XLOCGR(v *Value) bool { if v_2.Op != OpS390XFlagEQ || !(c.(s390x.CCMask)&s390x.Equal != 0) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (LOCGR {c} _ x (FlagLT)) @@ -8211,9 +8186,7 @@ func rewriteValueS390X_OpS390XLOCGR(v *Value) bool { if v_2.Op != OpS390XFlagLT || !(c.(s390x.CCMask)&s390x.Less != 0) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (LOCGR {c} _ x (FlagGT)) @@ -8225,9 +8198,7 @@ func rewriteValueS390X_OpS390XLOCGR(v *Value) bool { if v_2.Op != OpS390XFlagGT || !(c.(s390x.CCMask)&s390x.Greater != 0) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (LOCGR {c} _ x (FlagOV)) @@ -8239,9 +8210,7 @@ func rewriteValueS390X_OpS390XLOCGR(v *Value) bool { if v_2.Op != OpS390XFlagOV || !(c.(s390x.CCMask)&s390x.Unordered != 0) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (LOCGR {c} x _ (FlagEQ)) @@ -8253,9 +8222,7 @@ func rewriteValueS390X_OpS390XLOCGR(v *Value) bool { if v_2.Op != OpS390XFlagEQ || !(c.(s390x.CCMask)&s390x.Equal == 0) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (LOCGR {c} x _ (FlagLT)) @@ -8267,9 +8234,7 @@ func rewriteValueS390X_OpS390XLOCGR(v *Value) bool { if v_2.Op != OpS390XFlagLT || !(c.(s390x.CCMask)&s390x.Less == 0) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (LOCGR {c} x _ (FlagGT)) @@ -8281,9 +8246,7 @@ func rewriteValueS390X_OpS390XLOCGR(v *Value) bool { if v_2.Op != OpS390XFlagGT || !(c.(s390x.CCMask)&s390x.Greater == 0) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (LOCGR {c} x _ (FlagOV)) @@ -8295,9 +8258,7 @@ func rewriteValueS390X_OpS390XLOCGR(v *Value) bool { if v_2.Op != OpS390XFlagOV || !(c.(s390x.CCMask)&s390x.Unordered == 0) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -8311,9 +8272,7 @@ func rewriteValueS390X_OpS390XLoweredRound32F(v *Value) bool { if x.Op != OpS390XFMOVSconst { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -8327,9 +8286,7 @@ func rewriteValueS390X_OpS390XLoweredRound64F(v *Value) bool { if x.Op != OpS390XFMOVDconst { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -8620,9 +8577,7 @@ func rewriteValueS390X_OpS390XMOVBZreg(v *Value) bool { if !(!x.Type.IsSigned() || x.Type.Size() > 1) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVBZreg x:(MOVBZloadidx _ _ _)) @@ -8637,9 +8592,7 @@ func rewriteValueS390X_OpS390XMOVBZreg(v *Value) bool { if !(!x.Type.IsSigned() || x.Type.Size() > 1) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVBZreg x:(MOVBload [o] {s} p mem)) @@ -8660,8 +8613,7 @@ func rewriteValueS390X_OpS390XMOVBZreg(v *Value) bool { } b = x.Block v0 := b.NewValue0(x.Pos, OpS390XMOVBZload, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = o v0.Aux = s v0.AddArg2(p, mem) @@ -8686,8 +8638,7 @@ func rewriteValueS390X_OpS390XMOVBZreg(v *Value) bool { } b = x.Block v0 := b.NewValue0(v.Pos, OpS390XMOVBZloadidx, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = o v0.Aux = s v0.AddArg3(p, i, mem) @@ -8705,9 +8656,7 @@ func rewriteValueS390X_OpS390XMOVBZreg(v *Value) bool { if !(!t.IsSigned() && t.Size() == 1) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVBZreg (MOVDconst [c])) @@ -8743,9 +8692,7 @@ func rewriteValueS390X_OpS390XMOVBZreg(v *Value) bool { if !(int64(uint8(c)) == c && int64(uint8(d)) == d && (!x.Type.IsSigned() || x.Type.Size() > 1)) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVBZreg (ANDWconst [m] x)) @@ -9051,9 +8998,7 @@ func rewriteValueS390X_OpS390XMOVBreg(v *Value) bool { if !(x.Type.IsSigned() || x.Type.Size() == 8) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVBreg x:(MOVBloadidx _ _ _)) @@ -9068,9 +9013,7 @@ func rewriteValueS390X_OpS390XMOVBreg(v *Value) bool { if !(x.Type.IsSigned() || x.Type.Size() == 8) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVBreg x:(MOVBZload [o] {s} p mem)) @@ -9091,8 +9034,7 @@ func rewriteValueS390X_OpS390XMOVBreg(v *Value) bool { } b = x.Block v0 := b.NewValue0(x.Pos, OpS390XMOVBload, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = o v0.Aux = s v0.AddArg2(p, mem) @@ -9117,8 +9059,7 @@ func rewriteValueS390X_OpS390XMOVBreg(v *Value) bool { } b = x.Block v0 := b.NewValue0(v.Pos, OpS390XMOVBloadidx, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = o v0.Aux = s v0.AddArg3(p, i, mem) @@ -9136,9 +9077,7 @@ func rewriteValueS390X_OpS390XMOVBreg(v *Value) bool { if !(t.IsSigned() && t.Size() == 1) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVBreg (MOVDconst [c])) @@ -10085,9 +10024,7 @@ func rewriteValueS390X_OpS390XMOVDload(v *Value) bool { if !(isSamePtr(ptr1, ptr2)) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVDload [off] {sym} ptr1 (FMOVDstore [off] {sym} ptr2 x _)) @@ -11111,9 +11048,7 @@ func rewriteValueS390X_OpS390XMOVHZreg(v *Value) bool { if !(!x.Type.IsSigned() || x.Type.Size() > 1) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVHZreg x:(MOVBZloadidx _ _ _)) @@ -11128,9 +11063,7 @@ func rewriteValueS390X_OpS390XMOVHZreg(v *Value) bool { if !(!x.Type.IsSigned() || x.Type.Size() > 1) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVHZreg x:(MOVHZload _ _)) @@ -11145,9 +11078,7 @@ func rewriteValueS390X_OpS390XMOVHZreg(v *Value) bool { if !(!x.Type.IsSigned() || x.Type.Size() > 2) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVHZreg x:(MOVHZloadidx _ _ _)) @@ -11162,9 +11093,7 @@ func rewriteValueS390X_OpS390XMOVHZreg(v *Value) bool { if !(!x.Type.IsSigned() || x.Type.Size() > 2) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVHZreg x:(MOVHload [o] {s} p mem)) @@ -11185,8 +11114,7 @@ func rewriteValueS390X_OpS390XMOVHZreg(v *Value) bool { } b = x.Block v0 := b.NewValue0(x.Pos, OpS390XMOVHZload, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = o v0.Aux = s v0.AddArg2(p, mem) @@ -11211,8 +11139,7 @@ func rewriteValueS390X_OpS390XMOVHZreg(v *Value) bool { } b = x.Block v0 := b.NewValue0(v.Pos, OpS390XMOVHZloadidx, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = o v0.Aux = s v0.AddArg3(p, i, mem) @@ -11230,9 +11157,7 @@ func rewriteValueS390X_OpS390XMOVHZreg(v *Value) bool { if !(!t.IsSigned() && t.Size() <= 2) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVHZreg (MOVDconst [c])) @@ -11534,9 +11459,7 @@ func rewriteValueS390X_OpS390XMOVHreg(v *Value) bool { if !(x.Type.IsSigned() || x.Type.Size() == 8) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVHreg x:(MOVBloadidx _ _ _)) @@ -11551,9 +11474,7 @@ func rewriteValueS390X_OpS390XMOVHreg(v *Value) bool { if !(x.Type.IsSigned() || x.Type.Size() == 8) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVHreg x:(MOVHload _ _)) @@ -11568,9 +11489,7 @@ func rewriteValueS390X_OpS390XMOVHreg(v *Value) bool { if !(x.Type.IsSigned() || x.Type.Size() == 8) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVHreg x:(MOVHloadidx _ _ _)) @@ -11585,9 +11504,7 @@ func rewriteValueS390X_OpS390XMOVHreg(v *Value) bool { if !(x.Type.IsSigned() || x.Type.Size() == 8) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVHreg x:(MOVBZload _ _)) @@ -11602,9 +11519,7 @@ func rewriteValueS390X_OpS390XMOVHreg(v *Value) bool { if !(!x.Type.IsSigned() || x.Type.Size() > 1) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVHreg x:(MOVBZloadidx _ _ _)) @@ -11619,9 +11534,7 @@ func rewriteValueS390X_OpS390XMOVHreg(v *Value) bool { if !(!x.Type.IsSigned() || x.Type.Size() > 1) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVHreg x:(MOVHZload [o] {s} p mem)) @@ -11642,8 +11555,7 @@ func rewriteValueS390X_OpS390XMOVHreg(v *Value) bool { } b = x.Block v0 := b.NewValue0(x.Pos, OpS390XMOVHload, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = o v0.Aux = s v0.AddArg2(p, mem) @@ -11668,8 +11580,7 @@ func rewriteValueS390X_OpS390XMOVHreg(v *Value) bool { } b = x.Block v0 := b.NewValue0(v.Pos, OpS390XMOVHloadidx, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = o v0.Aux = s v0.AddArg3(p, i, mem) @@ -11687,9 +11598,7 @@ func rewriteValueS390X_OpS390XMOVHreg(v *Value) bool { if !(t.IsSigned() && t.Size() <= 2) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVHreg (MOVDconst [c])) @@ -12672,9 +12581,7 @@ func rewriteValueS390X_OpS390XMOVWZreg(v *Value) bool { if !(!x.Type.IsSigned() || x.Type.Size() > 1) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVWZreg x:(MOVBZloadidx _ _ _)) @@ -12689,9 +12596,7 @@ func rewriteValueS390X_OpS390XMOVWZreg(v *Value) bool { if !(!x.Type.IsSigned() || x.Type.Size() > 1) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVWZreg x:(MOVHZload _ _)) @@ -12706,9 +12611,7 @@ func rewriteValueS390X_OpS390XMOVWZreg(v *Value) bool { if !(!x.Type.IsSigned() || x.Type.Size() > 2) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVWZreg x:(MOVHZloadidx _ _ _)) @@ -12723,9 +12626,7 @@ func rewriteValueS390X_OpS390XMOVWZreg(v *Value) bool { if !(!x.Type.IsSigned() || x.Type.Size() > 2) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVWZreg x:(MOVWZload _ _)) @@ -12740,9 +12641,7 @@ func rewriteValueS390X_OpS390XMOVWZreg(v *Value) bool { if !(!x.Type.IsSigned() || x.Type.Size() > 4) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVWZreg x:(MOVWZloadidx _ _ _)) @@ -12757,9 +12656,7 @@ func rewriteValueS390X_OpS390XMOVWZreg(v *Value) bool { if !(!x.Type.IsSigned() || x.Type.Size() > 4) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVWZreg x:(MOVWload [o] {s} p mem)) @@ -12780,8 +12677,7 @@ func rewriteValueS390X_OpS390XMOVWZreg(v *Value) bool { } b = x.Block v0 := b.NewValue0(x.Pos, OpS390XMOVWZload, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = o v0.Aux = s v0.AddArg2(p, mem) @@ -12806,8 +12702,7 @@ func rewriteValueS390X_OpS390XMOVWZreg(v *Value) bool { } b = x.Block v0 := b.NewValue0(v.Pos, OpS390XMOVWZloadidx, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = o v0.Aux = s v0.AddArg3(p, i, mem) @@ -12825,9 +12720,7 @@ func rewriteValueS390X_OpS390XMOVWZreg(v *Value) bool { if !(!t.IsSigned() && t.Size() <= 4) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVWZreg (MOVDconst [c])) @@ -13097,9 +12990,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool { if !(x.Type.IsSigned() || x.Type.Size() == 8) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVWreg x:(MOVBloadidx _ _ _)) @@ -13114,9 +13005,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool { if !(x.Type.IsSigned() || x.Type.Size() == 8) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVWreg x:(MOVHload _ _)) @@ -13131,9 +13020,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool { if !(x.Type.IsSigned() || x.Type.Size() == 8) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVWreg x:(MOVHloadidx _ _ _)) @@ -13148,9 +13035,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool { if !(x.Type.IsSigned() || x.Type.Size() == 8) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVWreg x:(MOVWload _ _)) @@ -13165,9 +13050,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool { if !(x.Type.IsSigned() || x.Type.Size() == 8) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVWreg x:(MOVWloadidx _ _ _)) @@ -13182,9 +13065,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool { if !(x.Type.IsSigned() || x.Type.Size() == 8) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVWreg x:(MOVBZload _ _)) @@ -13199,9 +13080,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool { if !(!x.Type.IsSigned() || x.Type.Size() > 1) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVWreg x:(MOVBZloadidx _ _ _)) @@ -13216,9 +13095,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool { if !(!x.Type.IsSigned() || x.Type.Size() > 1) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVWreg x:(MOVHZload _ _)) @@ -13233,9 +13110,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool { if !(!x.Type.IsSigned() || x.Type.Size() > 2) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVWreg x:(MOVHZloadidx _ _ _)) @@ -13250,9 +13125,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool { if !(!x.Type.IsSigned() || x.Type.Size() > 2) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVWreg x:(MOVWZload [o] {s} p mem)) @@ -13273,8 +13146,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool { } b = x.Block v0 := b.NewValue0(x.Pos, OpS390XMOVWload, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = o v0.Aux = s v0.AddArg2(p, mem) @@ -13299,8 +13171,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool { } b = x.Block v0 := b.NewValue0(v.Pos, OpS390XMOVWloadidx, t) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = o v0.Aux = s v0.AddArg3(p, i, mem) @@ -13318,9 +13189,7 @@ func rewriteValueS390X_OpS390XMOVWreg(v *Value) bool { if !(t.IsSigned() && t.Size() <= 4) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MOVWreg (MOVDconst [c])) @@ -13924,9 +13793,7 @@ func rewriteValueS390X_OpS390XMULLDconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MULLDconst [c] x) @@ -14171,9 +14038,7 @@ func rewriteValueS390X_OpS390XMULLWconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (MULLWconst [c] x) @@ -14591,9 +14456,7 @@ func rewriteValueS390X_OpS390XOR(v *Value) bool { if x != v_1 { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (OR x g:(MOVDload [off] {sym} ptr mem)) @@ -14654,8 +14517,7 @@ func rewriteValueS390X_OpS390XOR(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(x0.Pos, OpS390XMOVHZload, typ.UInt16) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = i0 v0.Aux = s v0.AddArg2(p, mem) @@ -14694,8 +14556,7 @@ func rewriteValueS390X_OpS390XOR(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(x0.Pos, OpS390XMOVWZload, typ.UInt32) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = i0 v0.Aux = s v0.AddArg2(p, mem) @@ -14734,8 +14595,7 @@ func rewriteValueS390X_OpS390XOR(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(x0.Pos, OpS390XMOVDload, typ.UInt64) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = i0 v0.Aux = s v0.AddArg2(p, mem) @@ -14792,8 +14652,7 @@ func rewriteValueS390X_OpS390XOR(v *Value) bool { } b = mergePoint(b, x0, x1, y) v0 := b.NewValue0(x1.Pos, OpS390XOR, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(x1.Pos, OpS390XSLDconst, v.Type) v1.AuxInt = j1 v2 := b.NewValue0(x1.Pos, OpS390XMOVHZload, typ.UInt16) @@ -14856,8 +14715,7 @@ func rewriteValueS390X_OpS390XOR(v *Value) bool { } b = mergePoint(b, x0, x1, y) v0 := b.NewValue0(x1.Pos, OpS390XOR, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(x1.Pos, OpS390XSLDconst, v.Type) v1.AuxInt = j1 v2 := b.NewValue0(x1.Pos, OpS390XMOVWZload, typ.UInt32) @@ -14909,8 +14767,7 @@ func rewriteValueS390X_OpS390XOR(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(v.Pos, OpS390XMOVHZloadidx, typ.UInt16) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = i0 v0.Aux = s v0.AddArg3(p, idx, mem) @@ -14958,8 +14815,7 @@ func rewriteValueS390X_OpS390XOR(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(v.Pos, OpS390XMOVWZloadidx, typ.UInt32) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = i0 v0.Aux = s v0.AddArg3(p, idx, mem) @@ -15007,8 +14863,7 @@ func rewriteValueS390X_OpS390XOR(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(v.Pos, OpS390XMOVDloadidx, typ.UInt64) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = i0 v0.Aux = s v0.AddArg3(p, idx, mem) @@ -15074,8 +14929,7 @@ func rewriteValueS390X_OpS390XOR(v *Value) bool { } b = mergePoint(b, x0, x1, y) v0 := b.NewValue0(v.Pos, OpS390XOR, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(v.Pos, OpS390XSLDconst, v.Type) v1.AuxInt = j1 v2 := b.NewValue0(v.Pos, OpS390XMOVHZloadidx, typ.UInt16) @@ -15147,8 +15001,7 @@ func rewriteValueS390X_OpS390XOR(v *Value) bool { } b = mergePoint(b, x0, x1, y) v0 := b.NewValue0(v.Pos, OpS390XOR, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(v.Pos, OpS390XSLDconst, v.Type) v1.AuxInt = j1 v2 := b.NewValue0(v.Pos, OpS390XMOVWZloadidx, typ.UInt32) @@ -15195,8 +15048,7 @@ func rewriteValueS390X_OpS390XOR(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(x1.Pos, OpS390XMOVHZreg, typ.UInt64) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(x1.Pos, OpS390XMOVHBRload, typ.UInt16) v1.AuxInt = i0 v1.Aux = s @@ -15245,8 +15097,7 @@ func rewriteValueS390X_OpS390XOR(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(x1.Pos, OpS390XMOVWZreg, typ.UInt64) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(x1.Pos, OpS390XMOVWBRload, typ.UInt32) v1.AuxInt = i0 v1.Aux = s @@ -15295,8 +15146,7 @@ func rewriteValueS390X_OpS390XOR(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(x1.Pos, OpS390XMOVDBRload, typ.UInt64) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = i0 v0.Aux = s v0.AddArg2(p, mem) @@ -15353,8 +15203,7 @@ func rewriteValueS390X_OpS390XOR(v *Value) bool { } b = mergePoint(b, x0, x1, y) v0 := b.NewValue0(x0.Pos, OpS390XOR, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(x0.Pos, OpS390XSLDconst, v.Type) v1.AuxInt = j0 v2 := b.NewValue0(x0.Pos, OpS390XMOVHZreg, typ.UInt64) @@ -15427,8 +15276,7 @@ func rewriteValueS390X_OpS390XOR(v *Value) bool { } b = mergePoint(b, x0, x1, y) v0 := b.NewValue0(x0.Pos, OpS390XOR, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(x0.Pos, OpS390XSLDconst, v.Type) v1.AuxInt = j0 v2 := b.NewValue0(x0.Pos, OpS390XMOVWZreg, typ.UInt64) @@ -15482,8 +15330,7 @@ func rewriteValueS390X_OpS390XOR(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(v.Pos, OpS390XMOVHZreg, typ.UInt64) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(v.Pos, OpS390XMOVHBRloadidx, typ.Int16) v1.AuxInt = i0 v1.Aux = s @@ -15541,8 +15388,7 @@ func rewriteValueS390X_OpS390XOR(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(v.Pos, OpS390XMOVWZreg, typ.UInt64) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(v.Pos, OpS390XMOVWBRloadidx, typ.Int32) v1.AuxInt = i0 v1.Aux = s @@ -15600,8 +15446,7 @@ func rewriteValueS390X_OpS390XOR(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(v.Pos, OpS390XMOVDBRloadidx, typ.Int64) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = i0 v0.Aux = s v0.AddArg3(p, idx, mem) @@ -15667,8 +15512,7 @@ func rewriteValueS390X_OpS390XOR(v *Value) bool { } b = mergePoint(b, x0, x1, y) v0 := b.NewValue0(v.Pos, OpS390XOR, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(v.Pos, OpS390XSLDconst, v.Type) v1.AuxInt = j0 v2 := b.NewValue0(v.Pos, OpS390XMOVHZreg, typ.UInt64) @@ -15750,8 +15594,7 @@ func rewriteValueS390X_OpS390XOR(v *Value) bool { } b = mergePoint(b, x0, x1, y) v0 := b.NewValue0(v.Pos, OpS390XOR, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(v.Pos, OpS390XSLDconst, v.Type) v1.AuxInt = j0 v2 := b.NewValue0(v.Pos, OpS390XMOVWZreg, typ.UInt64) @@ -15823,9 +15666,7 @@ func rewriteValueS390X_OpS390XORW(v *Value) bool { if x != v_1 { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (ORW x g:(MOVWload [off] {sym} ptr mem)) @@ -15913,8 +15754,7 @@ func rewriteValueS390X_OpS390XORW(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(x0.Pos, OpS390XMOVHZload, typ.UInt16) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = i0 v0.Aux = s v0.AddArg2(p, mem) @@ -15953,8 +15793,7 @@ func rewriteValueS390X_OpS390XORW(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(x0.Pos, OpS390XMOVWZload, typ.UInt32) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = i0 v0.Aux = s v0.AddArg2(p, mem) @@ -16011,8 +15850,7 @@ func rewriteValueS390X_OpS390XORW(v *Value) bool { } b = mergePoint(b, x0, x1, y) v0 := b.NewValue0(x1.Pos, OpS390XORW, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(x1.Pos, OpS390XSLWconst, v.Type) v1.AuxInt = j1 v2 := b.NewValue0(x1.Pos, OpS390XMOVHZload, typ.UInt16) @@ -16064,8 +15902,7 @@ func rewriteValueS390X_OpS390XORW(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(v.Pos, OpS390XMOVHZloadidx, typ.UInt16) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = i0 v0.Aux = s v0.AddArg3(p, idx, mem) @@ -16113,8 +15950,7 @@ func rewriteValueS390X_OpS390XORW(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(v.Pos, OpS390XMOVWZloadidx, typ.UInt32) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = i0 v0.Aux = s v0.AddArg3(p, idx, mem) @@ -16180,8 +16016,7 @@ func rewriteValueS390X_OpS390XORW(v *Value) bool { } b = mergePoint(b, x0, x1, y) v0 := b.NewValue0(v.Pos, OpS390XORW, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(v.Pos, OpS390XSLWconst, v.Type) v1.AuxInt = j1 v2 := b.NewValue0(v.Pos, OpS390XMOVHZloadidx, typ.UInt16) @@ -16228,8 +16063,7 @@ func rewriteValueS390X_OpS390XORW(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(x1.Pos, OpS390XMOVHZreg, typ.UInt64) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(x1.Pos, OpS390XMOVHBRload, typ.UInt16) v1.AuxInt = i0 v1.Aux = s @@ -16278,8 +16112,7 @@ func rewriteValueS390X_OpS390XORW(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(x1.Pos, OpS390XMOVWBRload, typ.UInt32) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = i0 v0.Aux = s v0.AddArg2(p, mem) @@ -16336,8 +16169,7 @@ func rewriteValueS390X_OpS390XORW(v *Value) bool { } b = mergePoint(b, x0, x1, y) v0 := b.NewValue0(x0.Pos, OpS390XORW, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(x0.Pos, OpS390XSLWconst, v.Type) v1.AuxInt = j0 v2 := b.NewValue0(x0.Pos, OpS390XMOVHZreg, typ.UInt64) @@ -16391,8 +16223,7 @@ func rewriteValueS390X_OpS390XORW(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(v.Pos, OpS390XMOVHZreg, typ.UInt64) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(v.Pos, OpS390XMOVHBRloadidx, typ.Int16) v1.AuxInt = i0 v1.Aux = s @@ -16450,8 +16281,7 @@ func rewriteValueS390X_OpS390XORW(v *Value) bool { } b = mergePoint(b, x0, x1) v0 := b.NewValue0(v.Pos, OpS390XMOVWBRloadidx, typ.Int32) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v0.AuxInt = i0 v0.Aux = s v0.AddArg3(p, idx, mem) @@ -16517,8 +16347,7 @@ func rewriteValueS390X_OpS390XORW(v *Value) bool { } b = mergePoint(b, x0, x1, y) v0 := b.NewValue0(v.Pos, OpS390XORW, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(v.Pos, OpS390XSLWconst, v.Type) v1.AuxInt = j0 v2 := b.NewValue0(v.Pos, OpS390XMOVHZreg, typ.UInt64) @@ -16549,9 +16378,7 @@ func rewriteValueS390X_OpS390XORWconst(v *Value) bool { if !(int32(c) == 0) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (ORWconst [c] _) @@ -16640,9 +16467,7 @@ func rewriteValueS390X_OpS390XORconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (ORconst [-1] _) @@ -17984,9 +17809,7 @@ func rewriteValueS390X_OpS390XSUBWconst(v *Value) bool { if !(int32(c) == 0) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (SUBWconst [c] x) @@ -18060,9 +17883,7 @@ func rewriteValueS390X_OpS390XSUBconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (SUBconst [c] x) @@ -18465,9 +18286,7 @@ func rewriteValueS390X_OpS390XXORWconst(v *Value) bool { if !(int32(c) == 0) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (XORWconst [c] (MOVDconst [d])) @@ -18544,9 +18363,7 @@ func rewriteValueS390X_OpS390XXORconst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (XORconst [c] (MOVDconst [d])) @@ -19064,9 +18881,7 @@ func rewriteValueS390X_OpZero(v *Value) bool { break } mem := v_1 - v.reset(OpCopy) - v.Type = mem.Type - v.AddArg(mem) + v.copyOf(mem) return true } // match: (Zero [1] destptr mem) diff --git a/src/cmd/compile/internal/ssa/rewriteWasm.go b/src/cmd/compile/internal/ssa/rewriteWasm.go index 81acd7e7c4..4b100b6c32 100644 --- a/src/cmd/compile/internal/ssa/rewriteWasm.go +++ b/src/cmd/compile/internal/ssa/rewriteWasm.go @@ -1853,9 +1853,7 @@ func rewriteValueWasm_OpMove(v *Value) bool { break } mem := v_2 - v.reset(OpCopy) - v.Type = mem.Type - v.AddArg(mem) + v.copyOf(mem) return true } // match: (Move [1] dst src mem) @@ -3099,9 +3097,7 @@ func rewriteValueWasm_OpSignExt16to32(v *Value) bool { break } _ = x.Args[1] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (SignExt16to32 x) @@ -3143,9 +3139,7 @@ func rewriteValueWasm_OpSignExt16to64(v *Value) bool { break } _ = x.Args[1] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (SignExt16to64 x) @@ -3187,9 +3181,7 @@ func rewriteValueWasm_OpSignExt32to64(v *Value) bool { break } _ = x.Args[1] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (SignExt32to64 x) @@ -3231,9 +3223,7 @@ func rewriteValueWasm_OpSignExt8to16(v *Value) bool { break } _ = x.Args[1] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (SignExt8to16 x) @@ -3275,9 +3265,7 @@ func rewriteValueWasm_OpSignExt8to32(v *Value) bool { break } _ = x.Args[1] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (SignExt8to32 x) @@ -3319,9 +3307,7 @@ func rewriteValueWasm_OpSignExt8to64(v *Value) bool { break } _ = x.Args[1] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (SignExt8to64 x) @@ -3596,9 +3582,7 @@ func rewriteValueWasm_OpWasmI64AddConst(v *Value) bool { break } x := v_0 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (I64AddConst [off] (LoweredAddr {sym} [off2] base)) @@ -4350,9 +4334,7 @@ func rewriteValueWasm_OpZero(v *Value) bool { break } mem := v_1 - v.reset(OpCopy) - v.Type = mem.Type - v.AddArg(mem) + v.copyOf(mem) return true } // match: (Zero [1] destptr mem) @@ -4610,9 +4592,7 @@ func rewriteValueWasm_OpZeroExt16to32(v *Value) bool { break } _ = x.Args[1] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (ZeroExt16to32 x) @@ -4638,9 +4618,7 @@ func rewriteValueWasm_OpZeroExt16to64(v *Value) bool { break } _ = x.Args[1] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (ZeroExt16to64 x) @@ -4666,9 +4644,7 @@ func rewriteValueWasm_OpZeroExt32to64(v *Value) bool { break } _ = x.Args[1] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (ZeroExt32to64 x) @@ -4694,9 +4670,7 @@ func rewriteValueWasm_OpZeroExt8to16(v *Value) bool { break } _ = x.Args[1] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (ZeroExt8to16 x) @@ -4722,9 +4696,7 @@ func rewriteValueWasm_OpZeroExt8to32(v *Value) bool { break } _ = x.Args[1] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (ZeroExt8to32 x) @@ -4750,9 +4722,7 @@ func rewriteValueWasm_OpZeroExt8to64(v *Value) bool { break } _ = x.Args[1] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (ZeroExt8to64 x) diff --git a/src/cmd/compile/internal/ssa/rewritedec.go b/src/cmd/compile/internal/ssa/rewritedec.go index a031fca4ad..08ed1fd129 100644 --- a/src/cmd/compile/internal/ssa/rewritedec.go +++ b/src/cmd/compile/internal/ssa/rewritedec.go @@ -41,9 +41,7 @@ func rewriteValuedec_OpComplexImag(v *Value) bool { break } imag := v_0.Args[1] - v.reset(OpCopy) - v.Type = imag.Type - v.AddArg(imag) + v.copyOf(imag) return true } return false @@ -58,9 +56,7 @@ func rewriteValuedec_OpComplexReal(v *Value) bool { } _ = v_0.Args[1] real := v_0.Args[0] - v.reset(OpCopy) - v.Type = real.Type - v.AddArg(real) + v.copyOf(real) return true } return false @@ -74,9 +70,7 @@ func rewriteValuedec_OpIData(v *Value) bool { break } data := v_0.Args[1] - v.reset(OpCopy) - v.Type = data.Type - v.AddArg(data) + v.copyOf(data) return true } return false @@ -91,9 +85,7 @@ func rewriteValuedec_OpITab(v *Value) bool { } _ = v_0.Args[1] itab := v_0.Args[0] - v.reset(OpCopy) - v.Type = itab.Type - v.AddArg(itab) + v.copyOf(itab) return true } return false @@ -225,9 +217,7 @@ func rewriteValuedec_OpSliceCap(v *Value) bool { break } cap := v_0.Args[2] - v.reset(OpCopy) - v.Type = cap.Type - v.AddArg(cap) + v.copyOf(cap) return true } return false @@ -242,9 +232,7 @@ func rewriteValuedec_OpSliceLen(v *Value) bool { } _ = v_0.Args[2] len := v_0.Args[1] - v.reset(OpCopy) - v.Type = len.Type - v.AddArg(len) + v.copyOf(len) return true } return false @@ -259,9 +247,7 @@ func rewriteValuedec_OpSlicePtr(v *Value) bool { } _ = v_0.Args[2] ptr := v_0.Args[0] - v.reset(OpCopy) - v.Type = ptr.Type - v.AddArg(ptr) + v.copyOf(ptr) return true } return false @@ -406,9 +392,7 @@ func rewriteValuedec_OpStringLen(v *Value) bool { break } len := v_0.Args[1] - v.reset(OpCopy) - v.Type = len.Type - v.AddArg(len) + v.copyOf(len) return true } return false @@ -423,9 +407,7 @@ func rewriteValuedec_OpStringPtr(v *Value) bool { } _ = v_0.Args[1] ptr := v_0.Args[0] - v.reset(OpCopy) - v.Type = ptr.Type - v.AddArg(ptr) + v.copyOf(ptr) return true } return false diff --git a/src/cmd/compile/internal/ssa/rewritedec64.go b/src/cmd/compile/internal/ssa/rewritedec64.go index 3beaf8e99f..08a045ccac 100644 --- a/src/cmd/compile/internal/ssa/rewritedec64.go +++ b/src/cmd/compile/internal/ssa/rewritedec64.go @@ -441,9 +441,7 @@ func rewriteValuedec64_OpInt64Hi(v *Value) bool { } _ = v_0.Args[1] hi := v_0.Args[0] - v.reset(OpCopy) - v.Type = hi.Type - v.AddArg(hi) + v.copyOf(hi) return true } return false @@ -457,9 +455,7 @@ func rewriteValuedec64_OpInt64Lo(v *Value) bool { break } lo := v_0.Args[1] - v.reset(OpCopy) - v.Type = lo.Type - v.AddArg(lo) + v.copyOf(lo) return true } return false @@ -2174,9 +2170,7 @@ func rewriteValuedec64_OpTrunc64to32(v *Value) bool { break } lo := v_0.Args[1] - v.reset(OpCopy) - v.Type = lo.Type - v.AddArg(lo) + v.copyOf(lo) return true } return false diff --git a/src/cmd/compile/internal/ssa/rewritegeneric.go b/src/cmd/compile/internal/ssa/rewritegeneric.go index 5a9dd7ed5b..0089df46b9 100644 --- a/src/cmd/compile/internal/ssa/rewritegeneric.go +++ b/src/cmd/compile/internal/ssa/rewritegeneric.go @@ -508,9 +508,7 @@ func rewriteValuegeneric_OpAdd16(v *Value) bool { continue } x := v_1 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } break @@ -763,9 +761,7 @@ func rewriteValuegeneric_OpAdd32(v *Value) bool { continue } x := v_1 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } break @@ -1041,9 +1037,7 @@ func rewriteValuegeneric_OpAdd64(v *Value) bool { continue } x := v_1 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } break @@ -1319,9 +1313,7 @@ func rewriteValuegeneric_OpAdd8(v *Value) bool { continue } x := v_1 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } break @@ -1627,9 +1619,7 @@ func rewriteValuegeneric_OpAnd16(v *Value) bool { if x != v_1 { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (And16 (Const16 [-1]) x) @@ -1640,9 +1630,7 @@ func rewriteValuegeneric_OpAnd16(v *Value) bool { continue } x := v_1 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } break @@ -1829,9 +1817,7 @@ func rewriteValuegeneric_OpAnd32(v *Value) bool { if x != v_1 { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (And32 (Const32 [-1]) x) @@ -1842,9 +1828,7 @@ func rewriteValuegeneric_OpAnd32(v *Value) bool { continue } x := v_1 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } break @@ -2031,9 +2015,7 @@ func rewriteValuegeneric_OpAnd64(v *Value) bool { if x != v_1 { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (And64 (Const64 [-1]) x) @@ -2044,9 +2026,7 @@ func rewriteValuegeneric_OpAnd64(v *Value) bool { continue } x := v_1 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } break @@ -2233,9 +2213,7 @@ func rewriteValuegeneric_OpAnd8(v *Value) bool { if x != v_1 { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (And8 (Const8 [-1]) x) @@ -2246,9 +2224,7 @@ func rewriteValuegeneric_OpAnd8(v *Value) bool { continue } x := v_1 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } break @@ -2361,9 +2337,7 @@ func rewriteValuegeneric_OpArraySelect(v *Value) bool { break } x := v_0.Args[0] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (ArraySelect [0] (IData x)) @@ -2388,9 +2362,7 @@ func rewriteValuegeneric_OpCom16(v *Value) bool { break } x := v_0.Args[0] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (Com16 (Const16 [c])) @@ -2435,9 +2407,7 @@ func rewriteValuegeneric_OpCom32(v *Value) bool { break } x := v_0.Args[0] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (Com32 (Const32 [c])) @@ -2482,9 +2452,7 @@ func rewriteValuegeneric_OpCom64(v *Value) bool { break } x := v_0.Args[0] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (Com64 (Const64 [c])) @@ -2529,9 +2497,7 @@ func rewriteValuegeneric_OpCom8(v *Value) bool { break } x := v_0.Args[0] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (Com8 (Const8 [c])) @@ -2755,9 +2721,7 @@ func rewriteValuegeneric_OpConvert(v *Value) bool { if mem != v_1 { break } - v.reset(OpCopy) - v.Type = ptr.Type - v.AddArg(ptr) + v.copyOf(ptr) return true } return false @@ -6803,9 +6767,7 @@ func rewriteValuegeneric_OpEqB(v *Value) bool { continue } x := v_1 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } break @@ -8894,9 +8856,7 @@ func rewriteValuegeneric_OpLoad(v *Value) bool { if !(isSamePtr(p1, p2) && t1.Compare(x.Type) == types.CMPeq && t1.Size() == sizeof(t2)) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (Load p1 (Store {t2} p2 _ (Store {t3} p3 x _))) @@ -8922,9 +8882,7 @@ func rewriteValuegeneric_OpLoad(v *Value) bool { if !(isSamePtr(p1, p3) && t1.Compare(x.Type) == types.CMPeq && t1.Size() == sizeof(t2) && disjoint(p3, sizeof(t3), p2, sizeof(t2))) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (Load p1 (Store {t2} p2 _ (Store {t3} p3 _ (Store {t4} p4 x _)))) @@ -8957,9 +8915,7 @@ func rewriteValuegeneric_OpLoad(v *Value) bool { if !(isSamePtr(p1, p4) && t1.Compare(x.Type) == types.CMPeq && t1.Size() == sizeof(t2) && disjoint(p4, sizeof(t4), p2, sizeof(t2)) && disjoint(p4, sizeof(t4), p3, sizeof(t3))) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (Load p1 (Store {t2} p2 _ (Store {t3} p3 _ (Store {t4} p4 _ (Store {t5} p5 x _))))) @@ -8999,9 +8955,7 @@ func rewriteValuegeneric_OpLoad(v *Value) bool { if !(isSamePtr(p1, p5) && t1.Compare(x.Type) == types.CMPeq && t1.Size() == sizeof(t2) && disjoint(p5, sizeof(t5), p2, sizeof(t2)) && disjoint(p5, sizeof(t5), p3, sizeof(t3)) && disjoint(p5, sizeof(t5), p4, sizeof(t4))) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (Load p1 (Store {t2} p2 (Const64 [x]) _)) @@ -9129,8 +9083,7 @@ func rewriteValuegeneric_OpLoad(v *Value) bool { } b = mem.Block v0 := b.NewValue0(v.Pos, OpLoad, t1) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(v.Pos, OpOffPtr, op.Type) v1.AuxInt = o1 v1.AddArg(p3) @@ -9173,8 +9126,7 @@ func rewriteValuegeneric_OpLoad(v *Value) bool { } b = mem.Block v0 := b.NewValue0(v.Pos, OpLoad, t1) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(v.Pos, OpOffPtr, op.Type) v1.AuxInt = o1 v1.AddArg(p4) @@ -9224,8 +9176,7 @@ func rewriteValuegeneric_OpLoad(v *Value) bool { } b = mem.Block v0 := b.NewValue0(v.Pos, OpLoad, t1) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(v.Pos, OpOffPtr, op.Type) v1.AuxInt = o1 v1.AddArg(p5) @@ -9282,8 +9233,7 @@ func rewriteValuegeneric_OpLoad(v *Value) bool { } b = mem.Block v0 := b.NewValue0(v.Pos, OpLoad, t1) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(v.Pos, OpOffPtr, op.Type) v1.AuxInt = o1 v1.AddArg(p6) @@ -9686,9 +9636,7 @@ func rewriteValuegeneric_OpLsh16x64(v *Value) bool { if v_1.Op != OpConst64 || v_1.AuxInt != 0 { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (Lsh16x64 (Const16 [0]) _) @@ -9903,9 +9851,7 @@ func rewriteValuegeneric_OpLsh32x64(v *Value) bool { if v_1.Op != OpConst64 || v_1.AuxInt != 0 { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (Lsh32x64 (Const32 [0]) _) @@ -10120,9 +10066,7 @@ func rewriteValuegeneric_OpLsh64x64(v *Value) bool { if v_1.Op != OpConst64 || v_1.AuxInt != 0 { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (Lsh64x64 (Const64 [0]) _) @@ -10337,9 +10281,7 @@ func rewriteValuegeneric_OpLsh8x64(v *Value) bool { if v_1.Op != OpConst64 || v_1.AuxInt != 0 { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (Lsh8x64 (Const8 [0]) _) @@ -10831,9 +10773,7 @@ func rewriteValuegeneric_OpMod64(v *Value) bool { if v_1.Op != OpConst64 || v_1.AuxInt != -1<<63 || !(isNonNegative(n)) { break } - v.reset(OpCopy) - v.Type = n.Type - v.AddArg(n) + v.copyOf(n) return true } // match: (Mod64 n (Const64 [c])) @@ -12451,9 +12391,7 @@ func rewriteValuegeneric_OpMove(v *Value) bool { if !(isSamePtr(dst, src)) { break } - v.reset(OpCopy) - v.Type = mem.Type - v.AddArg(mem) + v.copyOf(mem) return true } return false @@ -12489,9 +12427,7 @@ func rewriteValuegeneric_OpMul16(v *Value) bool { continue } x := v_1 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } break @@ -12633,9 +12569,7 @@ func rewriteValuegeneric_OpMul32(v *Value) bool { continue } x := v_1 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } break @@ -12809,9 +12743,7 @@ func rewriteValuegeneric_OpMul32F(v *Value) bool { if v_1.Op != OpConst32F || v_1.AuxInt != auxFrom64F(1) { continue } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } break @@ -12877,9 +12809,7 @@ func rewriteValuegeneric_OpMul64(v *Value) bool { continue } x := v_1 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } break @@ -13053,9 +12983,7 @@ func rewriteValuegeneric_OpMul64F(v *Value) bool { if v_1.Op != OpConst64F || v_1.AuxInt != auxFrom64F(1) { continue } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } break @@ -13121,9 +13049,7 @@ func rewriteValuegeneric_OpMul8(v *Value) bool { continue } x := v_1 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } break @@ -13267,9 +13193,7 @@ func rewriteValuegeneric_OpNeg16(v *Value) bool { break } x := v_0.Args[0] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (Neg16 (Com16 x)) @@ -13321,9 +13245,7 @@ func rewriteValuegeneric_OpNeg32(v *Value) bool { break } x := v_0.Args[0] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (Neg32 (Com32 x)) @@ -13394,9 +13316,7 @@ func rewriteValuegeneric_OpNeg64(v *Value) bool { break } x := v_0.Args[0] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (Neg64 (Com64 x)) @@ -13467,9 +13387,7 @@ func rewriteValuegeneric_OpNeg8(v *Value) bool { break } x := v_0.Args[0] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (Neg8 (Com8 x)) @@ -14311,9 +14229,7 @@ func rewriteValuegeneric_OpNeqB(v *Value) bool { continue } x := v_1 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } break @@ -14792,9 +14708,7 @@ func rewriteValuegeneric_OpNilCheck(v *Value) bool { if mem != v_1 { break } - v.reset(OpCopy) - v.Type = mem.Type - v.AddArg(mem) + v.copyOf(mem) return true } // match: (NilCheck (Load (OffPtr [c] (SP)) (StaticCall {sym} _)) _) @@ -15285,9 +15199,7 @@ func rewriteValuegeneric_OpOffPtr(v *Value) bool { if !(v.Type.Compare(p.Type) == types.CMPeq) { break } - v.reset(OpCopy) - v.Type = p.Type - v.AddArg(p) + v.copyOf(p) return true } return false @@ -15321,9 +15233,7 @@ func rewriteValuegeneric_OpOr16(v *Value) bool { if x != v_1 { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (Or16 (Const16 [0]) x) @@ -15334,9 +15244,7 @@ func rewriteValuegeneric_OpOr16(v *Value) bool { continue } x := v_1 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } break @@ -15503,9 +15411,7 @@ func rewriteValuegeneric_OpOr32(v *Value) bool { if x != v_1 { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (Or32 (Const32 [0]) x) @@ -15516,9 +15422,7 @@ func rewriteValuegeneric_OpOr32(v *Value) bool { continue } x := v_1 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } break @@ -15685,9 +15589,7 @@ func rewriteValuegeneric_OpOr64(v *Value) bool { if x != v_1 { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (Or64 (Const64 [0]) x) @@ -15698,9 +15600,7 @@ func rewriteValuegeneric_OpOr64(v *Value) bool { continue } x := v_1 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } break @@ -15867,9 +15767,7 @@ func rewriteValuegeneric_OpOr8(v *Value) bool { if x != v_1 { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (Or8 (Const8 [0]) x) @@ -15880,9 +15778,7 @@ func rewriteValuegeneric_OpOr8(v *Value) bool { continue } x := v_1 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } break @@ -16150,9 +16046,7 @@ func rewriteValuegeneric_OpRotateLeft16(v *Value) bool { if !(c%16 == 0) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -16172,9 +16066,7 @@ func rewriteValuegeneric_OpRotateLeft32(v *Value) bool { if !(c%32 == 0) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -16194,9 +16086,7 @@ func rewriteValuegeneric_OpRotateLeft64(v *Value) bool { if !(c%64 == 0) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -16216,9 +16106,7 @@ func rewriteValuegeneric_OpRotateLeft8(v *Value) bool { if !(c%8 == 0) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -16232,9 +16120,7 @@ func rewriteValuegeneric_OpRound32F(v *Value) bool { if x.Op != OpConst32F { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -16248,9 +16134,7 @@ func rewriteValuegeneric_OpRound64F(v *Value) bool { if x.Op != OpConst64F { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -16344,9 +16228,7 @@ func rewriteValuegeneric_OpRsh16Ux64(v *Value) bool { if v_1.Op != OpConst64 || v_1.AuxInt != 0 { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (Rsh16Ux64 (Const16 [0]) _) @@ -16600,9 +16482,7 @@ func rewriteValuegeneric_OpRsh16x64(v *Value) bool { if v_1.Op != OpConst64 || v_1.AuxInt != 0 { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (Rsh16x64 (Const16 [0]) _) @@ -16783,9 +16663,7 @@ func rewriteValuegeneric_OpRsh32Ux64(v *Value) bool { if v_1.Op != OpConst64 || v_1.AuxInt != 0 { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (Rsh32Ux64 (Const32 [0]) _) @@ -17057,9 +16935,7 @@ func rewriteValuegeneric_OpRsh32x64(v *Value) bool { if v_1.Op != OpConst64 || v_1.AuxInt != 0 { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (Rsh32x64 (Const32 [0]) _) @@ -17258,9 +17134,7 @@ func rewriteValuegeneric_OpRsh64Ux64(v *Value) bool { if v_1.Op != OpConst64 || v_1.AuxInt != 0 { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (Rsh64Ux64 (Const64 [0]) _) @@ -17550,9 +17424,7 @@ func rewriteValuegeneric_OpRsh64x64(v *Value) bool { if v_1.Op != OpConst64 || v_1.AuxInt != 0 { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (Rsh64x64 (Const64 [0]) _) @@ -17769,9 +17641,7 @@ func rewriteValuegeneric_OpRsh8Ux64(v *Value) bool { if v_1.Op != OpConst64 || v_1.AuxInt != 0 { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (Rsh8Ux64 (Const8 [0]) _) @@ -18006,9 +17876,7 @@ func rewriteValuegeneric_OpRsh8x64(v *Value) bool { if v_1.Op != OpConst64 || v_1.AuxInt != 0 { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (Rsh8x64 (Const8 [0]) _) @@ -18155,9 +18023,7 @@ func rewriteValuegeneric_OpSignExt16to32(v *Value) bool { if !(s >= 16) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -18195,9 +18061,7 @@ func rewriteValuegeneric_OpSignExt16to64(v *Value) bool { if !(s >= 48) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -18235,9 +18099,7 @@ func rewriteValuegeneric_OpSignExt32to64(v *Value) bool { if !(s >= 32) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -18275,9 +18137,7 @@ func rewriteValuegeneric_OpSignExt8to16(v *Value) bool { if !(s >= 8) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -18315,9 +18175,7 @@ func rewriteValuegeneric_OpSignExt8to32(v *Value) bool { if !(s >= 24) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -18355,9 +18213,7 @@ func rewriteValuegeneric_OpSignExt8to64(v *Value) bool { if !(s >= 56) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -18666,9 +18522,7 @@ func rewriteValuegeneric_OpStaticCall(v *Value) bool { if !(needRaceCleanup(sym, v)) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -18695,9 +18549,7 @@ func rewriteValuegeneric_OpStore(v *Value) bool { if mem != v_2 || !(isSamePtr(p1, p2) && t2.Size() == sizeof(t1)) { break } - v.reset(OpCopy) - v.Type = mem.Type - v.AddArg(mem) + v.copyOf(mem) return true } // match: (Store {t1} p1 (Load p2 oldmem) mem:(Store {t3} p3 _ oldmem)) @@ -18722,9 +18574,7 @@ func rewriteValuegeneric_OpStore(v *Value) bool { if oldmem != mem.Args[2] || !(isSamePtr(p1, p2) && t2.Size() == sizeof(t1) && disjoint(p1, sizeof(t1), p3, sizeof(t3))) { break } - v.reset(OpCopy) - v.Type = mem.Type - v.AddArg(mem) + v.copyOf(mem) return true } // match: (Store {t1} p1 (Load p2 oldmem) mem:(Store {t3} p3 _ (Store {t4} p4 _ oldmem))) @@ -18756,9 +18606,7 @@ func rewriteValuegeneric_OpStore(v *Value) bool { if oldmem != mem_2.Args[2] || !(isSamePtr(p1, p2) && t2.Size() == sizeof(t1) && disjoint(p1, sizeof(t1), p3, sizeof(t3)) && disjoint(p1, sizeof(t1), p4, sizeof(t4))) { break } - v.reset(OpCopy) - v.Type = mem.Type - v.AddArg(mem) + v.copyOf(mem) return true } // match: (Store {t1} p1 (Load p2 oldmem) mem:(Store {t3} p3 _ (Store {t4} p4 _ (Store {t5} p5 _ oldmem)))) @@ -18797,9 +18645,7 @@ func rewriteValuegeneric_OpStore(v *Value) bool { if oldmem != mem_2_2.Args[2] || !(isSamePtr(p1, p2) && t2.Size() == sizeof(t1) && disjoint(p1, sizeof(t1), p3, sizeof(t3)) && disjoint(p1, sizeof(t1), p4, sizeof(t4)) && disjoint(p1, sizeof(t1), p5, sizeof(t5))) { break } - v.reset(OpCopy) - v.Type = mem.Type - v.AddArg(mem) + v.copyOf(mem) return true } // match: (Store {t} (OffPtr [o] p1) x mem:(Zero [n] p2 _)) @@ -18823,9 +18669,7 @@ func rewriteValuegeneric_OpStore(v *Value) bool { if !(isConstZero(x) && o >= 0 && sizeof(t)+o <= n && isSamePtr(p1, p2)) { break } - v.reset(OpCopy) - v.Type = mem.Type - v.AddArg(mem) + v.copyOf(mem) return true } // match: (Store {t1} op:(OffPtr [o1] p1) x mem:(Store {t2} p2 _ (Zero [n] p3 _))) @@ -18857,9 +18701,7 @@ func rewriteValuegeneric_OpStore(v *Value) bool { if !(isConstZero(x) && o1 >= 0 && sizeof(t1)+o1 <= n && isSamePtr(p1, p3) && disjoint(op, sizeof(t1), p2, sizeof(t2))) { break } - v.reset(OpCopy) - v.Type = mem.Type - v.AddArg(mem) + v.copyOf(mem) return true } // match: (Store {t1} op:(OffPtr [o1] p1) x mem:(Store {t2} p2 _ (Store {t3} p3 _ (Zero [n] p4 _)))) @@ -18898,9 +18740,7 @@ func rewriteValuegeneric_OpStore(v *Value) bool { if !(isConstZero(x) && o1 >= 0 && sizeof(t1)+o1 <= n && isSamePtr(p1, p4) && disjoint(op, sizeof(t1), p2, sizeof(t2)) && disjoint(op, sizeof(t1), p3, sizeof(t3))) { break } - v.reset(OpCopy) - v.Type = mem.Type - v.AddArg(mem) + v.copyOf(mem) return true } // match: (Store {t1} op:(OffPtr [o1] p1) x mem:(Store {t2} p2 _ (Store {t3} p3 _ (Store {t4} p4 _ (Zero [n] p5 _))))) @@ -18946,9 +18786,7 @@ func rewriteValuegeneric_OpStore(v *Value) bool { if !(isConstZero(x) && o1 >= 0 && sizeof(t1)+o1 <= n && isSamePtr(p1, p5) && disjoint(op, sizeof(t1), p2, sizeof(t2)) && disjoint(op, sizeof(t1), p3, sizeof(t3)) && disjoint(op, sizeof(t1), p4, sizeof(t4))) { break } - v.reset(OpCopy) - v.Type = mem.Type - v.AddArg(mem) + v.copyOf(mem) return true } // match: (Store _ (StructMake0) mem) @@ -18958,9 +18796,7 @@ func rewriteValuegeneric_OpStore(v *Value) bool { break } mem := v_2 - v.reset(OpCopy) - v.Type = mem.Type - v.AddArg(mem) + v.copyOf(mem) return true } // match: (Store dst (StructMake1 f0) mem) @@ -19131,9 +18967,7 @@ func rewriteValuegeneric_OpStore(v *Value) bool { break } mem := v_2 - v.reset(OpCopy) - v.Type = mem.Type - v.AddArg(mem) + v.copyOf(mem) return true } // match: (Store dst (ArrayMake1 e) mem) @@ -19171,9 +19005,7 @@ func rewriteValuegeneric_OpStore(v *Value) bool { if mem != v_2 || !(isConstZero(x) && mem.Op == OpStaticCall && isSameSym(mem.Aux, "runtime.newobject") && c == config.ctxt.FixedFrameSize()+config.RegSize) { break } - v.reset(OpCopy) - v.Type = mem.Type - v.AddArg(mem) + v.copyOf(mem) return true } // match: (Store (OffPtr (Load (OffPtr [c] (SP)) mem)) x mem) @@ -19201,9 +19033,7 @@ func rewriteValuegeneric_OpStore(v *Value) bool { if mem != v_2 || !(isConstZero(x) && mem.Op == OpStaticCall && isSameSym(mem.Aux, "runtime.newobject") && c == config.ctxt.FixedFrameSize()+config.RegSize) { break } - v.reset(OpCopy) - v.Type = mem.Type - v.AddArg(mem) + v.copyOf(mem) return true } // match: (Store {t1} op1:(OffPtr [o1] p1) d1 m2:(Store {t2} op2:(OffPtr [0] p2) d2 m3:(Move [n] p3 _ mem))) @@ -19613,9 +19443,7 @@ func rewriteValuegeneric_OpStructSelect(v *Value) bool { break } x := v_0.Args[0] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (StructSelect [0] (StructMake2 x _)) @@ -19626,9 +19454,7 @@ func rewriteValuegeneric_OpStructSelect(v *Value) bool { } _ = v_0.Args[1] x := v_0.Args[0] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (StructSelect [1] (StructMake2 _ x)) @@ -19638,9 +19464,7 @@ func rewriteValuegeneric_OpStructSelect(v *Value) bool { break } x := v_0.Args[1] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (StructSelect [0] (StructMake3 x _ _)) @@ -19651,9 +19475,7 @@ func rewriteValuegeneric_OpStructSelect(v *Value) bool { } _ = v_0.Args[2] x := v_0.Args[0] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (StructSelect [1] (StructMake3 _ x _)) @@ -19664,9 +19486,7 @@ func rewriteValuegeneric_OpStructSelect(v *Value) bool { } _ = v_0.Args[2] x := v_0.Args[1] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (StructSelect [2] (StructMake3 _ _ x)) @@ -19676,9 +19496,7 @@ func rewriteValuegeneric_OpStructSelect(v *Value) bool { break } x := v_0.Args[2] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (StructSelect [0] (StructMake4 x _ _ _)) @@ -19689,9 +19507,7 @@ func rewriteValuegeneric_OpStructSelect(v *Value) bool { } _ = v_0.Args[3] x := v_0.Args[0] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (StructSelect [1] (StructMake4 _ x _ _)) @@ -19702,9 +19518,7 @@ func rewriteValuegeneric_OpStructSelect(v *Value) bool { } _ = v_0.Args[3] x := v_0.Args[1] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (StructSelect [2] (StructMake4 _ _ x _)) @@ -19715,9 +19529,7 @@ func rewriteValuegeneric_OpStructSelect(v *Value) bool { } _ = v_0.Args[3] x := v_0.Args[2] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (StructSelect [3] (StructMake4 _ _ _ x)) @@ -19727,9 +19539,7 @@ func rewriteValuegeneric_OpStructSelect(v *Value) bool { break } x := v_0.Args[3] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (StructSelect [i] x:(Load ptr mem)) @@ -19749,8 +19559,7 @@ func rewriteValuegeneric_OpStructSelect(v *Value) bool { } b = x.Block v0 := b.NewValue0(v.Pos, OpLoad, v.Type) - v.reset(OpCopy) - v.AddArg(v0) + v.copyOf(v0) v1 := b.NewValue0(v.Pos, OpOffPtr, v.Type.PtrTo()) v1.AuxInt = t.FieldOff(int(i)) v1.AddArg(ptr) @@ -19867,9 +19676,7 @@ func rewriteValuegeneric_OpSub16(v *Value) bool { if x != v_1 { continue } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } break @@ -19889,9 +19696,7 @@ func rewriteValuegeneric_OpSub16(v *Value) bool { if y != v_1 { continue } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } break @@ -20089,9 +19894,7 @@ func rewriteValuegeneric_OpSub32(v *Value) bool { if x != v_1 { continue } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } break @@ -20111,9 +19914,7 @@ func rewriteValuegeneric_OpSub32(v *Value) bool { if y != v_1 { continue } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } break @@ -20331,9 +20132,7 @@ func rewriteValuegeneric_OpSub64(v *Value) bool { if x != v_1 { continue } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } break @@ -20353,9 +20152,7 @@ func rewriteValuegeneric_OpSub64(v *Value) bool { if y != v_1 { continue } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } break @@ -20573,9 +20370,7 @@ func rewriteValuegeneric_OpSub8(v *Value) bool { if x != v_1 { continue } - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } break @@ -20595,9 +20390,7 @@ func rewriteValuegeneric_OpSub8(v *Value) bool { if y != v_1 { continue } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } break @@ -20718,9 +20511,7 @@ func rewriteValuegeneric_OpTrunc16to8(v *Value) bool { break } x := v_0.Args[0] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (Trunc16to8 (SignExt8to16 x)) @@ -20730,9 +20521,7 @@ func rewriteValuegeneric_OpTrunc16to8(v *Value) bool { break } x := v_0.Args[0] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (Trunc16to8 (And16 (Const16 [y]) x)) @@ -20793,9 +20582,7 @@ func rewriteValuegeneric_OpTrunc32to16(v *Value) bool { break } x := v_0.Args[0] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (Trunc32to16 (SignExt8to32 x)) @@ -20816,9 +20603,7 @@ func rewriteValuegeneric_OpTrunc32to16(v *Value) bool { break } x := v_0.Args[0] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (Trunc32to16 (And32 (Const32 [y]) x)) @@ -20868,9 +20653,7 @@ func rewriteValuegeneric_OpTrunc32to8(v *Value) bool { break } x := v_0.Args[0] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (Trunc32to8 (SignExt8to32 x)) @@ -20880,9 +20663,7 @@ func rewriteValuegeneric_OpTrunc32to8(v *Value) bool { break } x := v_0.Args[0] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (Trunc32to8 (And32 (Const32 [y]) x)) @@ -20943,9 +20724,7 @@ func rewriteValuegeneric_OpTrunc64to16(v *Value) bool { break } x := v_0.Args[0] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (Trunc64to16 (SignExt8to64 x)) @@ -20966,9 +20745,7 @@ func rewriteValuegeneric_OpTrunc64to16(v *Value) bool { break } x := v_0.Args[0] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (Trunc64to16 (And64 (Const64 [y]) x)) @@ -21040,9 +20817,7 @@ func rewriteValuegeneric_OpTrunc64to32(v *Value) bool { break } x := v_0.Args[0] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (Trunc64to32 (SignExt8to64 x)) @@ -21074,9 +20849,7 @@ func rewriteValuegeneric_OpTrunc64to32(v *Value) bool { break } x := v_0.Args[0] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (Trunc64to32 (And64 (Const64 [y]) x)) @@ -21126,9 +20899,7 @@ func rewriteValuegeneric_OpTrunc64to8(v *Value) bool { break } x := v_0.Args[0] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (Trunc64to8 (SignExt8to64 x)) @@ -21138,9 +20909,7 @@ func rewriteValuegeneric_OpTrunc64to8(v *Value) bool { break } x := v_0.Args[0] - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } // match: (Trunc64to8 (And64 (Const64 [y]) x)) @@ -21211,9 +20980,7 @@ func rewriteValuegeneric_OpXor16(v *Value) bool { continue } x := v_1 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } break @@ -21234,9 +21001,7 @@ func rewriteValuegeneric_OpXor16(v *Value) bool { continue } y := v_1_1 - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } } @@ -21346,9 +21111,7 @@ func rewriteValuegeneric_OpXor32(v *Value) bool { continue } x := v_1 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } break @@ -21369,9 +21132,7 @@ func rewriteValuegeneric_OpXor32(v *Value) bool { continue } y := v_1_1 - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } } @@ -21481,9 +21242,7 @@ func rewriteValuegeneric_OpXor64(v *Value) bool { continue } x := v_1 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } break @@ -21504,9 +21263,7 @@ func rewriteValuegeneric_OpXor64(v *Value) bool { continue } y := v_1_1 - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } } @@ -21616,9 +21373,7 @@ func rewriteValuegeneric_OpXor8(v *Value) bool { continue } x := v_1 - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } break @@ -21639,9 +21394,7 @@ func rewriteValuegeneric_OpXor8(v *Value) bool { continue } y := v_1_1 - v.reset(OpCopy) - v.Type = y.Type - v.AddArg(y) + v.copyOf(y) return true } } @@ -21732,9 +21485,7 @@ func rewriteValuegeneric_OpZero(v *Value) bool { if v_0_0_0.Op != OpSP || mem != v_1 || !(mem.Op == OpStaticCall && isSameSym(mem.Aux, "runtime.newobject") && c == config.ctxt.FixedFrameSize()+config.RegSize) { break } - v.reset(OpCopy) - v.Type = mem.Type - v.AddArg(mem) + v.copyOf(mem) return true } // match: (Zero {t1} [n] p1 store:(Store {t2} (OffPtr [o2] p2) _ mem)) @@ -21852,9 +21603,7 @@ func rewriteValuegeneric_OpZeroExt16to32(v *Value) bool { if !(s >= 16) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -21892,9 +21641,7 @@ func rewriteValuegeneric_OpZeroExt16to64(v *Value) bool { if !(s >= 48) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -21932,9 +21679,7 @@ func rewriteValuegeneric_OpZeroExt32to64(v *Value) bool { if !(s >= 32) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -21972,9 +21717,7 @@ func rewriteValuegeneric_OpZeroExt8to16(v *Value) bool { if !(s >= 8) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -22012,9 +21755,7 @@ func rewriteValuegeneric_OpZeroExt8to32(v *Value) bool { if !(s >= 24) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false @@ -22052,9 +21793,7 @@ func rewriteValuegeneric_OpZeroExt8to64(v *Value) bool { if !(s >= 56) { break } - v.reset(OpCopy) - v.Type = x.Type - v.AddArg(x) + v.copyOf(x) return true } return false diff --git a/src/cmd/compile/internal/ssa/value.go b/src/cmd/compile/internal/ssa/value.go index 8c5834d530..e5246779fc 100644 --- a/src/cmd/compile/internal/ssa/value.go +++ b/src/cmd/compile/internal/ssa/value.go @@ -310,17 +310,29 @@ func (v *Value) resetArgs() { v.Args = v.argstorage[:0] } +// reset is called from most rewrite rules. +// Allowing it to be inlined increases the size +// of cmd/compile by almost 10%, and slows it down. +//go:noinline func (v *Value) reset(op Op) { v.Op = op - if op != OpCopy && notStmtBoundary(op) { - // Special case for OpCopy because of how it is used in rewrite - v.Pos = v.Pos.WithNotStmt() - } v.resetArgs() v.AuxInt = 0 v.Aux = nil } +// copyOf is called from rewrite rules. +// It modifies v to be (Copy a). +//go:noinline +func (v *Value) copyOf(a *Value) { + v.Op = OpCopy + v.resetArgs() + v.AddArg(a) + v.AuxInt = 0 + v.Aux = nil + v.Type = a.Type +} + // copyInto makes a new value identical to v and adds it to the end of b. // unlike copyIntoWithXPos this does not check for v.Pos being a statement. func (v *Value) copyInto(b *Block) *Value { diff --git a/src/cmd/compile/internal/ssa/writebarrier.go b/src/cmd/compile/internal/ssa/writebarrier.go index d246fb333c..cebfbb8c9d 100644 --- a/src/cmd/compile/internal/ssa/writebarrier.go +++ b/src/cmd/compile/internal/ssa/writebarrier.go @@ -347,6 +347,7 @@ func writebarrier(f *Func) { bEnd.Values = append(bEnd.Values, last) last.Block = bEnd last.reset(OpPhi) + last.Pos = last.Pos.WithNotStmt() last.Type = types.TypeMem last.AddArg(memThen) last.AddArg(memElse) -- 2.50.0