IrVm

Undocumented in source.

Members

Functions

binop
void binop(IrInstrHeader instrHeader)
Undocumented in source. Be warned that the author may not have intended to support it.
copyToMem
void copyToMem(IrVmSlotInfo mem, IrIndex value)
Undocumented in source. Be warned that the author may not have intended to support it.
copyToVreg
void copyToVreg(IrIndex vreg, IrIndex value)
Undocumented in source. Be warned that the author may not have intended to support it.
parameters
ParameterSlotIterator parameters()
Undocumented in source. Be warned that the author may not have intended to support it.
popFrame
void popFrame()
Undocumented in source. Be warned that the author may not have intended to support it.
ptrToSlice
IrVmSlotInfo ptrToSlice(IrIndex ptr)
Undocumented in source. Be warned that the author may not have intended to support it.
pushFrame
void pushFrame()
Undocumented in source. Be warned that the author may not have intended to support it.
readValue
IrConstVal readValue(IrIndex index)
Undocumented in source. Be warned that the author may not have intended to support it.
readValue
IrConstVal readValue(IrVmSlotInfo mem)
Undocumented in source. Be warned that the author may not have intended to support it.
run
void run(IrVmSlotInfo outputMem)

outputMem : Memory that holds the return value

slotToSlice
ubyte[] slotToSlice(IrVmSlotInfo slot)
Undocumented in source. Be warned that the author may not have intended to support it.
stackSlotSlot
IrVmSlotInfo stackSlotSlot(IrIndex slot)
Undocumented in source. Be warned that the author may not have intended to support it.
vregSlot
IrVmSlotInfo vregSlot(IrIndex vreg)
Undocumented in source. Be warned that the author may not have intended to support it.
writeInt
void writeInt(IrIndex index, long value)
Undocumented in source. Be warned that the author may not have intended to support it.

Variables

c
CompilationContext* c;

CompilationContext.vmBuffer arena holds slots Memory that holds stack slots and virtual registers

frameOffset
uint frameOffset;
Undocumented in source.
frameSize
uint frameSize;
Undocumented in source.
func
IrFunction* func;

Function being interpreted

vmSlotOffsets
uint* vmSlotOffsets;

Maps each vreg to frame slot. Relative to frameOffset extra item is inserted that points past last item

Meta