]> Cypherpunks repositories - gostls13.git/commitdiff
[dev.ssa] cmd/compile/internal/ssa: put new values for block rewrites in rewritten...
authorKeith Randall <khr@golang.org>
Tue, 4 Aug 2015 19:24:23 +0000 (12:24 -0700)
committerKeith Randall <khr@golang.org>
Tue, 4 Aug 2015 19:38:24 +0000 (19:38 +0000)
Don't put them in the control value's block.
That may be many blocks up the dominator tree.

Change-Id: Iab3ea36a890ffe0e355dadec7aeb676901c4f070
Reviewed-on: https://go-review.googlesource.com/13134
Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com>
src/cmd/compile/internal/ssa/gen/rulegen.go
src/cmd/compile/internal/ssa/rewriteAMD64.go
src/cmd/compile/internal/ssa/rewritegeneric.go

index 4b3775ca98767b902e249a4e7eb7eb7574b3818c..9edef832469c047dff0dfdc9b6aada3426e444ce 100644 (file)
@@ -104,6 +104,7 @@ func genRules(arch arch) {
        fmt.Fprintln(w, "// generated with: cd gen; go run *.go")
        fmt.Fprintln(w, "package ssa")
        fmt.Fprintf(w, "func rewriteValue%s(v *Value, config *Config) bool {\n", arch.name)
+       fmt.Fprintln(w, "b := v.Block")
 
        // generate code for each rule
        fmt.Fprintf(w, "switch v.Op {\n")
@@ -238,7 +239,7 @@ func genRules(arch arch) {
 
                        // Modify predecessor lists for no-longer-reachable blocks
                        for succ := range m {
-                               fmt.Fprintf(w, "v.Block.Func.removePredecessor(b, %s)\n", succ)
+                               fmt.Fprintf(w, "b.Func.removePredecessor(b, %s)\n", succ)
                        }
 
                        fmt.Fprintf(w, "b.Kind = %s\n", blockName(t[0], arch))
@@ -397,7 +398,7 @@ func genResult0(w io.Writer, arch arch, result string, alloc *int, top bool) str
        } else {
                v = fmt.Sprintf("v%d", *alloc)
                *alloc++
-               fmt.Fprintf(w, "%s := v.Block.NewValue0(v.Line, %s, TypeInvalid)\n", v, opName(s[0], arch))
+               fmt.Fprintf(w, "%s := b.NewValue0(v.Line, %s, TypeInvalid)\n", v, opName(s[0], arch))
        }
        for _, a := range s[1:] {
                if a[0] == '<' {
index 9157989035ddd43464589f49e9936952abcceac8..5a87169324b6ab003333c18aabc55c27c58325e8 100644 (file)
@@ -3,6 +3,7 @@
 package ssa
 
 func rewriteValueAMD64(v *Value, config *Config) bool {
+       b := v.Block
        switch v.Op {
        case OpAMD64ADDB:
                // match: (ADDB x (MOVBconst [c]))
@@ -1164,7 +1165,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64CMPBconst, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64CMPBconst, TypeInvalid)
                        v0.Type = TypeFlags
                        v0.AddArg(x)
                        v0.AuxInt = c
@@ -1208,7 +1209,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64CMPLconst, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64CMPLconst, TypeInvalid)
                        v0.Type = TypeFlags
                        v0.AddArg(x)
                        v0.AuxInt = c
@@ -1258,7 +1259,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64CMPQconst, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64CMPQconst, TypeInvalid)
                        v0.Type = TypeFlags
                        v0.AddArg(x)
                        v0.AuxInt = c
@@ -1302,7 +1303,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64CMPWconst, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64CMPWconst, TypeInvalid)
                        v0.Type = TypeFlags
                        v0.AddArg(x)
                        v0.AuxInt = c
@@ -1541,7 +1542,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64CMPW, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64CMPW, TypeInvalid)
                        v0.Type = TypeFlags
                        v0.AddArg(x)
                        v0.AddArg(y)
@@ -1562,7 +1563,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64CMPL, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64CMPL, TypeInvalid)
                        v0.Type = TypeFlags
                        v0.AddArg(x)
                        v0.AddArg(y)
@@ -1583,7 +1584,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64CMPQ, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64CMPQ, TypeInvalid)
                        v0.Type = TypeFlags
                        v0.AddArg(x)
                        v0.AddArg(y)
@@ -1604,7 +1605,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64CMPB, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64CMPB, TypeInvalid)
                        v0.Type = TypeFlags
                        v0.AddArg(x)
                        v0.AddArg(y)
@@ -1625,7 +1626,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64CMPQ, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64CMPQ, TypeInvalid)
                        v0.Type = TypeFlags
                        v0.AddArg(x)
                        v0.AddArg(y)
@@ -1646,7 +1647,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64CMPW, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64CMPW, TypeInvalid)
                        v0.Type = TypeFlags
                        v0.AddArg(x)
                        v0.AddArg(y)
@@ -1667,7 +1668,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64CMPW, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64CMPW, TypeInvalid)
                        v0.Type = TypeFlags
                        v0.AddArg(x)
                        v0.AddArg(y)
@@ -1688,7 +1689,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64CMPL, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64CMPL, TypeInvalid)
                        v0.Type = TypeFlags
                        v0.AddArg(x)
                        v0.AddArg(y)
@@ -1709,7 +1710,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64CMPL, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64CMPL, TypeInvalid)
                        v0.Type = TypeFlags
                        v0.AddArg(x)
                        v0.AddArg(y)
@@ -1730,7 +1731,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64CMPQ, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64CMPQ, TypeInvalid)
                        v0.Type = TypeFlags
                        v0.AddArg(x)
                        v0.AddArg(y)
@@ -1751,7 +1752,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64CMPQ, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64CMPQ, TypeInvalid)
                        v0.Type = TypeFlags
                        v0.AddArg(x)
                        v0.AddArg(y)
@@ -1772,7 +1773,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64CMPB, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64CMPB, TypeInvalid)
                        v0.Type = TypeFlags
                        v0.AddArg(x)
                        v0.AddArg(y)
@@ -1793,7 +1794,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64CMPB, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64CMPB, TypeInvalid)
                        v0.Type = TypeFlags
                        v0.AddArg(x)
                        v0.AddArg(y)
@@ -1814,7 +1815,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64CMPW, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64CMPW, TypeInvalid)
                        v0.Type = TypeFlags
                        v0.AddArg(x)
                        v0.AddArg(y)
@@ -1835,7 +1836,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64CMPW, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64CMPW, TypeInvalid)
                        v0.Type = TypeFlags
                        v0.AddArg(x)
                        v0.AddArg(y)
@@ -1856,7 +1857,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64CMPL, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64CMPL, TypeInvalid)
                        v0.Type = TypeFlags
                        v0.AddArg(x)
                        v0.AddArg(y)
@@ -1877,7 +1878,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64CMPL, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64CMPL, TypeInvalid)
                        v0.Type = TypeFlags
                        v0.AddArg(x)
                        v0.AddArg(y)
@@ -1898,7 +1899,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64CMPQ, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64CMPQ, TypeInvalid)
                        v0.Type = TypeFlags
                        v0.AddArg(x)
                        v0.AddArg(y)
@@ -1919,7 +1920,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64CMPQ, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64CMPQ, TypeInvalid)
                        v0.Type = TypeFlags
                        v0.AddArg(x)
                        v0.AddArg(y)
@@ -1940,7 +1941,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64CMPB, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64CMPB, TypeInvalid)
                        v0.Type = TypeFlags
                        v0.AddArg(x)
                        v0.AddArg(y)
@@ -1961,7 +1962,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64CMPB, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64CMPB, TypeInvalid)
                        v0.Type = TypeFlags
                        v0.AddArg(x)
                        v0.AddArg(y)
@@ -1982,7 +1983,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64CMPQ, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64CMPQ, TypeInvalid)
                        v0.Type = TypeFlags
                        v0.AddArg(idx)
                        v0.AddArg(len)
@@ -2002,7 +2003,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64TESTQ, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64TESTQ, TypeInvalid)
                        v0.Type = TypeFlags
                        v0.AddArg(p)
                        v0.AddArg(p)
@@ -2023,7 +2024,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64CMPW, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64CMPW, TypeInvalid)
                        v0.Type = TypeFlags
                        v0.AddArg(x)
                        v0.AddArg(y)
@@ -2044,7 +2045,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64CMPW, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64CMPW, TypeInvalid)
                        v0.Type = TypeFlags
                        v0.AddArg(x)
                        v0.AddArg(y)
@@ -2065,7 +2066,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64CMPL, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64CMPL, TypeInvalid)
                        v0.Type = TypeFlags
                        v0.AddArg(x)
                        v0.AddArg(y)
@@ -2086,7 +2087,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64CMPL, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64CMPL, TypeInvalid)
                        v0.Type = TypeFlags
                        v0.AddArg(x)
                        v0.AddArg(y)
@@ -2107,7 +2108,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64CMPQ, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64CMPQ, TypeInvalid)
                        v0.Type = TypeFlags
                        v0.AddArg(x)
                        v0.AddArg(y)
@@ -2128,7 +2129,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64CMPQ, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64CMPQ, TypeInvalid)
                        v0.Type = TypeFlags
                        v0.AddArg(x)
                        v0.AddArg(y)
@@ -2149,7 +2150,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64CMPB, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64CMPB, TypeInvalid)
                        v0.Type = TypeFlags
                        v0.AddArg(x)
                        v0.AddArg(y)
@@ -2170,7 +2171,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64CMPB, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64CMPB, TypeInvalid)
                        v0.Type = TypeFlags
                        v0.AddArg(x)
                        v0.AddArg(y)
@@ -2191,7 +2192,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64CMPW, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64CMPW, TypeInvalid)
                        v0.Type = TypeFlags
                        v0.AddArg(x)
                        v0.AddArg(y)
@@ -2212,7 +2213,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64CMPW, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64CMPW, TypeInvalid)
                        v0.Type = TypeFlags
                        v0.AddArg(x)
                        v0.AddArg(y)
@@ -2233,7 +2234,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64CMPL, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64CMPL, TypeInvalid)
                        v0.Type = TypeFlags
                        v0.AddArg(x)
                        v0.AddArg(y)
@@ -2254,7 +2255,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64CMPL, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64CMPL, TypeInvalid)
                        v0.Type = TypeFlags
                        v0.AddArg(x)
                        v0.AddArg(y)
@@ -2275,7 +2276,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64CMPQ, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64CMPQ, TypeInvalid)
                        v0.Type = TypeFlags
                        v0.AddArg(x)
                        v0.AddArg(y)
@@ -2296,7 +2297,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64CMPQ, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64CMPQ, TypeInvalid)
                        v0.Type = TypeFlags
                        v0.AddArg(x)
                        v0.AddArg(y)
@@ -2317,7 +2318,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64CMPB, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64CMPB, TypeInvalid)
                        v0.Type = TypeFlags
                        v0.AddArg(x)
                        v0.AddArg(y)
@@ -2338,7 +2339,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64CMPB, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64CMPB, TypeInvalid)
                        v0.Type = TypeFlags
                        v0.AddArg(x)
                        v0.AddArg(y)
@@ -2445,14 +2446,14 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64SHLW, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64SHLW, TypeInvalid)
                        v0.Type = t
                        v0.AddArg(x)
                        v0.AddArg(y)
                        v.AddArg(v0)
-                       v1 := v.Block.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
                        v1.Type = t
-                       v2 := v.Block.NewValue0(v.Line, OpAMD64CMPWconst, TypeInvalid)
+                       v2 := b.NewValue0(v.Line, OpAMD64CMPWconst, TypeInvalid)
                        v2.Type = TypeFlags
                        v2.AuxInt = 16
                        v2.AddArg(y)
@@ -2475,14 +2476,14 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64SHLW, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64SHLW, TypeInvalid)
                        v0.Type = t
                        v0.AddArg(x)
                        v0.AddArg(y)
                        v.AddArg(v0)
-                       v1 := v.Block.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
                        v1.Type = t
-                       v2 := v.Block.NewValue0(v.Line, OpAMD64CMPLconst, TypeInvalid)
+                       v2 := b.NewValue0(v.Line, OpAMD64CMPLconst, TypeInvalid)
                        v2.Type = TypeFlags
                        v2.AuxInt = 16
                        v2.AddArg(y)
@@ -2505,14 +2506,14 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64SHLW, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64SHLW, TypeInvalid)
                        v0.Type = t
                        v0.AddArg(x)
                        v0.AddArg(y)
                        v.AddArg(v0)
-                       v1 := v.Block.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
                        v1.Type = t
-                       v2 := v.Block.NewValue0(v.Line, OpAMD64CMPQconst, TypeInvalid)
+                       v2 := b.NewValue0(v.Line, OpAMD64CMPQconst, TypeInvalid)
                        v2.Type = TypeFlags
                        v2.AuxInt = 16
                        v2.AddArg(y)
@@ -2535,14 +2536,14 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64SHLW, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64SHLW, TypeInvalid)
                        v0.Type = t
                        v0.AddArg(x)
                        v0.AddArg(y)
                        v.AddArg(v0)
-                       v1 := v.Block.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
                        v1.Type = t
-                       v2 := v.Block.NewValue0(v.Line, OpAMD64CMPBconst, TypeInvalid)
+                       v2 := b.NewValue0(v.Line, OpAMD64CMPBconst, TypeInvalid)
                        v2.Type = TypeFlags
                        v2.AuxInt = 16
                        v2.AddArg(y)
@@ -2565,14 +2566,14 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64SHLL, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64SHLL, TypeInvalid)
                        v0.Type = t
                        v0.AddArg(x)
                        v0.AddArg(y)
                        v.AddArg(v0)
-                       v1 := v.Block.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
                        v1.Type = t
-                       v2 := v.Block.NewValue0(v.Line, OpAMD64CMPWconst, TypeInvalid)
+                       v2 := b.NewValue0(v.Line, OpAMD64CMPWconst, TypeInvalid)
                        v2.Type = TypeFlags
                        v2.AuxInt = 32
                        v2.AddArg(y)
@@ -2595,14 +2596,14 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64SHLL, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64SHLL, TypeInvalid)
                        v0.Type = t
                        v0.AddArg(x)
                        v0.AddArg(y)
                        v.AddArg(v0)
-                       v1 := v.Block.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
                        v1.Type = t
-                       v2 := v.Block.NewValue0(v.Line, OpAMD64CMPLconst, TypeInvalid)
+                       v2 := b.NewValue0(v.Line, OpAMD64CMPLconst, TypeInvalid)
                        v2.Type = TypeFlags
                        v2.AuxInt = 32
                        v2.AddArg(y)
@@ -2625,14 +2626,14 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64SHLL, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64SHLL, TypeInvalid)
                        v0.Type = t
                        v0.AddArg(x)
                        v0.AddArg(y)
                        v.AddArg(v0)
-                       v1 := v.Block.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
                        v1.Type = t
-                       v2 := v.Block.NewValue0(v.Line, OpAMD64CMPQconst, TypeInvalid)
+                       v2 := b.NewValue0(v.Line, OpAMD64CMPQconst, TypeInvalid)
                        v2.Type = TypeFlags
                        v2.AuxInt = 32
                        v2.AddArg(y)
@@ -2655,14 +2656,14 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64SHLL, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64SHLL, TypeInvalid)
                        v0.Type = t
                        v0.AddArg(x)
                        v0.AddArg(y)
                        v.AddArg(v0)
-                       v1 := v.Block.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
                        v1.Type = t
-                       v2 := v.Block.NewValue0(v.Line, OpAMD64CMPBconst, TypeInvalid)
+                       v2 := b.NewValue0(v.Line, OpAMD64CMPBconst, TypeInvalid)
                        v2.Type = TypeFlags
                        v2.AuxInt = 32
                        v2.AddArg(y)
@@ -2685,14 +2686,14 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64SHLQ, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64SHLQ, TypeInvalid)
                        v0.Type = t
                        v0.AddArg(x)
                        v0.AddArg(y)
                        v.AddArg(v0)
-                       v1 := v.Block.NewValue0(v.Line, OpAMD64SBBQcarrymask, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpAMD64SBBQcarrymask, TypeInvalid)
                        v1.Type = t
-                       v2 := v.Block.NewValue0(v.Line, OpAMD64CMPWconst, TypeInvalid)
+                       v2 := b.NewValue0(v.Line, OpAMD64CMPWconst, TypeInvalid)
                        v2.Type = TypeFlags
                        v2.AuxInt = 64
                        v2.AddArg(y)
@@ -2715,14 +2716,14 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64SHLQ, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64SHLQ, TypeInvalid)
                        v0.Type = t
                        v0.AddArg(x)
                        v0.AddArg(y)
                        v.AddArg(v0)
-                       v1 := v.Block.NewValue0(v.Line, OpAMD64SBBQcarrymask, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpAMD64SBBQcarrymask, TypeInvalid)
                        v1.Type = t
-                       v2 := v.Block.NewValue0(v.Line, OpAMD64CMPLconst, TypeInvalid)
+                       v2 := b.NewValue0(v.Line, OpAMD64CMPLconst, TypeInvalid)
                        v2.Type = TypeFlags
                        v2.AuxInt = 64
                        v2.AddArg(y)
@@ -2745,14 +2746,14 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64SHLQ, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64SHLQ, TypeInvalid)
                        v0.Type = t
                        v0.AddArg(x)
                        v0.AddArg(y)
                        v.AddArg(v0)
-                       v1 := v.Block.NewValue0(v.Line, OpAMD64SBBQcarrymask, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpAMD64SBBQcarrymask, TypeInvalid)
                        v1.Type = t
-                       v2 := v.Block.NewValue0(v.Line, OpAMD64CMPQconst, TypeInvalid)
+                       v2 := b.NewValue0(v.Line, OpAMD64CMPQconst, TypeInvalid)
                        v2.Type = TypeFlags
                        v2.AuxInt = 64
                        v2.AddArg(y)
@@ -2775,14 +2776,14 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64SHLQ, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64SHLQ, TypeInvalid)
                        v0.Type = t
                        v0.AddArg(x)
                        v0.AddArg(y)
                        v.AddArg(v0)
-                       v1 := v.Block.NewValue0(v.Line, OpAMD64SBBQcarrymask, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpAMD64SBBQcarrymask, TypeInvalid)
                        v1.Type = t
-                       v2 := v.Block.NewValue0(v.Line, OpAMD64CMPBconst, TypeInvalid)
+                       v2 := b.NewValue0(v.Line, OpAMD64CMPBconst, TypeInvalid)
                        v2.Type = TypeFlags
                        v2.AuxInt = 64
                        v2.AddArg(y)
@@ -2805,14 +2806,14 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64SHLB, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64SHLB, TypeInvalid)
                        v0.Type = t
                        v0.AddArg(x)
                        v0.AddArg(y)
                        v.AddArg(v0)
-                       v1 := v.Block.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
                        v1.Type = t
-                       v2 := v.Block.NewValue0(v.Line, OpAMD64CMPWconst, TypeInvalid)
+                       v2 := b.NewValue0(v.Line, OpAMD64CMPWconst, TypeInvalid)
                        v2.Type = TypeFlags
                        v2.AuxInt = 8
                        v2.AddArg(y)
@@ -2835,14 +2836,14 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64SHLB, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64SHLB, TypeInvalid)
                        v0.Type = t
                        v0.AddArg(x)
                        v0.AddArg(y)
                        v.AddArg(v0)
-                       v1 := v.Block.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
                        v1.Type = t
-                       v2 := v.Block.NewValue0(v.Line, OpAMD64CMPLconst, TypeInvalid)
+                       v2 := b.NewValue0(v.Line, OpAMD64CMPLconst, TypeInvalid)
                        v2.Type = TypeFlags
                        v2.AuxInt = 8
                        v2.AddArg(y)
@@ -2865,14 +2866,14 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64SHLB, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64SHLB, TypeInvalid)
                        v0.Type = t
                        v0.AddArg(x)
                        v0.AddArg(y)
                        v.AddArg(v0)
-                       v1 := v.Block.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
                        v1.Type = t
-                       v2 := v.Block.NewValue0(v.Line, OpAMD64CMPQconst, TypeInvalid)
+                       v2 := b.NewValue0(v.Line, OpAMD64CMPQconst, TypeInvalid)
                        v2.Type = TypeFlags
                        v2.AuxInt = 8
                        v2.AddArg(y)
@@ -2895,14 +2896,14 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64SHLB, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64SHLB, TypeInvalid)
                        v0.Type = t
                        v0.AddArg(x)
                        v0.AddArg(y)
                        v.AddArg(v0)
-                       v1 := v.Block.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
                        v1.Type = t
-                       v2 := v.Block.NewValue0(v.Line, OpAMD64CMPBconst, TypeInvalid)
+                       v2 := b.NewValue0(v.Line, OpAMD64CMPBconst, TypeInvalid)
                        v2.Type = TypeFlags
                        v2.AuxInt = 8
                        v2.AddArg(y)
@@ -3640,7 +3641,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.resetArgs()
                        v.AddArg(dst)
                        v.AddArg(src)
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64MOVQconst, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64MOVQconst, TypeInvalid)
                        v0.Type = config.Frontend().TypeUInt64()
                        v0.AuxInt = size
                        v.AddArg(v0)
@@ -3967,7 +3968,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64CMPW, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64CMPW, TypeInvalid)
                        v0.Type = TypeFlags
                        v0.AddArg(x)
                        v0.AddArg(y)
@@ -3988,7 +3989,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64CMPL, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64CMPL, TypeInvalid)
                        v0.Type = TypeFlags
                        v0.AddArg(x)
                        v0.AddArg(y)
@@ -4009,7 +4010,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64CMPQ, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64CMPQ, TypeInvalid)
                        v0.Type = TypeFlags
                        v0.AddArg(x)
                        v0.AddArg(y)
@@ -4030,7 +4031,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64CMPB, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64CMPB, TypeInvalid)
                        v0.Type = TypeFlags
                        v0.AddArg(x)
                        v0.AddArg(y)
@@ -4051,7 +4052,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64CMPQ, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64CMPQ, TypeInvalid)
                        v0.Type = TypeFlags
                        v0.AddArg(x)
                        v0.AddArg(y)
@@ -4648,14 +4649,14 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64SHRW, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64SHRW, TypeInvalid)
                        v0.Type = t
                        v0.AddArg(x)
                        v0.AddArg(y)
                        v.AddArg(v0)
-                       v1 := v.Block.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
                        v1.Type = t
-                       v2 := v.Block.NewValue0(v.Line, OpAMD64CMPWconst, TypeInvalid)
+                       v2 := b.NewValue0(v.Line, OpAMD64CMPWconst, TypeInvalid)
                        v2.Type = TypeFlags
                        v2.AuxInt = 16
                        v2.AddArg(y)
@@ -4678,14 +4679,14 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64SHRW, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64SHRW, TypeInvalid)
                        v0.Type = t
                        v0.AddArg(x)
                        v0.AddArg(y)
                        v.AddArg(v0)
-                       v1 := v.Block.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
                        v1.Type = t
-                       v2 := v.Block.NewValue0(v.Line, OpAMD64CMPLconst, TypeInvalid)
+                       v2 := b.NewValue0(v.Line, OpAMD64CMPLconst, TypeInvalid)
                        v2.Type = TypeFlags
                        v2.AuxInt = 16
                        v2.AddArg(y)
@@ -4708,14 +4709,14 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64SHRW, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64SHRW, TypeInvalid)
                        v0.Type = t
                        v0.AddArg(x)
                        v0.AddArg(y)
                        v.AddArg(v0)
-                       v1 := v.Block.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
                        v1.Type = t
-                       v2 := v.Block.NewValue0(v.Line, OpAMD64CMPQconst, TypeInvalid)
+                       v2 := b.NewValue0(v.Line, OpAMD64CMPQconst, TypeInvalid)
                        v2.Type = TypeFlags
                        v2.AuxInt = 16
                        v2.AddArg(y)
@@ -4738,14 +4739,14 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64SHRW, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64SHRW, TypeInvalid)
                        v0.Type = t
                        v0.AddArg(x)
                        v0.AddArg(y)
                        v.AddArg(v0)
-                       v1 := v.Block.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
                        v1.Type = t
-                       v2 := v.Block.NewValue0(v.Line, OpAMD64CMPBconst, TypeInvalid)
+                       v2 := b.NewValue0(v.Line, OpAMD64CMPBconst, TypeInvalid)
                        v2.Type = TypeFlags
                        v2.AuxInt = 16
                        v2.AddArg(y)
@@ -4770,14 +4771,14 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.resetArgs()
                        v.Type = t
                        v.AddArg(x)
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64ORW, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64ORW, TypeInvalid)
                        v0.Type = y.Type
                        v0.AddArg(y)
-                       v1 := v.Block.NewValue0(v.Line, OpAMD64NOTL, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpAMD64NOTL, TypeInvalid)
                        v1.Type = y.Type
-                       v2 := v.Block.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
+                       v2 := b.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
                        v2.Type = y.Type
-                       v3 := v.Block.NewValue0(v.Line, OpAMD64CMPWconst, TypeInvalid)
+                       v3 := b.NewValue0(v.Line, OpAMD64CMPWconst, TypeInvalid)
                        v3.Type = TypeFlags
                        v3.AuxInt = 16
                        v3.AddArg(y)
@@ -4804,14 +4805,14 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.resetArgs()
                        v.Type = t
                        v.AddArg(x)
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64ORL, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64ORL, TypeInvalid)
                        v0.Type = y.Type
                        v0.AddArg(y)
-                       v1 := v.Block.NewValue0(v.Line, OpAMD64NOTL, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpAMD64NOTL, TypeInvalid)
                        v1.Type = y.Type
-                       v2 := v.Block.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
+                       v2 := b.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
                        v2.Type = y.Type
-                       v3 := v.Block.NewValue0(v.Line, OpAMD64CMPLconst, TypeInvalid)
+                       v3 := b.NewValue0(v.Line, OpAMD64CMPLconst, TypeInvalid)
                        v3.Type = TypeFlags
                        v3.AuxInt = 16
                        v3.AddArg(y)
@@ -4838,14 +4839,14 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.resetArgs()
                        v.Type = t
                        v.AddArg(x)
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64ORQ, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64ORQ, TypeInvalid)
                        v0.Type = y.Type
                        v0.AddArg(y)
-                       v1 := v.Block.NewValue0(v.Line, OpAMD64NOTQ, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpAMD64NOTQ, TypeInvalid)
                        v1.Type = y.Type
-                       v2 := v.Block.NewValue0(v.Line, OpAMD64SBBQcarrymask, TypeInvalid)
+                       v2 := b.NewValue0(v.Line, OpAMD64SBBQcarrymask, TypeInvalid)
                        v2.Type = y.Type
-                       v3 := v.Block.NewValue0(v.Line, OpAMD64CMPQconst, TypeInvalid)
+                       v3 := b.NewValue0(v.Line, OpAMD64CMPQconst, TypeInvalid)
                        v3.Type = TypeFlags
                        v3.AuxInt = 16
                        v3.AddArg(y)
@@ -4872,14 +4873,14 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.resetArgs()
                        v.Type = t
                        v.AddArg(x)
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64ORB, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64ORB, TypeInvalid)
                        v0.Type = y.Type
                        v0.AddArg(y)
-                       v1 := v.Block.NewValue0(v.Line, OpAMD64NOTL, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpAMD64NOTL, TypeInvalid)
                        v1.Type = y.Type
-                       v2 := v.Block.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
+                       v2 := b.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
                        v2.Type = y.Type
-                       v3 := v.Block.NewValue0(v.Line, OpAMD64CMPBconst, TypeInvalid)
+                       v3 := b.NewValue0(v.Line, OpAMD64CMPBconst, TypeInvalid)
                        v3.Type = TypeFlags
                        v3.AuxInt = 16
                        v3.AddArg(y)
@@ -4904,14 +4905,14 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64SHRL, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64SHRL, TypeInvalid)
                        v0.Type = t
                        v0.AddArg(x)
                        v0.AddArg(y)
                        v.AddArg(v0)
-                       v1 := v.Block.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
                        v1.Type = t
-                       v2 := v.Block.NewValue0(v.Line, OpAMD64CMPWconst, TypeInvalid)
+                       v2 := b.NewValue0(v.Line, OpAMD64CMPWconst, TypeInvalid)
                        v2.Type = TypeFlags
                        v2.AuxInt = 32
                        v2.AddArg(y)
@@ -4934,14 +4935,14 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64SHRL, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64SHRL, TypeInvalid)
                        v0.Type = t
                        v0.AddArg(x)
                        v0.AddArg(y)
                        v.AddArg(v0)
-                       v1 := v.Block.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
                        v1.Type = t
-                       v2 := v.Block.NewValue0(v.Line, OpAMD64CMPLconst, TypeInvalid)
+                       v2 := b.NewValue0(v.Line, OpAMD64CMPLconst, TypeInvalid)
                        v2.Type = TypeFlags
                        v2.AuxInt = 32
                        v2.AddArg(y)
@@ -4964,14 +4965,14 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64SHRL, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64SHRL, TypeInvalid)
                        v0.Type = t
                        v0.AddArg(x)
                        v0.AddArg(y)
                        v.AddArg(v0)
-                       v1 := v.Block.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
                        v1.Type = t
-                       v2 := v.Block.NewValue0(v.Line, OpAMD64CMPQconst, TypeInvalid)
+                       v2 := b.NewValue0(v.Line, OpAMD64CMPQconst, TypeInvalid)
                        v2.Type = TypeFlags
                        v2.AuxInt = 32
                        v2.AddArg(y)
@@ -4994,14 +4995,14 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64SHRL, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64SHRL, TypeInvalid)
                        v0.Type = t
                        v0.AddArg(x)
                        v0.AddArg(y)
                        v.AddArg(v0)
-                       v1 := v.Block.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
                        v1.Type = t
-                       v2 := v.Block.NewValue0(v.Line, OpAMD64CMPBconst, TypeInvalid)
+                       v2 := b.NewValue0(v.Line, OpAMD64CMPBconst, TypeInvalid)
                        v2.Type = TypeFlags
                        v2.AuxInt = 32
                        v2.AddArg(y)
@@ -5026,14 +5027,14 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.resetArgs()
                        v.Type = t
                        v.AddArg(x)
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64ORW, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64ORW, TypeInvalid)
                        v0.Type = y.Type
                        v0.AddArg(y)
-                       v1 := v.Block.NewValue0(v.Line, OpAMD64NOTL, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpAMD64NOTL, TypeInvalid)
                        v1.Type = y.Type
-                       v2 := v.Block.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
+                       v2 := b.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
                        v2.Type = y.Type
-                       v3 := v.Block.NewValue0(v.Line, OpAMD64CMPWconst, TypeInvalid)
+                       v3 := b.NewValue0(v.Line, OpAMD64CMPWconst, TypeInvalid)
                        v3.Type = TypeFlags
                        v3.AuxInt = 32
                        v3.AddArg(y)
@@ -5060,14 +5061,14 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.resetArgs()
                        v.Type = t
                        v.AddArg(x)
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64ORL, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64ORL, TypeInvalid)
                        v0.Type = y.Type
                        v0.AddArg(y)
-                       v1 := v.Block.NewValue0(v.Line, OpAMD64NOTL, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpAMD64NOTL, TypeInvalid)
                        v1.Type = y.Type
-                       v2 := v.Block.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
+                       v2 := b.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
                        v2.Type = y.Type
-                       v3 := v.Block.NewValue0(v.Line, OpAMD64CMPLconst, TypeInvalid)
+                       v3 := b.NewValue0(v.Line, OpAMD64CMPLconst, TypeInvalid)
                        v3.Type = TypeFlags
                        v3.AuxInt = 32
                        v3.AddArg(y)
@@ -5094,14 +5095,14 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.resetArgs()
                        v.Type = t
                        v.AddArg(x)
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64ORQ, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64ORQ, TypeInvalid)
                        v0.Type = y.Type
                        v0.AddArg(y)
-                       v1 := v.Block.NewValue0(v.Line, OpAMD64NOTQ, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpAMD64NOTQ, TypeInvalid)
                        v1.Type = y.Type
-                       v2 := v.Block.NewValue0(v.Line, OpAMD64SBBQcarrymask, TypeInvalid)
+                       v2 := b.NewValue0(v.Line, OpAMD64SBBQcarrymask, TypeInvalid)
                        v2.Type = y.Type
-                       v3 := v.Block.NewValue0(v.Line, OpAMD64CMPQconst, TypeInvalid)
+                       v3 := b.NewValue0(v.Line, OpAMD64CMPQconst, TypeInvalid)
                        v3.Type = TypeFlags
                        v3.AuxInt = 32
                        v3.AddArg(y)
@@ -5128,14 +5129,14 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.resetArgs()
                        v.Type = t
                        v.AddArg(x)
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64ORB, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64ORB, TypeInvalid)
                        v0.Type = y.Type
                        v0.AddArg(y)
-                       v1 := v.Block.NewValue0(v.Line, OpAMD64NOTL, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpAMD64NOTL, TypeInvalid)
                        v1.Type = y.Type
-                       v2 := v.Block.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
+                       v2 := b.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
                        v2.Type = y.Type
-                       v3 := v.Block.NewValue0(v.Line, OpAMD64CMPBconst, TypeInvalid)
+                       v3 := b.NewValue0(v.Line, OpAMD64CMPBconst, TypeInvalid)
                        v3.Type = TypeFlags
                        v3.AuxInt = 32
                        v3.AddArg(y)
@@ -5160,14 +5161,14 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64SHRQ, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64SHRQ, TypeInvalid)
                        v0.Type = t
                        v0.AddArg(x)
                        v0.AddArg(y)
                        v.AddArg(v0)
-                       v1 := v.Block.NewValue0(v.Line, OpAMD64SBBQcarrymask, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpAMD64SBBQcarrymask, TypeInvalid)
                        v1.Type = t
-                       v2 := v.Block.NewValue0(v.Line, OpAMD64CMPWconst, TypeInvalid)
+                       v2 := b.NewValue0(v.Line, OpAMD64CMPWconst, TypeInvalid)
                        v2.Type = TypeFlags
                        v2.AuxInt = 64
                        v2.AddArg(y)
@@ -5190,14 +5191,14 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64SHRQ, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64SHRQ, TypeInvalid)
                        v0.Type = t
                        v0.AddArg(x)
                        v0.AddArg(y)
                        v.AddArg(v0)
-                       v1 := v.Block.NewValue0(v.Line, OpAMD64SBBQcarrymask, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpAMD64SBBQcarrymask, TypeInvalid)
                        v1.Type = t
-                       v2 := v.Block.NewValue0(v.Line, OpAMD64CMPLconst, TypeInvalid)
+                       v2 := b.NewValue0(v.Line, OpAMD64CMPLconst, TypeInvalid)
                        v2.Type = TypeFlags
                        v2.AuxInt = 64
                        v2.AddArg(y)
@@ -5220,14 +5221,14 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64SHRQ, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64SHRQ, TypeInvalid)
                        v0.Type = t
                        v0.AddArg(x)
                        v0.AddArg(y)
                        v.AddArg(v0)
-                       v1 := v.Block.NewValue0(v.Line, OpAMD64SBBQcarrymask, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpAMD64SBBQcarrymask, TypeInvalid)
                        v1.Type = t
-                       v2 := v.Block.NewValue0(v.Line, OpAMD64CMPQconst, TypeInvalid)
+                       v2 := b.NewValue0(v.Line, OpAMD64CMPQconst, TypeInvalid)
                        v2.Type = TypeFlags
                        v2.AuxInt = 64
                        v2.AddArg(y)
@@ -5250,14 +5251,14 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64SHRQ, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64SHRQ, TypeInvalid)
                        v0.Type = t
                        v0.AddArg(x)
                        v0.AddArg(y)
                        v.AddArg(v0)
-                       v1 := v.Block.NewValue0(v.Line, OpAMD64SBBQcarrymask, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpAMD64SBBQcarrymask, TypeInvalid)
                        v1.Type = t
-                       v2 := v.Block.NewValue0(v.Line, OpAMD64CMPBconst, TypeInvalid)
+                       v2 := b.NewValue0(v.Line, OpAMD64CMPBconst, TypeInvalid)
                        v2.Type = TypeFlags
                        v2.AuxInt = 64
                        v2.AddArg(y)
@@ -5282,14 +5283,14 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.resetArgs()
                        v.Type = t
                        v.AddArg(x)
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64ORW, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64ORW, TypeInvalid)
                        v0.Type = y.Type
                        v0.AddArg(y)
-                       v1 := v.Block.NewValue0(v.Line, OpAMD64NOTL, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpAMD64NOTL, TypeInvalid)
                        v1.Type = y.Type
-                       v2 := v.Block.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
+                       v2 := b.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
                        v2.Type = y.Type
-                       v3 := v.Block.NewValue0(v.Line, OpAMD64CMPWconst, TypeInvalid)
+                       v3 := b.NewValue0(v.Line, OpAMD64CMPWconst, TypeInvalid)
                        v3.Type = TypeFlags
                        v3.AuxInt = 64
                        v3.AddArg(y)
@@ -5316,14 +5317,14 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.resetArgs()
                        v.Type = t
                        v.AddArg(x)
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64ORL, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64ORL, TypeInvalid)
                        v0.Type = y.Type
                        v0.AddArg(y)
-                       v1 := v.Block.NewValue0(v.Line, OpAMD64NOTL, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpAMD64NOTL, TypeInvalid)
                        v1.Type = y.Type
-                       v2 := v.Block.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
+                       v2 := b.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
                        v2.Type = y.Type
-                       v3 := v.Block.NewValue0(v.Line, OpAMD64CMPLconst, TypeInvalid)
+                       v3 := b.NewValue0(v.Line, OpAMD64CMPLconst, TypeInvalid)
                        v3.Type = TypeFlags
                        v3.AuxInt = 64
                        v3.AddArg(y)
@@ -5350,14 +5351,14 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.resetArgs()
                        v.Type = t
                        v.AddArg(x)
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64ORQ, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64ORQ, TypeInvalid)
                        v0.Type = y.Type
                        v0.AddArg(y)
-                       v1 := v.Block.NewValue0(v.Line, OpAMD64NOTQ, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpAMD64NOTQ, TypeInvalid)
                        v1.Type = y.Type
-                       v2 := v.Block.NewValue0(v.Line, OpAMD64SBBQcarrymask, TypeInvalid)
+                       v2 := b.NewValue0(v.Line, OpAMD64SBBQcarrymask, TypeInvalid)
                        v2.Type = y.Type
-                       v3 := v.Block.NewValue0(v.Line, OpAMD64CMPQconst, TypeInvalid)
+                       v3 := b.NewValue0(v.Line, OpAMD64CMPQconst, TypeInvalid)
                        v3.Type = TypeFlags
                        v3.AuxInt = 64
                        v3.AddArg(y)
@@ -5384,14 +5385,14 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.resetArgs()
                        v.Type = t
                        v.AddArg(x)
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64ORB, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64ORB, TypeInvalid)
                        v0.Type = y.Type
                        v0.AddArg(y)
-                       v1 := v.Block.NewValue0(v.Line, OpAMD64NOTL, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpAMD64NOTL, TypeInvalid)
                        v1.Type = y.Type
-                       v2 := v.Block.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
+                       v2 := b.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
                        v2.Type = y.Type
-                       v3 := v.Block.NewValue0(v.Line, OpAMD64CMPBconst, TypeInvalid)
+                       v3 := b.NewValue0(v.Line, OpAMD64CMPBconst, TypeInvalid)
                        v3.Type = TypeFlags
                        v3.AuxInt = 64
                        v3.AddArg(y)
@@ -5416,14 +5417,14 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64SHRB, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64SHRB, TypeInvalid)
                        v0.Type = t
                        v0.AddArg(x)
                        v0.AddArg(y)
                        v.AddArg(v0)
-                       v1 := v.Block.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
                        v1.Type = t
-                       v2 := v.Block.NewValue0(v.Line, OpAMD64CMPWconst, TypeInvalid)
+                       v2 := b.NewValue0(v.Line, OpAMD64CMPWconst, TypeInvalid)
                        v2.Type = TypeFlags
                        v2.AuxInt = 8
                        v2.AddArg(y)
@@ -5446,14 +5447,14 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64SHRB, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64SHRB, TypeInvalid)
                        v0.Type = t
                        v0.AddArg(x)
                        v0.AddArg(y)
                        v.AddArg(v0)
-                       v1 := v.Block.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
                        v1.Type = t
-                       v2 := v.Block.NewValue0(v.Line, OpAMD64CMPLconst, TypeInvalid)
+                       v2 := b.NewValue0(v.Line, OpAMD64CMPLconst, TypeInvalid)
                        v2.Type = TypeFlags
                        v2.AuxInt = 8
                        v2.AddArg(y)
@@ -5476,14 +5477,14 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64SHRB, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64SHRB, TypeInvalid)
                        v0.Type = t
                        v0.AddArg(x)
                        v0.AddArg(y)
                        v.AddArg(v0)
-                       v1 := v.Block.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
                        v1.Type = t
-                       v2 := v.Block.NewValue0(v.Line, OpAMD64CMPQconst, TypeInvalid)
+                       v2 := b.NewValue0(v.Line, OpAMD64CMPQconst, TypeInvalid)
                        v2.Type = TypeFlags
                        v2.AuxInt = 8
                        v2.AddArg(y)
@@ -5506,14 +5507,14 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64SHRB, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64SHRB, TypeInvalid)
                        v0.Type = t
                        v0.AddArg(x)
                        v0.AddArg(y)
                        v.AddArg(v0)
-                       v1 := v.Block.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
                        v1.Type = t
-                       v2 := v.Block.NewValue0(v.Line, OpAMD64CMPBconst, TypeInvalid)
+                       v2 := b.NewValue0(v.Line, OpAMD64CMPBconst, TypeInvalid)
                        v2.Type = TypeFlags
                        v2.AuxInt = 8
                        v2.AddArg(y)
@@ -5538,14 +5539,14 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.resetArgs()
                        v.Type = t
                        v.AddArg(x)
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64ORW, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64ORW, TypeInvalid)
                        v0.Type = y.Type
                        v0.AddArg(y)
-                       v1 := v.Block.NewValue0(v.Line, OpAMD64NOTL, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpAMD64NOTL, TypeInvalid)
                        v1.Type = y.Type
-                       v2 := v.Block.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
+                       v2 := b.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
                        v2.Type = y.Type
-                       v3 := v.Block.NewValue0(v.Line, OpAMD64CMPWconst, TypeInvalid)
+                       v3 := b.NewValue0(v.Line, OpAMD64CMPWconst, TypeInvalid)
                        v3.Type = TypeFlags
                        v3.AuxInt = 8
                        v3.AddArg(y)
@@ -5572,14 +5573,14 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.resetArgs()
                        v.Type = t
                        v.AddArg(x)
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64ORL, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64ORL, TypeInvalid)
                        v0.Type = y.Type
                        v0.AddArg(y)
-                       v1 := v.Block.NewValue0(v.Line, OpAMD64NOTL, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpAMD64NOTL, TypeInvalid)
                        v1.Type = y.Type
-                       v2 := v.Block.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
+                       v2 := b.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
                        v2.Type = y.Type
-                       v3 := v.Block.NewValue0(v.Line, OpAMD64CMPLconst, TypeInvalid)
+                       v3 := b.NewValue0(v.Line, OpAMD64CMPLconst, TypeInvalid)
                        v3.Type = TypeFlags
                        v3.AuxInt = 8
                        v3.AddArg(y)
@@ -5606,14 +5607,14 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.resetArgs()
                        v.Type = t
                        v.AddArg(x)
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64ORQ, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64ORQ, TypeInvalid)
                        v0.Type = y.Type
                        v0.AddArg(y)
-                       v1 := v.Block.NewValue0(v.Line, OpAMD64NOTQ, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpAMD64NOTQ, TypeInvalid)
                        v1.Type = y.Type
-                       v2 := v.Block.NewValue0(v.Line, OpAMD64SBBQcarrymask, TypeInvalid)
+                       v2 := b.NewValue0(v.Line, OpAMD64SBBQcarrymask, TypeInvalid)
                        v2.Type = y.Type
-                       v3 := v.Block.NewValue0(v.Line, OpAMD64CMPQconst, TypeInvalid)
+                       v3 := b.NewValue0(v.Line, OpAMD64CMPQconst, TypeInvalid)
                        v3.Type = TypeFlags
                        v3.AuxInt = 8
                        v3.AddArg(y)
@@ -5640,14 +5641,14 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.resetArgs()
                        v.Type = t
                        v.AddArg(x)
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64ORB, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64ORB, TypeInvalid)
                        v0.Type = y.Type
                        v0.AddArg(y)
-                       v1 := v.Block.NewValue0(v.Line, OpAMD64NOTL, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpAMD64NOTL, TypeInvalid)
                        v1.Type = y.Type
-                       v2 := v.Block.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
+                       v2 := b.NewValue0(v.Line, OpAMD64SBBLcarrymask, TypeInvalid)
                        v2.Type = y.Type
-                       v3 := v.Block.NewValue0(v.Line, OpAMD64CMPBconst, TypeInvalid)
+                       v3 := b.NewValue0(v.Line, OpAMD64CMPBconst, TypeInvalid)
                        v3.Type = TypeFlags
                        v3.AuxInt = 8
                        v3.AddArg(y)
@@ -6337,7 +6338,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64SUBBconst, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64SUBBconst, TypeInvalid)
                        v0.Type = v.Type
                        v0.AddArg(x)
                        v0.AuxInt = c
@@ -6440,7 +6441,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64SUBLconst, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64SUBLconst, TypeInvalid)
                        v0.Type = v.Type
                        v0.AddArg(x)
                        v0.AuxInt = c
@@ -6549,7 +6550,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64SUBQconst, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64SUBQconst, TypeInvalid)
                        v0.Type = v.Type
                        v0.AddArg(x)
                        v0.AuxInt = c
@@ -6652,7 +6653,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64SUBWconst, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64SUBWconst, TypeInvalid)
                        v0.Type = v.Type
                        v0.AddArg(x)
                        v0.AuxInt = c
@@ -7543,7 +7544,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.Aux = nil
                        v.resetArgs()
                        v.AddArg(destptr)
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64MOVBconst, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64MOVBconst, TypeInvalid)
                        v0.Type = config.Frontend().TypeInt8()
                        v0.AuxInt = 0
                        v.AddArg(v0)
@@ -7567,7 +7568,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.Aux = nil
                        v.resetArgs()
                        v.AddArg(destptr)
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64MOVWconst, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64MOVWconst, TypeInvalid)
                        v0.Type = config.Frontend().TypeInt16()
                        v0.AuxInt = 0
                        v.AddArg(v0)
@@ -7591,7 +7592,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.Aux = nil
                        v.resetArgs()
                        v.AddArg(destptr)
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64MOVLconst, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64MOVLconst, TypeInvalid)
                        v0.Type = config.Frontend().TypeInt32()
                        v0.AuxInt = 0
                        v.AddArg(v0)
@@ -7615,7 +7616,7 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.Aux = nil
                        v.resetArgs()
                        v.AddArg(destptr)
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64MOVQconst, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64MOVQconst, TypeInvalid)
                        v0.Type = config.Frontend().TypeInt64()
                        v0.AuxInt = 0
                        v.AddArg(v0)
@@ -7662,15 +7663,15 @@ func rewriteValueAMD64(v *Value, config *Config) bool {
                        v.Aux = nil
                        v.resetArgs()
                        v.AuxInt = size % 8
-                       v0 := v.Block.NewValue0(v.Line, OpOffPtr, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpOffPtr, TypeInvalid)
                        v0.Type = config.Frontend().TypeUInt64()
                        v0.AuxInt = size - (size % 8)
                        v0.AddArg(destptr)
                        v.AddArg(v0)
-                       v1 := v.Block.NewValue0(v.Line, OpAMD64REPSTOSQ, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpAMD64REPSTOSQ, TypeInvalid)
                        v1.Type = TypeMem
                        v1.AddArg(destptr)
-                       v2 := v.Block.NewValue0(v.Line, OpAMD64MOVQconst, TypeInvalid)
+                       v2 := b.NewValue0(v.Line, OpAMD64MOVQconst, TypeInvalid)
                        v2.Type = config.Frontend().TypeUInt64()
                        v2.AuxInt = size / 8
                        v1.AddArg(v2)
@@ -8057,7 +8058,7 @@ func rewriteBlockAMD64(b *Block) bool {
                                goto end7e22019fb0effc80f85c05ea30bdb5d9
                        }
                        b.Kind = BlockAMD64NE
-                       v0 := v.Block.NewValue0(v.Line, OpAMD64TESTB, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAMD64TESTB, TypeInvalid)
                        v0.Type = TypeFlags
                        v0.AddArg(cond)
                        v0.AddArg(cond)
index bccf81b8314548ba2622e7277aa9330af92604dd..d706fd7a2efbb7db052f64910c837c8ed0d13ec6 100644 (file)
@@ -3,6 +3,7 @@
 package ssa
 
 func rewriteValuegeneric(v *Value, config *Config) bool {
+       b := v.Block
        switch v.Op {
        case OpAdd64:
                // match: (Add64 (Const64 [c]) (Const64 [d]))
@@ -65,7 +66,7 @@ func rewriteValuegeneric(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpPtrIndex, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpPtrIndex, TypeInvalid)
                        v0.Type = v.Type.PtrTo()
                        v0.AddArg(ptr)
                        v0.AddArg(idx)
@@ -162,14 +163,14 @@ func rewriteValuegeneric(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAddr, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAddr, TypeInvalid)
                        v0.Type = config.Frontend().TypeBytePtr()
                        v0.Aux = config.fe.StringData(s.(string))
-                       v1 := v.Block.NewValue0(v.Line, OpSB, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpSB, TypeInvalid)
                        v1.Type = config.Frontend().TypeUintptr()
                        v0.AddArg(v1)
                        v.AddArg(v0)
-                       v2 := v.Block.NewValue0(v.Line, OpConstPtr, TypeInvalid)
+                       v2 := b.NewValue0(v.Line, OpConstPtr, TypeInvalid)
                        v2.Type = config.Frontend().TypeUintptr()
                        v2.AuxInt = int64(len(s.(string)))
                        v.AddArg(v2)
@@ -291,12 +292,12 @@ func rewriteValuegeneric(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpLoad, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpLoad, TypeInvalid)
                        v0.Type = config.Frontend().TypeUintptr()
                        v0.AddArg(ptr)
                        v0.AddArg(mem)
                        v.AddArg(v0)
-                       v1 := v.Block.NewValue0(v.Line, OpConstPtr, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpConstPtr, TypeInvalid)
                        v1.Type = config.Frontend().TypeUintptr()
                        v1.AuxInt = 0
                        v.AddArg(v1)
@@ -343,14 +344,14 @@ func rewriteValuegeneric(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpLoad, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpLoad, TypeInvalid)
                        v0.Type = config.Frontend().TypeBytePtr()
                        v0.AddArg(ptr)
                        v0.AddArg(mem)
                        v.AddArg(v0)
-                       v1 := v.Block.NewValue0(v.Line, OpLoad, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpLoad, TypeInvalid)
                        v1.Type = config.Frontend().TypeUintptr()
-                       v2 := v.Block.NewValue0(v.Line, OpOffPtr, TypeInvalid)
+                       v2 := b.NewValue0(v.Line, OpOffPtr, TypeInvalid)
                        v2.Type = config.Frontend().TypeBytePtr()
                        v2.AuxInt = config.PtrSize
                        v2.AddArg(ptr)
@@ -521,12 +522,12 @@ func rewriteValuegeneric(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpLoad, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpLoad, TypeInvalid)
                        v0.Type = config.Frontend().TypeUintptr()
                        v0.AddArg(ptr)
                        v0.AddArg(mem)
                        v.AddArg(v0)
-                       v1 := v.Block.NewValue0(v.Line, OpConstPtr, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpConstPtr, TypeInvalid)
                        v1.Type = config.Frontend().TypeUintptr()
                        v1.AuxInt = 0
                        v.AddArg(v1)
@@ -548,10 +549,10 @@ func rewriteValuegeneric(v *Value, config *Config) bool {
                        v.Aux = nil
                        v.resetArgs()
                        v.AddArg(ptr)
-                       v0 := v.Block.NewValue0(v.Line, OpMulPtr, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpMulPtr, TypeInvalid)
                        v0.Type = config.Frontend().TypeUintptr()
                        v0.AddArg(idx)
-                       v1 := v.Block.NewValue0(v.Line, OpConstPtr, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpConstPtr, TypeInvalid)
                        v1.Type = config.Frontend().TypeUintptr()
                        v1.AuxInt = t.Elem().Size()
                        v0.AddArg(v1)
@@ -575,10 +576,10 @@ func rewriteValuegeneric(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAddPtr, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAddPtr, TypeInvalid)
                        v0.Type = ptr.Type
                        v0.AddArg(ptr)
-                       v1 := v.Block.NewValue0(v.Line, OpConstPtr, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpConstPtr, TypeInvalid)
                        v1.Type = config.Frontend().TypeUintptr()
                        v1.AuxInt = config.PtrSize * 2
                        v0.AddArg(v1)
@@ -603,10 +604,10 @@ func rewriteValuegeneric(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpAddPtr, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpAddPtr, TypeInvalid)
                        v0.Type = ptr.Type
                        v0.AddArg(ptr)
-                       v1 := v.Block.NewValue0(v.Line, OpConstPtr, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpConstPtr, TypeInvalid)
                        v1.Type = config.Frontend().TypeUintptr()
                        v1.AuxInt = config.PtrSize
                        v0.AddArg(v1)
@@ -683,19 +684,19 @@ func rewriteValuegeneric(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpOffPtr, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpOffPtr, TypeInvalid)
                        v0.Type = config.Frontend().TypeBytePtr()
                        v0.AuxInt = config.PtrSize
                        v0.AddArg(dst)
                        v.AddArg(v0)
-                       v1 := v.Block.NewValue0(v.Line, OpStringLen, TypeInvalid)
+                       v1 := b.NewValue0(v.Line, OpStringLen, TypeInvalid)
                        v1.Type = config.Frontend().TypeUintptr()
                        v1.AddArg(str)
                        v.AddArg(v1)
-                       v2 := v.Block.NewValue0(v.Line, OpStore, TypeInvalid)
+                       v2 := b.NewValue0(v.Line, OpStore, TypeInvalid)
                        v2.Type = TypeMem
                        v2.AddArg(dst)
-                       v3 := v.Block.NewValue0(v.Line, OpStringPtr, TypeInvalid)
+                       v3 := b.NewValue0(v.Line, OpStringPtr, TypeInvalid)
                        v3.Type = config.Frontend().TypeBytePtr()
                        v3.AddArg(str)
                        v2.AddArg(v3)
@@ -759,7 +760,7 @@ func rewriteValuegeneric(v *Value, config *Config) bool {
                        v.AuxInt = 0
                        v.Aux = nil
                        v.resetArgs()
-                       v0 := v.Block.NewValue0(v.Line, OpOffPtr, TypeInvalid)
+                       v0 := b.NewValue0(v.Line, OpOffPtr, TypeInvalid)
                        v0.Type = v.Type.PtrTo()
                        v0.AuxInt = idx
                        v0.AddArg(ptr)
@@ -809,7 +810,7 @@ func rewriteBlockgeneric(b *Block) bool {
                        if !(c.(bool)) {
                                goto end9ff0273f9b1657f4afc287562ca889f0
                        }
-                       v.Block.Func.removePredecessor(b, no)
+                       b.Func.removePredecessor(b, no)
                        b.Kind = BlockPlain
                        b.Control = nil
                        b.Succs = b.Succs[:1]
@@ -833,7 +834,7 @@ func rewriteBlockgeneric(b *Block) bool {
                        if !(!c.(bool)) {
                                goto endf401a4553c3c7c6bed64801da7bba076
                        }
-                       v.Block.Func.removePredecessor(b, yes)
+                       b.Func.removePredecessor(b, yes)
                        b.Kind = BlockPlain
                        b.Control = nil
                        b.Succs = b.Succs[:1]