cmd/compile: merge Node.Opt and Node.Val behind access methods
$ sizeof -p cmd/compile/internal/gc Node
Node 144
$
Change-Id: I688e3790964fe42f48c19f697ec38094a92fe1c1
Reviewed-on: https://go-review.googlesource.com/10531
Reviewed-by: Ian Lance Taylor <iant@golang.org>
diff --git a/src/cmd/compile/internal/gc/gen.go b/src/cmd/compile/internal/gc/gen.go
index b9da51a..764895f 100644
--- a/src/cmd/compile/internal/gc/gen.go
+++ b/src/cmd/compile/internal/gc/gen.go
@@ -333,20 +333,20 @@
switch Simtype[n.Type.Etype] {
case TCOMPLEX64, TCOMPLEX128:
- z.Val.U = new(Mpcplx)
- Mpmovecflt(&z.Val.U.(*Mpcplx).Real, 0.0)
- Mpmovecflt(&z.Val.U.(*Mpcplx).Imag, 0.0)
+ z.SetVal(Val{new(Mpcplx)})
+ Mpmovecflt(&z.Val().U.(*Mpcplx).Real, 0.0)
+ Mpmovecflt(&z.Val().U.(*Mpcplx).Imag, 0.0)
case TFLOAT32, TFLOAT64:
var zero Mpflt
Mpmovecflt(&zero, 0.0)
- z.Val.U = &zero
+ z.SetVal(Val{&zero})
case TPTR32, TPTR64, TCHAN, TMAP:
- z.Val.U = new(NilVal)
+ z.SetVal(Val{new(NilVal)})
case TBOOL:
- z.Val.U = false
+ z.SetVal(Val{false})
case TINT8,
TINT16,
@@ -356,8 +356,8 @@
TUINT16,
TUINT32,
TUINT64:
- z.Val.U = new(Mpint)
- Mpmovecfix(z.Val.U.(*Mpint), 0)
+ z.SetVal(Val{new(Mpint)})
+ Mpmovecfix(z.Val().U.(*Mpint), 0)
default:
Fatal("clearslim called on type %v", n.Type)
@@ -1119,7 +1119,7 @@
nodl.Type = Ptrto(Types[TUINT8])
Regalloc(&nodr, Types[Tptr], nil)
p := Thearch.Gins(Thearch.Optoas(OAS, Types[Tptr]), nil, &nodr)
- Datastring(nr.Val.U.(string), &p.From)
+ Datastring(nr.Val().U.(string), &p.From)
p.From.Type = obj.TYPE_ADDR
Thearch.Gmove(&nodr, &nodl)
Regfree(&nodr)
@@ -1127,7 +1127,7 @@
// length
nodl.Type = Types[Simtype[TUINT]]
nodl.Xoffset += int64(Array_nel) - int64(Array_array)
- Nodconst(&nodr, nodl.Type, int64(len(nr.Val.U.(string))))
+ Nodconst(&nodr, nodl.Type, int64(len(nr.Val().U.(string))))
Thearch.Gmove(&nodr, &nodl)
return true
}