#ifndef CRT_H #define CRT_H #define tmpy 0x02 #define tmp 0x03 #define ip 0x19 #define accu 0x1b #define addr 0x1f #define sp 0x23 #define fp 0x25 #define sregs 0x43 #define regs 0x53 extern char spentry; enum ByteCode { BC_NOP, BC_EXIT, BC_CONST_8, BC_CONST_P8, BC_CONST_N8, BC_CONST_16, BC_CONST_32, BC_LOAD_REG_8, BC_STORE_REG_8, BC_LOAD_REG_16, BC_STORE_REG_16, BC_ADDR_REG, BC_LOAD_REG_32, BC_STORE_REG_32, BC_LOAD_ABS_8, BC_LOAD_ABS_16, BC_LOAD_ABS_32, BC_STORE_ABS_8, BC_STORE_ABS_16, BC_STORE_ABS_32, BC_LEA_ABS, BC_LEA_ABS_INDEX, BC_LOAD_LOCAL_8, BC_LOAD_LOCAL_16, BC_LOAD_LOCAL_32, BC_STORE_LOCAL_8, BC_STORE_LOCAL_16, BC_STORE_LOCAL_32, BC_LEA_LOCAL, BC_STORE_FRAME_8, BC_STORE_FRAME_16, BC_STORE_FRAME_32, BC_LEA_FRAME, BC_LOAD_ADDR_8, BC_LOAD_ADDR_16, BC_LOAD_ADDR_32, BC_STORE_ADDR_8, BC_STORE_ADDR_16, BC_STORE_ADDR_32, BC_BINOP_ADDR_16, BC_BINOP_SUBR_16, BC_BINOP_ANDR_16, BC_BINOP_ORR_16, BC_BINOP_XORR_16, BC_BINOP_MULR_16, BC_BINOP_DIVR_U16, BC_BINOP_MODR_U16, BC_BINOP_DIVR_I16, BC_BINOP_MODR_I16, BC_BINOP_SHLR_16, BC_BINOP_SHRR_U16, BC_BINOP_SHRR_I16, BC_BINOP_ADDI_16, BC_BINOP_SUBI_16, BC_BINOP_ANDI_16, BC_BINOP_ORI_16, BC_BINOP_MULI8_16, BC_BINOP_ADDI_8, BC_BINOP_ANDI_8, BC_BINOP_ORI_8, BC_BINOP_SHLI_16, BC_BINOP_SHRI_U16, BC_BINOP_SHRI_I16, BC_BINOP_CMPUR_16, BC_BINOP_CMPSR_16, BC_BINOP_CMPUI_16, BC_BINOP_CMPSI_16, BC_OP_NEGATE_16, BC_OP_INVERT_16, BC_BINOP_ADD_F32, BC_BINOP_SUB_F32, BC_BINOP_MUL_F32, BC_BINOP_DIV_F32, BC_BINOP_CMP_F32, BC_OP_NEGATE_F32, BC_OP_ABS_F32, BC_OP_FLOOR_F32, BC_OP_CEIL_F32, BC_CONV_U16_F32, BC_CONV_I16_F32, BC_CONV_F32_U16, BC_CONV_F32_I16, BC_CONV_I8_I16, BC_JUMPS, BC_BRANCHS_EQ, BC_BRANCHS_NE, BC_BRANCHS_GT, BC_BRANCHS_GE, BC_BRANCHS_LT, BC_BRANCHS_LE, BC_JUMPF, BC_BRANCHF_EQ, BC_BRANCHF_NE, BC_BRANCHF_GT, BC_BRANCHF_GE, BC_BRANCHF_LT, BC_BRANCHF_LE, BC_SET_EQ, BC_SET_NE, BC_SET_GT, BC_SET_GE, BC_SET_LT, BC_SET_LE, BC_ENTER, BC_RETURN, BC_CALL, BC_PUSH_FRAME, BC_POP_FRAME, BC_JSR, BC_COPY, BC_COPY_LONG, BC_EXTRT, BC_NATIVE = 0x75, BC_CONV_I16_I32 = 0x80, BC_CONV_U16_U32, BC_OP_NEGATE_32, BC_OP_INVERT_32, BC_BINOP_ADD_L32, BC_BINOP_SUB_L32, BC_BINOP_AND_L32, BC_BINOP_OR_L32, BC_BINOP_XOR_L32, BC_BINOP_MUL_L32, BC_BINOP_DIV_U32, BC_BINOP_MOD_U32, BC_BINOP_DIV_I32, BC_BINOP_MOD_I32, BC_BINOP_SHL_L32, BC_BINOP_SHR_U32, BC_BINOP_SHR_I32, BC_BINOP_CMP_U32, BC_BINOP_CMP_S32, }; #endif