mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
[dev.link] cmd/link/internal/loader: add another symbolbuilder method
Introduce SetAddrPlus method for use with SymbolBuilder. Change-Id: Ieb2986b2fc1675b7a3a71c84b7219b3d564ac122 Reviewed-on: https://go-review.googlesource.com/c/go/+/227757 Reviewed-by: Cherry Zhang <cherryyz@google.com> Reviewed-by: Jeremy Faller <jeremy@golang.org>
This commit is contained in:
parent
30b0c819d1
commit
2599c175cb
1 changed files with 19 additions and 0 deletions
|
|
@ -315,6 +315,25 @@ func (sb *SymbolBuilder) SetUint(arch *sys.Arch, r int64, v uint64) int64 {
|
|||
return sb.setUintXX(arch, r, v, int64(arch.PtrSize))
|
||||
}
|
||||
|
||||
func (sb *SymbolBuilder) SetAddrPlus(arch *sys.Arch, off int64, tgt Sym, add int64) int64 {
|
||||
if sb.Type() == 0 {
|
||||
sb.SetType(sym.SDATA)
|
||||
}
|
||||
sb.setReachable()
|
||||
if off+int64(arch.PtrSize) > sb.size {
|
||||
sb.size = off + int64(arch.PtrSize)
|
||||
sb.Grow(sb.size)
|
||||
}
|
||||
var r Reloc
|
||||
r.Sym = tgt
|
||||
r.Off = int32(off)
|
||||
r.Size = uint8(arch.PtrSize)
|
||||
r.Type = objabi.R_ADDR
|
||||
r.Add = add
|
||||
sb.AddReloc(r)
|
||||
return off + int64(r.Size)
|
||||
}
|
||||
|
||||
func (sb *SymbolBuilder) Addstring(str string) int64 {
|
||||
sb.setReachable()
|
||||
if sb.kind == 0 {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue