1
0
mirror of https://github.com/golang/go synced 2024-09-24 05:20:13 -06:00

cmd/internal/obj: remove dead fields and code

A quick pass through link.go, mostly removing fields that are not
used on the "creating a single object file" side of the fence.

Change-Id: I35ba41378c2c418f7df2f2f88dce65bc64a1a45d
Reviewed-on: https://go-review.googlesource.com/7672
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
Michael Hudson-Doyle 2015-03-17 16:28:30 +13:00 committed by Ian Lance Taylor
parent e7d9f81645
commit ad49c7bb62
6 changed files with 30 additions and 119 deletions

View File

@ -1524,7 +1524,7 @@ func asmout(ctxt *obj.Link, p *obj.Prog, o *Optab, out []uint32) {
case 0: /* pseudo ops */
if false { /*debug['G']*/
fmt.Printf("%x: %s: arm %d\n", uint32(p.Pc), p.From.Sym.Name, p.From.Sym.Fnptr)
fmt.Printf("%x: %s: arm\n", uint32(p.Pc), p.From.Sym.Name)
}
case 1: /* op R,[R],R */

View File

@ -115,7 +115,6 @@ func progedit(ctxt *obj.Link, p *obj.Prog) {
if s.Type == 0 {
s.Type = obj.SRODATA
obj.Adduint32(ctxt, s, i32)
s.Reachable = 0
}
p.From.Type = obj.TYPE_MEM
@ -132,7 +131,6 @@ func progedit(ctxt *obj.Link, p *obj.Prog) {
if s.Type == 0 {
s.Type = obj.SRODATA
obj.Adduint64(ctxt, s, i64)
s.Reachable = 0
}
p.From.Type = obj.TYPE_MEM

View File

@ -121,7 +121,6 @@ func Setuintxx(ctxt *Link, s *LSym, off int64, v uint64, wid int64) int64 {
if s.Type == 0 {
s.Type = SDATA
}
s.Reachable = 1
if s.Size < off+wid {
s.Size = off + wid
Symgrow(ctxt, s, s.Size)
@ -183,7 +182,6 @@ func addaddrplus(ctxt *Link, s *LSym, t *LSym, add int64) int64 {
if s.Type == 0 {
s.Type = SDATA
}
s.Reachable = 1
i := s.Size
s.Size += int64(ctxt.Arch.Ptrsize)
Symgrow(ctxt, s, s.Size)
@ -200,7 +198,6 @@ func addpcrelplus(ctxt *Link, s *LSym, t *LSym, add int64) int64 {
if s.Type == 0 {
s.Type = SDATA
}
s.Reachable = 1
i := s.Size
s.Size += 4
Symgrow(ctxt, s, s.Size)
@ -221,7 +218,6 @@ func setaddrplus(ctxt *Link, s *LSym, off int64, t *LSym, add int64) int64 {
if s.Type == 0 {
s.Type = SDATA
}
s.Reachable = 1
if off+int64(ctxt.Arch.Ptrsize) > s.Size {
s.Size = off + int64(ctxt.Arch.Ptrsize)
Symgrow(ctxt, s, s.Size)
@ -244,7 +240,6 @@ func addsize(ctxt *Link, s *LSym, t *LSym) int64 {
if s.Type == 0 {
s.Type = SDATA
}
s.Reachable = 1
i := s.Size
s.Size += int64(ctxt.Arch.Ptrsize)
Symgrow(ctxt, s, s.Size)
@ -260,7 +255,6 @@ func addaddrplus4(ctxt *Link, s *LSym, t *LSym, add int64) int64 {
if s.Type == 0 {
s.Type = SDATA
}
s.Reachable = 1
i := s.Size
s.Size += 4
Symgrow(ctxt, s, s.Size)

View File

@ -271,52 +271,27 @@ const (
)
type LSym struct {
Name string
Extname string
Type int16
Version int16
Dupok uint8
Cfunc uint8
External uint8
Nosplit uint8
Reachable uint8
Cgoexport uint8
Special uint8
Stkcheck uint8
Hide uint8
Leaf uint8
Fnptr uint8
Localentry uint8
Seenglobl uint8
Onlist uint8
Printed uint8
Symid int16
Dynid int32
Plt int32
Got int32
Align int32
Elfsym int32
Args int32
Locals int32
Value int64
Size int64
Allsym *LSym
Next *LSym
Sub *LSym
Outer *LSym
Gotype *LSym
Reachparent *LSym
Queue *LSym
File string
Dynimplib string
Dynimpvers string
Sect *struct{}
Autom *Auto
Text *Prog
Etext *Prog
Pcln *Pcln
P []byte
R []Reloc
Name string
Type int16
Version int16
Dupok uint8
Cfunc uint8
Nosplit uint8
Leaf uint8
Seenglobl uint8
Onlist uint8
Args int32
Locals int32
Value int64
Size int64
Next *LSym
Gotype *LSym
Autom *Auto
Text *Prog
Etext *Prog
Pcln *Pcln
P []byte
R []Reloc
}
type Pcln struct {
@ -374,15 +349,13 @@ const (
)
type Reloc struct {
Off int32
Siz uint8
Done uint8
Type int32
Variant int32
Add int64
Xadd int64
Sym *LSym
Xsym *LSym
Off int32
Siz uint8
Type int32
Add int64
Xadd int64
Sym *LSym
Xsym *LSym
}
// Reloc.type
@ -408,17 +381,6 @@ const (
R_POWER_TOC
)
// Reloc.variant
const (
RV_NONE = iota
RV_POWER_LO
RV_POWER_HI
RV_POWER_HA
RV_POWER_DS
RV_CHECK_OVERFLOW = 1 << 8
RV_TYPE_MASK = RV_CHECK_OVERFLOW - 1
)
type Auto struct {
Asym *LSym
Link *Auto
@ -438,7 +400,7 @@ type Pcdata struct {
}
// Pcdata iterator.
// for(pciterinit(ctxt, &it, &pcd); !it.done; pciternext(&it)) { it.value holds in [it.pc, it.nextpc) }
// for(pciterinit(ctxt, &it, &pcd); !it.done; pciternext(&it)) { it.value holds in [it.pc, it.nextpc) }
type Pciter struct {
d Pcdata
p []byte
@ -459,24 +421,15 @@ const (
// Link holds the context for writing object code from a compiler
// to be linker input or for reading that input into the linker.
type Link struct {
Thechar int32
Thestring string
Goarm int32
Headtype int
Arch *LinkArch
Ignore func(string) int32
Debugasm int32
Debugline int32
Debughist int32
Debugread int32
Debugvlog int32
Debugstack int32
Debugzerostack int32
Debugdivmod int32
Debugfloat int32
Debugpcln int32
Flag_shared int32
Iself int32
Bso *Biobuf
Pathname string
Windows int32
@ -485,8 +438,6 @@ type Link struct {
Goroot_final string
Enforce_data_order int32
Hash map[SymVer]*LSym
Allsym *LSym
Nsymbol int32
LineHist LineHist
Imports []string
Plist *Plist
@ -513,20 +464,13 @@ type Link struct {
Autosize int32
Armsize int32
Pc int64
Libdir []string
Library []Library
Tlsoffset int
Diag func(string, ...interface{})
Mode int
Curauto *Auto
Curhist *Auto
Cursym *LSym
Version int
Textp *LSym
Etextp *LSym
Histdepth int32
Nhistfile int32
Filesyms *LSym
}
type SymVer struct {
@ -534,13 +478,6 @@ type SymVer struct {
Version int
}
type Library struct {
Objref string
Srcref string
File string
Pkg string
}
// LinkArch is the definition of a single architecture.
type LinkArch struct {
ByteOrder binary.ByteOrder
@ -572,14 +509,6 @@ const (
Hwindows
)
const (
LinkAuto = 0 + iota
LinkInternal
LinkExternal
)
var linkbasepointer int
type Plist struct {
Name *LSym
Firstpc *Prog

View File

@ -225,18 +225,11 @@ func linknewsym(ctxt *Link, symb string, v int) *LSym {
s := new(LSym)
*s = LSym{}
s.Dynid = -1
s.Plt = -1
s.Got = -1
s.Name = symb
s.Type = 0
s.Version = int16(v)
s.Value = 0
s.Size = 0
ctxt.Nsymbol++
s.Allsym = ctxt.Allsym
ctxt.Allsym = s
return s
}
@ -248,7 +241,6 @@ func _lookup(ctxt *Link, symb string, v int, creat int) *LSym {
}
s = linknewsym(ctxt, symb, v)
s.Extname = s.Name
ctxt.Hash[SymVer{symb, v}] = s
return s

View File

@ -246,7 +246,6 @@ func progedit(ctxt *obj.Link, p *obj.Prog) {
if s.Type == 0 {
s.Type = obj.SRODATA
obj.Adduint32(ctxt, s, i32)
s.Reachable = 0
}
p.From.Type = obj.TYPE_MEM
@ -290,7 +289,6 @@ func progedit(ctxt *obj.Link, p *obj.Prog) {
if s.Type == 0 {
s.Type = obj.SRODATA
obj.Adduint64(ctxt, s, i64)
s.Reachable = 0
}
p.From.Type = obj.TYPE_MEM