Relative address: address from the base of current stack frame
Absolute address: address from base of parameter stack
Distinct value types inside paramter stack:
TypeSize
double8 bytes
float4 bytes
long8 bytes
int4 bytes
short2 bytes
char1 byte
Distinct value types inside temporary stack:
TypeSize
double8 bytes
long8 bytes
int4 bytes

Command format:
8 bits8 bits16 bits32 bits
IDFlagHelperArgument
64 bits

Command list and their descriptions:
IDFlagHelperArgumentDesription
cmdNop---No operation (May signalize an error in the bytecode)
cmdPushChar1\0sizeof(type)address Flag signalizes that the address is relative.
sizeof is used only by cmdPushCmplx.
Command places a value of specified type from parameter stack at address into temporary stack.
cmdPushShort
cmdPushInt
cmdPushFloat
cmdPushDorL
cmdPushCmplx
cmdPushCharStk-sizeof(type)address shift Variable address is pop'ed from the top of temporary stack and a shift is applied to it.
sizeof is used only by cmdPushCmplxStk.
Value of specified type is pushed into temporary stack from computed address.
A check is performed on pop'ed address, and execution stops if it's equal to zero.
cmdPushShortStk
cmdPushIntStk
cmdPushFloatStk
cmdPushDorLStk
cmdPushCmplxStk
cmdPushImmt--valuePushes immediate 32bit value on top of temporary stack.
cmdMovChar1/0sizeof(type)address Flag signalizes that the address is relative.
sizeof is used only by cmdMovCmplx.
Copies a value of specified type from top of temporary stack to parameter stack at address.
cmdMovShort
cmdMovInt
cmdMovFloat
cmdMovDorL
cmdMovCmplx
cmdMovCharStk-sizeof(type)address shift Variable address is pop'ed from the top of temporary stack and a shift is applied to it.
sizeof is used only by cmdPushCmplxStk.
Value of specified type is copied from temporary stack to computed address.
A check is performed on pop'ed address, and execution stops if it's equal to zero.
cmdMovShortStk
cmdMovIntStk
cmdMovFloatStk
cmdMovDorLStk
cmdMovCmplxStk
cmdPop--countPops "count" bytes from temporary stack
cmdDtoI---Converts double ot top of stack into int.
cmdDtoL---Converts double ot top of stack into long.
cmdDtoF---Converts double ot top of stack into float.
cmdItoD---Converts int ot top of stack into double.
cmdLtoD---Converts long ot top of stack into double.
cmdItoL---Converts int ot top of stack into long.
cmdLtoI---Converts long ot top of stack into int.
cmdIndex-sizeof(element)array size Pops integer index from top of stack.
Index is compared with array size, and if it's greater or equal, execution stops with array out of bounds exception.
After check, index is multiplied by array element size, and then, result is added to address on top of stack.
cmdIndexStk-sizeof(element)- Pops array size from from top of stack.
Pops integer index from top of stack.
Index is compared with array size, and if it's greater or equal, execution stops with array out of bounds exception.
After check, index is multiplied by array element size, and then, result is added to address on top of stack.
cmdCopyDorL---Duplicates 64 bit value on top of the stack.
cmdCopyI---Duplicates 32 bit value on top of the stack.
cmdGetAddr1/0-addressPushes address (argument + parameter_base) if flag is 0 and (argument + stack_frame_base) if flag is 1
cmdFuncAddr--function IDPushes function address (32 bit) on top of stack
cmdSetRange---...pending...
cmdJmp--instructionJumps to specified instruction.
cmdJmpZ--instructionPops an integer from top of stack, and if it's equal to zero, jump to specified instruction.
cmdJmpNZ--instructionPops an integer from top of stack, and if it's not equal to zero, jump to specified instruction.
cmdCall---...pending...
cmdCallPtr---...pending...
cmdReturn---...pending...
cmdPushVTop---...pending...
cmdAdd----
cmdSub----
cmdMul----
cmdDiv----
cmdPow----
cmdMod----
cmdLess----
cmdGreater----
cmdLEqual----
cmdGEqual----
cmdEqual----
cmdNEqual----
cmdShl----
cmdShr----
cmdBitAnd----
cmdBitOr----
cmdBitXor----
skipLogAnd---Never executed
skipLogOr---Never executed
cmdLogXor----
cmdAddL----
cmdSubL----
cmdMulL----
cmdDivL----
cmdPowL----
cmdModL----
cmdLessL----
cmdGreaterL----
cmdLEqualL----
cmdGEqualL----
cmdEqualL----
cmdNEqualL----
cmdShlL----
cmdShrL----
cmdBitAndL----
cmdBitOrL----
cmdBitXorL----
skipLogAndL---Never executed
skipLogOrL---Never executed
cmdLogXorL----
cmdAddD----
cmdSubD----
cmdMulD----
cmdDivD----
cmdPowD----
cmdModD----
cmdLessD----
cmdGreaterD----
cmdLEqualD----
cmdGEqualD----
cmdEqualD----
cmdNEqualD----
cmdNeg----
cmdNegL----
cmdNegD----
cmdBitNot----
cmdBitNotL----
cmdLogNot----
cmdLogNotL----
cmdIncI----
cmdIncD----
cmdIncL----
cmdDecI----
cmdDecD----
cmdDecL----
cmdCreateClosure----
cmdCloseUpvals----
skipPushTypeID----
cmdConvertPtr----