public static Flags Parse(string str, bool strIsCapitals) { Contract.Requires(str != null); switch (AsmSourceTools.ToCapitals(str, strIsCapitals)) { case "CF": return(Flags.CF); case "PF": return(Flags.PF); case "AF": return(Flags.AF); case "ZF": return(Flags.ZF); case "SF": return(Flags.SF); case "OF": return(Flags.OF); case "DF": return(Flags.DF); default: return(Flags.NONE); } }
public static Arch ParseArch(string str, bool strIsCapitals, bool warn) { Contract.Requires(str != null); string str2 = AsmSourceTools.ToCapitals(str, strIsCapitals).Replace("_", string.Empty); switch (str2) { case "NONE": return(Arch.ARCH_NONE); case "8086": return(Arch.ARCH_8086); case "186": return(Arch.ARCH_186); case "286": return(Arch.ARCH_286); case "386": return(Arch.ARCH_386); case "486": return(Arch.ARCH_486); case "PENT": return(Arch.ARCH_PENT); case "P6": return(Arch.ARCH_P6); case "MMX": return(Arch.ARCH_MMX); case "SSE": return(Arch.ARCH_SSE); case "SSE2": return(Arch.ARCH_SSE2); case "SSE3": return(Arch.ARCH_SSE3); case "SSSE3": return(Arch.ARCH_SSSE3); case "SSE41": return(Arch.ARCH_SSE4_1); case "SSE42": return(Arch.ARCH_SSE4_2); case "SSE4A": return(Arch.ARCH_SSE4A); case "SSE5": return(Arch.ARCH_SSE5); case "AVX": return(Arch.ARCH_AVX); case "AVX2": return(Arch.ARCH_AVX2); case "AVX512VL": return(Arch.ARCH_AVX512_VL); case "AVX512DQ": return(Arch.ARCH_AVX512_DQ); case "AVX512BW": return(Arch.ARCH_AVX512_BW); case "AVX512ER": return(Arch.ARCH_AVX512_ER); case "AVX512F": return(Arch.ARCH_AVX512_F); case "AVX512CD": return(Arch.ARCH_AVX512_CD); case "AVX512PF": return(Arch.ARCH_AVX512_PF); case "AVX512IFMA": return(Arch.ARCH_AVX512_IFMA); case "AVX512VBMI": return(Arch.ARCH_AVX512_VBMI); case "AVX512VPOPCNTDQ": return(Arch.ARCH_AVX512_VPOPCNTDQ); case "AVX5124VNNIW": return(Arch.ARCH_AVX512_4VNNIW); case "AVX5124FMAPS": return(Arch.ARCH_AVX512_4FMAPS); case "VBMI2": case "AVX512VBMI2": return(Arch.ARCH_AVX512_VBMI2); case "VNNI": case "AVX512VNNI": return(Arch.ARCH_AVX512_VNNI); case "BITALG": case "AVX512BITALG": return(Arch.ARCH_AVX512_BITALG); case "GFNI": case "AVX512GFNI": return(Arch.ARCH_AVX512_GFNI); case "VAES": case "AVX512VAES": return(Arch.ARCH_AVX512_VAES); case "VPCLMULQDQ": case "AVX512VPCLMULQDQ": return(Arch.ARCH_AVX512_VPCLMULQDQ); case "AVX512BF16": return(Arch.ARCH_AVX512_BF16); case "AVX512VP2INTERSECT": return(Arch.ARCH_AVX512_VP2INTERSECT); case "HLE": return(Arch.ARCH_HLE); case "BMI1": return(Arch.ARCH_BMI1); case "BMI2": return(Arch.ARCH_BMI2); case "FMA": return(Arch.ARCH_FMA); case "AES": return(Arch.ARCH_AES); case "TBM": return(Arch.ARCH_TBM); case "AMD": return(Arch.ARCH_AMD); case "3DNOW": return(Arch.ARCH_3DNOW); case "IA64": return(Arch.ARCH_IA64); case "CYRIX": return(Arch.ARCH_CYRIX); case "CYRIXM": return(Arch.ARCH_CYRIXM); case "INVPCID": return(Arch.ARCH_INVPCID); case "VMX": return(Arch.ARCH_VMX); case "ADX": return(Arch.ARCH_ADX); case "X64": return(Arch.ARCH_X64); case "PCLMULQDQ": return(Arch.ARCH_PCLMULQDQ); case "RDPID": return(Arch.ARCH_RDPID); case "RDRAND": return(Arch.ARCH_RDRAND); case "RDSEED": return(Arch.ARCH_RDSEED); case "XSAVEOPT": return(Arch.ARCH_XSAVEOPT); case "XSS": return(Arch.ARCH_XSAVEOPT); case "XSAVE": return(Arch.ARCH_XSAVEOPT); case "XSAVEC": return(Arch.ARCH_XSAVEOPT); case "FSGSBASE": return(Arch.ARCH_FSGSBASE); case "LZCNT": return(Arch.ARCH_LZCNT); case "F16C": return(Arch.ARCH_F16C); case "MPX": return(Arch.ARCH_MPX); case "SHA": return(Arch.ARCH_SHA); case "RTM": return(Arch.ARCH_RTM); case "PREFETCHWT1": return(Arch.ARCH_PREFETCHWT1); case "PRFCHW": return(Arch.ARCH_PRFCHW); case "SGX1": return(Arch.ARCH_SGX1); case "SGX2": return(Arch.ARCH_SGX2); case "SMX": return(Arch.ARCH_SMX); case "CLDEMOTE": return(Arch.ARCH_CLDEMOTE); case "MOVDIR64B": return(Arch.ARCH_MOVDIR64B); case "MOVDIRI": return(Arch.ARCH_MOVDIRI); case "PCONFIG": return(Arch.ARCH_PCONFIG); case "WAITPKG": return(Arch.ARCH_WAITPKG); case "ENQCMD": return(Arch.ARCH_ENQCMD); case "UNDOC": return(Arch.ARCH_UNDOC); default: if (warn) { Console.WriteLine("WARNING: parseArch: no arch for str " + str); } return(Arch.ARCH_NONE); } }