255 lines
5.6 KiB
Plaintext
255 lines
5.6 KiB
Plaintext
//Intermediate compiler codes
|
|
#define EC_NULL 0x000
|
|
#define EC_NOP 0x001
|
|
#define EC_END_EXP 0x002
|
|
#define EC_LABEL 0x003
|
|
#define EC_CALL_START 0x004
|
|
#define EC_CALL_END 0x005
|
|
#define EC_RETURN_START 0x006
|
|
#define EC_RETURN_END 0x007
|
|
#define EC_NOP1 0x008
|
|
#define EC_IMM 0x009
|
|
#define EC_DOUBLE 0x00A
|
|
#define EC_STR_CONST 0x00B
|
|
#define EC_ABSOLUTE_ADDRESS 0x00C
|
|
#define EC_TYPE 0x00D //not used (yet)
|
|
#define EC_GET_LABEL 0x00E
|
|
#define EC_RBP 0x00F
|
|
#define EC_REG 0x010
|
|
#define EC_FS 0x011
|
|
#define EC_GS 0x012
|
|
|
|
#define EC_LEA 0x013
|
|
|
|
#define EC_MOV 0x014
|
|
|
|
#define EC_ADDRESS 0x015
|
|
#define EC_COM 0x016
|
|
#define EC_NOT 0x017
|
|
#define EC_UNARY_MINUS 0x018
|
|
|
|
#define EC_DEREF 0x019
|
|
#define EC__PP 0x01A
|
|
#define EC__MM 0x01B
|
|
#define EC_PP_ 0x01C
|
|
#define EC_MM_ 0x01D
|
|
|
|
#define EC_SHL 0x01E
|
|
#define EC_SHR 0x01F
|
|
|
|
#define EC_POWER 0x020
|
|
|
|
#define EC_MUL 0x021
|
|
#define EC_DIV 0x022
|
|
#define EC_MOD 0x023
|
|
|
|
#define EC_AND 0x024
|
|
|
|
#define EC_OR 0x025
|
|
#define EC_XOR 0x026
|
|
|
|
#define EC_ADD 0x027
|
|
#define EC_SUB 0x028
|
|
|
|
#define EC_EQUAL_EQUAL 0x029
|
|
#define EC_NOT_EQUAL 0x02A
|
|
#define EC_LESS 0x02B
|
|
#define EC_GREATER 0x02C
|
|
#define EC_LESS_EQUAL 0x02D
|
|
#define EC_GREATER_EQUAL 0x02E
|
|
|
|
#define EC_AND_AND 0x02F
|
|
|
|
#define EC_OR_OR 0x030
|
|
#define EC_XOR_XOR 0x031
|
|
|
|
#define EC_COLON 0x032
|
|
#define EC_QUESTION 0x033
|
|
|
|
#define EC_ASSIGN 0x034
|
|
|
|
#define EC_SHL_EQUAL 0x035
|
|
#define EC_SHR_EQUAL 0x036
|
|
#define EC_MUL_EQUAL 0x037
|
|
#define EC_DIV_EQUAL 0x038
|
|
#define EC_AND_EQUAL 0x039
|
|
#define EC_OR_EQUAL 0x03A
|
|
#define EC_XOR_EQUAL 0x03B
|
|
#define EC_ADD_EQUAL 0x03C
|
|
#define EC_SUB_EQUAL 0x03D
|
|
|
|
#define EC_ADD_RSP 0x03E
|
|
|
|
#define EC_ENTER 0x03F
|
|
#define EC_LEAVE 0x040
|
|
#define EC_RET 0x041
|
|
|
|
#define EC_CALL 0x042
|
|
#define EC_CALL_INDIRECT 0x043
|
|
#define EC_CALL_INDIRECT2 0x044
|
|
#define EC_IRQ 0x045
|
|
|
|
#define EC_CLI 0x046
|
|
#define EC_STI 0x047
|
|
#define EC_DISABLE_CACHE 0x048
|
|
#define EC_ENABLE_CACHE 0x049
|
|
#define EC_WBINVD 0x04A
|
|
#define EC_INVD 0x04B
|
|
|
|
#define EC_GET_FLAGS 0x04C
|
|
#define EC_SET_FLAGS 0x04D
|
|
#define EC_GET_BASE_PTR 0x04E
|
|
#define EC_SET_BASE_PTR 0x04F
|
|
#define EC_GET_STACK_PTR 0x050
|
|
#define EC_SET_STACK_PTR 0x051
|
|
#define EC_SET_RAX 0x052
|
|
|
|
#define EC_BT 0x053
|
|
#define EC_BTS 0x054
|
|
#define EC_BTR 0x055
|
|
#define EC_BTC 0x056
|
|
#define EC_BSF 0x057
|
|
#define EC_BSR 0x058
|
|
#define EC_INSQUE 0x059
|
|
#define EC_INSQUE_REV 0x05A
|
|
#define EC_REMQUE 0x05B
|
|
#define EC_STRLEN 0x05C
|
|
#define EC_MEMCPY 0x05D
|
|
#define EC_MEMSET 0x05E
|
|
#define EC_INPD 0x05F
|
|
#define EC_INPW 0x060
|
|
#define EC_INP 0x061
|
|
#define EC_OUTPD 0x062
|
|
#define EC_OUTPW 0x063
|
|
#define EC_OUTP 0x064
|
|
#define EC_RDTSC 0x065
|
|
|
|
#define EC_JMP 0x066
|
|
#define EC_SWITCH 0x067
|
|
|
|
#define EC_BR_ZERO 0x068
|
|
#define EC_BR_NOT_ZERO 0x069
|
|
|
|
//ADDED DURING PASS1
|
|
#define EC_BR_NOT_EQUAL 0x06A
|
|
#define EC_BR_EQUAL_EQUAL 0x06B
|
|
#define EC_BR_GREATER_EQUAL 0x06C
|
|
#define EC_BR_LESS_EQUAL 0x06D
|
|
#define EC_BR_GREATER 0x06E
|
|
#define EC_BR_LESS 0x06F
|
|
#define EC_BR_OR_OR_ZERO 0x070
|
|
#define EC_BR_OR_OR_NOT_ZERO 0x071
|
|
|
|
#define EC_SHL_CONST 0x072
|
|
#define EC_SHR_CONST 0x073
|
|
#define EC_ADD_CONST 0x074
|
|
#define EC_SUB_CONST 0x075
|
|
|
|
#define EC_PUSH_REGS 0x076
|
|
#define EC_POP_REGS 0x077
|
|
|
|
#define EC_BR_BT 0x078
|
|
#define EC_BR_BTS 0x079
|
|
#define EC_BR_BTR 0x07A
|
|
#define EC_BR_BTC 0x07B
|
|
#define EC_BR_NOT_BT 0x07C
|
|
#define EC_BR_NOT_BTS 0x07D
|
|
#define EC_BR_NOT_BTR 0x07E
|
|
#define EC_BR_NOT_BTC 0x07F
|
|
#define EC_CALL_END2 0x080
|
|
|
|
#define EC_LBTS 0x081
|
|
#define EC_LBTR 0x082
|
|
#define EC_LBTC 0x083
|
|
#define EC_BR_LBTS 0x084
|
|
#define EC_BR_LBTR 0x085
|
|
#define EC_BR_LBTC 0x086
|
|
#define EC_BR_NOT_LBTS 0x087
|
|
#define EC_BR_NOT_LBTR 0x088
|
|
#define EC_BR_NOT_LBTC 0x089
|
|
#define EC_BR_AND_AND_ZERO 0x08A
|
|
#define EC_BR_AND_AND_NOT_ZERO 0x08B
|
|
|
|
#define EC_BR_AND_ZERO 0x08C
|
|
#define EC_BR_AND_NOT_ZERO 0x08D
|
|
|
|
#define EC_MOD_EQUAL 0x08E
|
|
#define EC_CALL_EXTERN 0x08F
|
|
|
|
#define EC_ABSI8 0x090
|
|
#define EC_PUSH_CMP 0x091
|
|
#define EC_PREEMPT 0x092
|
|
|
|
#define EC_NUM_ENTRIES 0x093
|
|
|
|
|
|
|
|
#define KW_INCLUDE 0
|
|
#define KW_DEFINE 1
|
|
#define KW_UNION 2
|
|
#define KW_CATCH 3
|
|
#define KW_CLASS 4
|
|
#define KW_TRY 5
|
|
#define KW_IF 6
|
|
#define KW_ELSE 7
|
|
#define KW_FOR 8
|
|
#define KW_WHILE 9
|
|
#define KW_EXTERN 10
|
|
#define KW_LTEXTERN 11
|
|
#define KW_RETURN 12
|
|
#define KW_SIZEOF 13
|
|
#define KW_INTERNAL 14
|
|
#define KW_FMTSTR 15
|
|
#define KW_FMTDATA 16
|
|
#define KW_OUTPUT_FUN 17
|
|
#define KW_INPUT_FUN 18
|
|
#define KW_COUT 19
|
|
#define KW_DO 20
|
|
#define KW_ASM 21
|
|
#define KW_GOTO 22
|
|
#define KW_EXE 23
|
|
#define KW_BREAK 24
|
|
#define KW_CONTINUE 25
|
|
#define KW_SWITCH 26
|
|
#define KW_CASE 27
|
|
#define KW_DEFAULT 28
|
|
#define KW_PUBLIC 29
|
|
#define KW_OFFSET 30
|
|
#define KW_TYPEOF 31
|
|
#define KW_IMPORT 32
|
|
#define KW_LTIMPORT 33
|
|
#define KW_COUTLN 34
|
|
#define KW_IFDEF 35
|
|
#define KW_IFNDEF 36
|
|
#define KW_ENDIF 37
|
|
#define KW_ASSERT 38
|
|
#define KW_REG 39
|
|
#define KW_NOREG 40
|
|
#define KW_NOUNUSEDWARN 41
|
|
#define KW_HELP_INDEX 42
|
|
#define KW_HELP_FILE 43
|
|
|
|
#define AKW_ALIGN 64
|
|
#define AKW_END 65
|
|
#define AKW_U1 66
|
|
#define AKW_U2 67
|
|
#define AKW_U4 68
|
|
#define AKW_U8 69
|
|
#define AKW_DU1 70
|
|
#define AKW_DU2 71
|
|
#define AKW_DU4 72
|
|
#define AKW_DU8 73
|
|
#define AKW_DUP 74
|
|
#define AKW_ORG 75
|
|
#define AKW_STRUC 76
|
|
#define AKW_ENDS 77
|
|
#define AKW_USE16 78
|
|
#define AKW_USE32 79
|
|
#define AKW_USE64 80
|
|
#define AKW_IMPORT 81
|
|
#define AKW_EXPORT 82
|
|
#define AKW_INSERT 83
|
|
#define AKW_LIST 84
|
|
#define AKW_NOLIST 85
|
|
#define AKW_INSERT_COMPRESSED 86
|