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

95 lines
1.4 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_STK_A,
IVY_INSTR_STK_F,
IVY_INSTR_RET,
IVY_INSTR_RET_N,
};
enum ivy_opcode {
IVY_OPC_NONE = 0,
IVY_OPC_LDR_SP_REG,
IVY_OPC_LDR_SP_CONST,
IVY_OPC_LDR_BP_REG,
IVY_OPC_LDR_BP_CONST,
IVY_OPC_LDR_SELF_REG,
IVY_OPC_LDR_SELF_CONST,
IVY_OPC_LDR_POOL_REG,
IVY_OPC_LDR_POOL_CONST,
IVY_OPC_LDR_CONST,
IVY_OPC_STR_SP_REG,
IVY_OPC_STR_SP_CONST,
IVY_OPC_STR_BP_REG,
IVY_OPC_STR_BP_CONST,
IVY_OPC_STR_SELF_REG,
IVY_OPC_STR_SELF_CONST,
IVY_OPC_PUSH_REG,
IVY_OPC_PUSH_CONST,
IVY_OPC_POP,
IVY_OPC_MSG_REG,
IVY_OPC_MSG_CONST,
IVY_OPC_ADD,
IVY_OPC_SUB,
IVY_OPC_MUL,
IVY_OPC_DIV,
IVY_OPC_C_EQ,
IVY_OPC_C_NE,
IVY_OPC_C_LT,
IVY_OPC_C_LE,
IVY_OPC_C_GT,
IVY_OPC_C_GE,
IVY_OPC_BR,
IVY_OPC_BR_T,
IVY_OPC_BR_F,
IVY_OPC_OB_C_REG,
IVY_OPC_OB_C_CONST,
IVY_OPC_OB_E,
IVY_OPC_LAM_C_REG,
IVY_OPC_LAM_C_CONST,
IVY_OPC_IT_G,
IVY_OPC_IT_N,
IVY_OPC_IT_V,
IVY_OPC_RET,
IVY_OPC_RET_N,
};
#endif