//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