Files
fz-lang/include/common/fzl_opcodes.h
T
2026-10-11 19:11:49 +03:00

27 lines
1.1 KiB
C

#ifndef FZL_OPCODES_H
#define FZL_OPCODES_H
// Available opcodes
typedef enum
{
FZL_OPCODE_LOADCONST = 0xF00001, // Load const into T (temp) reg
FZL_OPCODE_CALL_BUILTIN = 0xF00002, // Call builtin function
FZL_OPCODE_PUSHNUM = 0xF00003, // Push number into stack
FZL_OPCODE_MK_ENVTABLE = 0xF10001, // Allocate new environment table
FZL_OPCODE_RM_ENVTABLE = 0xF10002, // Free environment table
FZL_OPCODE_STORE = 0xF10003, // Push variable to environment table
FZL_OPCODE_LOOKUP_ENV = 0xF10004, // Lookup name in environment table
FZL_OPCODE_WRITE = 0xF10005, // Wirte into variable
FZL_OPCODE_ADD = 0xA00001, // Sum two numbers in arg strack
FZL_OPCODE_SUB = 0xA00002, // Subract two numbers in arg stack
FZL_OPCODE_MUL = 0xA00003, // Multiply two numbers in arg stack
FZL_OPCODE_DIV = 0xA00004, // Divide two numbers in arg stack
FZL_OPCODE_POW = 0xA00005, // Power first number in arg stack by second
FZL_OPCODE_MOD = 0xA00006, // Get module of two numbers in arg stack
FZL_OPCODE_NEG = 0xA00007, // Negotiate number in arg stack
} fzl_opcode_t;
#endif // FZL_OPCODES_H