//Intermediate compiler codes
#define IC_END                  0x00
#define IC_START                0x01
#define IC_NOP1                 0x02
#define IC_END_EXP              0x03
#define IC_NOP2                 0x04
#define IC_LABEL                0x05
#define IC_CALL_START           0x06
#define IC_CALL_END             0x07
#define IC_CALL_END2            0x08
#define IC_RETURN_VAL           0x09
#define IC_RETURN_VAL2          0x0A
#define IC_IMM_I64              0x0B
#define IC_IMM_F64              0x0C
#define IC_STR_CONST            0x0D
#define IC_ABS_ADDR             0x0E
#define IC_ADDR_IMPORT          0x0F
#define IC_HEAP_GLBL            0x10
#define IC_SIZEOF               0x11
#define IC_TYPE                 0x12
#define IC_GET_LABEL            0x13
#define IC_RBP                  0x14
#define IC_REG                  0x15
#define IC_FS                   0x16
#define IC_GS                   0x17

#define IC_LEA                  0x18
#define IC_MOV                  0x19

#define IC_TO_I64               0x1A
#define IC_TO_F64               0x1B
#define IC_TO_BOOL              0x1C
#define IC_TOUPPER              0x1D
#define IC_HOLYC_TYPECAST       0x1E

#define IC_ADDR                 0x1F
#define IC_COM                  0x20
#define IC_NOT                  0x21
#define IC_UNARY_MINUS          0x22

#define IC_DEREF                0x23
#define IC_DEREF_PP             0x24
#define IC_DEREF_MM             0x25
#define IC__PP                  0x26
#define IC__MM                  0x27
#define IC_PP_                  0x28
#define IC_MM_                  0x29

#define IC_SHL                  0x2A
#define IC_SHR                  0x2B
#define IC_SHL_CONST            0x2C
#define IC_SHR_CONST            0x2D
#define IC_POWER                0x2E

#define IC_MUL                  0x2F
#define IC_DIV                  0x30
#define IC_MOD                  0x31

#define IC_AND                  0x32

#define IC_OR                   0x33
#define IC_XOR                  0x34

#define IC_ADD                  0x35
#define IC_SUB                  0x36
#define IC_ADD_CONST            0x37
#define IC_SUB_CONST            0x38

#define IC_EQU_EQU              0x39
#define IC_NOT_EQU              0x3A
#define IC_LESS                 0x3B
#define IC_GREATER              0x3C
#define IC_LESS_EQU             0x3D
#define IC_GREATER_EQU          0x3E
#define IC_PUSH_CMP             0x3F

#define IC_AND_AND              0x40

#define IC_OR_OR                0x41
#define IC_XOR_XOR              0x42

#define IC_COLON                0x43
#define IC_QUESTION             0x44

#define IC_ASSIGN               0x45
#define IC_ASSIGN_PP            0x46
#define IC_ASSIGN_MM            0x47

#define IC_SHL_EQU              0x48
#define IC_SHR_EQU              0x49
#define IC_MUL_EQU              0x4A
#define IC_DIV_EQU              0x4B
#define IC_MOD_EQU              0x4C
#define IC_AND_EQU              0x4D
#define IC_OR_EQU               0x4E
#define IC_XOR_EQU              0x4F
#define IC_ADD_EQU              0x50
#define IC_SUB_EQU              0x51

#define IC_JMP                  0x52
#define IC_SWITCH               0x53
#define IC_NOBOUND_SWITCH       0x54

#define IC_ADD_RSP              0x55
#define IC_ADD_RSP1             0xC1
#define IC_ENTER                0x56
#define IC_PUSH_REGS            0x57
#define IC_POP_REGS             0x58
#define IC_LEAVE                0x59
#define IC_RET                  0x5A

#define IC_CALL                 0x5B
#define IC_CALL_INDIRECT        0x5C
#define IC_CALL_INDIRECT2       0x5D
#define IC_CALL_IMPORT          0x5E
#define IC_CALL_EXTERN          0x5F
#define IC_IRQ                  0x60

#define IC_ASM                  0x61
#define IC_CLI                  0x62
#define IC_STI                  0x63
#define IC_CLD                  0x65
#define IC_STD                  0x66
#define IC_HLT                  0x67
#define IC_PUSHFD               0x68
#define IC_POPFD                0x69
#define IC_PAUSE                0x6A

#define IC_CLFLUSH              0x6B
#define IC_INVLPG               0x6C
#define IC_WBINVD               0x6F
#define IC_INVD                 0x70

#define IC_IN_U8                0x71
#define IC_IN_U16               0x72
#define IC_IN_U32               0x73
#define IC_OUT_U8               0x74
#define IC_OUT_U16              0x75
#define IC_OUT_U32              0x76

#define IC_GET_RFLAGS           0x77
#define IC_SET_RFLAGS           0x78
#define IC_GET_RAX              0x79
#define IC_SET_RAX              0x7A
#define IC_GET_RBP              0x7B
#define IC_SET_RBP              0x7C
#define IC_GET_RSP              0x7D
#define IC_SET_RSP              0x7E
#define IC_RIP                  0x7F

#define IC_RDTSC                0x80

#define IC_BT                   0x82
#define IC_BTS                  0x83
#define IC_BTR                  0x84
#define IC_BTC                  0x85
#define IC_BEQU                 0x86
#define IC_LBTS                 0x87
#define IC_LBTR                 0x88
#define IC_LBTC                 0x89
#define IC_LBEQU                0x8A
#define IC_BSF                  0x8B
#define IC_BSR                  0x8C

#define IC_QUE_INS              0x8D
#define IC_QUE_INS_REV          0x8E
#define IC_QUE_REM              0x8F

#define IC_STRLEN               0x90
#define IC_MEMCPY               0x91

#define IC_MEMSET               0x92
#define IC_MEMSET_U16           0xC2
#define IC_MEMSET_U32           0xC3
#define IC_MEMSET_I64           0xC4

#define IC_BR_ZERO              0x93
#define IC_BR_NOT_ZERO          0x94

#define IC_BR_NOT_EQU           0x95
#define IC_BR_EQU_EQU           0x96
#define IC_BR_GREATER_EQU       0x97
#define IC_BR_LESS_EQU          0x98
#define IC_BR_GREATER           0x99
#define IC_BR_LESS              0x9A
#define IC_BR_NOT_EQU2          0x9B
#define IC_BR_EQU_EQU2          0x9C
#define IC_BR_GREATER_EQU2      0x9D
#define IC_BR_LESS_EQU2         0x9E
#define IC_BR_GREATER2          0x9F
#define IC_BR_LESS2             0xA0
#define IC_BR_AND_ZERO          0xA1
#define IC_BR_AND_NOT_ZERO      0xA2
#define IC_BR_AND_AND_ZERO      0xA3
#define IC_BR_AND_AND_NOT_ZERO  0xA4
#define IC_BR_OR_OR_ZERO        0xA5
#define IC_BR_OR_OR_NOT_ZERO    0xA6

#define IC_BR_BT                0xA7
#define IC_BR_BTS               0xA8
#define IC_BR_BTR               0xA9
#define IC_BR_BTC               0xAA
#define IC_BR_LBTS              0xAB
#define IC_BR_LBTR              0xAC
#define IC_BR_LBTC              0xAD
#define IC_BR_NOT_BT            0xAE
#define IC_BR_NOT_BTS           0xAF
#define IC_BR_NOT_BTR           0xB0
#define IC_BR_NOT_BTC           0xB1
#define IC_BR_NOT_LBTS          0xB2
#define IC_BR_NOT_LBTR          0xB3
#define IC_BR_NOT_LBTC          0xB4

#define IC_SWAP_U8              0xB5
#define IC_SWAP_U16             0xB6
#define IC_SWAP_U32             0xB7
#define IC_SWAP_I64             0xB8

#define IC_ABS_I64              0xB9
#define IC_SIGN_I64             0xBA
#define IC_MIN_I64              0xBB
#define IC_MIN_U64              0xBC
#define IC_MAX_I64              0xBD
#define IC_MAX_U64              0xBE
#define IC_LIMIT_I64            0xBF
#define IC_LIMIT_U64            0xC0

#define IC_ICS_NUM              0xC5