go/src/cmd/internal/obj/link.go

type Addr

type AddrName

const NAME_NONE

const NAME_EXTERN

const NAME_STATIC

const NAME_AUTO

const NAME_PARAM

const NAME_GOTREF

const NAME_TOCREF

type AddrType

const TYPE_NONE

const TYPE_BRANCH

const TYPE_TEXTSIZE

const TYPE_MEM

const TYPE_CONST

const TYPE_FCONST

const TYPE_SCONST

const TYPE_REG

const TYPE_ADDR

const TYPE_SHIFT

const TYPE_REGREG

const TYPE_REGREG2

const TYPE_INDIR

const TYPE_REGLIST

const TYPE_SPECIAL

func (a *Addr) Target() *Prog {}

func (a *Addr) SetTarget(t *Prog) {}

func (a *Addr) SetConst(v int64) {}

type Prog

type AddrPos

type OperandPos

const Source

const Destination

// From3Type returns p.GetFrom3().Type, or TYPE_NONE when
// p.GetFrom3() returns nil.
func (p *Prog) From3Type() AddrType {}

// GetFrom3 returns second source operand (the first is Prog.From).
// The same kinds of operands are saved in order so GetFrom3 actually
// return the first source operand in p.RestArgs.
// In combination with Prog.From and Prog.To it makes common 3 operand
// case easier to use.
func (p *Prog) GetFrom3() *Addr {}

// AddRestSource assigns []Args{{a, Source}} to p.RestArgs.
func (p *Prog) AddRestSource(a Addr) {}

// AddRestSourceReg calls p.AddRestSource with a register Addr containing reg.
func (p *Prog) AddRestSourceReg(reg int16) {}

// AddRestSourceConst calls p.AddRestSource with a const Addr containing off.
func (p *Prog) AddRestSourceConst(off int64) {}

// AddRestDest assigns []Args{{a, Destination}} to p.RestArgs when the second destination
// operand does not fit into prog.RegTo2.
func (p *Prog) AddRestDest(a Addr) {}

// GetTo2 returns the second destination operand.
// The same kinds of operands are saved in order so GetTo2 actually
// return the first destination operand in Prog.RestArgs[]
func (p *Prog) GetTo2() *Addr {}

// AddRestSourceArgs assigns more than one source operands to p.RestArgs.
func (p *Prog) AddRestSourceArgs(args []Addr) {}

type As

const AXXX

const ACALL

const ADUFFCOPY

const ADUFFZERO

const AEND

const AFUNCDATA

const AJMP

const ANOP

const APCALIGN

const APCALIGNMAX

const APCDATA

const ARET

const AGETCALLERPC

const ATEXT

const AUNDEF

const A_ARCHSPECIFIC

const ABase386

const ABaseARM

const ABaseAMD64

const ABasePPC64

const ABaseARM64

const ABaseMIPS

const ABaseLoong64

const ABaseRISCV

const ABaseS390X

const ABaseWasm

const AllowedOpCodes

const AMask

type LSym

type FuncInfo

type JumpTable

// NewFuncInfo allocates and returns a FuncInfo for LSym.
func (s *LSym) NewFuncInfo() *FuncInfo {}

// Func returns the *FuncInfo associated with s, or else nil.
func (s *LSym) Func() *FuncInfo {}

type VarInfo

// NewVarInfo allocates and returns a VarInfo for LSym.
func (s *LSym) NewVarInfo() *VarInfo {}

// VarInfo returns the *VarInfo associated with s, or else nil.
func (s *LSym) VarInfo() *VarInfo {}

type FileInfo

// NewFileInfo allocates and returns a FileInfo for LSym.
func (s *LSym) NewFileInfo() *FileInfo {}

// File returns the *FileInfo associated with s, or else nil.
func (s *LSym) File() *FileInfo {}

type TypeInfo

func (s *LSym) NewTypeInfo() *TypeInfo {}

type WasmImport

func (wi *WasmImport) CreateAuxSym() {}

func (wi *WasmImport) Write(w *bytes.Buffer) {}

func (wi *WasmImport) Read(b []byte) {}

type WasmFuncType

func (ft *WasmFuncType) Write(w *bytes.Buffer) {}

func (ft *WasmFuncType) Read(b []byte) {}

type WasmExport

func (we *WasmExport) CreateAuxSym() {}

type WasmField

type WasmFieldType

const WasmI32

const WasmI64

const WasmF32

const WasmF64

const WasmPtr

type InlMark

// Mark p as the instruction to set as the pc when
// "unwinding" the inlining global frame id. Usually it should be
// instruction with a file:line at the callsite, and occur
// just before the body of the inlined function.
func (fi *FuncInfo) AddInlMark(p *Prog, id int32) {}

// AddSpill appends a spill record to the list for FuncInfo fi
func (fi *FuncInfo) AddSpill(s RegSpill) {}

// Record the type symbol for an auto variable so that the linker
// an emit DWARF type information for the type.
func (fi *FuncInfo) RecordAutoType(gotype *LSym) {}

type ABI

const ABI0

const ABIInternal

const ABICount

// ParseABI converts from a string representation in 'abistr' to the
// corresponding ABI value. Second return value is TRUE if the
// abi string is recognized, FALSE otherwise.
func ParseABI(abistr string) (ABI, bool) {}

type ABISet

const ABISetCallable

var _

func ABISetOf(abi ABI) ABISet {}

func (a *ABISet) Set(abi ABI, value bool) {}

func (a *ABISet) Get(abi ABI) bool {}

func (a ABISet) String() string {}

type Attribute

const AttrDuplicateOK

const AttrCFunc

const AttrNoSplit

const AttrLeaf

const AttrWrapper

const AttrNeedCtxt

const AttrNoFrame

const AttrOnList

const AttrStatic

const AttrMakeTypelink

const AttrReflectMethod

const AttrLocal

const AttrWasInlined

const AttrIndexed

const AttrUsedInIface

const AttrContentAddressable

const AttrABIWrapper

const AttrPcdata

const AttrPkgInit

const AttrLinkname

const attrABIBase

func (a *Attribute) load() Attribute {}

func (a *Attribute) DuplicateOK() bool        {}

func (a *Attribute) MakeTypelink() bool       {}

func (a *Attribute) CFunc() bool              {}

func (a *Attribute) NoSplit() bool            {}

func (a *Attribute) Leaf() bool               {}

func (a *Attribute) OnList() bool             {}

func (a *Attribute) ReflectMethod() bool      {}

func (a *Attribute) Local() bool              {}

func (a *Attribute) Wrapper() bool            {}

func (a *Attribute) NeedCtxt() bool           {}

func (a *Attribute) NoFrame() bool            {}

func (a *Attribute) Static() bool             {}

func (a *Attribute) WasInlined() bool         {}

func (a *Attribute) Indexed() bool            {}

func (a *Attribute) UsedInIface() bool        {}

func (a *Attribute) ContentAddressable() bool {}

func (a *Attribute) ABIWrapper() bool         {}

func (a *Attribute) IsPcdata() bool           {}

func (a *Attribute) IsPkgInit() bool          {}

func (a *Attribute) IsLinkname() bool         {}

func (a *Attribute) Set(flag Attribute, value bool) {}

func (a *Attribute) ABI() ABI {}

func (a *Attribute) SetABI(abi ABI) {}

var textAttrStrings

// String formats a for printing in as part of a TEXT prog.
func (a Attribute) String() string {}

// TextAttrString formats the symbol attributes for printing in as part of a TEXT prog.
func (s *LSym) TextAttrString() string {}

func (s *LSym) String() string {}

// The compiler needs *LSym to be assignable to cmd/compile/internal/ssa.Sym.
func (*LSym) CanBeAnSSASym() {}

func (*LSym) CanBeAnSSAAux() {}

type Pcln

type Reloc

type Auto

type RegSpill

type Func

type Link

func (ctxt *Link) Diag(format string, args ...interface{}

func (ctxt *Link) Logf(format string, args ...interface{}

// SpillRegisterArgs emits the code to spill register args into whatever
// locations the spill records specify.
func (fi *FuncInfo) SpillRegisterArgs(last *Prog, pa ProgAlloc) *Prog {}

// UnspillRegisterArgs emits the code to restore register args from whatever
// locations the spill records specify.
func (fi *FuncInfo) UnspillRegisterArgs(last *Prog, pa ProgAlloc) *Prog {}

type LinkArch