aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/internal/obj/data.go
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2015-03-16 15:54:44 -0400
committerRuss Cox <rsc@golang.org>2015-03-20 04:47:08 +0000
commit532ccae1547580e572cf5cd0f687f4508ceeddb9 (patch)
tree0bf2149cc9ed14425e7cc6f83dd597372597aad2 /src/cmd/internal/obj/data.go
parent631d6a33bf2889c5c648555ab993687a48f9c287 (diff)
downloadgo-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.go6
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 {