93 lines
1.3 KiB
C
93 lines
1.3 KiB
C
#ifndef IVY_OPCODE_H_
|
|
#define IVY_OPCODE_H_
|
|
|
|
enum ivy_instr_id {
|
|
IVY_INSTR_NONE = 0,
|
|
IVY_INSTR_LDR,
|
|
IVY_INSTR_STR,
|
|
IVY_INSTR_PUSH,
|
|
IVY_INSTR_POP,
|
|
IVY_INSTR_MSG,
|
|
IVY_INSTR_ADD,
|
|
IVY_INSTR_SUB,
|
|
IVY_INSTR_MUL,
|
|
IVY_INSTR_DIV,
|
|
IVY_INSTR_C_EQ,
|
|
IVY_INSTR_C_NE,
|
|
IVY_INSTR_C_LT,
|
|
IVY_INSTR_C_LE,
|
|
IVY_INSTR_C_GT,
|
|
IVY_INSTR_C_GE,
|
|
IVY_INSTR_BR,
|
|
IVY_INSTR_BR_T,
|
|
IVY_INSTR_BR_F,
|
|
IVY_INSTR_OB_C,
|
|
IVY_INSTR_OB_E,
|
|
IVY_INSTR_LAM_C,
|
|
IVY_INSTR_IT_G,
|
|
IVY_INSTR_IT_N,
|
|
IVY_INSTR_IT_V,
|
|
IVY_INSTR_RET,
|
|
IVY_INSTR_RET_N,
|
|
};
|
|
|
|
enum ivy_opcode {
|
|
IVY_OP_NONE = 0,
|
|
|
|
IVY_OP_LDR_SP_REG,
|
|
IVY_OP_LDR_SP_CONST,
|
|
IVY_OP_LDR_BP_REG,
|
|
IVY_OP_LDR_BP_CONST,
|
|
IVY_OP_LDR_SELF_REG,
|
|
IVY_OP_LDR_SELF_CONST,
|
|
IVY_OP_LDR_POOL_REG,
|
|
IVY_OP_LDR_POOL_CONST,
|
|
IVY_OP_LDR_CONST,
|
|
|
|
IVY_OP_STR_SP_REG,
|
|
IVY_OP_STR_SP_CONST,
|
|
IVY_OP_STR_BP_REG,
|
|
IVY_OP_STR_BP_CONST,
|
|
IVY_OP_STR_SELF_REG,
|
|
IVY_OP_STR_SELF_CONST,
|
|
|
|
IVY_OP_PUSH_REG,
|
|
IVY_OP_PUSH_CONST,
|
|
IVY_OP_POP,
|
|
|
|
IVY_OP_MSG_REG,
|
|
IVY_OP_MSG_CONST,
|
|
|
|
IVY_OP_ADD,
|
|
IVY_OP_SUB,
|
|
IVY_OP_MUL,
|
|
IVY_OP_DIV,
|
|
|
|
IVY_OP_C_EQ,
|
|
IVY_OP_C_NE,
|
|
IVY_OP_C_LT,
|
|
IVY_OP_C_LE,
|
|
IVY_OP_C_GT,
|
|
IVY_OP_C_GE,
|
|
|
|
IVY_OP_BR,
|
|
IVY_OP_BR_T,
|
|
IVY_OP_BR_F,
|
|
|
|
IVY_OP_OB_C_REG,
|
|
IVY_OP_OB_C_CONST,
|
|
IVY_OP_OB_E,
|
|
|
|
IVY_OP_LAM_C_REG,
|
|
IVY_OP_LAM_C_CONST,
|
|
|
|
IVY_OP_IT_G,
|
|
IVY_OP_IT_N,
|
|
IVY_OP_IT_V,
|
|
|
|
IVY_OP_RET,
|
|
IVY_OP_RET_N,
|
|
};
|
|
|
|
#endif
|