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)