mirror of
https://github.com/Zeal-Operating-System/ZealOS.git
synced 2024-12-26 23:36:32 +00:00
228 lines
4.9 KiB
Text
Executable file
228 lines
4.9 KiB
Text
Executable file
//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
|