x86

package
v0.31.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 1, 2020 License: BSD-3-Clause Imports: 18 Imported by: 0

Documentation

Index

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.10.0

type Linker struct{}

func (Linker) UpdateCalls added in v0.10.0

func (Linker) UpdateCalls(text []byte, l *link.L)

UpdateCalls modifies CALL instructions.

func (Linker) UpdateFarBranches added in v0.10.0

func (Linker) UpdateFarBranches(text []byte, l *link.L)

UpdateFarBranches modifies 32-bit relocations of JMP and Jcc instructions.

func (Linker) UpdateNearBranch added in v0.10.0

func (Linker) UpdateNearBranch(text []byte, originAddr int32)

UpdateNearBranch modifies the 8-bit relocation of a JMP or Jcc instruction.

func (Linker) UpdateNearBranches added in v0.10.0

func (Linker) UpdateNearBranches(text []byte, originAddrs []int32)

UpdateNearBranches modifies 8-bit relocations of JMP and Jcc instructions.

func (Linker) UpdateNearLoad added in v0.10.0

func (Linker) UpdateNearLoad(text []byte, insnAddr int32)

UpdateNearLoad modifies a 32-bit displacement.

func (Linker) UpdateStackCheck added in v0.10.0

func (Linker) UpdateStackCheck(text []byte, addr int32, depth int)

UpdateStackCheck modifies the 32-bit displacement of a LEA instruction.

type MacroAssembler added in v0.5.0

type MacroAssembler struct{}

func (MacroAssembler) AddToStackPtrUpper32 added in v0.5.0

func (MacroAssembler) AddToStackPtrUpper32(f *gen.Func, r reg.R)

func (MacroAssembler) AlignData added in v0.10.0

func (MacroAssembler) AlignData(p *gen.Prog, alignment int)

func (MacroAssembler) AlignFunc added in v0.10.0

func (MacroAssembler) AlignFunc(p *gen.Prog)

func (MacroAssembler) Binary added in v0.5.0

func (MacroAssembler) Binary(f *gen.Func, props uint16, a, b operand.O) operand.O

func (MacroAssembler) Branch added in v0.5.0

func (MacroAssembler) Branch(p *gen.Prog, addr int32)

func (MacroAssembler) BranchIf added in v0.10.0

func (MacroAssembler) BranchIf(f *gen.Func, x operand.O, labelAddr int32) (sites []int32)

func (MacroAssembler) BranchIfOutOfBounds added in v0.5.0

func (MacroAssembler) BranchIfOutOfBounds(p *gen.Prog, indexReg reg.R, upperBound, addr int32)

func (MacroAssembler) BranchIfOutOfBoundsStub added in v0.12.3

func (MacroAssembler) BranchIfOutOfBoundsStub(p *gen.Prog, indexReg reg.R, upperBound int32) int32

func (MacroAssembler) BranchIfStub added in v0.5.0

func (MacroAssembler) BranchIfStub(f *gen.Func, x operand.O, yes, near bool) (sites []int32)

func (MacroAssembler) BranchIndirect added in v0.5.0

func (MacroAssembler) BranchIndirect(f *gen.Func, addr reg.R)

func (MacroAssembler) BranchStub added in v0.12.3

func (MacroAssembler) BranchStub(p *gen.Prog) int32

func (MacroAssembler) BranchSuspend added in v0.25.0

func (MacroAssembler) BranchSuspend(f *gen.Func, addr int32)

func (MacroAssembler) Breakpoint added in v0.28.0

func (MacroAssembler) Breakpoint(f *gen.Func)

func (MacroAssembler) Call added in v0.5.0

func (MacroAssembler) Call(p *gen.Prog, addr int32)

func (MacroAssembler) CallImportVector added in v0.21.0

func (MacroAssembler) CallImportVector(p *gen.Prog, vecIndex int, variadic bool, argCount, sigIndex int)

func (MacroAssembler) CallIndirect added in v0.5.0

func (MacroAssembler) CallIndirect(f *gen.Func, sigIndex int32, funcIndexReg reg.R)

func (MacroAssembler) CallMissing added in v0.5.0

func (MacroAssembler) CallMissing(p *gen.Prog, atomic bool)

func (MacroAssembler) ClearIntResultReg added in v0.5.0

func (MacroAssembler) ClearIntResultReg(p *gen.Prog)

func (MacroAssembler) Convert added in v0.5.0

func (MacroAssembler) Convert(f *gen.Func, props uint16, resultType wa.Type, source operand.O) (result operand.O)

func (MacroAssembler) CurrentMemory added in v0.13.0

func (MacroAssembler) CurrentMemory(f *gen.Func) int32

func (MacroAssembler) DropStackValues added in v0.5.0

func (MacroAssembler) DropStackValues(p *gen.Prog, n int)

func (MacroAssembler) Enter added in v0.23.0

func (MacroAssembler) Enter(p *gen.Prog)

func (MacroAssembler) GrowMemory added in v0.5.0

func (MacroAssembler) GrowMemory(f *gen.Func) int32

func (MacroAssembler) Load added in v0.5.0

func (MacroAssembler) Load(f *gen.Func, props uint16, index operand.O, resultType wa.Type, align, offset uint32) operand.O

func (MacroAssembler) LoadGlobal added in v0.5.0

func (MacroAssembler) LoadGlobal(p *gen.Prog, t wa.Type, target reg.R, offset int32) (zeroExtended bool)

func (MacroAssembler) LoadIntStubNear added in v0.8.0

func (MacroAssembler) LoadIntStubNear(f *gen.Func, indexType wa.Type, r reg.R) (insnAddr int32)

func (MacroAssembler) LoadStack added in v0.5.0

func (MacroAssembler) LoadStack(p *gen.Prog, t wa.Type, target reg.R, offset int32)

func (MacroAssembler) Move added in v0.5.0

func (MacroAssembler) Move(f *gen.Func, target reg.R, x operand.O) (zeroExtended bool)

func (MacroAssembler) MoveReg added in v0.5.0

func (MacroAssembler) MoveReg(p *gen.Prog, t wa.Type, target, source reg.R)

func (MacroAssembler) PadUntil added in v0.10.0

func (MacroAssembler) PadUntil(p *gen.Prog, addr int32)

func (MacroAssembler) PushCond added in v0.5.0

func (MacroAssembler) PushCond(p *gen.Prog, cond condition.C)

func (MacroAssembler) PushImm added in v0.5.0

func (MacroAssembler) PushImm(p *gen.Prog, value int64)

func (MacroAssembler) PushReg added in v0.5.0

func (MacroAssembler) PushReg(p *gen.Prog, t wa.Type, r reg.R)

func (MacroAssembler) PushZeros added in v0.5.0

func (MacroAssembler) PushZeros(p *gen.Prog, n int)

func (MacroAssembler) Resume added in v0.5.0

func (MacroAssembler) Resume(p *gen.Prog)

func (MacroAssembler) Return added in v0.5.0

func (MacroAssembler) Return(p *gen.Prog, numStackValues int)

func (MacroAssembler) Select added in v0.5.0

func (MacroAssembler) Select(f *gen.Func, a, b, condOperand operand.O) operand.O

func (MacroAssembler) SetBool added in v0.5.0

func (MacroAssembler) SetBool(p *gen.Prog, target reg.R, cond condition.C)

func (MacroAssembler) SetupStackFrame added in v0.5.0

func (MacroAssembler) SetupStackFrame(f *gen.Func) (stackCheckAddr int32)

func (MacroAssembler) Store added in v0.5.0

func (MacroAssembler) Store(f *gen.Func, props uint16, index, x operand.O, align, offset uint32)

func (MacroAssembler) StoreGlobal added in v0.5.0

func (MacroAssembler) StoreGlobal(f *gen.Func, offset int32, x operand.O)

func (MacroAssembler) StoreStack added in v0.5.0

func (MacroAssembler) StoreStack(f *gen.Func, offset int32, x operand.O)

func (MacroAssembler) StoreStackImm added in v0.5.0

func (MacroAssembler) StoreStackImm(p *gen.Prog, t wa.Type, offset int32, value int64)

func (MacroAssembler) StoreStackReg added in v0.5.0

func (MacroAssembler) StoreStackReg(p *gen.Prog, t wa.Type, offset int32, r reg.R)

func (MacroAssembler) SuspendSaveInt added in v0.25.0

func (MacroAssembler) SuspendSaveInt(f *gen.Func, saveReg reg.R)

func (MacroAssembler) Trap added in v0.5.0

func (MacroAssembler) Trap(f *gen.Func, id trap.ID)

func (MacroAssembler) TrapHandler added in v0.25.0

func (MacroAssembler) TrapHandler(p *gen.Prog, id trap.ID)

func (MacroAssembler) TrapHandlerRewindCallStackExhausted added in v0.25.0

func (MacroAssembler) TrapHandlerRewindCallStackExhausted(p *gen.Prog)

func (MacroAssembler) TrapHandlerRewindSuspended added in v0.25.0

func (MacroAssembler) TrapHandlerRewindSuspended(p *gen.Prog, index int)

func (MacroAssembler) TrapHandlerTruncOverflow added in v0.31.0

func (MacroAssembler) TrapHandlerTruncOverflow(p *gen.Prog, trapIndex int)

func (MacroAssembler) Unary added in v0.5.0

func (MacroAssembler) Unary(f *gen.Func, props uint16, x operand.O) operand.O

func (MacroAssembler) ZeroExtendResultReg added in v0.5.0

func (MacroAssembler) ZeroExtendResultReg(p *gen.Prog)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL