[dev.ssa] cmd/compile/internal/ssa/gen: move variable reset code into a function

Shaves about 3 lines per generated rule.

Change-Id: I94adc94ab79f90ac5fd033f896ece3b1eddf0f3d
Reviewed-on: https://go-review.googlesource.com/19197
Reviewed-by: Keith Randall <khr@golang.org>
diff --git a/src/cmd/compile/internal/ssa/rewritegeneric.go b/src/cmd/compile/internal/ssa/rewritegeneric.go
index 67f07e6..505ea77 100644
--- a/src/cmd/compile/internal/ssa/rewritegeneric.go
+++ b/src/cmd/compile/internal/ssa/rewritegeneric.go
@@ -311,10 +311,7 @@
 			goto end359c546ef662b7990116329cb30d6892
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConst16
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConst16)
 		v.AuxInt = c + d
 		return true
 	}
@@ -334,10 +331,7 @@
 		if !(x.Op != OpConst16) {
 			goto end89b69a89778f375b0ebbc683b0c63176
 		}
-		v.Op = OpAdd16
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpAdd16)
 		v0 := b.NewValue0(v.Line, OpConst16, t)
 		v0.AuxInt = c
 		v.AddArg(v0)
@@ -364,10 +358,7 @@
 			goto enda3edaa9a512bd1d7a95f002c890bfb88
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConst32
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConst32)
 		v.AuxInt = c + d
 		return true
 	}
@@ -387,10 +378,7 @@
 		if !(x.Op != OpConst32) {
 			goto end28a8c474bfa6968950dce0ed73b14a0b
 		}
-		v.Op = OpAdd32
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpAdd32)
 		v0 := b.NewValue0(v.Line, OpConst32, t)
 		v0.AuxInt = c
 		v.AddArg(v0)
@@ -417,10 +405,7 @@
 			goto end8c46df6f85a11cb1d594076b0e467908
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConst64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConst64)
 		v.AuxInt = c + d
 		return true
 	}
@@ -440,10 +425,7 @@
 		if !(x.Op != OpConst64) {
 			goto end39caa6cf1044f5c47ddbeb062d1a13bd
 		}
-		v.Op = OpAdd64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpAdd64)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = c
 		v.AddArg(v0)
@@ -470,10 +452,7 @@
 			goto end60c66721511a442aade8e4da2fb326bd
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConst8
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConst8)
 		v.AuxInt = c + d
 		return true
 	}
@@ -493,10 +472,7 @@
 		if !(x.Op != OpConst8) {
 			goto end8c2901b8d12fa5c37f190783b4db8df5
 		}
-		v.Op = OpAdd8
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpAdd8)
 		v0 := b.NewValue0(v.Line, OpConst8, t)
 		v0.AuxInt = c
 		v.AddArg(v0)
@@ -519,10 +495,7 @@
 		if v.Args[1] != x {
 			goto end69ed6ee2a4fb0491b56c17f3c1926b10
 		}
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = x.Type
 		v.AddArg(x)
 		return true
@@ -543,10 +516,7 @@
 		if v.Args[1] != x {
 			goto endbbe8c3c5b2ca8f013aa178d856f3a99c
 		}
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = x.Type
 		v.AddArg(x)
 		return true
@@ -567,10 +537,7 @@
 		if v.Args[1] != x {
 			goto endc9736bf24d2e5cd8d662e1bcf3164640
 		}
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = x.Type
 		v.AddArg(x)
 		return true
@@ -591,10 +558,7 @@
 		if v.Args[1] != x {
 			goto endeaf127389bd0d4b0e0e297830f8f463b
 		}
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = x.Type
 		v.AddArg(x)
 		return true
@@ -616,10 +580,7 @@
 		if !(v.Type.IsString()) {
 			goto end939d3f946bf61eb85b46b374e7afa9e9
 		}
-		v.Op = OpStringMake
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpStringMake)
 		v0 := b.NewValue0(v.Line, OpArg, config.fe.TypeBytePtr())
 		v0.Aux = n
 		v0.AuxInt = off
@@ -642,10 +603,7 @@
 		if !(v.Type.IsSlice()) {
 			goto endab4b93ad3b1cf55e5bf25d1fd9cd498e
 		}
-		v.Op = OpSliceMake
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpSliceMake)
 		v0 := b.NewValue0(v.Line, OpArg, config.fe.TypeBytePtr())
 		v0.Aux = n
 		v0.AuxInt = off
@@ -672,10 +630,7 @@
 		if !(v.Type.IsInterface()) {
 			goto end851de8e588a39e81b4e2aef06566bf3e
 		}
-		v.Op = OpIMake
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpIMake)
 		v0 := b.NewValue0(v.Line, OpArg, config.fe.TypeBytePtr())
 		v0.Aux = n
 		v0.AuxInt = off
@@ -698,10 +653,7 @@
 		if !(v.Type.IsComplex() && v.Type.Size() == 16) {
 			goto end0988fc6a62c810b2f4976cb6cf44387f
 		}
-		v.Op = OpComplexMake
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpComplexMake)
 		v0 := b.NewValue0(v.Line, OpArg, config.fe.TypeFloat64())
 		v0.Aux = n
 		v0.AuxInt = off
@@ -724,10 +676,7 @@
 		if !(v.Type.IsComplex() && v.Type.Size() == 8) {
 			goto enda348e93e0036873dd7089a2939c22e3e
 		}
-		v.Op = OpComplexMake
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpComplexMake)
 		v0 := b.NewValue0(v.Line, OpArg, config.fe.TypeFloat32())
 		v0.Aux = n
 		v0.AuxInt = off
@@ -749,10 +698,7 @@
 		if !(t.IsStruct() && t.NumFields() == 0 && config.fe.CanSSA(t)) {
 			goto ende233eeefa826638b0e541bcca531d701
 		}
-		v.Op = OpStructMake0
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpStructMake0)
 		return true
 	}
 	goto ende233eeefa826638b0e541bcca531d701
@@ -768,10 +714,7 @@
 		if !(t.IsStruct() && t.NumFields() == 1 && config.fe.CanSSA(t)) {
 			goto ende953e77a0617051dd3f7ad4d58c9ab37
 		}
-		v.Op = OpStructMake1
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpStructMake1)
 		v0 := b.NewValue0(v.Line, OpArg, t.FieldType(0))
 		v0.Aux = n
 		v0.AuxInt = off + t.FieldOff(0)
@@ -791,10 +734,7 @@
 		if !(t.IsStruct() && t.NumFields() == 2 && config.fe.CanSSA(t)) {
 			goto end9a008048978aabad9de0723212e60631
 		}
-		v.Op = OpStructMake2
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpStructMake2)
 		v0 := b.NewValue0(v.Line, OpArg, t.FieldType(0))
 		v0.Aux = n
 		v0.AuxInt = off + t.FieldOff(0)
@@ -818,10 +758,7 @@
 		if !(t.IsStruct() && t.NumFields() == 3 && config.fe.CanSSA(t)) {
 			goto end0196e61dbeebc6402f3aa1e9a182210b
 		}
-		v.Op = OpStructMake3
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpStructMake3)
 		v0 := b.NewValue0(v.Line, OpArg, t.FieldType(0))
 		v0.Aux = n
 		v0.AuxInt = off + t.FieldOff(0)
@@ -849,10 +786,7 @@
 		if !(t.IsStruct() && t.NumFields() == 4 && config.fe.CanSSA(t)) {
 			goto end6bc133c93e50cb14c2e6cc9401850738
 		}
-		v.Op = OpStructMake4
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpStructMake4)
 		v0 := b.NewValue0(v.Line, OpArg, t.FieldType(0))
 		v0.Aux = n
 		v0.AuxInt = off + t.FieldOff(0)
@@ -892,10 +826,7 @@
 		if !(b == v.Args[0].Block) {
 			goto end68b373270d9d605c420497edefaa71df
 		}
-		v.Op = OpLoad
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpLoad)
 		v0 := b.NewValue0(v.Line, OpPtrIndex, v.Type.PtrTo())
 		v0.AddArg(ptr)
 		v0.AddArg(idx)
@@ -919,10 +850,7 @@
 			goto end1ea17710dd4dd7ba4e710e0e4c7b5a56
 		}
 		x := v.Args[0].Args[0]
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = x.Type
 		v.AddArg(x)
 		return true
@@ -943,10 +871,7 @@
 			goto end9a04ed536496e292c27bef4414128cbf
 		}
 		x := v.Args[0].Args[0]
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = x.Type
 		v.AddArg(x)
 		return true
@@ -967,10 +892,7 @@
 			goto ended44e29d5968f0f7b86972b7bf417ab3
 		}
 		x := v.Args[0].Args[0]
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = x.Type
 		v.AddArg(x)
 		return true
@@ -991,10 +913,7 @@
 			goto end4d92ff3ba567d9afd38fc9ca113602ad
 		}
 		x := v.Args[0].Args[0]
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = x.Type
 		v.AddArg(x)
 		return true
@@ -1015,10 +934,7 @@
 			goto endec3009fd8727d03002021997936e091f
 		}
 		imag := v.Args[0].Args[1]
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = imag.Type
 		v.AddArg(imag)
 		return true
@@ -1039,10 +955,7 @@
 			goto end8db3e16bd59af1adaa4b734c8adcc71d
 		}
 		real := v.Args[0].Args[0]
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = real.Type
 		v.AddArg(real)
 		return true
@@ -1059,10 +972,7 @@
 	// cond:
 	// result: (IMake     (ConstNil <config.fe.TypeBytePtr()>)     (ConstNil <config.fe.TypeBytePtr()>))
 	{
-		v.Op = OpIMake
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpIMake)
 		v0 := b.NewValue0(v.Line, OpConstNil, config.fe.TypeBytePtr())
 		v.AddArg(v0)
 		v1 := b.NewValue0(v.Line, OpConstNil, config.fe.TypeBytePtr())
@@ -1084,10 +994,7 @@
 		if !(config.PtrSize == 4) {
 			goto end9ba6baf9c7247b1f5ba4099c0c3910ce
 		}
-		v.Op = OpSliceMake
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpSliceMake)
 		v0 := b.NewValue0(v.Line, OpConstNil, config.fe.TypeBytePtr())
 		v.AddArg(v0)
 		v1 := b.NewValue0(v.Line, OpConst32, config.fe.TypeInt())
@@ -1108,10 +1015,7 @@
 		if !(config.PtrSize == 8) {
 			goto endabee2aa6bd3e3261628f677221ad2640
 		}
-		v.Op = OpSliceMake
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpSliceMake)
 		v0 := b.NewValue0(v.Line, OpConstNil, config.fe.TypeBytePtr())
 		v.AddArg(v0)
 		v1 := b.NewValue0(v.Line, OpConst64, config.fe.TypeInt())
@@ -1138,10 +1042,7 @@
 		if !(config.PtrSize == 4 && s.(string) == "") {
 			goto end85d5f388ba947643af63cdc68c1155a5
 		}
-		v.Op = OpStringMake
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpStringMake)
 		v0 := b.NewValue0(v.Line, OpConstNil, config.fe.TypeBytePtr())
 		v.AddArg(v0)
 		v1 := b.NewValue0(v.Line, OpConst32, config.fe.TypeInt())
@@ -1160,10 +1061,7 @@
 		if !(config.PtrSize == 8 && s.(string) == "") {
 			goto endc807259a5ed2760fbbd3dc7386641343
 		}
-		v.Op = OpStringMake
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpStringMake)
 		v0 := b.NewValue0(v.Line, OpConstNil, config.fe.TypeBytePtr())
 		v.AddArg(v0)
 		v1 := b.NewValue0(v.Line, OpConst64, config.fe.TypeInt())
@@ -1182,10 +1080,7 @@
 		if !(config.PtrSize == 4 && s.(string) != "") {
 			goto end107a700a4519d18f418602421444ddb6
 		}
-		v.Op = OpStringMake
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpStringMake)
 		v0 := b.NewValue0(v.Line, OpAddr, config.fe.TypeBytePtr())
 		v0.Aux = config.fe.StringData(s.(string))
 		v1 := b.NewValue0(v.Line, OpSB, config.fe.TypeUintptr())
@@ -1207,10 +1102,7 @@
 		if !(config.PtrSize == 8 && s.(string) != "") {
 			goto end7ce9db29d17866f26d21e6e12f442e54
 		}
-		v.Op = OpStringMake
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpStringMake)
 		v0 := b.NewValue0(v.Line, OpAddr, config.fe.TypeBytePtr())
 		v0.Aux = config.fe.StringData(s.(string))
 		v1 := b.NewValue0(v.Line, OpSB, config.fe.TypeUintptr())
@@ -1245,10 +1137,7 @@
 		if v.Args[1] != mem {
 			goto endbbc9f1666b4d39a130e1b86f109e7c1b
 		}
-		v.Op = OpAdd64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpAdd64)
 		v.AddArg(ptr)
 		v.AddArg(off)
 		return true
@@ -1268,10 +1157,7 @@
 		if v.Args[1] != mem {
 			goto end98c5e0ca257eb216989171786f91b42d
 		}
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = ptr.Type
 		v.AddArg(ptr)
 		return true
@@ -1292,10 +1178,7 @@
 		if v.Args[1] != x {
 			goto end0c0fe5fdfba3821add3448fd3f1fc6b7
 		}
-		v.Op = OpConstBool
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConstBool)
 		v.AuxInt = 1
 		return true
 	}
@@ -1322,10 +1205,7 @@
 		}
 		d := v.Args[1].Args[0].AuxInt
 		x := v.Args[1].Args[1]
-		v.Op = OpEq16
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpEq16)
 		v0 := b.NewValue0(v.Line, OpConst16, t)
 		v0.AuxInt = c - d
 		v.AddArg(v0)
@@ -1348,10 +1228,7 @@
 		if !(x.Op != OpConst16) {
 			goto end5d89fe1eeb145f14e11578f41282c904
 		}
-		v.Op = OpEq16
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpEq16)
 		v0 := b.NewValue0(v.Line, OpConst16, t)
 		v0.AuxInt = c
 		v.AddArg(v0)
@@ -1373,10 +1250,7 @@
 			goto end4532e1d01c10d8906fe1da14f9dfaa88
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConstBool
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConstBool)
 		v.AuxInt = b2i(int16(c) == int16(d))
 		return true
 	}
@@ -1396,10 +1270,7 @@
 		if v.Args[1] != x {
 			goto end6da547ec4ee93d787434f3bda873e4a0
 		}
-		v.Op = OpConstBool
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConstBool)
 		v.AuxInt = 1
 		return true
 	}
@@ -1426,10 +1297,7 @@
 		}
 		d := v.Args[1].Args[0].AuxInt
 		x := v.Args[1].Args[1]
-		v.Op = OpEq32
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpEq32)
 		v0 := b.NewValue0(v.Line, OpConst32, t)
 		v0.AuxInt = c - d
 		v.AddArg(v0)
@@ -1452,10 +1320,7 @@
 		if !(x.Op != OpConst32) {
 			goto end0ca4ef4cf416ec3083d38667e263cf45
 		}
-		v.Op = OpEq32
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpEq32)
 		v0 := b.NewValue0(v.Line, OpConst32, t)
 		v0.AuxInt = c
 		v.AddArg(v0)
@@ -1477,10 +1342,7 @@
 			goto end00a2464e02c9ca00e8d0077acacbb5ad
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConstBool
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConstBool)
 		v.AuxInt = b2i(int32(c) == int32(d))
 		return true
 	}
@@ -1500,10 +1362,7 @@
 		if v.Args[1] != x {
 			goto endb1d471cc503ba8bb05440f01dbf33d81
 		}
-		v.Op = OpConstBool
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConstBool)
 		v.AuxInt = 1
 		return true
 	}
@@ -1530,10 +1389,7 @@
 		}
 		d := v.Args[1].Args[0].AuxInt
 		x := v.Args[1].Args[1]
-		v.Op = OpEq64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpEq64)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = c - d
 		v.AddArg(v0)
@@ -1556,10 +1412,7 @@
 		if !(x.Op != OpConst64) {
 			goto endc2ecf8254dc736e97c5815362d0b477d
 		}
-		v.Op = OpEq64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpEq64)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = c
 		v.AddArg(v0)
@@ -1581,10 +1434,7 @@
 			goto end405568a707dbbc86432e91f4ce7d97d7
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConstBool
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConstBool)
 		v.AuxInt = b2i(int64(c) == int64(d))
 		return true
 	}
@@ -1604,10 +1454,7 @@
 		if v.Args[1] != x {
 			goto enda66da0d3e7e51624ee46527727c48a9a
 		}
-		v.Op = OpConstBool
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConstBool)
 		v.AuxInt = 1
 		return true
 	}
@@ -1634,10 +1481,7 @@
 		}
 		d := v.Args[1].Args[0].AuxInt
 		x := v.Args[1].Args[1]
-		v.Op = OpEq8
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpEq8)
 		v0 := b.NewValue0(v.Line, OpConst8, t)
 		v0.AuxInt = c - d
 		v.AddArg(v0)
@@ -1660,10 +1504,7 @@
 		if !(x.Op != OpConst8) {
 			goto end70d0b569427b24e7a912a1aa8fab3b20
 		}
-		v.Op = OpEq8
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpEq8)
 		v0 := b.NewValue0(v.Line, OpConst8, t)
 		v0.AuxInt = c
 		v.AddArg(v0)
@@ -1685,10 +1526,7 @@
 			goto endd49f3700ba2d1e500d3ab4fa34fd090d
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConstBool
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConstBool)
 		v.AuxInt = b2i(int8(c) == int8(d))
 		return true
 	}
@@ -1706,10 +1544,7 @@
 	{
 		x := v.Args[0]
 		y := v.Args[1]
-		v.Op = OpEqPtr
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpEqPtr)
 		v0 := b.NewValue0(v.Line, OpITab, config.fe.TypeBytePtr())
 		v0.AddArg(x)
 		v.AddArg(v0)
@@ -1734,10 +1569,7 @@
 		if v.Args[1].Op != OpConstNil {
 			goto ende701cdb6a2c1fff4d4b283b7f8f6178b
 		}
-		v.Op = OpNot
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpNot)
 		v0 := b.NewValue0(v.Line, OpIsNonNil, config.fe.TypeBool())
 		v0.AddArg(p)
 		v.AddArg(v0)
@@ -1754,10 +1586,7 @@
 			goto end7cdc0d5c38fbffe6287c8928803b038e
 		}
 		p := v.Args[1]
-		v.Op = OpNot
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpNot)
 		v0 := b.NewValue0(v.Line, OpIsNonNil, config.fe.TypeBool())
 		v0.AddArg(p)
 		v.AddArg(v0)
@@ -1777,10 +1606,7 @@
 	{
 		x := v.Args[0]
 		y := v.Args[1]
-		v.Op = OpEqPtr
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpEqPtr)
 		v0 := b.NewValue0(v.Line, OpSlicePtr, config.fe.TypeBytePtr())
 		v0.AddArg(x)
 		v.AddArg(v0)
@@ -1809,10 +1635,7 @@
 			goto endbac100e9f1065e7d2ff863951f686f4b
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConstBool
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConstBool)
 		v.AuxInt = b2i(int16(c) >= int16(d))
 		return true
 	}
@@ -1836,10 +1659,7 @@
 			goto end11c6acbc5827fc9508424b0ffcf98b34
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConstBool
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConstBool)
 		v.AuxInt = b2i(uint16(c) >= uint16(d))
 		return true
 	}
@@ -1863,10 +1683,7 @@
 			goto end89ced97524ac75045911ca7cf6d44b28
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConstBool
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConstBool)
 		v.AuxInt = b2i(int32(c) >= int32(d))
 		return true
 	}
@@ -1890,10 +1707,7 @@
 			goto end92fbe85c7bbbf0db287932822bdde991
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConstBool
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConstBool)
 		v.AuxInt = b2i(uint32(c) >= uint32(d))
 		return true
 	}
@@ -1917,10 +1731,7 @@
 			goto end08a5a4bff12a346befe05ad561b080ac
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConstBool
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConstBool)
 		v.AuxInt = b2i(int64(c) >= int64(d))
 		return true
 	}
@@ -1944,10 +1755,7 @@
 			goto endd72c497b6cc2b01d43a39ec12d5010b3
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConstBool
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConstBool)
 		v.AuxInt = b2i(uint64(c) >= uint64(d))
 		return true
 	}
@@ -1971,10 +1779,7 @@
 			goto endea141068e84038c63cbdd87a8cb227d7
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConstBool
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConstBool)
 		v.AuxInt = b2i(int8(c) >= int8(d))
 		return true
 	}
@@ -1998,10 +1803,7 @@
 			goto end47c128ccdc54151a243c5856b0c52ef1
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConstBool
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConstBool)
 		v.AuxInt = b2i(uint8(c) >= uint8(d))
 		return true
 	}
@@ -2025,10 +1827,7 @@
 			goto end390bae49463ace4d703dd24e18920f66
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConstBool
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConstBool)
 		v.AuxInt = b2i(int16(c) > int16(d))
 		return true
 	}
@@ -2052,10 +1851,7 @@
 			goto end89ba3caf5c156fa6d908ac04c058187b
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConstBool
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConstBool)
 		v.AuxInt = b2i(uint16(c) > uint16(d))
 		return true
 	}
@@ -2079,10 +1875,7 @@
 			goto end86482a9dc6439e8470da5352dd74d68d
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConstBool
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConstBool)
 		v.AuxInt = b2i(int32(c) > int32(d))
 		return true
 	}
@@ -2106,10 +1899,7 @@
 			goto end1bf3f05c1e3599a969b8be1f5f6949e4
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConstBool
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConstBool)
 		v.AuxInt = b2i(uint32(c) > uint32(d))
 		return true
 	}
@@ -2133,10 +1923,7 @@
 			goto end96a82e893fda4882f23b6bab5f7fbff7
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConstBool
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConstBool)
 		v.AuxInt = b2i(int64(c) > int64(d))
 		return true
 	}
@@ -2160,10 +1947,7 @@
 			goto end2d8f5ad85fbffeb92af985a888f6fa69
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConstBool
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConstBool)
 		v.AuxInt = b2i(uint64(c) > uint64(d))
 		return true
 	}
@@ -2187,10 +1971,7 @@
 			goto ende221967c7516b7749109cf8343fe9c83
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConstBool
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConstBool)
 		v.AuxInt = b2i(int8(c) > int8(d))
 		return true
 	}
@@ -2214,10 +1995,7 @@
 			goto enda9398c8188156dd46689fa2939147525
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConstBool
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConstBool)
 		v.AuxInt = b2i(uint8(c) > uint8(d))
 		return true
 	}
@@ -2237,10 +2015,7 @@
 			goto endbfa1bb944cdc07933effb16a35152e12
 		}
 		data := v.Args[0].Args[1]
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = data.Type
 		v.AddArg(data)
 		return true
@@ -2261,10 +2036,7 @@
 			goto endfcbb9414a776ff9c8512da3e0f4d8fbd
 		}
 		itab := v.Args[0].Args[0]
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = itab.Type
 		v.AddArg(itab)
 		return true
@@ -2289,10 +2061,7 @@
 			goto endf0a2ecfe84b293de6ff0919e45d19d9d
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConstBool
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConstBool)
 		v.AuxInt = b2i(inBounds32(c, d))
 		return true
 	}
@@ -2311,10 +2080,7 @@
 			goto end4b406f402c135f50f71effcc904ecb2b
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConstBool
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConstBool)
 		v.AuxInt = b2i(inBounds64(c, d))
 		return true
 	}
@@ -2338,10 +2104,7 @@
 			goto end5e84a230c28cac987437cfed8f432cc3
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConstBool
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConstBool)
 		v.AuxInt = b2i(sliceInBounds32(c, d))
 		return true
 	}
@@ -2360,10 +2123,7 @@
 			goto end3880a6fe20ad4152e98f76d84da233a7
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConstBool
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConstBool)
 		v.AuxInt = b2i(sliceInBounds64(c, d))
 		return true
 	}
@@ -2387,10 +2147,7 @@
 			goto end76b1c51f9b7cd7ee2f75b9f7057569de
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConstBool
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConstBool)
 		v.AuxInt = b2i(int16(c) <= int16(d))
 		return true
 	}
@@ -2414,10 +2171,7 @@
 			goto endf010fdf7f2c438ec18c33f493dd062aa
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConstBool
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConstBool)
 		v.AuxInt = b2i(uint16(c) <= uint16(d))
 		return true
 	}
@@ -2441,10 +2195,7 @@
 			goto end6c7d61cfd188680bea8a5e23f08ca1de
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConstBool
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConstBool)
 		v.AuxInt = b2i(int32(c) <= int32(d))
 		return true
 	}
@@ -2468,10 +2219,7 @@
 			goto end4363555333511ee9b649b36f1a0ba34e
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConstBool
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConstBool)
 		v.AuxInt = b2i(uint32(c) <= uint32(d))
 		return true
 	}
@@ -2495,10 +2243,7 @@
 			goto enddc865cd7ac2093abc7617bedbf371c22
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConstBool
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConstBool)
 		v.AuxInt = b2i(int64(c) <= int64(d))
 		return true
 	}
@@ -2522,10 +2267,7 @@
 			goto end412eadb168738ba92f3f0705d4495305
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConstBool
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConstBool)
 		v.AuxInt = b2i(uint64(c) <= uint64(d))
 		return true
 	}
@@ -2549,10 +2291,7 @@
 			goto endb5a459da8e18c40abc0c7a20e71d0187
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConstBool
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConstBool)
 		v.AuxInt = b2i(int8(c) <= int8(d))
 		return true
 	}
@@ -2576,10 +2315,7 @@
 			goto endd6622d55fcdf3fa7b08e7511cd3b7d85
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConstBool
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConstBool)
 		v.AuxInt = b2i(uint8(c) <= uint8(d))
 		return true
 	}
@@ -2603,10 +2339,7 @@
 			goto end0dc915d089f05e79589ebb5c498cc360
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConstBool
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConstBool)
 		v.AuxInt = b2i(int16(c) < int16(d))
 		return true
 	}
@@ -2630,10 +2363,7 @@
 			goto endd2bb8249443788690946fc184631a00a
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConstBool
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConstBool)
 		v.AuxInt = b2i(uint16(c) < uint16(d))
 		return true
 	}
@@ -2657,10 +2387,7 @@
 			goto endc86f65e499688809d414f03539bec5bf
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConstBool
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConstBool)
 		v.AuxInt = b2i(int32(c) < int32(d))
 		return true
 	}
@@ -2684,10 +2411,7 @@
 			goto end2cc68b5247b1afb90a9d3923b28ff247
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConstBool
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConstBool)
 		v.AuxInt = b2i(uint32(c) < uint32(d))
 		return true
 	}
@@ -2711,10 +2435,7 @@
 			goto end505de73cd15125dbb59b05d8975d3128
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConstBool
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConstBool)
 		v.AuxInt = b2i(int64(c) < int64(d))
 		return true
 	}
@@ -2738,10 +2459,7 @@
 			goto endeb249ef36416cd1abf4f807026c059cd
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConstBool
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConstBool)
 		v.AuxInt = b2i(uint64(c) < uint64(d))
 		return true
 	}
@@ -2765,10 +2483,7 @@
 			goto endef134de03bc8537ac1f38d5eccff7673
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConstBool
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConstBool)
 		v.AuxInt = b2i(int8(c) < int8(d))
 		return true
 	}
@@ -2792,10 +2507,7 @@
 			goto end263ecdc279924bff8771dd1ac3f42222
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConstBool
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConstBool)
 		v.AuxInt = b2i(uint8(c) < uint8(d))
 		return true
 	}
@@ -2815,10 +2527,7 @@
 		if !(t.IsStruct() && t.NumFields() == 0 && config.fe.CanSSA(t)) {
 			goto end8d25f5c949948132921b6be29ede6bde
 		}
-		v.Op = OpStructMake0
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpStructMake0)
 		return true
 	}
 	goto end8d25f5c949948132921b6be29ede6bde
@@ -2834,10 +2543,7 @@
 		if !(t.IsStruct() && t.NumFields() == 1 && config.fe.CanSSA(t)) {
 			goto endfe908e5a8617dd39df2f9b2b92e93ae5
 		}
-		v.Op = OpStructMake1
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpStructMake1)
 		v0 := b.NewValue0(v.Line, OpLoad, t.FieldType(0))
 		v0.AddArg(ptr)
 		v0.AddArg(mem)
@@ -2857,10 +2563,7 @@
 		if !(t.IsStruct() && t.NumFields() == 2 && config.fe.CanSSA(t)) {
 			goto end20e20e64004b765012cfb80c575ef27b
 		}
-		v.Op = OpStructMake2
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpStructMake2)
 		v0 := b.NewValue0(v.Line, OpLoad, t.FieldType(0))
 		v0.AddArg(ptr)
 		v0.AddArg(mem)
@@ -2887,10 +2590,7 @@
 		if !(t.IsStruct() && t.NumFields() == 3 && config.fe.CanSSA(t)) {
 			goto ende612bf71067ed67541735cdc8b5a3288
 		}
-		v.Op = OpStructMake3
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpStructMake3)
 		v0 := b.NewValue0(v.Line, OpLoad, t.FieldType(0))
 		v0.AddArg(ptr)
 		v0.AddArg(mem)
@@ -2924,10 +2624,7 @@
 		if !(t.IsStruct() && t.NumFields() == 4 && config.fe.CanSSA(t)) {
 			goto end46c66c64d9030f2cc9a7a767f67953d1
 		}
-		v.Op = OpStructMake4
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpStructMake4)
 		v0 := b.NewValue0(v.Line, OpLoad, t.FieldType(0))
 		v0.AddArg(ptr)
 		v0.AddArg(mem)
@@ -2968,10 +2665,7 @@
 		if !(t.IsComplex() && t.Size() == 8) {
 			goto end665854b31b828893d90b36bb462ff381
 		}
-		v.Op = OpComplexMake
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpComplexMake)
 		v0 := b.NewValue0(v.Line, OpLoad, config.fe.TypeFloat32())
 		v0.AddArg(ptr)
 		v0.AddArg(mem)
@@ -2998,10 +2692,7 @@
 		if !(t.IsComplex() && t.Size() == 16) {
 			goto end1b106f89e0e3e26c613b957a7c98d8ad
 		}
-		v.Op = OpComplexMake
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpComplexMake)
 		v0 := b.NewValue0(v.Line, OpLoad, config.fe.TypeFloat64())
 		v0.AddArg(ptr)
 		v0.AddArg(mem)
@@ -3028,10 +2719,7 @@
 		if !(t.IsString()) {
 			goto enddd15a6f3d53a6ce7a19d4e181dd1c13a
 		}
-		v.Op = OpStringMake
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpStringMake)
 		v0 := b.NewValue0(v.Line, OpLoad, config.fe.TypeBytePtr())
 		v0.AddArg(ptr)
 		v0.AddArg(mem)
@@ -3058,10 +2746,7 @@
 		if !(t.IsSlice()) {
 			goto end65e8b0055aa7491b9b6066d9fe1b2c13
 		}
-		v.Op = OpSliceMake
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpSliceMake)
 		v0 := b.NewValue0(v.Line, OpLoad, config.fe.TypeBytePtr())
 		v0.AddArg(ptr)
 		v0.AddArg(mem)
@@ -3095,10 +2780,7 @@
 		if !(t.IsInterface()) {
 			goto end12671c83ebe3ccbc8e53383765ee7675
 		}
-		v.Op = OpIMake
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpIMake)
 		v0 := b.NewValue0(v.Line, OpLoad, config.fe.TypeBytePtr())
 		v0.AddArg(ptr)
 		v0.AddArg(mem)
@@ -3130,10 +2812,7 @@
 			goto end2f5aa78b30ebd2471e8d03a307923b06
 		}
 		c := v.Args[1].AuxInt
-		v.Op = OpLsh16x64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpLsh16x64)
 		v.AddArg(x)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = int64(uint16(c))
@@ -3158,10 +2837,7 @@
 			goto endedeb000c8c97090261a47f08a2ff17e4
 		}
 		c := v.Args[1].AuxInt
-		v.Op = OpLsh16x64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpLsh16x64)
 		v.AddArg(x)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = int64(uint32(c))
@@ -3188,10 +2864,7 @@
 			goto endc9f0d91f3da4bdd46a634a62549810e0
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConst16
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConst16)
 		v.AuxInt = int64(int16(c) << uint64(d))
 		return true
 	}
@@ -3209,10 +2882,7 @@
 		if v.Args[1].AuxInt != 0 {
 			goto end7ecc343739fab9b50a0bdff6e9d121e6
 		}
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = x.Type
 		v.AddArg(x)
 		return true
@@ -3231,10 +2901,7 @@
 		if !(uint64(c) >= 16) {
 			goto end1d2c74d359df9d89b16c4f658a231dfe
 		}
-		v.Op = OpConst64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConst64)
 		v.AuxInt = 0
 		return true
 	}
@@ -3261,10 +2928,7 @@
 		if !(!uaddOvf(c, d)) {
 			goto end26a91e42735a02a30e94a998f54372dd
 		}
-		v.Op = OpLsh16x64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpLsh16x64)
 		v.AddArg(x)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = c + d
@@ -3289,10 +2953,7 @@
 			goto endce2401b8a6c6190fe81d77e2d562a10c
 		}
 		c := v.Args[1].AuxInt
-		v.Op = OpLsh16x64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpLsh16x64)
 		v.AddArg(x)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = int64(uint8(c))
@@ -3317,10 +2978,7 @@
 			goto end7205eb3e315971143ac5584d07045570
 		}
 		c := v.Args[1].AuxInt
-		v.Op = OpLsh32x64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpLsh32x64)
 		v.AddArg(x)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = int64(uint16(c))
@@ -3345,10 +3003,7 @@
 			goto endc1a330b287199c80228e665a53881298
 		}
 		c := v.Args[1].AuxInt
-		v.Op = OpLsh32x64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpLsh32x64)
 		v.AddArg(x)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = int64(uint32(c))
@@ -3375,10 +3030,7 @@
 			goto end5896bd9a3fe78f1e1712563642d33254
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConst32
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConst32)
 		v.AuxInt = int64(int32(c) << uint64(d))
 		return true
 	}
@@ -3396,10 +3048,7 @@
 		if v.Args[1].AuxInt != 0 {
 			goto endd9ce9639a91b11e601823be3d4d6c209
 		}
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = x.Type
 		v.AddArg(x)
 		return true
@@ -3418,10 +3067,7 @@
 		if !(uint64(c) >= 32) {
 			goto end81247a2423f489be15859d3930738fdf
 		}
-		v.Op = OpConst64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConst64)
 		v.AuxInt = 0
 		return true
 	}
@@ -3448,10 +3094,7 @@
 		if !(!uaddOvf(c, d)) {
 			goto endf96a7c9571797fe61a5b63a4923d7e6e
 		}
-		v.Op = OpLsh32x64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpLsh32x64)
 		v.AddArg(x)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = c + d
@@ -3476,10 +3119,7 @@
 			goto end1759d7c25a5bcda288e34d1d197c0b8f
 		}
 		c := v.Args[1].AuxInt
-		v.Op = OpLsh32x64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpLsh32x64)
 		v.AddArg(x)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = int64(uint8(c))
@@ -3504,10 +3144,7 @@
 			goto enda649fbb5e14490c9eea9616550a76b5c
 		}
 		c := v.Args[1].AuxInt
-		v.Op = OpLsh64x64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpLsh64x64)
 		v.AddArg(x)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = int64(uint16(c))
@@ -3532,10 +3169,7 @@
 			goto end40069675cde851a63cce81b1b02751f9
 		}
 		c := v.Args[1].AuxInt
-		v.Op = OpLsh64x64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpLsh64x64)
 		v.AddArg(x)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = int64(uint32(c))
@@ -3562,10 +3196,7 @@
 			goto end9c157a23e021f659f1568566435ed57b
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConst64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConst64)
 		v.AuxInt = c << uint64(d)
 		return true
 	}
@@ -3583,10 +3214,7 @@
 		if v.Args[1].AuxInt != 0 {
 			goto end9f18ca0556dbb4b50fe888273fab20ca
 		}
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = x.Type
 		v.AddArg(x)
 		return true
@@ -3605,10 +3233,7 @@
 		if !(uint64(c) >= 64) {
 			goto end33da2e0ce5ca3e0554564477ef422402
 		}
-		v.Op = OpConst64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConst64)
 		v.AuxInt = 0
 		return true
 	}
@@ -3635,10 +3260,7 @@
 		if !(!uaddOvf(c, d)) {
 			goto end001c62ee580a700ec7b07ccaa3740ac2
 		}
-		v.Op = OpLsh64x64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpLsh64x64)
 		v.AddArg(x)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = c + d
@@ -3663,10 +3285,7 @@
 			goto end4d9224069abdade8e405df343938d932
 		}
 		c := v.Args[1].AuxInt
-		v.Op = OpLsh64x64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpLsh64x64)
 		v.AddArg(x)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = int64(uint8(c))
@@ -3691,10 +3310,7 @@
 			goto end0ad4a82e2eb4c7ca7407d79ec3aa5142
 		}
 		c := v.Args[1].AuxInt
-		v.Op = OpLsh8x64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpLsh8x64)
 		v.AddArg(x)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = int64(uint16(c))
@@ -3719,10 +3335,7 @@
 			goto enddaacda113ecc79fe0621fd22ebc548dd
 		}
 		c := v.Args[1].AuxInt
-		v.Op = OpLsh8x64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpLsh8x64)
 		v.AddArg(x)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = int64(uint32(c))
@@ -3749,10 +3362,7 @@
 			goto endbc3297ea9642b97eb71f0a9735048d7b
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConst8
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConst8)
 		v.AuxInt = int64(int8(c) << uint64(d))
 		return true
 	}
@@ -3770,10 +3380,7 @@
 		if v.Args[1].AuxInt != 0 {
 			goto end715f3db41cccf963e25a20c33f618a04
 		}
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = x.Type
 		v.AddArg(x)
 		return true
@@ -3792,10 +3399,7 @@
 		if !(uint64(c) >= 8) {
 			goto endb6749df4d0cdc0cd9acc627187d73488
 		}
-		v.Op = OpConst64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConst64)
 		v.AuxInt = 0
 		return true
 	}
@@ -3822,10 +3426,7 @@
 		if !(!uaddOvf(c, d)) {
 			goto end73a4878b6bbd21c9e22fb99226ef947e
 		}
-		v.Op = OpLsh8x64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpLsh8x64)
 		v.AddArg(x)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = c + d
@@ -3850,10 +3451,7 @@
 			goto end8b770597435467b0c96014624d522b33
 		}
 		c := v.Args[1].AuxInt
-		v.Op = OpLsh8x64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpLsh8x64)
 		v.AddArg(x)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = int64(uint8(c))
@@ -3880,10 +3478,7 @@
 			goto ende8dd468add3015aea24531cf3c89ccb7
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConst16
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConst16)
 		v.AuxInt = c * d
 		return true
 	}
@@ -3907,10 +3502,7 @@
 			goto end60b4523099fa7b55e2e872e05bd497a7
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConst32
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConst32)
 		v.AuxInt = c * d
 		return true
 	}
@@ -3934,10 +3526,7 @@
 			goto end7aea1048b5d1230974b97f17238380ae
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConst64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConst64)
 		v.AuxInt = c * d
 		return true
 	}
@@ -3961,10 +3550,7 @@
 			goto end2f1952fd654c4a62ff00511041728809
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConst8
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConst8)
 		v.AuxInt = c * d
 		return true
 	}
@@ -3984,10 +3570,7 @@
 		if v.Args[1] != x {
 			goto ende76a50b524aeb16c7aeccf5f5cc60c06
 		}
-		v.Op = OpConstBool
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConstBool)
 		v.AuxInt = 0
 		return true
 	}
@@ -4014,10 +3597,7 @@
 		}
 		d := v.Args[1].Args[0].AuxInt
 		x := v.Args[1].Args[1]
-		v.Op = OpNeq16
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpNeq16)
 		v0 := b.NewValue0(v.Line, OpConst16, t)
 		v0.AuxInt = c - d
 		v.AddArg(v0)
@@ -4040,10 +3620,7 @@
 		if !(x.Op != OpConst16) {
 			goto end0e45958f29e87997f632248aa9ee97e0
 		}
-		v.Op = OpNeq16
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpNeq16)
 		v0 := b.NewValue0(v.Line, OpConst16, t)
 		v0.AuxInt = c
 		v.AddArg(v0)
@@ -4065,10 +3642,7 @@
 			goto end6302c9b645bb191982d28c2f846904d6
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConstBool
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConstBool)
 		v.AuxInt = b2i(int16(c) != int16(d))
 		return true
 	}
@@ -4088,10 +3662,7 @@
 		if v.Args[1] != x {
 			goto end3713a608cffd29b40ff7c3b3f2585cbb
 		}
-		v.Op = OpConstBool
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConstBool)
 		v.AuxInt = 0
 		return true
 	}
@@ -4118,10 +3689,7 @@
 		}
 		d := v.Args[1].Args[0].AuxInt
 		x := v.Args[1].Args[1]
-		v.Op = OpNeq32
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpNeq32)
 		v0 := b.NewValue0(v.Line, OpConst32, t)
 		v0.AuxInt = c - d
 		v.AddArg(v0)
@@ -4144,10 +3712,7 @@
 		if !(x.Op != OpConst32) {
 			goto end5376f9ab90e282450f49011d0e0ce236
 		}
-		v.Op = OpNeq32
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpNeq32)
 		v0 := b.NewValue0(v.Line, OpConst32, t)
 		v0.AuxInt = c
 		v.AddArg(v0)
@@ -4169,10 +3734,7 @@
 			goto endf9f3d0814854d2d0879d331e9bdfcae2
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConstBool
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConstBool)
 		v.AuxInt = b2i(int32(c) != int32(d))
 		return true
 	}
@@ -4192,10 +3754,7 @@
 		if v.Args[1] != x {
 			goto end3601ad382705ea12b79d2008c1e5725c
 		}
-		v.Op = OpConstBool
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConstBool)
 		v.AuxInt = 0
 		return true
 	}
@@ -4222,10 +3781,7 @@
 		}
 		d := v.Args[1].Args[0].AuxInt
 		x := v.Args[1].Args[1]
-		v.Op = OpNeq64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpNeq64)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = c - d
 		v.AddArg(v0)
@@ -4248,10 +3804,7 @@
 		if !(x.Op != OpConst64) {
 			goto end0936a57de20373ca6cacb9506ddde708
 		}
-		v.Op = OpNeq64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpNeq64)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = c
 		v.AddArg(v0)
@@ -4273,10 +3826,7 @@
 			goto endf07433ecd3c150b1b75e943aa44a7203
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConstBool
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConstBool)
 		v.AuxInt = b2i(int64(c) != int64(d))
 		return true
 	}
@@ -4296,10 +3846,7 @@
 		if v.Args[1] != x {
 			goto end09a0deaf3c42627d0d2d3efa96e30745
 		}
-		v.Op = OpConstBool
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConstBool)
 		v.AuxInt = 0
 		return true
 	}
@@ -4326,10 +3873,7 @@
 		}
 		d := v.Args[1].Args[0].AuxInt
 		x := v.Args[1].Args[1]
-		v.Op = OpNeq8
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpNeq8)
 		v0 := b.NewValue0(v.Line, OpConst8, t)
 		v0.AuxInt = c - d
 		v.AddArg(v0)
@@ -4352,10 +3896,7 @@
 		if !(x.Op != OpConst8) {
 			goto end04dc0ae2b08cf0447b50e5b8ef469252
 		}
-		v.Op = OpNeq8
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpNeq8)
 		v0 := b.NewValue0(v.Line, OpConst8, t)
 		v0.AuxInt = c
 		v.AddArg(v0)
@@ -4377,10 +3918,7 @@
 			goto end72ebdaf2de9b3aa57cf0cb8e068b5f9c
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConstBool
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConstBool)
 		v.AuxInt = b2i(int8(c) != int8(d))
 		return true
 	}
@@ -4398,10 +3936,7 @@
 	{
 		x := v.Args[0]
 		y := v.Args[1]
-		v.Op = OpNeqPtr
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpNeqPtr)
 		v0 := b.NewValue0(v.Line, OpITab, config.fe.TypeBytePtr())
 		v0.AddArg(x)
 		v.AddArg(v0)
@@ -4426,10 +3961,7 @@
 		if v.Args[1].Op != OpConstNil {
 			goto endba798520b4d41172b110347158c44791
 		}
-		v.Op = OpIsNonNil
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpIsNonNil)
 		v.AddArg(p)
 		return true
 	}
@@ -4444,10 +3976,7 @@
 			goto enddd95e9c3606d9fd48034f1a703561e45
 		}
 		p := v.Args[1]
-		v.Op = OpIsNonNil
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpIsNonNil)
 		v.AddArg(p)
 		return true
 	}
@@ -4465,10 +3994,7 @@
 	{
 		x := v.Args[0]
 		y := v.Args[1]
-		v.Op = OpNeqPtr
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpNeqPtr)
 		v0 := b.NewValue0(v.Line, OpSlicePtr, config.fe.TypeBytePtr())
 		v0.AddArg(x)
 		v.AddArg(v0)
@@ -4493,10 +4019,7 @@
 		if v.Args[1] != x {
 			goto end47a2f25fd31a76807aced3e2b126acdc
 		}
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = x.Type
 		v.AddArg(x)
 		return true
@@ -4517,10 +4040,7 @@
 		if v.Args[1] != x {
 			goto end231e283e568e90bd9a3e6a4fa328c8a4
 		}
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = x.Type
 		v.AddArg(x)
 		return true
@@ -4541,10 +4061,7 @@
 		if v.Args[1] != x {
 			goto end6b0efc212016dc97d0e3939db04c81d9
 		}
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = x.Type
 		v.AddArg(x)
 		return true
@@ -4565,10 +4082,7 @@
 		if v.Args[1] != x {
 			goto end05295dbfafd6869af79b4daee9fda000
 		}
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = x.Type
 		v.AddArg(x)
 		return true
@@ -4591,10 +4105,7 @@
 		if !(config.PtrSize == 4) {
 			goto endd902622aaa1e7545b5a2a0c08b47d287
 		}
-		v.Op = OpAddPtr
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpAddPtr)
 		v.AddArg(ptr)
 		v0 := b.NewValue0(v.Line, OpMul32, config.fe.TypeInt())
 		v0.AddArg(idx)
@@ -4617,10 +4128,7 @@
 		if !(config.PtrSize == 8) {
 			goto end47a5f1d1b158914fa383de024bbe3b08
 		}
-		v.Op = OpAddPtr
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpAddPtr)
 		v.AddArg(ptr)
 		v0 := b.NewValue0(v.Line, OpMul64, config.fe.TypeInt())
 		v0.AddArg(idx)
@@ -4648,10 +4156,7 @@
 			goto endd981df40f353104ef828d13ad4ccdf02
 		}
 		c := v.Args[1].AuxInt
-		v.Op = OpRsh16Ux64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpRsh16Ux64)
 		v.AddArg(x)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = int64(uint16(c))
@@ -4676,10 +4181,7 @@
 			goto ende0be9ee562725206dcf96d3e5750b5ea
 		}
 		c := v.Args[1].AuxInt
-		v.Op = OpRsh16Ux64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpRsh16Ux64)
 		v.AddArg(x)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = int64(uint32(c))
@@ -4706,10 +4208,7 @@
 			goto ended17f40375fb44bcbaf2d87161c5ed3c
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConst16
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConst16)
 		v.AuxInt = int64(uint16(c) >> uint64(d))
 		return true
 	}
@@ -4727,10 +4226,7 @@
 		if v.Args[1].AuxInt != 0 {
 			goto end752d1b5a60f87afa7e40febbf1bce309
 		}
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = x.Type
 		v.AddArg(x)
 		return true
@@ -4749,10 +4245,7 @@
 		if !(uint64(c) >= 16) {
 			goto endca5c7ae2e51f2ae32486c2b1a3033b77
 		}
-		v.Op = OpConst64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConst64)
 		v.AuxInt = 0
 		return true
 	}
@@ -4779,10 +4272,7 @@
 		if !(!uaddOvf(c, d)) {
 			goto end56f2c0034c9fbe651abb36fb640af465
 		}
-		v.Op = OpRsh16Ux64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpRsh16Ux64)
 		v.AddArg(x)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = c + d
@@ -4807,10 +4297,7 @@
 			goto end20d4667094c32c71bac4e0805dab85c9
 		}
 		c := v.Args[1].AuxInt
-		v.Op = OpRsh16Ux64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpRsh16Ux64)
 		v.AddArg(x)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = int64(uint8(c))
@@ -4835,10 +4322,7 @@
 			goto end1b501c7ae2fe58ad3a88b467f2d95389
 		}
 		c := v.Args[1].AuxInt
-		v.Op = OpRsh16x64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpRsh16x64)
 		v.AddArg(x)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = int64(uint16(c))
@@ -4863,10 +4347,7 @@
 			goto end4d3a41113d2d0b09924bf5759ca49cab
 		}
 		c := v.Args[1].AuxInt
-		v.Op = OpRsh16x64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpRsh16x64)
 		v.AddArg(x)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = int64(uint32(c))
@@ -4893,10 +4374,7 @@
 			goto end8f05fede35a3d2f687fcd4a5829a25ad
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConst16
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConst16)
 		v.AuxInt = int64(int16(c) >> uint64(d))
 		return true
 	}
@@ -4914,10 +4392,7 @@
 		if v.Args[1].AuxInt != 0 {
 			goto end750fafe01fcc689d953101d53efc19ab
 		}
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = x.Type
 		v.AddArg(x)
 		return true
@@ -4945,10 +4420,7 @@
 		if !(!uaddOvf(c, d)) {
 			goto endf425eff9e05aad27194af957e3383c76
 		}
-		v.Op = OpRsh16x64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpRsh16x64)
 		v.AddArg(x)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = c + d
@@ -4973,10 +4445,7 @@
 			goto end0b5e274d62a3ae8df9f4089756c6a9d4
 		}
 		c := v.Args[1].AuxInt
-		v.Op = OpRsh16x64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpRsh16x64)
 		v.AddArg(x)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = int64(uint8(c))
@@ -5001,10 +4470,7 @@
 			goto end8d8f9f3e2e1f7a5e9a186fb792fc40a8
 		}
 		c := v.Args[1].AuxInt
-		v.Op = OpRsh32Ux64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpRsh32Ux64)
 		v.AddArg(x)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = int64(uint16(c))
@@ -5029,10 +4495,7 @@
 			goto endd23d060f74e00f34cc967b6fb9a4d320
 		}
 		c := v.Args[1].AuxInt
-		v.Op = OpRsh32Ux64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpRsh32Ux64)
 		v.AddArg(x)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = int64(uint32(c))
@@ -5059,10 +4522,7 @@
 			goto enda101e6b765d7ecffd9b7410c9dc3be82
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConst32
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConst32)
 		v.AuxInt = int64(uint32(c) >> uint64(d))
 		return true
 	}
@@ -5080,10 +4540,7 @@
 		if v.Args[1].AuxInt != 0 {
 			goto end162e4e182a665d4e6f0d85fe131e7288
 		}
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = x.Type
 		v.AddArg(x)
 		return true
@@ -5102,10 +4559,7 @@
 		if !(uint64(c) >= 32) {
 			goto endca322c370839b4264b219ee042a6ab33
 		}
-		v.Op = OpConst64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConst64)
 		v.AuxInt = 0
 		return true
 	}
@@ -5132,10 +4586,7 @@
 		if !(!uaddOvf(c, d)) {
 			goto end2e502d68a32663142684194adbe6c297
 		}
-		v.Op = OpRsh32Ux64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpRsh32Ux64)
 		v.AddArg(x)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = c + d
@@ -5160,10 +4611,7 @@
 			goto end967cea80158afaffb783f6da7aa898ca
 		}
 		c := v.Args[1].AuxInt
-		v.Op = OpRsh32Ux64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpRsh32Ux64)
 		v.AddArg(x)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = int64(uint8(c))
@@ -5188,10 +4636,7 @@
 			goto end6a62ebdcc98ea2e3214559214708d26a
 		}
 		c := v.Args[1].AuxInt
-		v.Op = OpRsh32x64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpRsh32x64)
 		v.AddArg(x)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = int64(uint16(c))
@@ -5216,10 +4661,7 @@
 			goto end6e3b467acdca74f58e9177fb42a1968b
 		}
 		c := v.Args[1].AuxInt
-		v.Op = OpRsh32x64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpRsh32x64)
 		v.AddArg(x)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = int64(uint32(c))
@@ -5246,10 +4688,7 @@
 			goto end7e4b8c499cffe1fef73a16e6be54d4d2
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConst32
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConst32)
 		v.AuxInt = int64(int32(c) >> uint64(d))
 		return true
 	}
@@ -5267,10 +4706,7 @@
 		if v.Args[1].AuxInt != 0 {
 			goto end72da2611eaaffe407efa1cc45c23ade3
 		}
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = x.Type
 		v.AddArg(x)
 		return true
@@ -5298,10 +4734,7 @@
 		if !(!uaddOvf(c, d)) {
 			goto endadb415be78ee46a8a4135ec50df772b0
 		}
-		v.Op = OpRsh32x64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpRsh32x64)
 		v.AddArg(x)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = c + d
@@ -5326,10 +4759,7 @@
 			goto end7b59b42c5c68a2d55be469a0c086dd8b
 		}
 		c := v.Args[1].AuxInt
-		v.Op = OpRsh32x64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpRsh32x64)
 		v.AddArg(x)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = int64(uint8(c))
@@ -5354,10 +4784,7 @@
 			goto end733d85a7b599bcba969ca1cb4bdb9e48
 		}
 		c := v.Args[1].AuxInt
-		v.Op = OpRsh64Ux64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpRsh64Ux64)
 		v.AddArg(x)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = int64(uint16(c))
@@ -5382,10 +4809,7 @@
 			goto endeac7b34169de1fb0393b833e65b9bb19
 		}
 		c := v.Args[1].AuxInt
-		v.Op = OpRsh64Ux64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpRsh64Ux64)
 		v.AddArg(x)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = int64(uint32(c))
@@ -5412,10 +4836,7 @@
 			goto end102f4cfd7979a2aa222d52c34ac6802d
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConst64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConst64)
 		v.AuxInt = int64(uint64(c) >> uint64(d))
 		return true
 	}
@@ -5433,10 +4854,7 @@
 		if v.Args[1].AuxInt != 0 {
 			goto end5ad037b910698f2847df90177c23a6ac
 		}
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = x.Type
 		v.AddArg(x)
 		return true
@@ -5455,10 +4873,7 @@
 		if !(uint64(c) >= 64) {
 			goto end16ea16aa61862207ea64e514369d608b
 		}
-		v.Op = OpConst64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConst64)
 		v.AuxInt = 0
 		return true
 	}
@@ -5485,10 +4900,7 @@
 		if !(!uaddOvf(c, d)) {
 			goto end32bfdb1b4ccc23a5cd62fc0348ebd877
 		}
-		v.Op = OpRsh64Ux64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpRsh64Ux64)
 		v.AddArg(x)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = c + d
@@ -5513,10 +4925,7 @@
 			goto ende3d8090a67a52dbcd24b52ee32c9d7f0
 		}
 		c := v.Args[1].AuxInt
-		v.Op = OpRsh64Ux64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpRsh64Ux64)
 		v.AddArg(x)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = int64(uint8(c))
@@ -5541,10 +4950,7 @@
 			goto endd5151d0bfc38c55ae6ae6836014df3bc
 		}
 		c := v.Args[1].AuxInt
-		v.Op = OpRsh64x64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpRsh64x64)
 		v.AddArg(x)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = int64(uint16(c))
@@ -5569,10 +4975,7 @@
 			goto end0f2dbca5c7d6b100890c94a97bf0de7c
 		}
 		c := v.Args[1].AuxInt
-		v.Op = OpRsh64x64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpRsh64x64)
 		v.AddArg(x)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = int64(uint32(c))
@@ -5599,10 +5002,7 @@
 			goto endfa4609d6bea8a3e3d3a777b1968c97d9
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConst64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConst64)
 		v.AuxInt = c >> uint64(d)
 		return true
 	}
@@ -5620,10 +5020,7 @@
 		if v.Args[1].AuxInt != 0 {
 			goto ende62e0c67d3f04eb221646371a2a91d05
 		}
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = x.Type
 		v.AddArg(x)
 		return true
@@ -5651,10 +5048,7 @@
 		if !(!uaddOvf(c, d)) {
 			goto endd3e8ea66dc3ad0bc393001d6babb7160
 		}
-		v.Op = OpRsh64x64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpRsh64x64)
 		v.AddArg(x)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = c + d
@@ -5679,10 +5073,7 @@
 			goto end1a9e5a89849344396210da7c7ec810be
 		}
 		c := v.Args[1].AuxInt
-		v.Op = OpRsh64x64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpRsh64x64)
 		v.AddArg(x)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = int64(uint8(c))
@@ -5707,10 +5098,7 @@
 			goto end7acc015610273092e9efcce2949ee0f9
 		}
 		c := v.Args[1].AuxInt
-		v.Op = OpRsh8Ux64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpRsh8Ux64)
 		v.AddArg(x)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = int64(uint16(c))
@@ -5735,10 +5123,7 @@
 			goto end27e9b4472e085b653a105b1d67554ce8
 		}
 		c := v.Args[1].AuxInt
-		v.Op = OpRsh8Ux64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpRsh8Ux64)
 		v.AddArg(x)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = int64(uint32(c))
@@ -5765,10 +5150,7 @@
 			goto enddd166e450d81ba7b466d61d2fbec178c
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConst8
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConst8)
 		v.AuxInt = int64(uint8(c) >> uint64(d))
 		return true
 	}
@@ -5786,10 +5168,7 @@
 		if v.Args[1].AuxInt != 0 {
 			goto end570cb1d9db3c7bebd85e485eeb2c0969
 		}
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = x.Type
 		v.AddArg(x)
 		return true
@@ -5808,10 +5187,7 @@
 		if !(uint64(c) >= 8) {
 			goto endb63e1a7d1d91716ca0d9d74215361323
 		}
-		v.Op = OpConst64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConst64)
 		v.AuxInt = 0
 		return true
 	}
@@ -5838,10 +5214,7 @@
 		if !(!uaddOvf(c, d)) {
 			goto endee8824b7071ed1a6dba4fcbaab98229e
 		}
-		v.Op = OpRsh8Ux64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpRsh8Ux64)
 		v.AddArg(x)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = c + d
@@ -5866,10 +5239,7 @@
 			goto ended7e4f4d9ab89dc26e6649d466577930
 		}
 		c := v.Args[1].AuxInt
-		v.Op = OpRsh8Ux64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpRsh8Ux64)
 		v.AddArg(x)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = int64(uint8(c))
@@ -5894,10 +5264,7 @@
 			goto end136bef6f60180bc8b4befbfc370af7ef
 		}
 		c := v.Args[1].AuxInt
-		v.Op = OpRsh8x64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpRsh8x64)
 		v.AddArg(x)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = int64(uint16(c))
@@ -5922,10 +5289,7 @@
 			goto end2ef95c222a7c552fa9cc86e36196644e
 		}
 		c := v.Args[1].AuxInt
-		v.Op = OpRsh8x64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpRsh8x64)
 		v.AddArg(x)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = int64(uint32(c))
@@ -5952,10 +5316,7 @@
 			goto end3b90206d75365466dfd1368e5b69db35
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConst8
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConst8)
 		v.AuxInt = int64(int8(c) >> uint64(d))
 		return true
 	}
@@ -5973,10 +5334,7 @@
 		if v.Args[1].AuxInt != 0 {
 			goto end1e664cc720a11d1c769de8081cfa1de4
 		}
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = x.Type
 		v.AddArg(x)
 		return true
@@ -6004,10 +5362,7 @@
 		if !(!uaddOvf(c, d)) {
 			goto end6408685a7276af7e76ec086f359c942c
 		}
-		v.Op = OpRsh8x64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpRsh8x64)
 		v.AddArg(x)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = c + d
@@ -6032,10 +5387,7 @@
 			goto endae44f60f364cddd8903763dd921a007e
 		}
 		c := v.Args[1].AuxInt
-		v.Op = OpRsh8x64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpRsh8x64)
 		v.AddArg(x)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = int64(uint8(c))
@@ -6058,10 +5410,7 @@
 			goto end1bd11616743632b33b410964667fb3c6
 		}
 		cap := v.Args[0].Args[2]
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = cap.Type
 		v.AddArg(cap)
 		return true
@@ -6082,10 +5431,7 @@
 			goto endebb2090199d13e4c2ae52fb3e778f7fd
 		}
 		len := v.Args[0].Args[1]
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = len.Type
 		v.AddArg(len)
 		return true
@@ -6106,10 +5452,7 @@
 			goto end526acc0a705137a5d25577499206720b
 		}
 		ptr := v.Args[0].Args[0]
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = ptr.Type
 		v.AddArg(ptr)
 		return true
@@ -6130,10 +5473,7 @@
 			goto endd4f364b0adfc229d8c200af183d4c808
 		}
 		mem := v.Args[2]
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = mem.Type
 		v.AddArg(mem)
 		return true
@@ -6152,10 +5492,7 @@
 		t := v.Args[1].Type
 		f0 := v.Args[1].Args[0]
 		mem := v.Args[2]
-		v.Op = OpStore
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpStore)
 		v.AuxInt = t.FieldType(0).Size()
 		v.AddArg(dst)
 		v.AddArg(f0)
@@ -6177,10 +5514,7 @@
 		f0 := v.Args[1].Args[0]
 		f1 := v.Args[1].Args[1]
 		mem := v.Args[2]
-		v.Op = OpStore
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpStore)
 		v.AuxInt = t.FieldType(1).Size()
 		v0 := b.NewValue0(v.Line, OpOffPtr, t.FieldType(1).PtrTo())
 		v0.AuxInt = t.FieldOff(1)
@@ -6211,10 +5545,7 @@
 		f1 := v.Args[1].Args[1]
 		f2 := v.Args[1].Args[2]
 		mem := v.Args[2]
-		v.Op = OpStore
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpStore)
 		v.AuxInt = t.FieldType(2).Size()
 		v0 := b.NewValue0(v.Line, OpOffPtr, t.FieldType(2).PtrTo())
 		v0.AuxInt = t.FieldOff(2)
@@ -6254,10 +5585,7 @@
 		f2 := v.Args[1].Args[2]
 		f3 := v.Args[1].Args[3]
 		mem := v.Args[2]
-		v.Op = OpStore
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpStore)
 		v.AuxInt = t.FieldType(3).Size()
 		v0 := b.NewValue0(v.Line, OpOffPtr, t.FieldType(3).PtrTo())
 		v0.AuxInt = t.FieldOff(3)
@@ -6305,10 +5633,7 @@
 		real := v.Args[1].Args[0]
 		imag := v.Args[1].Args[1]
 		mem := v.Args[2]
-		v.Op = OpStore
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpStore)
 		v.AuxInt = 4
 		v0 := b.NewValue0(v.Line, OpOffPtr, config.fe.TypeFloat32().PtrTo())
 		v0.AuxInt = 4
@@ -6340,10 +5665,7 @@
 		real := v.Args[1].Args[0]
 		imag := v.Args[1].Args[1]
 		mem := v.Args[2]
-		v.Op = OpStore
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpStore)
 		v.AuxInt = 8
 		v0 := b.NewValue0(v.Line, OpOffPtr, config.fe.TypeFloat64().PtrTo())
 		v0.AuxInt = 8
@@ -6375,10 +5697,7 @@
 		ptr := v.Args[1].Args[0]
 		len := v.Args[1].Args[1]
 		mem := v.Args[2]
-		v.Op = OpStore
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpStore)
 		v.AuxInt = config.PtrSize
 		v0 := b.NewValue0(v.Line, OpOffPtr, config.fe.TypeInt().PtrTo())
 		v0.AuxInt = config.PtrSize
@@ -6411,10 +5730,7 @@
 		len := v.Args[1].Args[1]
 		cap := v.Args[1].Args[2]
 		mem := v.Args[2]
-		v.Op = OpStore
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpStore)
 		v.AuxInt = config.PtrSize
 		v0 := b.NewValue0(v.Line, OpOffPtr, config.fe.TypeInt().PtrTo())
 		v0.AuxInt = 2 * config.PtrSize
@@ -6454,10 +5770,7 @@
 		itab := v.Args[1].Args[0]
 		data := v.Args[1].Args[1]
 		mem := v.Args[2]
-		v.Op = OpStore
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpStore)
 		v.AuxInt = config.PtrSize
 		v0 := b.NewValue0(v.Line, OpOffPtr, config.fe.TypeBytePtr().PtrTo())
 		v0.AuxInt = config.PtrSize
@@ -6493,10 +5806,7 @@
 		if !(!config.fe.CanSSA(t)) {
 			goto end45295326269ba18413dceb7b608a0b9d
 		}
-		v.Op = OpMove
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpMove)
 		v.AuxInt = size
 		v.AddArg(dst)
 		v.AddArg(src)
@@ -6528,10 +5838,7 @@
 		if !(!config.fe.CanSSA(t)) {
 			goto end7f3cc0baffb82ba3ee879599b189a512
 		}
-		v.Op = OpMove
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpMove)
 		v.AuxInt = size
 		v.AddArg(dst)
 		v.AddArg(src)
@@ -6557,10 +5864,7 @@
 			goto end0d922460b7e5ca88324034f4bd6c027c
 		}
 		len := v.Args[0].Args[1]
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = len.Type
 		v.AddArg(len)
 		return true
@@ -6581,10 +5885,7 @@
 			goto end061edc5d85c73ad909089af2556d9380
 		}
 		ptr := v.Args[0].Args[0]
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = ptr.Type
 		v.AddArg(ptr)
 		return true
@@ -6605,10 +5906,7 @@
 			goto end17af582e7eba5216b4a51fe6c9206d3c
 		}
 		x := v.Args[0].Args[0]
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = x.Type
 		v.AddArg(x)
 		return true
@@ -6627,10 +5925,7 @@
 			goto end355cfff99c8e9af975c3ae450d49b7f9
 		}
 		x := v.Args[0].Args[0]
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = x.Type
 		v.AddArg(x)
 		return true
@@ -6649,10 +5944,7 @@
 			goto end69baa65e494ef9ae154e0943b53734f9
 		}
 		x := v.Args[0].Args[1]
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = x.Type
 		v.AddArg(x)
 		return true
@@ -6671,10 +5963,7 @@
 			goto endb0d98e2c46bb51c9abd4c3543392e0ec
 		}
 		x := v.Args[0].Args[0]
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = x.Type
 		v.AddArg(x)
 		return true
@@ -6693,10 +5982,7 @@
 			goto end2e40457286d26c2f14ad4fd127946773
 		}
 		x := v.Args[0].Args[1]
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = x.Type
 		v.AddArg(x)
 		return true
@@ -6715,10 +6001,7 @@
 			goto end3e3b96ad431206175d002ece87aa1409
 		}
 		x := v.Args[0].Args[2]
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = x.Type
 		v.AddArg(x)
 		return true
@@ -6737,10 +6020,7 @@
 			goto end09f8a1ffa3d8c3124bc6d4083b941108
 		}
 		x := v.Args[0].Args[0]
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = x.Type
 		v.AddArg(x)
 		return true
@@ -6759,10 +6039,7 @@
 			goto endd3ef25e605a927e9251be6d9221f4acf
 		}
 		x := v.Args[0].Args[1]
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = x.Type
 		v.AddArg(x)
 		return true
@@ -6781,10 +6058,7 @@
 			goto end0438e22cc8f41123fa42009a81ee723a
 		}
 		x := v.Args[0].Args[2]
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = x.Type
 		v.AddArg(x)
 		return true
@@ -6803,10 +6077,7 @@
 			goto end56a7c7781fee35eeff0a3652dc206012
 		}
 		x := v.Args[0].Args[3]
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = x.Type
 		v.AddArg(x)
 		return true
@@ -6829,10 +6100,7 @@
 			goto end2afd47b4fcaaab7a73325bd8a75e3e8e
 		}
 		v0 := v.Args[0].Block.NewValue0(v.Line, OpLoad, v.Type)
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.AddArg(v0)
 		v1 := v.Args[0].Block.NewValue0(v.Line, OpOffPtr, v.Type.PtrTo())
 		v1.AuxInt = t.FieldOff(i)
@@ -6861,10 +6129,7 @@
 			goto end5c6fab95c9dbeff5973119096bfd4e78
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConst16
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConst16)
 		v.AuxInt = c - d
 		return true
 	}
@@ -6884,10 +6149,7 @@
 		if !(x.Op != OpConst16) {
 			goto end493545258a8e7e79d005b34c712ddd0c
 		}
-		v.Op = OpAdd16
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpAdd16)
 		v0 := b.NewValue0(v.Line, OpConst16, t)
 		v0.AuxInt = -c
 		v.AddArg(v0)
@@ -6905,10 +6167,7 @@
 		if v.Args[1] != x {
 			goto end83da541391be564f2a08464e674a49e7
 		}
-		v.Op = OpConst16
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConst16)
 		v.AuxInt = 0
 		return true
 	}
@@ -6927,10 +6186,7 @@
 		if v.Args[1] != x {
 			goto end0dd8f250c457b9c005ecbed59fc2e758
 		}
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = y.Type
 		v.AddArg(y)
 		return true
@@ -6950,10 +6206,7 @@
 		if v.Args[1] != y {
 			goto end01c8db2e0bce69e048cf79f3bdc82b9b
 		}
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = x.Type
 		v.AddArg(x)
 		return true
@@ -6978,10 +6231,7 @@
 			goto end7623799db780e1bcc42c6ea0df9c49d3
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConst32
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConst32)
 		v.AuxInt = c - d
 		return true
 	}
@@ -7001,10 +6251,7 @@
 		if !(x.Op != OpConst32) {
 			goto end391e2f2ba8c7502b62c0153ec69c4fbd
 		}
-		v.Op = OpAdd32
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpAdd32)
 		v0 := b.NewValue0(v.Line, OpConst32, t)
 		v0.AuxInt = -c
 		v.AddArg(v0)
@@ -7022,10 +6269,7 @@
 		if v.Args[1] != x {
 			goto enda747581e798f199e07f4ad69747cd069
 		}
-		v.Op = OpConst32
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConst32)
 		v.AuxInt = 0
 		return true
 	}
@@ -7044,10 +6288,7 @@
 		if v.Args[1] != x {
 			goto end70c1e60e58a6c106d060f10cd3f179ea
 		}
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = y.Type
 		v.AddArg(y)
 		return true
@@ -7067,10 +6308,7 @@
 		if v.Args[1] != y {
 			goto end20e42db178ec4f423cc56a991863a4a2
 		}
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = x.Type
 		v.AddArg(x)
 		return true
@@ -7095,10 +6333,7 @@
 			goto end5a84a285ff0ff48b8ad3c64b15e3459f
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConst64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConst64)
 		v.AuxInt = c - d
 		return true
 	}
@@ -7118,10 +6353,7 @@
 		if !(x.Op != OpConst64) {
 			goto enda80d30f6794bcf02cd4442b238f68333
 		}
-		v.Op = OpAdd64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpAdd64)
 		v0 := b.NewValue0(v.Line, OpConst64, t)
 		v0.AuxInt = -c
 		v.AddArg(v0)
@@ -7139,10 +6371,7 @@
 		if v.Args[1] != x {
 			goto end0387dc2b7bbe57d4aa54eab5d959da4b
 		}
-		v.Op = OpConst64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConst64)
 		v.AuxInt = 0
 		return true
 	}
@@ -7161,10 +6390,7 @@
 		if v.Args[1] != x {
 			goto end7d177451cf8959cb781f52d5ded46fff
 		}
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = y.Type
 		v.AddArg(y)
 		return true
@@ -7184,10 +6410,7 @@
 		if v.Args[1] != y {
 			goto end6ea8172b21100cfe3dc86b7a850fbe97
 		}
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = x.Type
 		v.AddArg(x)
 		return true
@@ -7212,10 +6435,7 @@
 			goto endc00ea11c7535529e211710574f5cff24
 		}
 		d := v.Args[1].AuxInt
-		v.Op = OpConst8
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConst8)
 		v.AuxInt = c - d
 		return true
 	}
@@ -7235,10 +6455,7 @@
 		if !(x.Op != OpConst8) {
 			goto end0bfab5b6f1037e55dc049b79e2636678
 		}
-		v.Op = OpAdd8
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpAdd8)
 		v0 := b.NewValue0(v.Line, OpConst8, t)
 		v0.AuxInt = -c
 		v.AddArg(v0)
@@ -7256,10 +6473,7 @@
 		if v.Args[1] != x {
 			goto end4e2ee15ef17611919a1a6b5f80bbfe18
 		}
-		v.Op = OpConst8
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConst8)
 		v.AuxInt = 0
 		return true
 	}
@@ -7278,10 +6492,7 @@
 		if v.Args[1] != x {
 			goto endd79d561e14dc3d11da4c3bb20270b541
 		}
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = y.Type
 		v.AddArg(y)
 		return true
@@ -7301,10 +6512,7 @@
 		if v.Args[1] != y {
 			goto endcb7111b11d6d068c97026a97ecff8248
 		}
-		v.Op = OpCopy
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpCopy)
 		v.Type = x.Type
 		v.AddArg(x)
 		return true
@@ -7325,10 +6533,7 @@
 		if v.Args[1] != x {
 			goto end5733ceb1903b8140248d8e2cac02fefe
 		}
-		v.Op = OpConst16
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConst16)
 		v.AuxInt = 0
 		return true
 	}
@@ -7348,10 +6553,7 @@
 		if v.Args[1] != x {
 			goto end268ca02df6515d648e0bfb4e90981d25
 		}
-		v.Op = OpConst32
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConst32)
 		v.AuxInt = 0
 		return true
 	}
@@ -7371,10 +6573,7 @@
 		if v.Args[1] != x {
 			goto endaf44e7f9fc58af30df69070953fb45ce
 		}
-		v.Op = OpConst64
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConst64)
 		v.AuxInt = 0
 		return true
 	}
@@ -7394,10 +6593,7 @@
 		if v.Args[1] != x {
 			goto end949b3a60b7d181688e6f79f93c782fc8
 		}
-		v.Op = OpConst8
-		v.AuxInt = 0
-		v.Aux = nil
-		v.resetArgs()
+		v.reset(OpConst8)
 		v.AuxInt = 0
 		return true
 	}