import "github.com/tsavola/wag/internal/gen"
const ( VectorOffsetMemoryAddr = -4 * obj.Word VectorOffsetCurrentMemory = -3 * obj.Word VectorOffsetGrowMemory = -2 * obj.Word VectorOffsetTrapHandler = -1 * obj.Word )
type Block struct { Suspension bool WeakDead bool // Like deadend state, but must not affect portable ABI. }
type BranchTable struct { Addr int32 Targets []*BranchTarget StackDepth int // -1 indicates common depth among all targets }
type BranchTarget struct { Label link.L StackDepth int ValueType wa.Type FuncEnd bool Block Block }
Breakpoint information, for debugger support.
type Debugger struct { // Breakpoints are WebAssembly code offsets. They can be obtained from // DWARF debug info. Breakpoints map[uint32]Breakpoint Source Teller CodeOffset int64 }
type Func struct { Prog // Initialized by GenProgram, preserved by GenFunction Regs regalloc.Allocator ResultType wa.Type LocalTypes []wa.Type NumParams int NumLocals int // The non-param ones Operands []operand.O FrameBase int // Number of (stack) operands belonging to parent blocks NumStableOperands int StackDepth int // The dynamic entries after locals MaxStackDepth int BranchTargets []*BranchTarget BranchTables []BranchTable AtomicCallStubs bool }
StackValueConsumed updates the virtual stack pointer on behalf of MacroAssembler when it changes the physical stack pointer.
ValueBecameUnreachable keeps the state consistent when an operand will not be operated on (because it was popped on an unreachable code path).
type Prog struct { Module *module.M Text code.Buf Map obj.ObjectMapper FuncLinks []link.FuncL TrapLinks [trap.NumTraps]link.L TrapLinkRewindSuspended [program.NumTrapLinkRewindSuspended]link.L TrapLinkTruncOverflow [program.NumTrapLinkTruncOverflow]link.L LastCallAddr int32 // Needed only by arm backend. ImportContext *module.Library // Set during import function generation. DebugMap obj.DebugObjectMapper Debugger Debugger }
Path | Synopsis |
---|---|
atomic | |
codegen | |
condition | |
debug | |
link | |
operand | |
reg | |
regalloc | |
rodata | |
storage |
Package gen imports 13 packages (graph) and is imported by 2 packages. Updated 2021-01-25. Refresh now. Tools for package owners.