cmd/internal/gc: manual goto removal + grind to move var decls
Also change gc.Naddr to return the Addr instead of filling it in.
Change-Id: I98a86705d23bee49626a12a042a4d51cabe290ea
Reviewed-on: https://go-review.googlesource.com/6601
Reviewed-by: Rob Pike <r@golang.org>
diff --git a/src/cmd/8g/gsubr.go b/src/cmd/8g/gsubr.go
index 6931ea8..95ec01a 100644
--- a/src/cmd/8g/gsubr.go
+++ b/src/cmd/8g/gsubr.go
@@ -1148,12 +1148,14 @@
// requires register destination
rdst:
- regalloc(&r1, t.Type, t)
+ {
+ regalloc(&r1, t.Type, t)
- gins(a, f, &r1)
- gmove(&r1, t)
- regfree(&r1)
- return
+ gins(a, f, &r1)
+ gmove(&r1, t)
+ regfree(&r1)
+ return
+ }
// requires register intermediate
hard:
@@ -1845,10 +1847,10 @@
var af obj.Addr
var at obj.Addr
if f != nil {
- gc.Naddr(f, &af, 1)
+ af = gc.Naddr(f, 1)
}
if t != nil {
- gc.Naddr(t, &at, 1)
+ at = gc.Naddr(t, 1)
}
p := gc.Prog(as)
if f != nil {