CoolFace
Datasetpublic

hschumann2/TempleOS-Source-Code

sourceHugging Faceupdated 1y agoView on Hugging Face
0likes838downloads
CInit.txt332 linesDownload Raw Back to Compiler
1 2#define INTERNAL_TYPES_NUM      173 4class CInternalType5{6  U8 type,size,name[8];7} internal_types_table[INTERNAL_TYPES_NUM]={8  {RT_I0,0,"I0i"},{RT_I0,0,"I0"},{RT_U0,0,"U0i"},{RT_U0,0,"U0"},9  {RT_I8,1,"I8i"},{RT_I8,1,"I8"},{RT_I8,1,"Bool"},10  {RT_U8,1,"U8i"},{RT_U8,1,"U8"},11  {RT_I16,2,"I16i"},{RT_U16,2,"U16i"},12  {RT_I32,4,"I32i"},{RT_U32,4,"U32i"},13  {RT_I64,8,"I64i"},{RT_U64,8,"U64i"},14  {RT_F64,8,"F64i"},{RT_F64,8,"F64"},15};16 17CIntermediateStruct intermediate_code_table[IC_ICS_NUM]={18  {IS_0_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"END"},19  {IS_0_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"NOP1"},20  {IS_1_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"END_EXP"},21  {IS_0_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"NOP2"},22  {IS_0_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"LABEL"},23  {IS_0_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"CALL_START"},24  {IS_0_ARG,1,IST_NULL,FALSE,FALSE,0,0,0,"CALL_END"},25  {IS_0_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"CALL_END2"},26  {IS_1_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"RETURN_VAL"},27  {IS_0_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"RETURN_VAL2"},28  {IS_0_ARG,1,IST_NULL,FALSE,FALSE,0,0,0,"IMM_I64"},29  {IS_0_ARG,1,IST_NULL,FALSE,FALSE,0,0,0,"IMM_F64"},30  {IS_0_ARG,1,IST_NULL,FALSE,TRUE,0,0,0,"STR_CONST"},31  {IS_0_ARG,1,IST_NULL,FALSE,TRUE,0,0,0,"ABS_ADDR"},32  {IS_0_ARG,1,IST_NULL,FALSE,TRUE,0,0,0,"ADDR_IMPORT"},33  {IS_0_ARG,1,IST_NULL,FALSE,TRUE,0,0,0,"HEAP_GLBL"},34  {IS_0_ARG,1,IST_NULL,FALSE,FALSE,0,0,0,"SIZEOF"},35  {IS_0_ARG,1,IST_NULL,FALSE,FALSE,0,0,0,"TYPE"},36  {IS_0_ARG,1,IST_NULL,FALSE,TRUE,0,0,0,"GET_LABEL"},37  {IS_0_ARG,1,IST_NULL,FALSE,TRUE,0,0,0,"RBP"},38  {IS_0_ARG,1,IST_NULL,FALSE,TRUE,0,0,0,"REG"},39  {IS_0_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"FS"},40  {IS_0_ARG,1,IST_NULL,FALSE,TRUE,0,0,0,"MOV_FS"},41  {IS_0_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"GS"},42  {IS_0_ARG,1,IST_NULL,FALSE,TRUE,0,0,0,"MOV_GS"},43  {IS_0_ARG,1,IST_NULL,FALSE,TRUE,0,0,0,"LEA"},44  {IS_0_ARG,1,IST_NULL,FALSE,TRUE,0,0,0,"MOV"},45  {IS_1_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"TO_I64"},46  {IS_1_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"TO_F64"},47  {IS_1_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"TO_BOOL"},48  {IS_1_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"TOUPPER"},49  {IS_1_ARG,1,IST_NULL,FALSE,FALSE,0,0,0,"HOLYC_TYPECAST"},50  {IS_1_ARG,1,IST_NULL,FALSE,TRUE,0,0,0,"ADDR"},51  {IS_1_ARG,1,IST_NULL,FALSE,FALSE,0,0,0,"COM"},52  {IS_1_ARG,1,IST_NULL,FALSE,FALSE,0,0,0,"NOT"},53  {IS_1_ARG,1,IST_NULL,FALSE,FALSE,0,0,0,"UNARY_MINUS"},54  {IS_1_ARG,1,IST_DEREF,FALSE,TRUE,0,0,0,"DEREF"},55  {IS_1_ARG,1,IST_DEREF,FALSE,TRUE,0,0,0,"DEREF_PP"},56  {IS_1_ARG,1,IST_DEREF,FALSE,TRUE,0,0,0,"DEREF_MM"},57  {IS_1_ARG,1,IST_DEREF,TRUE,TRUE,0,0,0,"_PP"},58  {IS_1_ARG,1,IST_DEREF,TRUE,TRUE,0,0,0,"_MM"},59  {IS_1_ARG,1,IST_DEREF,TRUE,TRUE,0,0,0,"PP_"},60  {IS_1_ARG,1,IST_DEREF,TRUE,TRUE,0,0,0,"MM_"},61  {IS_2_ARG,1,IST_NULL,FALSE,FALSE,0,0,0,"SHL"},62  {IS_2_ARG,1,IST_NULL,FALSE,FALSE,0,0,0,"SHR"},63  {IS_1_ARG,1,IST_ASSIGN,FALSE,FALSE,0,0,0,"SHL_CONST"},64  {IS_1_ARG,1,IST_ASSIGN,FALSE,FALSE,0,0,0,"SHR_CONST"},65  {IS_2_ARG,1,IST_NULL,FALSE,FALSE,0,0,0,"POWER"},66  {IS_2_ARG,1,IST_NULL,TRUE,FALSE,0,0,0,"MUL"},67  {IS_2_ARG,1,IST_NULL,TRUE,FALSE,0,0,0,"DIV"},68  {IS_2_ARG,1,IST_NULL,FALSE,FALSE,0,0,0,"MOD"},69  {IS_2_ARG,1,IST_NULL,FALSE,FALSE,0,0,0,"AND"},70  {IS_2_ARG,1,IST_NULL,FALSE,FALSE,0,0,0,"OR"},71  {IS_2_ARG,1,IST_NULL,FALSE,FALSE,0,0,0,"XOR"},72  {IS_2_ARG,1,IST_NULL,TRUE,FALSE,0,0,0,"ADD"},73  {IS_2_ARG,1,IST_NULL,TRUE,FALSE,0,0,0,"SUB"},74  {IS_1_ARG,1,IST_ASSIGN,FALSE,FALSE,0,0,0,"ADD_CONST"},75  {IS_1_ARG,1,IST_ASSIGN,FALSE,FALSE,0,0,0,"SUB_CONST"},76  {IS_2_ARG,1,IST_CMP,FALSE,FALSE,0,0,0,"EQU_EQU"},77  {IS_2_ARG,1,IST_CMP,FALSE,FALSE,0,0,0,"NOT_EQU"},78  {IS_2_ARG,1,IST_CMP,FALSE,FALSE,0,0,0,"LESS"},79  {IS_2_ARG,1,IST_CMP,FALSE,FALSE,0,0,0,"GREATER_EQU"},80  {IS_2_ARG,1,IST_CMP,FALSE,FALSE,0,0,0,"GREATER"},81  {IS_2_ARG,1,IST_CMP,FALSE,FALSE,0,0,0,"LESS_EQU"},82  {IS_0_ARG,1,IST_NULL,FALSE,FALSE,0,0,0,"PUSH_CMP"},83  {IS_2_ARG,1,IST_NULL,FALSE,FALSE,0,0,0,"AND_AND"},84  {IS_2_ARG,1,IST_NULL,FALSE,FALSE,0,0,0,"OR_OR"},85  {IS_2_ARG,1,IST_NULL,FALSE,FALSE,0,0,0,"XOR_XOR"},86  {IS_2_ARG,1,IST_ASSIGN,FALSE,TRUE,0,0,0,"ASSIGN"},87  {IS_2_ARG,1,IST_ASSIGN,FALSE,TRUE,0,0,0,"ASSIGN_PP"},88  {IS_2_ARG,1,IST_ASSIGN,FALSE,TRUE,0,0,0,"ASSIGN_MM"},89  {IS_2_ARG,1,IST_ASSIGN,FALSE,TRUE,0,0,0,"SHL_EQU"},90  {IS_2_ARG,1,IST_ASSIGN,FALSE,TRUE,0,0,0,"SHR_EQU"},91  {IS_2_ARG,1,IST_ASSIGN,FALSE,TRUE,0,0,0,"MUL_EQU"},92  {IS_2_ARG,1,IST_ASSIGN,FALSE,TRUE,0,0,0,"DIV_EQU"},93  {IS_2_ARG,1,IST_ASSIGN,FALSE,TRUE,0,0,0,"MOD_EQU"},94  {IS_2_ARG,1,IST_ASSIGN,FALSE,TRUE,0,0,0,"AND_EQU"},95  {IS_2_ARG,1,IST_ASSIGN,FALSE,TRUE,0,0,0,"OR_EQU"},96  {IS_2_ARG,1,IST_ASSIGN,FALSE,TRUE,0,0,0,"XOR_EQU"},97  {IS_2_ARG,1,IST_ASSIGN,FALSE,TRUE,0,0,0,"ADD_EQU"},98  {IS_2_ARG,1,IST_ASSIGN,FALSE,TRUE,0,0,0,"SUB_EQU"},99  {IS_0_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"JMP"},100  {IS_0_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"SUB_CALL"},101  {IS_2_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"SWITCH"},102  {IS_2_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"NOBOUND_SWITCH"},103  {IS_V_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"ADD_RSP"},104  {IS_V_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"ADD_RSP1"},105  {IS_0_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"ENTER"},106  {IS_0_ARG,0,IST_ASSIGN,FALSE,FALSE,0,0,0,"PUSH_REGS"},107  {IS_0_ARG,0,IST_ASSIGN,FALSE,FALSE,0,0,0,"POP_REGS"},108  {IS_0_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"LEAVE"},109  {IS_0_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"RET"},110  {IS_0_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"CALL"},111  {IS_0_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"CALL_INDIRECT"},112  {IS_0_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"CALL_INDIRECT2"},113  {IS_0_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"CALL_IMPORT"},114  {IS_0_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"CALL_EXTERN"},115  {IS_0_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"ASM"},116  {IS_1_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"PUSH"},117  {IS_0_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"POP"},118  {IS_1_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"CLFLUSH"},119  {IS_1_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"INVLPG"},120  {IS_1_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"IN_U8"},121  {IS_1_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"IN_U16"},122  {IS_1_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"IN_U32"},123  {IS_2_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"OUT_U8"},124  {IS_2_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"OUT_U16"},125  {IS_2_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"OUT_U32"},126  {IS_0_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"GET_RFLAGS"},127  {IS_0_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"CARRY"},128  {IS_1_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"SET_RFLAGS"},129  {IS_0_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"GET_RAX"},130  {IS_1_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"SET_RAX"},131  {IS_0_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"GET_RBP"},132  {IS_1_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"SET_RBP"},133  {IS_0_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"GET_RSP"},134  {IS_1_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"SET_RSP"},135  {IS_0_ARG,1,IST_NULL,FALSE,TRUE,0,0,0,"RIP"},136  {IS_0_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"RDTSC"},137  {IS_2_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"BT"},138  {IS_2_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"BTS"},139  {IS_2_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"BTR"},140  {IS_2_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"BTC"},141  {IS_2_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"LBTS"},142  {IS_2_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"LBTR"},143  {IS_2_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"LBTC"},144  {IS_1_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"BSF"},145  {IS_1_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"BSR"},146  {IS_1_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"QUE_INIT"},147  {IS_2_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"QUE_INS"},148  {IS_2_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"QUE_INS_REV"},149  {IS_1_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"QUE_REM"},150  {IS_1_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"STRLEN"},151  {IS_1_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"BR_ZERO"},152  {IS_1_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"BR_NOT_ZERO"},153  {IS_0_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"BR_CARRY"},154  {IS_0_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"BR_NOT_CARRY"},155  {IS_2_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"BR_EQU_EQU"},156  {IS_2_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"BR_NOT_EQU"},157  {IS_2_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"BR_LESS"},158  {IS_2_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"BR_GREATER_EQU"},159  {IS_2_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"BR_GREATER"},160  {IS_2_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"BR_LESS_EQU"},161  {IS_2_ARG,1,IST_NULL,FALSE,FALSE,0,0,0,"BR_2EQU_EQU"},162  {IS_2_ARG,1,IST_NULL,FALSE,FALSE,0,0,0,"BR_2NOT_EQU"},163  {IS_2_ARG,1,IST_NULL,FALSE,FALSE,0,0,0,"BR_2LESS"},164  {IS_2_ARG,1,IST_NULL,FALSE,FALSE,0,0,0,"BR_2GREATER_EQU"},165  {IS_2_ARG,1,IST_NULL,FALSE,FALSE,0,0,0,"BR_2GREATER"},166  {IS_2_ARG,1,IST_NULL,FALSE,FALSE,0,0,0,"BR_2LESS_EQU"},167  {IS_2_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"BR_AND_ZERO"},168  {IS_2_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"BR_AND_NOT_ZERO"},169  {IS_1_ARG,0,IST_DEREF,FALSE,TRUE,0,0,0,"BR_MM_ZERO"},170  {IS_1_ARG,0,IST_DEREF,FALSE,TRUE,0,0,0,"BR_MM_NOT_ZERO"},171  {IS_2_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"BR_AND_AND_ZERO"},172  {IS_2_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"BR_AND_AND_NOT_ZERO"},173  {IS_2_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"BR_OR_OR_ZERO"},174  {IS_2_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"BR_OR_OR_NOT_ZERO"},175  {IS_2_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"BR_BT"},176  {IS_2_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"BR_BTS"},177  {IS_2_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"BR_BTR"},178  {IS_2_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"BR_BTC"},179  {IS_2_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"BR_NOT_BT"},180  {IS_2_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"BR_NOT_BTS"},181  {IS_2_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"BR_NOT_BTR"},182  {IS_2_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"BR_NOT_BTC"},183  {IS_2_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"SWAP_U8"},184  {IS_2_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"SWAP_U16"},185  {IS_2_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"SWAP_U32"},186  {IS_2_ARG,0,IST_NULL,FALSE,TRUE,0,0,0,"SWAP_U64"},187  {IS_1_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"ABS_I64"},188  {IS_1_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"SIGN_I64"},189  {IS_2_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"I64_MIN"},190  {IS_2_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"U64_MIN"},191  {IS_2_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"I64_MAX"},192  {IS_2_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"U64_MAX"},193  {IS_2_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"MOD_U64"},194  {IS_1_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"SQRI64"},195  {IS_1_ARG,0,IST_NULL,FALSE,FALSE,0,0,0,"SQRU64"},196  {IS_1_ARG,1,IST_NULL,TRUE,FALSE,0,0,0,"SQR"},197  {IS_1_ARG,1,IST_NULL,TRUE,FALSE,0,0,0,"ABS"},198  {IS_1_ARG,1,IST_NULL,TRUE,FALSE,0,0,0,"SQRT"},199  {IS_1_ARG,1,IST_NULL,TRUE,FALSE,0,0,0,"SIN"},200  {IS_1_ARG,1,IST_NULL,TRUE,FALSE,0,0,0,"COS"},201  {IS_1_ARG,1,IST_NULL,TRUE,FALSE,0,0,0,"TAN"},202  {IS_1_ARG,1,IST_NULL,TRUE,FALSE,0,0,0,"ATAN"},203};204 205U0 CmpLoadDefines()206{207  DefineLstLoad("ST_RAW_TYPES",208        " \0 \0I0\0U0\0I8\0U8\0I16\0U16\0I32\0U32\0I64\0U64\0"209        "F32\0UF32\0F64\0UF64\0");210  DefineLstLoad("ST_NATURAL_TYPES",211        "I8\0U8\0I16\0U16\0I32\0U32\0I64\0U64\0F64\0String\0");212  DefineLstLoad("ST_INT_SIZE_TYPES",213        "I8\0U8\0I16\0U16\0I32\0U32\0I64\0U64\0");214  DefineLstLoad("ST_TY_TYPES","NULL\0STK\0IMM\0REG\0DISP\0SIB\0RIP\0");215  DefineLstLoad("ST_U8_REGS","AL\0CL\0DL\0BL\0AH\0CH\0DH\0BH\0"216        "R8u8\0R9u8\0R10u8\0R11u8\0R12u8\0R13u8\0R14u8\0R15u8\0");217  DefineLstLoad("ST_U8_REX_REGS","AL\0CL\0DL\0BL\0RSPu8\0RBPu8\0RSIu8\0RDIu8\0"218        "R8u8\0R9u8\0R10u8\0R11u8\0R12u8\0R13u8\0R14u8\0R15u8\0");219  DefineLstLoad("ST_U16_REGS","AX\0CX\0DX\0BX\0SP\0BP\0SI\0DI\0"220        "R8u16\0R9u16\0R10u16\0R11u16\0R12u16\0R13u16\0R14u16\0R15u16\0");221  DefineLstLoad("ST_U32_REGS","EAX\0ECX\0EDX\0EBX\0ESP\0EBP\0ESI\0EDI\0"222        "R8u32\0R9u32\0R10u32\0R11u32\0R12u32\0R13u32\0R14u32\0R15u32\0");223  DefineLstLoad("ST_U64_REGS","RAX\0RCX\0RDX\0RBX\0RSP\0RBP\0RSI\0RDI\0"224        "R8\0R9\0R10\0R11\0R12\0R13\0R14\0R15\0");225  DefineLstLoad("ST_MM_REGS","MM0\0MM1\0MM2\0MM3\0MM4\0MM5\0MM6\0MM7\0");226  DefineLstLoad("ST_XMM_REGS",227        "XMM0\0XMM1\0XMM2\0XMM3\0XMM4\0XMM5\0XMM6\0XMM7\0");228  DefineLstLoad("ST_ARG_TYPES","NONE\0REL8\0REL16\0REL32\0"229        "IMM8\0IMM16\0IMM32\0IMM64\0UIMM8\0UIMM16\0UIMM32\0UIMM64\0"230        "R8\0R16\0R32\0R64\0RM8\0RM16\0RM32\0RM64\0"231        "M8\0M16\0M32\0M64\0M1632\0M16N32\0M16N16\0M32N32\0"232        "MOFFS8\0MOFFS16\0MOFFS32\0MOFFS64\0"233        "AL\0AX\0EAX\0RAX\0CL\0DX\0 \0SREG\0"234        "SS\0DS\0ES\0FS\0GS\0CS\0ST0\0STI\0"235        "MM\0MM32\0MM64\0XMM\0XMM32\0XMM64\0XMM128\0XMM0\0");236  DefineLstLoad("ST_SEG_REGS","ES\0CS\0SS\0DS\0FS\0GS\0");237  DefineLstLoad("ST_FSTK_REGS","ST0\0ST1\0ST2\0ST3\0ST4\0ST5\0ST6\0ST7\0");238}239 240U0 CmpFillTables()241{242  I64 i;243  U32 *d;244 245  cmp.to_reg_vars_map=CAlloc(REG_REGS_NUM*sizeof(U8));246  cmp.num_reg_vars=0;247  cmp.reg_vars_mask=REGG_LOCAL_VARS;248  for (i=0;i<REG_REGS_NUM;i++)249    if (Bt(&cmp.reg_vars_mask,i))250      cmp.to_reg_vars_map[cmp.num_reg_vars++]=i;251 252  cmp.non_ptr_vars_map=CAlloc(REG_REGS_NUM*sizeof(U8));253  cmp.num_non_ptr_vars=0;254  cmp.non_ptr_vars_mask=REGG_LOCAL_NON_PTR_VARS;255  for (i=0;i<REG_REGS_NUM;i++)256    if (Bt(&cmp.non_ptr_vars_mask,i))257      cmp.non_ptr_vars_map[cmp.num_non_ptr_vars++]=i;258 259  cmp.dual_U16_tokens1=d=CAlloc(sizeof(U32)*TK_TKS_NUM);260  d['!']=TK_NOT_EQU<<16+'=';261  d['&']=TK_AND_AND<<16+'&';262  d['*']=TK_MUL_EQU<<16+'=';263  d['+']=TK_PLUS_PLUS<<16+'+';264  d['-']=TK_DEREFERENCE<<16+'>';265  d['/']='*';266  d[':']=TK_DBL_COLON<<16+':';267  d['<']=TK_LESS_EQU<<16+'=';268  d['=']=TK_EQU_EQU<<16+'=';269  d['>']=TK_GREATER_EQU<<16+'=';270  d['^']=TK_XOR_EQU<<16+'=';271  d['|']=TK_OR_OR<<16+'|';272  d['%']=TK_MOD_EQU<<16+'=';273 274  cmp.dual_U16_tokens2=d=CAlloc(sizeof(U32)*TK_TKS_NUM);275  d['&']=TK_AND_EQU<<16+'=';276  d['+']=TK_ADD_EQU<<16+'=';277  d['-']=TK_MINUS_MINUS<<16+'-';278  d['/']='/';279  d['<']=TK_SHL<<16+'<';280  d['>']=TK_SHR<<16+'>';281  d['^']=TK_XOR_XOR<<16+'^';282  d['|']=TK_OR_EQU<<16+'=';283 284  cmp.dual_U16_tokens3=d=CAlloc(sizeof(U32)*TK_TKS_NUM);285  d['-']=TK_SUB_EQU<<16+'=';286  d['/']=TK_DIV_EQU<<16+'=';287 288  cmp.binary_ops=d=CAlloc(sizeof(U32)*TK_TKS_NUM);289  d['`']   =(PREC_EXP+ASSOCF_RIGHT)<<16+IC_POWER;290  d[TK_SHL]=(PREC_EXP+ASSOCF_LEFT)<<16+IC_SHL;291  d[TK_SHR]=(PREC_EXP+ASSOCF_LEFT)<<16+IC_SHR;292 293  d['*']=PREC_MUL<<16+IC_MUL;294  d['/']=(PREC_MUL+ASSOCF_LEFT)<<16+IC_DIV;295  d['%']=(PREC_MUL+ASSOCF_LEFT)<<16+IC_MOD;296 297  d['&']=PREC_AND<<16+IC_AND;298 299  d['^']=PREC_XOR<<16+IC_XOR;300 301  d['|']=PREC_OR<<16+IC_OR;302 303  d['+']=PREC_ADD<<16+IC_ADD;304  d['-']=(PREC_ADD+ASSOCF_LEFT)<<16+IC_SUB;305 306  d['<']                =PREC_CMP<<16+IC_LESS;307  d['>']                =PREC_CMP<<16+IC_GREATER;308  d[TK_LESS_EQU]        =PREC_CMP<<16+IC_LESS_EQU;309  d[TK_GREATER_EQU]     =PREC_CMP<<16+IC_GREATER_EQU;310 311  d[TK_EQU_EQU] =PREC_CMP2<<16+IC_EQU_EQU;312  d[TK_NOT_EQU] =PREC_CMP2<<16+IC_NOT_EQU;313 314  d[TK_AND_AND] =PREC_AND_AND<<16+IC_AND_AND;315 316  d[TK_XOR_XOR] =PREC_XOR_XOR<<16+IC_XOR_XOR;317 318  d[TK_OR_OR]   =PREC_OR_OR<<16+IC_OR_OR;319 320  d['=']         =(PREC_ASSIGN+ASSOCF_RIGHT)<<16+IC_ASSIGN;321  d[TK_SHL_EQU]=(PREC_ASSIGN+ASSOCF_RIGHT)<<16+IC_SHL_EQU;322  d[TK_SHR_EQU]=(PREC_ASSIGN+ASSOCF_RIGHT)<<16+IC_SHR_EQU;323  d[TK_MUL_EQU]=(PREC_ASSIGN+ASSOCF_RIGHT)<<16+IC_MUL_EQU;324  d[TK_DIV_EQU]=(PREC_ASSIGN+ASSOCF_RIGHT)<<16+IC_DIV_EQU;325  d[TK_MOD_EQU]=(PREC_ASSIGN+ASSOCF_RIGHT)<<16+IC_MOD_EQU;326  d[TK_AND_EQU]=(PREC_ASSIGN+ASSOCF_RIGHT)<<16+IC_AND_EQU;327  d[TK_OR_EQU] =(PREC_ASSIGN+ASSOCF_RIGHT)<<16+IC_OR_EQU;328  d[TK_XOR_EQU]=(PREC_ASSIGN+ASSOCF_RIGHT)<<16+IC_XOR_EQU;329  d[TK_ADD_EQU]=(PREC_ASSIGN+ASSOCF_RIGHT)<<16+IC_ADD_EQU;330  d[TK_SUB_EQU]=(PREC_ASSIGN+ASSOCF_RIGHT)<<16+IC_SUB_EQU;331}332