#help_index "Compiler/Internal" //Intermediate compiler codes #define IS_0_ARG 0 #define IS_1_ARG 1 #define IS_2_ARG 2 #define IS_V_ARG 3 //Variable Arg Count #define IST_NULL 0 #define IST_DEREF 1 #define IST_ASSIGN 2 #define IST_CMP 3 class CIntermediateStruct { U8 arg_count, res_count, type; Bool fpop, not_const, pad[3]; U8 *name; }; #define IC_END 0x00 #define IC_NOP1 0x01 #define IC_END_EXP 0x02 #define IC_NOP2 0x03 #define IC_LABEL 0x04 #define IC_CALL_START 0x05 #define IC_CALL_END 0x06 #define IC_CALL_END2 0x07 #define IC_RETURN_VAL 0x08 #define IC_RETURN_VAL2 0x09 #define IC_IMM_I64 0x0A #define IC_IMM_F64 0x0B #define IC_STR_CONST 0x0C #define IC_ABS_ADDR 0x0D #define IC_ADDR_IMPORT 0x0E #define IC_HEAP_GLOBAL 0x0F #define IC_SIZEOF 0x10 #define IC_TYPE 0x11 #define IC_GET_LABEL 0x12 #define IC_RBP 0x13 #define IC_REG 0x14 #define IC_FS 0x15 #define IC_MOV_FS 0x16 #define IC_GS 0x17 #define IC_MOV_GS 0x18 #define IC_LEA 0x19 #define IC_MOV 0x1A #define IC_TO_I64 0x1B #define IC_TO_F64 0x1C #define IC_TO_BOOL 0x1D #define IC_TOUPPER 0x1E #define IC_POSTFIX_TYPECAST 0x1F #define IC_ADDR 0x20 #define IC_COM 0x21 #define IC_NOT 0x22 #define IC_UNARY_MINUS 0x23 #define IC_DEREF 0x24 #define IC_DEREF_PP 0x25 #define IC_DEREF_MM 0x26 #define IC__PP 0x27 #define IC__MM 0x28 #define IC_PP_ 0x29 #define IC_MM_ 0x2A #define IC_SHL 0x2B #define IC_SHR 0x2C #define IC_SHL_CONST 0x2D #define IC_SHR_CONST 0x2E #define IC_POWER 0x2F #define IC_MUL 0x30 #define IC_DIV 0x31 #define IC_MOD 0x32 #define IC_AND 0x33 #define IC_OR 0x34 #define IC_XOR 0x35 #define IC_ADD 0x36 #define IC_SUB 0x37 #define IC_ADD_CONST 0x38 #define IC_SUB_CONST 0x39 #define IC_EQU_EQU 0x3A #define IC_NOT_EQU 0x3B #define IC_LESS 0x3C #define IC_GREATER_EQU 0x3D #define IC_GREATER 0x3E #define IC_LESS_EQU 0x3F #define IC_PUSH_CMP 0x40 #define IC_AND_AND 0x41 #define IC_OR_OR 0x42 #define IC_XOR_XOR 0x43 #define IC_ASSIGN 0x44 #define IC_ASSIGN_PP 0x45 #define IC_ASSIGN_MM 0x46 #define IC_SHL_EQU 0x47 #define IC_SHR_EQU 0x48 #define IC_MUL_EQU 0x49 #define IC_DIV_EQU 0x4A #define IC_MOD_EQU 0x4B #define IC_AND_EQU 0x4C #define IC_OR_EQU 0x4D #define IC_XOR_EQU 0x4E #define IC_ADD_EQU 0x4F #define IC_SUB_EQU 0x50 #define IC_JMP 0x51 #define IC_SUB_CALL 0x52 #define IC_SWITCH 0x53 #define IC_NOBOUND_SWITCH 0x54 #define IC_ADD_RSP 0x55 #define IC_ADD_RSP1 0x56 #define IC_ENTER 0x57 #define IC_PUSH_REGS 0x58 #define IC_POP_REGS 0x59 #define IC_LEAVE 0x5A #define IC_RET 0x5B #define IC_CALL 0x5C #define IC_CALL_INDIRECT 0x5D #define IC_CALL_INDIRECT2 0x5E #define IC_CALL_IMPORT 0x5F #define IC_CALL_EXTERN 0x60 #define IC_ASM 0x61 #define IC_PUSH 0x62 #define IC_POP 0x63 #define IC_CLFLUSH 0x64 #define IC_INVLPG 0x65 #define IC_IN_U8 0x66 #define IC_IN_U16 0x67 #define IC_IN_U32 0x68 #define IC_OUT_U8 0x69 #define IC_OUT_U16 0x6A #define IC_OUT_U32 0x6B #define IC_RFLAGS_GET 0x6C #define IC_CARRY 0x6D #define IC_RFLAGS_SET 0x6E #define IC_RAX_GET 0x6F #define IC_RAX_SET 0x70 #define IC_RBP_GET 0x71 #define IC_RBP_SET 0x72 #define IC_RSP_GET 0x73 #define IC_RSP_SET 0x74 #define IC_RIP 0x75 #define IC_RDTSC 0x76 #define IC_BT 0x77 #define IC_BTS 0x78 #define IC_BTR 0x79 #define IC_BTC 0x7A #define IC_LBTS 0x7B #define IC_LBTR 0x7C #define IC_LBTC 0x7D #define IC_BSF 0x7E #define IC_BSR 0x7F #define IC_QUEUE_INIT 0x80 #define IC_QUEUE_INSERT 0x81 #define IC_QUEUE_INSERT_REV 0x82 #define IC_QUEUE_REMOVE 0x83 #define IC_STRLEN 0x84 #define IC_BR_ZERO 0x85 #define IC_BR_NOT_ZERO 0x86 #define IC_BR_CARRY 0x87 #define IC_BR_NOT_CARRY 0x88 #define IC_BR_EQU_EQU 0x89 #define IC_BR_NOT_EQU 0x8A #define IC_BR_LESS 0x8B #define IC_BR_GREATER_EQU 0x8C #define IC_BR_GREATER 0x8D #define IC_BR_LESS_EQU 0x8E #define IC_BR_EQU_EQU2 0x8F #define IC_BR_NOT_EQU2 0x90 #define IC_BR_LESS2 0x91 #define IC_BR_GREATER_EQU2 0x92 #define IC_BR_GREATER2 0x93 #define IC_BR_LESS_EQU2 0x94 #define IC_BR_AND_ZERO 0x95 #define IC_BR_AND_NOT_ZERO 0x96 #define IC_BR_MM_ZERO 0x97 #define IC_BR_MM_NOT_ZERO 0x98 #define IC_BR_AND_AND_ZERO 0x99 #define IC_BR_AND_AND_NOT_ZERO 0x9A #define IC_BR_OR_OR_ZERO 0x9B #define IC_BR_OR_OR_NOT_ZERO 0x9C #define IC_BR_BT 0x9D #define IC_BR_BTS 0x9E #define IC_BR_BTR 0x9F #define IC_BR_BTC 0xA0 #define IC_BR_NOT_BT 0xA1 #define IC_BR_NOT_BTS 0xA2 #define IC_BR_NOT_BTR 0xA3 #define IC_BR_NOT_BTC 0xA4 #define IC_SWAP_U8 0xA5 #define IC_SWAP_U16 0xA6 #define IC_SWAP_U32 0xA7 #define IC_SWAP_I64 0xA8 #define IC_ABS_I64 0xA9 #define IC_SIGN_I64 0xAA #define IC_MIN_I64 0xAB #define IC_MIN_U64 0xAC #define IC_MAX_I64 0xAD #define IC_MAX_U64 0xAE #define IC_MOD_U64 0xAF #define IC_SQR_I64 0xB0 #define IC_SQR_U64 0xB1 #define IC_SQR 0xB2 #define IC_ABS 0xB3 #define IC_SQRT 0xB4 #define IC_SIN 0xB5 #define IC_COS 0xB6 #define IC_TAN 0xB7 #define IC_ATAN 0xB8 #define IC_POPCNT 0xB9 #define IC_ICS_NUM 0xBA #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__EXTERN 11 #define KW_RETURN 12 #define KW_SIZEOF 13 #define KW__INTERN 14 #define KW_DO 15 #define KW_ASM 16 #define KW_GOTO 17 #define KW_EXE 18 #define KW_BREAK 19 #define KW_SWITCH 20 #define KW_START 21 #define KW_END 22 #define KW_CASE 23 #define KW_DEFAULT 24 #define KW_PUBLIC 25 #define KW_OFFSET 26 #define KW_IMPORT 27 #define KW__IMPORT 28 #define KW_IFDEF 29 #define KW_IFNDEF 30 #define KW_IFAOT 31 #define KW_IFJIT 32 #define KW_ENDIF 33 #define KW_ASSERT 34 #define KW_REG 35 #define KW_NOREG 36 #define KW_LASTCLASS 37 #define KW_NO_WARN 38 #define KW_HELP_INDEX 39 #define KW_HELP_FILE 40 #define KW_STATIC 41 #define KW_LOCK 42 #define KW_DEFINED 43 #define KW_INTERRUPT 44 #define KW_HASERRCODE 45 #define KW_ARGPOP 46 #define KW_NOARGPOP 47 #define AKW_ALIGN 64 #define AKW_ORG 65 #define AKW_I0 66 #define AKW_I8 67 #define AKW_I16 68 #define AKW_I32 69 #define AKW_I64 70 #define AKW_U0 71 #define AKW_U8 72 #define AKW_U16 73 #define AKW_U32 74 #define AKW_U64 75 #define AKW_F64 76 #define AKW_DU8 77 #define AKW_DU16 78 #define AKW_DU32 79 #define AKW_DU64 80 #define AKW_DUP 81 #define AKW_USE16 82 #define AKW_USE32 83 #define AKW_USE64 84 #define AKW_IMPORT 85 #define AKW_LIST 86 #define AKW_NOLIST 87 #define AKW_BINFILE 88 #define KW_KWS_NUM 89 #define CMP_TEMPLATE_INC 0x00 #define CMP_TEMPLATE_DEC 0x01 #define CMP_TEMPLATE_MOD 0x02 #define CMP_TEMPLATE_LESS 0x03 #define CMP_TEMPLATE_GREATER 0x04 #define CMP_TEMPLATE_LESS_EQU 0x05 #define CMP_TEMPLATE_GREATER_EQU 0x06 #define CMP_TEMPLATE_STRLEN 0x07 #define CMP_TEMPLATE_RDTSC 0x08 #define CMP_TEMPLATE_SIGN_I64 0x09 #define CMP_TEMPLATE_FSTP 0x0A #define CMP_TEMPLATE_FLD 0x0B #define CMP_TEMPLATE_SQR 0x0C #define CMP_TEMPLATE_ABS 0x0D #define CMP_TEMPLATE_SQRT 0x0E #define CMP_TEMPLATE_SIN 0x0F #define CMP_TEMPLATE_COS 0x10 #define CMP_TEMPLATE_TAN 0x11 #define CMP_TEMPLATE_ATAN 0x12 #define ASSOCF_LEFT 1 #define ASSOCF_RIGHT 2 #define ASSOC_MASK 3 #define PREC_NULL 0x00 #define PREC_TERM 0x04 #define PREC_UNARY_POST 0x08 #define PREC_UNARY_PRE 0x0C #define PREC_EXP 0x10 #define PREC_MUL 0x14 #define PREC_AND 0x18 #define PREC_XOR 0x1C #define PREC_OR 0x20 #define PREC_ADD 0x24 #define PREC_CMP 0x28 #define PREC_CMP2 0x2C #define PREC_AND_AND 0x30 #define PREC_XOR_XOR 0x34 #define PREC_OR_OR 0x38 #define PREC_ASSIGN 0x3C #define PREC_MAX 0x40 //Function/static/public flags #define FSF_PUBLIC 0x01 #define FSF_ASM 0x02 #define FSF_STATIC 0x04 #define FSF__ 0x08 #define FSF_INTERRUPT (1 << Ff_INTERRUPT) #define FSF_HASERRCODE (1 << Ff_HASERRCODE) #define FSF_ARGPOP (1 << Ff_ARGPOP) #define FSF_NOARGPOP (1 << Ff_NOARGPOP) #define FSG_FUN_FLAGS1 (FSF_INTERRUPT | FSF_HASERRCODE | FSF_ARGPOP | FSF_NOARGPOP) #define FSG_FUN_FLAGS2 (FSG_FUN_FLAGS1 | FSF_PUBLIC) //Byte 0 #define PRS0_NULL 0x000000 #define PRS0__EXTERN 0x000001 #define PRS0__INTERN 0x000002 #define PRS0__IMPORT 0x000003 #define PRS0_EXTERN 0x000004 #define PRS0_IMPORT 0x000005 #define PRS0_TYPECAST 0x000006 //Byte 1 #define PRS1B_NULL 0 #define PRS1_NULL 0x000000 #define PRS1B_LOCAL_VAR 1 #define PRS1_LOCAL_VAR 0x000100 #define PRS1B_FUN_ARG 2 #define PRS1_FUN_ARG 0x000200 #define PRS1B_CLASS 3 #define PRS1_CLASS 0x000300 #define PRS1B_STATIC_LOCAL_VAR 4 #define PRS1_STATIC_LOCAL_VAR 0x000400 #define PRS1B__EXTERN_IMPORT 5 #define PRS1_NOT_REALLY__EXTERN 0x000500 #define PRSF_UNION 0x010000 class COptReg { I64 offset; CMemberList *m; }; #define CMPF_ASM_BLK 1 #define CMPF_ONE_ASM_INS 2 #define CMPF_LEX_FIRST 4 #define CMPF_PRS_SEMICOLON 8 #help_index ""