import "github.com/tsavola/wag/internal/isa/x86"
binary.go convert.go features_detected.go linker.go macro.go memory.go regs.go select.go unary.go
const ( FuncAlignment = 16 PadByte = 0xcc // INT3 instruction )
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 )
type Linker struct{}
UpdateCalls modifies CALL instructions.
UpdateFarBranches modifies 32-bit relocations of JMP and Jcc instructions.
UpdateNearBranch modifies the 8-bit relocation of a JMP or Jcc instruction.
UpdateNearBranches modifies 8-bit relocations of JMP and Jcc instructions.
UpdateNearLoad modifies a 32-bit displacement.
UpdateStackCheck modifies the 32-bit displacement of a LEA instruction.
type MacroAssembler struct{}
func (MacroAssembler) AlignData(p *gen.Prog, alignment int)
func (MacroAssembler) AlignFunc(p *gen.Prog)
func (MacroAssembler) Branch(p *gen.Prog, addr int32)
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) 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, align, offset uint32) operand.O
func (MacroAssembler) LoadGlobal(p *gen.Prog, t wa.Type, target reg.R, offset int32) (zeroExtended bool)
func (MacroAssembler) PadUntil(p *gen.Prog, addr int32)
func (MacroAssembler) PushImm(p *gen.Prog, value int64)
func (MacroAssembler) PushZeros(p *gen.Prog, n int)
func (MacroAssembler) Resume(p *gen.Prog)
func (MacroAssembler) Return(p *gen.Prog, numStackValues int)
func (MacroAssembler) SetupStackFrame(f *gen.Func) (stackCheckAddr int32)
func (MacroAssembler) TrapHandlerRewindCallStackExhausted(p *gen.Prog)
func (MacroAssembler) TrapHandlerRewindSuspended(p *gen.Prog, index int)
func (MacroAssembler) TrapHandlerTruncOverflow(p *gen.Prog, trapIndex int)
func (MacroAssembler) ZeroExtendResultReg(p *gen.Prog)
Path | Synopsis |
---|---|
in | |
nonabi |
Package x86 imports 18 packages (graph) and is imported by 1 packages. Updated 2021-01-25. Refresh now. Tools for package owners.