Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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);
            }
        }