NOP

Opcode Name Arguments
00 NOP  


MOV

Opcode Name Arguments
01 MOV reg, reg
02 LOAD_NIL reg
03 LOAD_TRUE reg
04 LOAD_FALSE reg
05 LOAD_UINT8 reg, uint8
06 LOAD_UINT16 reg, uint16
07 LOAD_UINT32 reg, uint32
08 LOAD_UINT64 reg, uint64
09 LOAD_INT8 reg, int8
0A LOAD_INT16 reg, int16
0B LOAD_INT32 reg, int32
0C LOAD_INT64 reg, int64
0D LOAD_CLASS reg, uint16
0E LOAD_METHOD reg, symbol
0F REFLECT reg, symbol, uint16, uint16
10 LOAD_NUMBER reg, uint64
11 LOAD_STRING reg, uint64, uint64
12 NEW_ARRAY reg, reglist
13 LOAD_SELF reg
14 GET_INSTVAR reg, symbol
15 LOAD_HAS_BLOCK reg
16 LOAD_ARG reg, uint16


FLOW

Opcode Name Arguments
17 JMP int16
18 JMP_IF reg, int16, int16
19 CALL reg, symbol, reglist
1A INSTCALL reg, reg, symbol, reglist
1B SYSCALL reg, uint8, reglist
1C RETURN reg


OTHER

Opcode Name Arguments
1D RETAIN reg
1E RELEASE reg
1F CAST reg, reg, uint16
20 SET_INSTVAR symbol, reg


SPECIAL

Opcode Name Arguments
21 COV uint16, uint16
22 STACK_RESERVE uint16


NEW

Opcode Name Arguments
23 LOAD_FLOAT reg, float
24 LOAD_ARG_DEFAULT reg, uint16, reg
25 LOAD_LOCAL_BLOCK reg, reg
26 LOAD_CURRENT_BLOCK reg
27 BOX reg, reg
28 UNBOX reg, reg
29 SETBOX reg, reg, reg
2A GET_INSTVAR_EXT reg, symbol, reg
2B GET_CLASSVAR reg, symbol
2C SET_CLASSVAR symbol, reg


Autogenerated from src/shared/opcodes.rb, last revised: 2023-04-06