Files
ivy/common/include/ivy/opcode.h

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