diff options
| author | Russ Cox <rsc@golang.org> | 2015-03-16 15:54:44 -0400 |
|---|---|---|
| committer | Russ Cox <rsc@golang.org> | 2015-03-20 04:47:08 +0000 |
| commit | 532ccae1547580e572cf5cd0f687f4508ceeddb9 (patch) | |
| tree | 0bf2149cc9ed14425e7cc6f83dd597372597aad2 /src/cmd/internal/obj/data.go | |
| parent | 631d6a33bf2889c5c648555ab993687a48f9c287 (diff) | |
| download | go-532ccae1547580e572cf5cd0f687f4508ceeddb9.tar.xz | |
cmd/internal/obj: replace Addr.U struct {...} with Val interface{}
An interface{} is more in the spirit of the original union.
By my calculations, on 64-bit systems this reduces
Addr from 120 to 80 bytes, and Prog from 592 to 424 bytes.
Change-Id: I0d7b0981513c2a3c94c9ac76bb4f8816485b5a3c
Reviewed-on: https://go-review.googlesource.com/7744
Reviewed-by: Rob Pike <r@golang.org>
Diffstat (limited to 'src/cmd/internal/obj/data.go')
| -rw-r--r-- | src/cmd/internal/obj/data.go | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/cmd/internal/obj/data.go b/src/cmd/internal/obj/data.go index 6321ca4f2a..ab3e2096d0 100644 --- a/src/cmd/internal/obj/data.go +++ b/src/cmd/internal/obj/data.go @@ -75,16 +75,16 @@ func savedata(ctxt *Link, s *LSym, p *Prog, pn string) { ctxt.Diag("unexpected %d-byte floating point constant", siz) case 4: - flt := math.Float32bits(float32(p.To.U.Dval)) + flt := math.Float32bits(float32(p.To.Val.(float64))) ctxt.Arch.ByteOrder.PutUint32(s.P[off:], flt) case 8: - flt := math.Float64bits(p.To.U.Dval) + flt := math.Float64bits(p.To.Val.(float64)) ctxt.Arch.ByteOrder.PutUint64(s.P[off:], flt) } case TYPE_SCONST: - copy(s.P[off:off+siz], p.To.U.Sval) + copy(s.P[off:off+siz], p.To.Val.(string)) case TYPE_CONST, TYPE_ADDR: if p.To.Sym != nil || int(p.To.Type) == TYPE_ADDR { |
