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) Call(p *gen.Prog, addr int32)
- func (MacroAssembler) CallImportVector(f *gen.Func, vecIndex 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) Exit(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) TrapHandlerRewindNoFunction(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 RegTrap = in.RegZero // rdx RegDividendHigh = reg.R(2) // rdx RegStackLimit = in.RegStackLimit // rbx RegStackPtr = reg.R(4) // rsp RegRestartSP = 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 ¶
type Linker struct{}
func (Linker) UpdateCalls ¶
UpdateCalls modifies CALL instructions.
func (Linker) UpdateFarBranches ¶
UpdateFarBranches modifies 32-bit relocations of JMP and Jcc instructions.
func (Linker) UpdateNearBranch ¶
UpdateNearBranch modifies the 8-bit relocation of a JMP or Jcc instruction.
func (Linker) UpdateNearBranches ¶
UpdateNearBranches modifies 8-bit relocations of JMP and Jcc instructions.
func (Linker) UpdateNearLoad ¶
UpdateNearLoad modifies a 32-bit displacement.
type MacroAssembler ¶
type MacroAssembler struct{}
func (MacroAssembler) AddToStackPtrUpper32 ¶
func (MacroAssembler) AddToStackPtrUpper32(f *gen.Func, r reg.R)
func (MacroAssembler) AlignFunc ¶
func (MacroAssembler) AlignFunc(p *gen.Prog)
func (MacroAssembler) BranchIfOutOfBounds ¶
func (MacroAssembler) BranchIfOutOfBoundsStub ¶
func (MacroAssembler) BranchIfStub ¶
func (MacroAssembler) BranchIndirect ¶
func (MacroAssembler) BranchIndirect(f *gen.Func, addr reg.R)
func (MacroAssembler) BranchStub ¶
func (MacroAssembler) BranchStub(p *gen.Prog) int32
func (MacroAssembler) BranchSuspend ¶
func (MacroAssembler) BranchSuspend(f *gen.Func, addr int32)
func (MacroAssembler) CallImportVector ¶
func (MacroAssembler) CallImportVector(f *gen.Func, vecIndex int)
func (MacroAssembler) CallIndirect ¶
func (MacroAssembler) CallMissing ¶
func (MacroAssembler) CallMissing(p *gen.Prog, atomic bool)
func (MacroAssembler) ClearIntResultReg ¶
func (MacroAssembler) ClearIntResultReg(p *gen.Prog)
func (MacroAssembler) CurrentMemory ¶
func (MacroAssembler) CurrentMemory(f *gen.Func) int32
func (MacroAssembler) DropStackValues ¶
func (MacroAssembler) DropStackValues(p *gen.Prog, n int)
func (MacroAssembler) Enter ¶
func (MacroAssembler) Enter(p *gen.Prog)
func (MacroAssembler) Exit ¶
func (MacroAssembler) Exit(p *gen.Prog)
func (MacroAssembler) GrowMemory ¶
func (MacroAssembler) GrowMemory(f *gen.Func) int32
func (MacroAssembler) LoadGlobal ¶
func (MacroAssembler) LoadIntStubNear ¶
func (MacroAssembler) Resume ¶
func (MacroAssembler) Resume(p *gen.Prog)
func (MacroAssembler) SetupStackFrame ¶
func (MacroAssembler) SetupStackFrame(f *gen.Func) (stackCheckAddr int32)
func (MacroAssembler) StoreGlobal ¶
func (MacroAssembler) StoreStack ¶
func (MacroAssembler) StoreStackImm ¶
func (MacroAssembler) StoreStackReg ¶
func (MacroAssembler) SuspendSaveInt ¶
func (MacroAssembler) SuspendSaveInt(f *gen.Func, saveReg reg.R)
func (MacroAssembler) TrapHandler ¶
func (MacroAssembler) TrapHandler(p *gen.Prog, id trap.ID)
func (MacroAssembler) TrapHandlerRewindCallStackExhausted ¶
func (MacroAssembler) TrapHandlerRewindCallStackExhausted(p *gen.Prog)
func (MacroAssembler) TrapHandlerRewindNoFunction ¶
func (MacroAssembler) TrapHandlerRewindNoFunction(p *gen.Prog)
func (MacroAssembler) TrapHandlerRewindSuspended ¶
func (MacroAssembler) TrapHandlerRewindSuspended(p *gen.Prog, index int)
func (MacroAssembler) TrapHandlerTruncOverflow ¶
func (MacroAssembler) TrapHandlerTruncOverflow(p *gen.Prog, trapIndex int)
func (MacroAssembler) ZeroExtendResultReg ¶
func (MacroAssembler) ZeroExtendResultReg(p *gen.Prog)
Source Files ¶
Click to show internal directories.
Click to hide internal directories.