Documentation ¶
Index ¶
- Constants
- type Linker
- func (Linker) UpdateCalls(text []byte, l *link.L)
- func (Linker) UpdateFarBranches(text []byte, l *link.L)
- func (Linker) UpdateNearBranch(text []byte, originAddr int32)
- func (Linker) UpdateNearBranches(text []byte, originAddrs []int32)
- func (Linker) UpdateNearLoad(text []byte, insnAddr int32)
- func (Linker) UpdateStackCheck(text []byte, addr int32, depth int)
- type MacroAssembler
- func (MacroAssembler) AddToStackPtrUpper32(f *gen.Func, r reg.R)
- func (MacroAssembler) AlignData(p *gen.Prog, alignment int)
- func (MacroAssembler) AlignFunc(p *gen.Prog)
- func (MacroAssembler) Binary(f *gen.Func, props uint16, a, b operand.O) operand.O
- func (MacroAssembler) Branch(p *gen.Prog, addr int32)
- func (MacroAssembler) BranchIf(f *gen.Func, x operand.O, labelAddr int32) (sites []int32)
- func (MacroAssembler) BranchIfOutOfBounds(p *gen.Prog, indexReg reg.R, upperBound, addr int32)
- func (MacroAssembler) BranchIfOutOfBoundsStub(p *gen.Prog, indexReg reg.R, upperBound int32) int32
- func (MacroAssembler) BranchIfStub(f *gen.Func, x operand.O, yes, near bool) (sites []int32)
- func (MacroAssembler) BranchIndirect(f *gen.Func, addr reg.R)
- func (MacroAssembler) BranchStub(p *gen.Prog) int32
- func (MacroAssembler) BranchSuspend(f *gen.Func, addr int32)
- func (MacroAssembler) Breakpoint(f *gen.Func)
- func (MacroAssembler) Call(p *gen.Prog, addr int32)
- func (MacroAssembler) CallImportVector(p *gen.Prog, vecIndex int, variadic bool, argCount, sigIndex int)
- func (MacroAssembler) CallIndirect(f *gen.Func, sigIndex int32, funcIndexReg reg.R)
- func (MacroAssembler) CallMissing(p *gen.Prog, atomic bool)
- func (MacroAssembler) ClearIntResultReg(p *gen.Prog)
- func (MacroAssembler) Convert(f *gen.Func, props uint16, resultType wa.Type, source operand.O) (result operand.O)
- func (MacroAssembler) CurrentMemory(f *gen.Func) int32
- func (MacroAssembler) DropStackValues(p *gen.Prog, n int)
- func (MacroAssembler) Enter(p *gen.Prog)
- func (MacroAssembler) GrowMemory(f *gen.Func) int32
- func (MacroAssembler) Load(f *gen.Func, props uint16, index operand.O, resultType wa.Type, ...) operand.O
- func (MacroAssembler) LoadGlobal(p *gen.Prog, t wa.Type, target reg.R, offset int32) (zeroExtended bool)
- func (MacroAssembler) LoadIntStubNear(f *gen.Func, indexType wa.Type, r reg.R) (insnAddr int32)
- func (MacroAssembler) LoadStack(p *gen.Prog, t wa.Type, target reg.R, offset int32)
- func (MacroAssembler) Move(f *gen.Func, target reg.R, x operand.O) (zeroExtended bool)
- func (MacroAssembler) MoveReg(p *gen.Prog, t wa.Type, target, source reg.R)
- func (MacroAssembler) PadUntil(p *gen.Prog, addr int32)
- func (MacroAssembler) PushCond(p *gen.Prog, cond condition.C)
- func (MacroAssembler) PushImm(p *gen.Prog, value int64)
- func (MacroAssembler) PushReg(p *gen.Prog, t wa.Type, r reg.R)
- func (MacroAssembler) PushZeros(p *gen.Prog, n int)
- func (MacroAssembler) Resume(p *gen.Prog)
- func (MacroAssembler) Return(p *gen.Prog, numStackValues int)
- func (MacroAssembler) Select(f *gen.Func, a, b, condOperand operand.O) operand.O
- func (MacroAssembler) SetBool(p *gen.Prog, target reg.R, cond condition.C)
- func (MacroAssembler) SetupStackFrame(f *gen.Func) (stackCheckAddr int32)
- func (MacroAssembler) Store(f *gen.Func, props uint16, index, x operand.O, align, offset uint32)
- func (MacroAssembler) StoreGlobal(f *gen.Func, offset int32, x operand.O)
- func (MacroAssembler) StoreStack(f *gen.Func, offset int32, x operand.O)
- func (MacroAssembler) StoreStackImm(p *gen.Prog, t wa.Type, offset int32, value int64)
- func (MacroAssembler) StoreStackReg(p *gen.Prog, t wa.Type, offset int32, r reg.R)
- func (MacroAssembler) SuspendSaveInt(f *gen.Func, saveReg reg.R)
- func (MacroAssembler) Trap(f *gen.Func, id trap.ID)
- func (MacroAssembler) TrapHandler(p *gen.Prog, id trap.ID)
- func (MacroAssembler) TrapHandlerRewindCallStackExhausted(p *gen.Prog)
- func (MacroAssembler) TrapHandlerRewindSuspended(p *gen.Prog, index int)
- func (MacroAssembler) TrapHandlerTruncOverflow(p *gen.Prog, trapIndex int)
- func (MacroAssembler) Unary(f *gen.Func, props uint16, x operand.O) operand.O
- func (MacroAssembler) ZeroExtendResultReg(p *gen.Prog)
Constants ¶
View Source
const ( FuncAlignment = 16 PadByte = 0xcc // INT3 instruction )
View Source
const ( RegResult = in.RegResult // rax xmm0 RegDividendLow = reg.R(0) // rax RegScratch = in.RegScratch // rcx xmm1 RegCount = reg.R(1) // rcx RegZero = in.RegZero // rdx RegDividendHigh = reg.R(2) // rdx RegStackLimit = in.RegStackLimit // rbx RegStackPtr = reg.R(4) // rsp RegImportVariadic = reg.R(5) // rbp <- AllocIntFirst RegMemoryBase = in.RegMemoryBase // r14 RegTextBase = in.RegTextBase // r15 )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Linker ¶ added in v0.32.0
type Linker struct{}
func (Linker) UpdateCalls ¶ added in v0.32.0
UpdateCalls modifies CALL instructions.
func (Linker) UpdateFarBranches ¶ added in v0.32.0
UpdateFarBranches modifies 32-bit relocations of JMP and Jcc instructions.
func (Linker) UpdateNearBranch ¶ added in v0.32.0
UpdateNearBranch modifies the 8-bit relocation of a JMP or Jcc instruction.
func (Linker) UpdateNearBranches ¶ added in v0.32.0
UpdateNearBranches modifies 8-bit relocations of JMP and Jcc instructions.
func (Linker) UpdateNearLoad ¶ added in v0.32.0
UpdateNearLoad modifies a 32-bit displacement.
type MacroAssembler ¶ added in v0.32.0
type MacroAssembler struct{}
func (MacroAssembler) AddToStackPtrUpper32 ¶ added in v0.32.0
func (MacroAssembler) AddToStackPtrUpper32(f *gen.Func, r reg.R)
func (MacroAssembler) AlignData ¶ added in v0.32.0
func (MacroAssembler) AlignData(p *gen.Prog, alignment int)
func (MacroAssembler) AlignFunc ¶ added in v0.32.0
func (MacroAssembler) AlignFunc(p *gen.Prog)
func (MacroAssembler) Branch ¶ added in v0.32.0
func (MacroAssembler) Branch(p *gen.Prog, addr int32)
func (MacroAssembler) BranchIfOutOfBounds ¶ added in v0.32.0
func (MacroAssembler) BranchIfOutOfBoundsStub ¶ added in v0.32.0
func (MacroAssembler) BranchIfStub ¶ added in v0.32.0
func (MacroAssembler) BranchIndirect ¶ added in v0.32.0
func (MacroAssembler) BranchIndirect(f *gen.Func, addr reg.R)
func (MacroAssembler) BranchStub ¶ added in v0.32.0
func (MacroAssembler) BranchStub(p *gen.Prog) int32
func (MacroAssembler) BranchSuspend ¶ added in v0.32.0
func (MacroAssembler) BranchSuspend(f *gen.Func, addr int32)
func (MacroAssembler) Breakpoint ¶ added in v0.32.0
func (MacroAssembler) Breakpoint(f *gen.Func)
func (MacroAssembler) CallImportVector ¶ added in v0.32.0
func (MacroAssembler) CallIndirect ¶ added in v0.32.0
func (MacroAssembler) CallMissing ¶ added in v0.32.0
func (MacroAssembler) CallMissing(p *gen.Prog, atomic bool)
func (MacroAssembler) ClearIntResultReg ¶ added in v0.32.0
func (MacroAssembler) ClearIntResultReg(p *gen.Prog)
func (MacroAssembler) CurrentMemory ¶ added in v0.32.0
func (MacroAssembler) CurrentMemory(f *gen.Func) int32
func (MacroAssembler) DropStackValues ¶ added in v0.32.0
func (MacroAssembler) DropStackValues(p *gen.Prog, n int)
func (MacroAssembler) Enter ¶ added in v0.32.0
func (MacroAssembler) Enter(p *gen.Prog)
func (MacroAssembler) GrowMemory ¶ added in v0.32.0
func (MacroAssembler) GrowMemory(f *gen.Func) int32
func (MacroAssembler) LoadGlobal ¶ added in v0.32.0
func (MacroAssembler) LoadIntStubNear ¶ added in v0.32.0
func (MacroAssembler) PadUntil ¶ added in v0.32.0
func (MacroAssembler) PadUntil(p *gen.Prog, addr int32)
func (MacroAssembler) PushCond ¶ added in v0.32.0
func (MacroAssembler) PushCond(p *gen.Prog, cond condition.C)
func (MacroAssembler) PushImm ¶ added in v0.32.0
func (MacroAssembler) PushImm(p *gen.Prog, value int64)
func (MacroAssembler) PushZeros ¶ added in v0.32.0
func (MacroAssembler) PushZeros(p *gen.Prog, n int)
func (MacroAssembler) Resume ¶ added in v0.32.0
func (MacroAssembler) Resume(p *gen.Prog)
func (MacroAssembler) Return ¶ added in v0.32.0
func (MacroAssembler) Return(p *gen.Prog, numStackValues int)
func (MacroAssembler) SetupStackFrame ¶ added in v0.32.0
func (MacroAssembler) SetupStackFrame(f *gen.Func) (stackCheckAddr int32)
func (MacroAssembler) StoreGlobal ¶ added in v0.32.0
func (MacroAssembler) StoreStack ¶ added in v0.32.0
func (MacroAssembler) StoreStackImm ¶ added in v0.32.0
func (MacroAssembler) StoreStackReg ¶ added in v0.32.0
func (MacroAssembler) SuspendSaveInt ¶ added in v0.32.0
func (MacroAssembler) SuspendSaveInt(f *gen.Func, saveReg reg.R)
func (MacroAssembler) TrapHandler ¶ added in v0.32.0
func (MacroAssembler) TrapHandler(p *gen.Prog, id trap.ID)
func (MacroAssembler) TrapHandlerRewindCallStackExhausted ¶ added in v0.32.0
func (MacroAssembler) TrapHandlerRewindCallStackExhausted(p *gen.Prog)
func (MacroAssembler) TrapHandlerRewindSuspended ¶ added in v0.32.0
func (MacroAssembler) TrapHandlerRewindSuspended(p *gen.Prog, index int)
func (MacroAssembler) TrapHandlerTruncOverflow ¶ added in v0.32.0
func (MacroAssembler) TrapHandlerTruncOverflow(p *gen.Prog, trapIndex int)
func (MacroAssembler) ZeroExtendResultReg ¶ added in v0.32.0
func (MacroAssembler) ZeroExtendResultReg(p *gen.Prog)
Source Files ¶
Click to show internal directories.
Click to hide internal directories.