]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/link: cleanup after IntSize->PtrSize conversion
authorMatthew Dempsky <mdempsky@google.com>
Sat, 22 Apr 2017 02:05:38 +0000 (19:05 -0700)
committerMatthew Dempsky <mdempsky@google.com>
Sun, 23 Apr 2017 02:07:16 +0000 (02:07 +0000)
Passes toolstash-check -all.

Updates #19954.

Change-Id: Ic162306eed105912491bf1df47e32c32653f824c
Reviewed-on: https://go-review.googlesource.com/41490
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
src/cmd/link/internal/ld/data.go
src/cmd/link/internal/ld/decodesym.go
src/cmd/link/internal/ld/pcln.go
src/cmd/link/internal/ld/symtab.go

index 36528b0aa8d5037f9d49d2a6c1d8d7eb117fd121..9670005bff00310b4bffa85d38bd4720d0c999ba 100644 (file)
@@ -140,6 +140,10 @@ func setuint32(ctxt *Link, s *Symbol, r int64, v uint32) int64 {
        return setuintxx(ctxt, s, r, uint64(v), 4)
 }
 
+func setuint(ctxt *Link, s *Symbol, r int64, v uint64) int64 {
+       return setuintxx(ctxt, s, r, v, int64(SysArch.PtrSize))
+}
+
 func Addaddrplus(ctxt *Link, s *Symbol, t *Symbol, add int64) int64 {
        if s.Type == 0 {
                s.Type = objabi.SDATA
index 7a7b68b4696f921f5cb4a2a573a029d1ded00af2..4d93188dc8cae435e8064cbaef3d1ec63f98a634 100644 (file)
@@ -214,7 +214,7 @@ func decodetypeStructFieldCount(arch *sys.Arch, s *Symbol) int {
 }
 
 func decodetypeStructFieldArrayOff(s *Symbol, i int) int {
-       off := commonsize() + 2*SysArch.PtrSize + 2*SysArch.PtrSize
+       off := commonsize() + 4*SysArch.PtrSize
        if decodetypeHasUncommon(s) {
                off += uncommonSize()
        }
@@ -342,7 +342,7 @@ func decodetypeMethods(arch *sys.Arch, s *Symbol) []methodsig {
        off := commonsize() // reflect.rtype
        switch decodetypeKind(s) & kindMask {
        case kindStruct: // reflect.structType
-               off += 2*SysArch.PtrSize + 2*SysArch.PtrSize
+               off += 4 * SysArch.PtrSize
        case kindPtr: // reflect.ptrType
                off += SysArch.PtrSize
        case kindFunc: // reflect.funcType
@@ -356,7 +356,7 @@ func decodetypeMethods(arch *sys.Arch, s *Symbol) []methodsig {
        case kindMap: // reflect.mapType
                off += 4*SysArch.PtrSize + 8
        case kindInterface: // reflect.interfaceType
-               off += SysArch.PtrSize + 2*SysArch.PtrSize
+               off += 3 * SysArch.PtrSize
        default:
                // just Sizeof(rtype)
        }
index 396114fa3a9884f80a309b0e087921dff1490e96..3ef6f23b27e59dd1fd697e3f482d2128c937f430 100644 (file)
@@ -230,7 +230,7 @@ func (ctxt *Link) pclntab() {
        setuint32(ctxt, ftab, 0, 0xfffffffb)
        setuint8(ctxt, ftab, 6, uint8(SysArch.MinLC))
        setuint8(ctxt, ftab, 7, uint8(SysArch.PtrSize))
-       setuintxx(ctxt, ftab, 8, uint64(nfunc), int64(SysArch.PtrSize))
+       setuint(ctxt, ftab, 8, uint64(nfunc))
        pclntabPclntabOffset = int32(8 + SysArch.PtrSize)
 
        funcnameoff := make(map[string]int32)
@@ -282,7 +282,7 @@ func (ctxt *Link) pclntab() {
                funcstart += int32(-len(ftab.P)) & (int32(SysArch.PtrSize) - 1)
 
                setaddr(ctxt, ftab, 8+int64(SysArch.PtrSize)+int64(nfunc)*2*int64(SysArch.PtrSize), s)
-               setuintxx(ctxt, ftab, 8+int64(SysArch.PtrSize)+int64(nfunc)*2*int64(SysArch.PtrSize)+int64(SysArch.PtrSize), uint64(funcstart), int64(SysArch.PtrSize))
+               setuint(ctxt, ftab, 8+int64(SysArch.PtrSize)+int64(nfunc)*2*int64(SysArch.PtrSize)+int64(SysArch.PtrSize), uint64(funcstart))
 
                // Write runtime._func. Keep in sync with ../../../../runtime/runtime2.go:/_func
                // and package debug/gosym.
@@ -375,7 +375,7 @@ func (ctxt *Link) pclntab() {
                        }
                        for i := 0; i < len(pcln.Funcdata); i++ {
                                if pcln.Funcdata[i] == nil {
-                                       setuintxx(ctxt, ftab, int64(off)+int64(SysArch.PtrSize)*int64(i), uint64(pcln.Funcdataoff[i]), int64(SysArch.PtrSize))
+                                       setuint(ctxt, ftab, int64(off)+int64(SysArch.PtrSize)*int64(i), uint64(pcln.Funcdataoff[i]))
                                } else {
                                        // TODO: Dedup.
                                        funcdataBytes += pcln.Funcdata[i].Size
index 5fb5612f6fc47a33bd49a45dee48b8d1d7fda8cf..797ed28db8080491fd2bf61912ba3eb311447e92 100644 (file)
@@ -318,7 +318,7 @@ func textsectionmap(ctxt *Link) uint32 {
                        break
                }
        }
-       Symgrow(t, nsections*(2*int64(SysArch.PtrSize)+int64(SysArch.PtrSize)))
+       Symgrow(t, 3*nsections*int64(SysArch.PtrSize))
 
        off := int64(0)
        n := 0
@@ -337,8 +337,8 @@ func textsectionmap(ctxt *Link) uint32 {
                if sect.Name != ".text" {
                        break
                }
-               off = setuintxx(ctxt, t, off, sect.Vaddr-textbase, int64(SysArch.PtrSize))
-               off = setuintxx(ctxt, t, off, sect.Length, int64(SysArch.PtrSize))
+               off = setuint(ctxt, t, off, sect.Vaddr-textbase)
+               off = setuint(ctxt, t, off, sect.Length)
                if n == 0 {
                        s := ctxt.Syms.ROLookup("runtime.text", 0)
                        if s == nil {