diff options
Diffstat (limited to 'opcodes/i386-gen.c')
-rw-r--r-- | opcodes/i386-gen.c | 695 |
1 files changed, 349 insertions, 346 deletions
diff --git a/opcodes/i386-gen.c b/opcodes/i386-gen.c index 101f686..f616318 100644 --- a/opcodes/i386-gen.c +++ b/opcodes/i386-gen.c @@ -46,435 +46,435 @@ typedef struct initializer static initializer cpu_flag_init[] = { { "CPU_UNKNOWN_FLAGS", - "~CpuIAMCU" }, + "~IAMCU" }, { "CPU_GENERIC32_FLAGS", - "Cpu186|Cpu286|Cpu386" }, + "186|286|386" }, { "CPU_GENERIC64_FLAGS", - "CPU_PENTIUMPRO_FLAGS|CpuClflush|CpuSYSCALL|CPU_MMX_FLAGS|CPU_SSE2_FLAGS|CpuLM" }, + "CPU_PENTIUMPRO_FLAGS|Clflush|SYSCALL|CPU_MMX_FLAGS|CPU_SSE2_FLAGS|LM" }, { "CPU_NONE_FLAGS", "0" }, { "CPU_I186_FLAGS", - "Cpu186" }, + "186" }, { "CPU_I286_FLAGS", - "CPU_I186_FLAGS|Cpu286" }, + "CPU_I186_FLAGS|286" }, { "CPU_I386_FLAGS", - "CPU_I286_FLAGS|Cpu386" }, + "CPU_I286_FLAGS|386" }, { "CPU_I486_FLAGS", - "CPU_I386_FLAGS|Cpu486" }, + "CPU_I386_FLAGS|486" }, { "CPU_I586_FLAGS", - "CPU_I486_FLAGS|Cpu387|Cpu586" }, + "CPU_I486_FLAGS|387|586" }, { "CPU_I686_FLAGS", - "CPU_I586_FLAGS|Cpu686|Cpu687|CpuCMOV|CpuFXSR" }, + "CPU_I586_FLAGS|686|687|CMOV|FXSR" }, { "CPU_PENTIUMPRO_FLAGS", - "CPU_I686_FLAGS|CpuNop" }, + "CPU_I686_FLAGS|Nop" }, { "CPU_P2_FLAGS", "CPU_PENTIUMPRO_FLAGS|CPU_MMX_FLAGS" }, { "CPU_P3_FLAGS", "CPU_P2_FLAGS|CPU_SSE_FLAGS" }, { "CPU_P4_FLAGS", - "CPU_P3_FLAGS|CpuClflush|CPU_SSE2_FLAGS" }, + "CPU_P3_FLAGS|Clflush|CPU_SSE2_FLAGS" }, { "CPU_NOCONA_FLAGS", - "CPU_GENERIC64_FLAGS|CpuFISTTP|CPU_SSE3_FLAGS|CpuCX16" }, + "CPU_GENERIC64_FLAGS|FISTTP|CPU_SSE3_FLAGS|CX16" }, { "CPU_CORE_FLAGS", - "CPU_P4_FLAGS|CpuFISTTP|CPU_SSE3_FLAGS|CpuCX16" }, + "CPU_P4_FLAGS|FISTTP|CPU_SSE3_FLAGS|CX16" }, { "CPU_CORE2_FLAGS", "CPU_NOCONA_FLAGS|CPU_SSSE3_FLAGS" }, { "CPU_COREI7_FLAGS", - "CPU_CORE2_FLAGS|CPU_SSE4_2_FLAGS|CpuRdtscp" }, + "CPU_CORE2_FLAGS|CPU_SSE4_2_FLAGS|Rdtscp" }, { "CPU_K6_FLAGS", - "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|CpuSYSCALL|Cpu387|CPU_MMX_FLAGS" }, + "186|286|386|486|586|SYSCALL|387|CPU_MMX_FLAGS" }, { "CPU_K6_2_FLAGS", - "CPU_K6_FLAGS|Cpu3dnow" }, + "CPU_K6_FLAGS|3dnow" }, { "CPU_ATHLON_FLAGS", - "CPU_K6_2_FLAGS|Cpu686|Cpu687|CpuNop|Cpu3dnowA" }, + "CPU_K6_2_FLAGS|686|687|Nop|3dnowA" }, { "CPU_K8_FLAGS", - "CPU_ATHLON_FLAGS|CpuRdtscp|CPU_SSE2_FLAGS|CpuLM" }, + "CPU_ATHLON_FLAGS|Rdtscp|CPU_SSE2_FLAGS|LM" }, { "CPU_AMDFAM10_FLAGS", - "CPU_K8_FLAGS|CpuFISTTP|CPU_SSE4A_FLAGS|CpuLZCNT|CpuPOPCNT" }, + "CPU_K8_FLAGS|FISTTP|CPU_SSE4A_FLAGS|LZCNT|POPCNT" }, { "CPU_BDVER1_FLAGS", - "CPU_GENERIC64_FLAGS|CpuFISTTP|CpuRdtscp|CpuCX16|CPU_XOP_FLAGS|CpuLZCNT|CpuPOPCNT|CpuLWP|CpuSVME|CpuAES|CpuPCLMUL|CpuPRFCHW" }, + "CPU_GENERIC64_FLAGS|FISTTP|Rdtscp|CX16|CPU_XOP_FLAGS|LZCNT|POPCNT|LWP|SVME|AES|PCLMUL|PRFCHW" }, { "CPU_BDVER2_FLAGS", - "CPU_BDVER1_FLAGS|CpuFMA|CpuBMI|CpuTBM|CpuF16C" }, + "CPU_BDVER1_FLAGS|FMA|BMI|TBM|F16C" }, { "CPU_BDVER3_FLAGS", - "CPU_BDVER2_FLAGS|CpuXsaveopt|CpuFSGSBase" }, + "CPU_BDVER2_FLAGS|Xsaveopt|FSGSBase" }, { "CPU_BDVER4_FLAGS", - "CPU_BDVER3_FLAGS|CpuAVX2|CpuMovbe|CpuBMI2|CpuRdRnd|CpuMWAITX" }, + "CPU_BDVER3_FLAGS|AVX2|Movbe|BMI2|RdRnd|MWAITX" }, { "CPU_ZNVER1_FLAGS", - "CPU_GENERIC64_FLAGS|CpuFISTTP|CpuRdtscp|CpuCX16|CPU_AVX2_FLAGS|CpuSSE4A|CpuLZCNT|CpuPOPCNT|CpuSVME|CpuAES|CpuPCLMUL|CpuPRFCHW|CpuFMA|CpuBMI|CpuF16C|CpuXsaveopt|CpuFSGSBase|CpuMovbe|CpuBMI2|CpuRdRnd|CpuADX|CpuRdSeed|CpuSMAP|CpuSHA|CpuXSAVEC|CpuXSAVES|CpuClflushOpt|CpuCLZERO|CpuMWAITX" }, + "CPU_GENERIC64_FLAGS|FISTTP|Rdtscp|CX16|CPU_AVX2_FLAGS|SSE4A|LZCNT|POPCNT|SVME|AES|PCLMUL|PRFCHW|FMA|BMI|F16C|Xsaveopt|FSGSBase|Movbe|BMI2|RdRnd|ADX|RdSeed|SMAP|SHA|XSAVEC|XSAVES|ClflushOpt|CLZERO|MWAITX" }, { "CPU_ZNVER2_FLAGS", - "CPU_ZNVER1_FLAGS|CpuCLWB|CpuRDPID|CpuRDPRU|CpuMCOMMIT|CpuWBNOINVD" }, + "CPU_ZNVER1_FLAGS|CLWB|RDPID|RDPRU|MCOMMIT|WBNOINVD" }, { "CPU_ZNVER3_FLAGS", - "CPU_ZNVER2_FLAGS|CpuINVLPGB|CpuTLBSYNC|CpuVAES|CpuVPCLMULQDQ|CpuINVPCID|CpuSNP|CpuOSPKE" }, + "CPU_ZNVER2_FLAGS|INVLPGB|TLBSYNC|VAES|VPCLMULQDQ|INVPCID|SNP|OSPKE" }, { "CPU_ZNVER4_FLAGS", - "CPU_ZNVER3_FLAGS|CpuAVX512F|CpuAVX512DQ|CpuAVX512IFMA|CpuAVX512CD|CpuAVX512BW|CpuAVX512VL|CpuAVX512_BF16|CpuAVX512VBMI|CpuAVX512_VBMI2|CpuAVX512_VNNI|CpuAVX512_BITALG|CpuAVX512_VPOPCNTDQ|CpuGFNI|CpuRMPQUERY" }, + "CPU_ZNVER3_FLAGS|AVX512F|AVX512DQ|AVX512IFMA|AVX512CD|AVX512BW|AVX512VL|AVX512_BF16|AVX512VBMI|AVX512_VBMI2|AVX512_VNNI|AVX512_BITALG|AVX512_VPOPCNTDQ|GFNI|RMPQUERY" }, { "CPU_BTVER1_FLAGS", - "CPU_GENERIC64_FLAGS|CpuFISTTP|CpuCX16|CpuRdtscp|CPU_SSSE3_FLAGS|CpuSSE4A|CpuLZCNT|CpuPOPCNT|CpuPRFCHW|CpuCX16|CpuClflush|CpuFISTTP|CpuSVME" }, + "CPU_GENERIC64_FLAGS|FISTTP|CX16|Rdtscp|CPU_SSSE3_FLAGS|SSE4A|LZCNT|POPCNT|PRFCHW|CX16|Clflush|FISTTP|SVME" }, { "CPU_BTVER2_FLAGS", - "CPU_BTVER1_FLAGS|CPU_AVX_FLAGS|CpuBMI|CpuF16C|CpuAES|CpuPCLMUL|CpuMovbe|CpuXsaveopt|CpuPRFCHW" }, + "CPU_BTVER1_FLAGS|CPU_AVX_FLAGS|BMI|F16C|AES|PCLMUL|Movbe|Xsaveopt|PRFCHW" }, { "CPU_8087_FLAGS", - "Cpu8087" }, + "8087" }, { "CPU_287_FLAGS", - "Cpu287" }, + "287" }, { "CPU_387_FLAGS", - "Cpu387" }, + "387" }, { "CPU_687_FLAGS", - "CPU_387_FLAGS|Cpu687" }, + "CPU_387_FLAGS|687" }, { "CPU_CMOV_FLAGS", - "CpuCMOV" }, + "CMOV" }, { "CPU_FXSR_FLAGS", - "CpuFXSR" }, + "FXSR" }, { "CPU_CLFLUSH_FLAGS", - "CpuClflush" }, + "Clflush" }, { "CPU_NOP_FLAGS", - "CpuNop" }, + "Nop" }, { "CPU_SYSCALL_FLAGS", - "CpuSYSCALL" }, + "SYSCALL" }, { "CPU_MMX_FLAGS", - "CpuMMX" }, + "MMX" }, { "CPU_SSE_FLAGS", - "CpuSSE" }, + "SSE" }, { "CPU_SSE2_FLAGS", - "CPU_SSE_FLAGS|CpuSSE2" }, + "CPU_SSE_FLAGS|SSE2" }, { "CPU_SSE3_FLAGS", - "CPU_SSE2_FLAGS|CpuSSE3" }, + "CPU_SSE2_FLAGS|SSE3" }, { "CPU_SSSE3_FLAGS", - "CPU_SSE3_FLAGS|CpuSSSE3" }, + "CPU_SSE3_FLAGS|SSSE3" }, { "CPU_SSE4_1_FLAGS", - "CPU_SSSE3_FLAGS|CpuSSE4_1" }, + "CPU_SSSE3_FLAGS|SSE4_1" }, { "CPU_SSE4_2_FLAGS", - "CPU_SSE4_1_FLAGS|CpuSSE4_2|CpuPOPCNT" }, + "CPU_SSE4_1_FLAGS|SSE4_2|POPCNT" }, { "CPU_VMX_FLAGS", - "CpuVMX" }, + "VMX" }, { "CPU_SMX_FLAGS", - "CpuSMX" }, + "SMX" }, { "CPU_XSAVE_FLAGS", - "CpuXsave" }, + "Xsave" }, { "CPU_XSAVEOPT_FLAGS", - "CPU_XSAVE_FLAGS|CpuXsaveopt" }, + "CPU_XSAVE_FLAGS|Xsaveopt" }, { "CPU_AES_FLAGS", - "CPU_SSE2_FLAGS|CpuAES" }, + "CPU_SSE2_FLAGS|AES" }, { "CPU_PCLMUL_FLAGS", - "CPU_SSE2_FLAGS|CpuPCLMUL" }, + "CPU_SSE2_FLAGS|PCLMUL" }, { "CPU_FMA_FLAGS", - "CPU_AVX_FLAGS|CpuFMA" }, + "CPU_AVX_FLAGS|FMA" }, { "CPU_FMA4_FLAGS", - "CPU_AVX_FLAGS|CpuFMA4" }, + "CPU_AVX_FLAGS|FMA4" }, { "CPU_XOP_FLAGS", - "CPU_SSE4A_FLAGS|CPU_FMA4_FLAGS|CpuXOP" }, + "CPU_SSE4A_FLAGS|CPU_FMA4_FLAGS|XOP" }, { "CPU_LWP_FLAGS", - "CPU_XSAVE_FLAGS|CpuLWP" }, + "CPU_XSAVE_FLAGS|LWP" }, { "CPU_BMI_FLAGS", - "CpuBMI" }, + "BMI" }, { "CPU_TBM_FLAGS", - "CpuTBM" }, + "TBM" }, { "CPU_MOVBE_FLAGS", - "CpuMovbe" }, + "Movbe" }, { "CPU_CX16_FLAGS", - "CpuCX16" }, + "CX16" }, { "CPU_RDTSCP_FLAGS", - "CpuRdtscp" }, + "Rdtscp" }, { "CPU_EPT_FLAGS", - "CpuEPT" }, + "EPT" }, { "CPU_FSGSBASE_FLAGS", - "CpuFSGSBase" }, + "FSGSBase" }, { "CPU_RDRND_FLAGS", - "CpuRdRnd" }, + "RdRnd" }, { "CPU_F16C_FLAGS", - "CPU_AVX_FLAGS|CpuF16C" }, + "CPU_AVX_FLAGS|F16C" }, { "CPU_BMI2_FLAGS", - "CpuBMI2" }, + "BMI2" }, { "CPU_LZCNT_FLAGS", - "CpuLZCNT" }, + "LZCNT" }, { "CPU_POPCNT_FLAGS", - "CpuPOPCNT" }, + "POPCNT" }, { "CPU_HLE_FLAGS", - "CpuHLE" }, + "HLE" }, { "CPU_RTM_FLAGS", - "CpuRTM" }, + "RTM" }, { "CPU_INVPCID_FLAGS", - "CpuINVPCID" }, + "INVPCID" }, { "CPU_VMFUNC_FLAGS", - "CpuVMFUNC" }, + "VMFUNC" }, { "CPU_3DNOW_FLAGS", - "CPU_MMX_FLAGS|Cpu3dnow" }, + "CPU_MMX_FLAGS|3dnow" }, { "CPU_3DNOWA_FLAGS", - "CPU_3DNOW_FLAGS|Cpu3dnowA" }, + "CPU_3DNOW_FLAGS|3dnowA" }, { "CPU_PADLOCK_FLAGS", - "CpuPadLock" }, + "PadLock" }, { "CPU_SVME_FLAGS", - "CpuSVME" }, + "SVME" }, { "CPU_SSE4A_FLAGS", - "CPU_SSE3_FLAGS|CpuSSE4a" }, + "CPU_SSE3_FLAGS|SSE4a" }, { "CPU_ABM_FLAGS", - "CpuLZCNT|CpuPOPCNT" }, + "LZCNT|POPCNT" }, { "CPU_AVX_FLAGS", - "CPU_SSE4_2_FLAGS|CPU_XSAVE_FLAGS|CpuAVX" }, + "CPU_SSE4_2_FLAGS|CPU_XSAVE_FLAGS|AVX" }, { "CPU_AVX2_FLAGS", - "CPU_AVX_FLAGS|CpuAVX2" }, + "CPU_AVX_FLAGS|AVX2" }, { "CPU_AVX_VNNI_FLAGS", - "CPU_AVX2_FLAGS|CpuAVX_VNNI" }, + "CPU_AVX2_FLAGS|AVX_VNNI" }, { "CPU_AVX512F_FLAGS", - "CPU_AVX2_FLAGS|CpuAVX512F" }, + "CPU_AVX2_FLAGS|AVX512F" }, { "CPU_AVX512CD_FLAGS", - "CPU_AVX512F_FLAGS|CpuAVX512CD" }, + "CPU_AVX512F_FLAGS|AVX512CD" }, { "CPU_AVX512ER_FLAGS", - "CPU_AVX512F_FLAGS|CpuAVX512ER" }, + "CPU_AVX512F_FLAGS|AVX512ER" }, { "CPU_AVX512PF_FLAGS", - "CPU_AVX512F_FLAGS|CpuAVX512PF" }, + "CPU_AVX512F_FLAGS|AVX512PF" }, { "CPU_AVX512DQ_FLAGS", - "CPU_AVX512F_FLAGS|CpuAVX512DQ" }, + "CPU_AVX512F_FLAGS|AVX512DQ" }, { "CPU_AVX512BW_FLAGS", - "CPU_AVX512F_FLAGS|CpuAVX512BW" }, + "CPU_AVX512F_FLAGS|AVX512BW" }, { "CPU_AVX512VL_FLAGS", - "CPU_AVX512F_FLAGS|CpuAVX512VL" }, + "CPU_AVX512F_FLAGS|AVX512VL" }, { "CPU_AVX512IFMA_FLAGS", - "CPU_AVX512F_FLAGS|CpuAVX512IFMA" }, + "CPU_AVX512F_FLAGS|AVX512IFMA" }, { "CPU_AVX512VBMI_FLAGS", - "CPU_AVX512F_FLAGS|CpuAVX512VBMI" }, + "CPU_AVX512F_FLAGS|AVX512VBMI" }, { "CPU_AVX512_4FMAPS_FLAGS", - "CPU_AVX512F_FLAGS|CpuAVX512_4FMAPS" }, + "CPU_AVX512F_FLAGS|AVX512_4FMAPS" }, { "CPU_AVX512_4VNNIW_FLAGS", - "CPU_AVX512F_FLAGS|CpuAVX512_4VNNIW" }, + "CPU_AVX512F_FLAGS|AVX512_4VNNIW" }, { "CPU_AVX512_VPOPCNTDQ_FLAGS", - "CPU_AVX512F_FLAGS|CpuAVX512_VPOPCNTDQ" }, + "CPU_AVX512F_FLAGS|AVX512_VPOPCNTDQ" }, { "CPU_AVX512_VBMI2_FLAGS", - "CPU_AVX512F_FLAGS|CpuAVX512_VBMI2" }, + "CPU_AVX512F_FLAGS|AVX512_VBMI2" }, { "CPU_AVX512_VNNI_FLAGS", - "CPU_AVX512F_FLAGS|CpuAVX512_VNNI" }, + "CPU_AVX512F_FLAGS|AVX512_VNNI" }, { "CPU_AVX512_BITALG_FLAGS", - "CPU_AVX512F_FLAGS|CpuAVX512_BITALG" }, + "CPU_AVX512F_FLAGS|AVX512_BITALG" }, { "CPU_AVX512_BF16_FLAGS", - "CPU_AVX512F_FLAGS|CpuAVX512_BF16" }, + "CPU_AVX512F_FLAGS|AVX512_BF16" }, { "CPU_AVX512_FP16_FLAGS", - "CPU_AVX512BW_FLAGS|CpuAVX512_FP16" }, + "CPU_AVX512BW_FLAGS|AVX512_FP16" }, { "CPU_PREFETCHI_FLAGS", - "CpuPREFETCHI"}, + "PREFETCHI"}, { "CPU_AVX_IFMA_FLAGS", - "CPU_AVX2_FLAGS|CpuAVX_IFMA" }, + "CPU_AVX2_FLAGS|AVX_IFMA" }, { "CPU_AVX_VNNI_INT8_FLAGS", - "CPU_AVX2_FLAGS|CpuAVX_VNNI_INT8" }, + "CPU_AVX2_FLAGS|AVX_VNNI_INT8" }, { "CPU_CMPCCXADD_FLAGS", - "CpuCMPCCXADD" }, + "CMPCCXADD" }, { "CPU_WRMSRNS_FLAGS", - "CpuWRMSRNS" }, + "WRMSRNS" }, { "CPU_MSRLIST_FLAGS", - "CpuMSRLIST" }, + "MSRLIST" }, { "CPU_AVX_NE_CONVERT_FLAGS", - "CPU_AVX2_FLAGS|CpuAVX_NE_CONVERT" }, + "CPU_AVX2_FLAGS|AVX_NE_CONVERT" }, { "CPU_RAO_INT_FLAGS", - "CpuRAO_INT" }, + "RAO_INT" }, { "CPU_IAMCU_FLAGS", - "Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|CpuIAMCU" }, + "186|286|386|486|586|IAMCU" }, { "CPU_ADX_FLAGS", - "CpuADX" }, + "ADX" }, { "CPU_RDSEED_FLAGS", - "CpuRdSeed" }, + "RdSeed" }, { "CPU_PRFCHW_FLAGS", - "CpuPRFCHW" }, + "PRFCHW" }, { "CPU_SMAP_FLAGS", - "CpuSMAP" }, + "SMAP" }, { "CPU_MPX_FLAGS", - "CPU_XSAVE_FLAGS|CpuMPX" }, + "CPU_XSAVE_FLAGS|MPX" }, { "CPU_SHA_FLAGS", - "CPU_SSE2_FLAGS|CpuSHA" }, + "CPU_SSE2_FLAGS|SHA" }, { "CPU_CLFLUSHOPT_FLAGS", - "CpuClflushOpt" }, + "ClflushOpt" }, { "CPU_XSAVES_FLAGS", - "CPU_XSAVE_FLAGS|CpuXSAVES" }, + "CPU_XSAVE_FLAGS|XSAVES" }, { "CPU_XSAVEC_FLAGS", - "CPU_XSAVE_FLAGS|CpuXSAVEC" }, + "CPU_XSAVE_FLAGS|XSAVEC" }, { "CPU_PREFETCHWT1_FLAGS", - "CpuPREFETCHWT1" }, + "PREFETCHWT1" }, { "CPU_SE1_FLAGS", - "CpuSE1" }, + "SE1" }, { "CPU_CLWB_FLAGS", - "CpuCLWB" }, + "CLWB" }, { "CPU_CLZERO_FLAGS", - "CpuCLZERO" }, + "CLZERO" }, { "CPU_MWAITX_FLAGS", - "CpuMWAITX" }, + "MWAITX" }, { "CPU_OSPKE_FLAGS", - "CPU_XSAVE_FLAGS|CpuOSPKE" }, + "CPU_XSAVE_FLAGS|OSPKE" }, { "CPU_RDPID_FLAGS", - "CpuRDPID" }, + "RDPID" }, { "CPU_PTWRITE_FLAGS", - "CpuPTWRITE" }, + "PTWRITE" }, { "CPU_IBT_FLAGS", - "CpuIBT" }, + "IBT" }, { "CPU_SHSTK_FLAGS", - "CpuSHSTK" }, + "SHSTK" }, { "CPU_GFNI_FLAGS", - "CpuGFNI" }, + "GFNI" }, { "CPU_VAES_FLAGS", - "CpuVAES" }, + "VAES" }, { "CPU_VPCLMULQDQ_FLAGS", - "CpuVPCLMULQDQ" }, + "VPCLMULQDQ" }, { "CPU_WBNOINVD_FLAGS", - "CpuWBNOINVD" }, + "WBNOINVD" }, { "CPU_PCONFIG_FLAGS", - "CpuPCONFIG" }, + "PCONFIG" }, { "CPU_WAITPKG_FLAGS", - "CpuWAITPKG" }, + "WAITPKG" }, { "CPU_UINTR_FLAGS", - "CpuUINTR" }, + "UINTR" }, { "CPU_CLDEMOTE_FLAGS", - "CpuCLDEMOTE" }, + "CLDEMOTE" }, { "CPU_AMX_INT8_FLAGS", - "CPU_AMX_TILE_FLAGS|CpuAMX_INT8" }, + "CPU_AMX_TILE_FLAGS|AMX_INT8" }, { "CPU_AMX_BF16_FLAGS", - "CPU_AMX_TILE_FLAGS|CpuAMX_BF16" }, + "CPU_AMX_TILE_FLAGS|AMX_BF16" }, { "CPU_AMX_FP16_FLAGS", - "CPU_AMX_TILE_FLAGS|CpuAMX_FP16" }, + "CPU_AMX_TILE_FLAGS|AMX_FP16" }, { "CPU_AMX_TILE_FLAGS", - "CpuAMX_TILE" }, + "AMX_TILE" }, { "CPU_MOVDIRI_FLAGS", - "CpuMOVDIRI" }, + "MOVDIRI" }, { "CPU_MOVDIR64B_FLAGS", - "CpuMOVDIR64B" }, + "MOVDIR64B" }, { "CPU_ENQCMD_FLAGS", - "CpuENQCMD" }, + "ENQCMD" }, { "CPU_SERIALIZE_FLAGS", - "CpuSERIALIZE" }, + "SERIALIZE" }, { "CPU_AVX512_VP2INTERSECT_FLAGS", - "CpuAVX512_VP2INTERSECT" }, + "AVX512_VP2INTERSECT" }, { "CPU_TDX_FLAGS", - "CpuTDX" }, + "TDX" }, { "CPU_RDPRU_FLAGS", - "CpuRDPRU" }, + "RDPRU" }, { "CPU_MCOMMIT_FLAGS", - "CpuMCOMMIT" }, + "MCOMMIT" }, { "CPU_SEV_ES_FLAGS", - "CpuSEV_ES" }, + "SEV_ES" }, { "CPU_TSXLDTRK_FLAGS", - "CpuTSXLDTRK"}, + "TSXLDTRK"}, { "CPU_KL_FLAGS", - "CpuKL" }, + "KL" }, { "CPU_WIDEKL_FLAGS", - "CpuWideKL" }, + "WideKL" }, { "CPU_HRESET_FLAGS", - "CpuHRESET"}, + "HRESET"}, { "CPU_INVLPGB_FLAGS", - "CpuINVLPGB" }, + "INVLPGB" }, { "CPU_TLBSYNC_FLAGS", - "CpuTLBSYNC" }, + "TLBSYNC" }, { "CPU_SNP_FLAGS", - "CpuSNP" }, + "SNP" }, { "CPU_RMPQUERY_FLAGS", - "CpuRMPQUERY" }, + "RMPQUERY" }, { "CPU_ANY_X87_FLAGS", - "CPU_ANY_287_FLAGS|Cpu8087" }, + "CPU_ANY_287_FLAGS|8087" }, { "CPU_ANY_287_FLAGS", - "CPU_ANY_387_FLAGS|Cpu287" }, + "CPU_ANY_387_FLAGS|287" }, { "CPU_ANY_387_FLAGS", - "CPU_ANY_687_FLAGS|Cpu387" }, + "CPU_ANY_687_FLAGS|387" }, { "CPU_ANY_687_FLAGS", - "Cpu687|CpuFISTTP" }, + "687|FISTTP" }, { "CPU_ANY_CMOV_FLAGS", - "CpuCMOV" }, + "CMOV" }, { "CPU_ANY_FXSR_FLAGS", - "CpuFXSR" }, + "FXSR" }, { "CPU_ANY_MMX_FLAGS", "CPU_3DNOWA_FLAGS" }, { "CPU_ANY_SSE_FLAGS", - "CPU_ANY_SSE2_FLAGS|CpuSSE" }, + "CPU_ANY_SSE2_FLAGS|SSE" }, { "CPU_ANY_SSE2_FLAGS", - "CPU_ANY_SSE3_FLAGS|CpuSSE2" }, + "CPU_ANY_SSE3_FLAGS|SSE2" }, { "CPU_ANY_SSE3_FLAGS", - "CPU_ANY_SSSE3_FLAGS|CpuSSE3|CpuSSE4a" }, + "CPU_ANY_SSSE3_FLAGS|SSE3|SSE4a" }, { "CPU_ANY_SSSE3_FLAGS", - "CPU_ANY_SSE4_1_FLAGS|CpuSSSE3" }, + "CPU_ANY_SSE4_1_FLAGS|SSSE3" }, { "CPU_ANY_SSE4_1_FLAGS", - "CPU_ANY_SSE4_2_FLAGS|CpuSSE4_1" }, + "CPU_ANY_SSE4_2_FLAGS|SSE4_1" }, { "CPU_ANY_SSE4_2_FLAGS", - "CpuSSE4_2" }, + "SSE4_2" }, { "CPU_ANY_SSE4A_FLAGS", - "CpuSSE4a" }, + "SSE4a" }, { "CPU_ANY_AVX_FLAGS", - "CPU_ANY_AVX2_FLAGS|CpuF16C|CpuFMA|CpuFMA4|CpuXOP|CpuAVX" }, + "CPU_ANY_AVX2_FLAGS|F16C|FMA|FMA4|XOP|AVX" }, { "CPU_ANY_AVX2_FLAGS", - "CPU_ANY_AVX512F_FLAGS|CpuAVX2|CpuAVX_VNNI|CpuAVX_IFMA|CpuAVX_VNNI_INT8|CpuAVX_NE_CONVERT" }, + "CPU_ANY_AVX512F_FLAGS|AVX2|AVX_VNNI|AVX_IFMA|AVX_VNNI_INT8|AVX_NE_CONVERT" }, { "CPU_ANY_AVX512F_FLAGS", - "CpuAVX512F|CpuAVX512CD|CpuAVX512ER|CpuAVX512PF|CpuAVX512DQ|CPU_ANY_AVX512BW_FLAGS|CpuAVX512VL|CpuAVX512IFMA|CpuAVX512VBMI|CpuAVX512_4FMAPS|CpuAVX512_4VNNIW|CpuAVX512_VPOPCNTDQ|CpuAVX512_VBMI2|CpuAVX512_VNNI|CpuAVX512_BITALG|CpuAVX512_BF16|CpuAVX512_VP2INTERSECT" }, + "AVX512F|AVX512CD|AVX512ER|AVX512PF|AVX512DQ|CPU_ANY_AVX512BW_FLAGS|AVX512VL|AVX512IFMA|AVX512VBMI|AVX512_4FMAPS|AVX512_4VNNIW|AVX512_VPOPCNTDQ|AVX512_VBMI2|AVX512_VNNI|AVX512_BITALG|AVX512_BF16|AVX512_VP2INTERSECT" }, { "CPU_ANY_AVX512CD_FLAGS", - "CpuAVX512CD" }, + "AVX512CD" }, { "CPU_ANY_AVX512ER_FLAGS", - "CpuAVX512ER" }, + "AVX512ER" }, { "CPU_ANY_AVX512PF_FLAGS", - "CpuAVX512PF" }, + "AVX512PF" }, { "CPU_ANY_AVX512DQ_FLAGS", - "CpuAVX512DQ" }, + "AVX512DQ" }, { "CPU_ANY_AVX512BW_FLAGS", - "CpuAVX512BW|CPU_ANY_AVX512_FP16_FLAGS" }, + "AVX512BW|CPU_ANY_AVX512_FP16_FLAGS" }, { "CPU_ANY_AVX512VL_FLAGS", - "CpuAVX512VL" }, + "AVX512VL" }, { "CPU_ANY_AVX512IFMA_FLAGS", - "CpuAVX512IFMA" }, + "AVX512IFMA" }, { "CPU_ANY_AVX512VBMI_FLAGS", - "CpuAVX512VBMI" }, + "AVX512VBMI" }, { "CPU_ANY_AVX512_4FMAPS_FLAGS", - "CpuAVX512_4FMAPS" }, + "AVX512_4FMAPS" }, { "CPU_ANY_AVX512_4VNNIW_FLAGS", - "CpuAVX512_4VNNIW" }, + "AVX512_4VNNIW" }, { "CPU_ANY_AVX512_VPOPCNTDQ_FLAGS", - "CpuAVX512_VPOPCNTDQ" }, + "AVX512_VPOPCNTDQ" }, { "CPU_ANY_IBT_FLAGS", - "CpuIBT" }, + "IBT" }, { "CPU_ANY_SHSTK_FLAGS", - "CpuSHSTK" }, + "SHSTK" }, { "CPU_ANY_AVX512_VBMI2_FLAGS", - "CpuAVX512_VBMI2" }, + "AVX512_VBMI2" }, { "CPU_ANY_AVX512_VNNI_FLAGS", - "CpuAVX512_VNNI" }, + "AVX512_VNNI" }, { "CPU_ANY_AVX512_BITALG_FLAGS", - "CpuAVX512_BITALG" }, + "AVX512_BITALG" }, { "CPU_ANY_AVX512_BF16_FLAGS", - "CpuAVX512_BF16" }, + "AVX512_BF16" }, { "CPU_ANY_AMX_INT8_FLAGS", - "CpuAMX_INT8" }, + "AMX_INT8" }, { "CPU_ANY_AMX_BF16_FLAGS", - "CpuAMX_BF16" }, + "AMX_BF16" }, { "CPU_ANY_AMX_TILE_FLAGS", - "CpuAMX_TILE|CpuAMX_INT8|CpuAMX_BF16|CpuAMX_FP16" }, + "AMX_TILE|AMX_INT8|AMX_BF16|AMX_FP16" }, { "CPU_ANY_AVX_VNNI_FLAGS", - "CpuAVX_VNNI" }, + "AVX_VNNI" }, { "CPU_ANY_MOVDIRI_FLAGS", - "CpuMOVDIRI" }, + "MOVDIRI" }, { "CPU_ANY_UINTR_FLAGS", - "CpuUINTR" }, + "UINTR" }, { "CPU_ANY_MOVDIR64B_FLAGS", - "CpuMOVDIR64B" }, + "MOVDIR64B" }, { "CPU_ANY_ENQCMD_FLAGS", - "CpuENQCMD" }, + "ENQCMD" }, { "CPU_ANY_SERIALIZE_FLAGS", - "CpuSERIALIZE" }, + "SERIALIZE" }, { "CPU_ANY_AVX512_VP2INTERSECT_FLAGS", - "CpuAVX512_VP2INTERSECT" }, + "AVX512_VP2INTERSECT" }, { "CPU_ANY_TDX_FLAGS", - "CpuTDX" }, + "TDX" }, { "CPU_ANY_TSXLDTRK_FLAGS", - "CpuTSXLDTRK" }, + "TSXLDTRK" }, { "CPU_ANY_KL_FLAGS", - "CpuKL|CpuWideKL" }, + "KL|WideKL" }, { "CPU_ANY_WIDEKL_FLAGS", - "CpuWideKL" }, + "WideKL" }, { "CPU_ANY_HRESET_FLAGS", - "CpuHRESET" }, + "HRESET" }, { "CPU_ANY_AVX512_FP16_FLAGS", - "CpuAVX512_FP16" }, + "AVX512_FP16" }, { "CPU_ANY_AVX_IFMA_FLAGS", - "CpuAVX_IFMA" }, + "AVX_IFMA" }, { "CPU_ANY_AVX_VNNI_INT8_FLAGS", - "CpuAVX_VNNI_INT8" }, + "AVX_VNNI_INT8" }, { "CPU_ANY_CMPCCXADD_FLAGS", - "CpuCMPCCXADD" }, + "CMPCCXADD" }, { "CPU_ANY_WRMSRNS_FLAGS", - "CpuWRMSRNS" }, + "WRMSRNS" }, { "CPU_ANY_MSRLIST_FLAGS", - "CpuMSRLIST" }, + "MSRLIST" }, { "CPU_ANY_AVX_NE_CONVERT_FLAGS", - "CpuAVX_NE_CONVERT" }, + "AVX_NE_CONVERT" }, { "CPU_ANY_RAO_INT_FLAGS", - "CpuRAO_INT"}, + "RAO_INT"}, }; typedef struct bitfield @@ -484,149 +484,152 @@ typedef struct bitfield const char *name; } bitfield; -#define BITFIELD(n) { n, 0, #n } +#define BITFIELD(n) { Cpu##n, 0, #n } static bitfield cpu_flags[] = { - BITFIELD (Cpu186), - BITFIELD (Cpu286), - BITFIELD (Cpu386), - BITFIELD (Cpu486), - BITFIELD (Cpu586), - BITFIELD (Cpu686), - BITFIELD (CpuCMOV), - BITFIELD (CpuFXSR), - BITFIELD (CpuClflush), - BITFIELD (CpuNop), - BITFIELD (CpuSYSCALL), - BITFIELD (Cpu8087), - BITFIELD (Cpu287), - BITFIELD (Cpu387), - BITFIELD (Cpu687), - BITFIELD (CpuFISTTP), - BITFIELD (CpuMMX), - BITFIELD (CpuSSE), - BITFIELD (CpuSSE2), - BITFIELD (CpuSSE3), - BITFIELD (CpuSSSE3), - BITFIELD (CpuSSE4_1), - BITFIELD (CpuSSE4_2), - BITFIELD (CpuAVX), - BITFIELD (CpuAVX2), - BITFIELD (CpuAVX512F), - BITFIELD (CpuAVX512CD), - BITFIELD (CpuAVX512ER), - BITFIELD (CpuAVX512PF), - BITFIELD (CpuAVX512VL), - BITFIELD (CpuAVX512DQ), - BITFIELD (CpuAVX512BW), - BITFIELD (CpuIAMCU), - BITFIELD (CpuSSE4a), - BITFIELD (Cpu3dnow), - BITFIELD (Cpu3dnowA), - BITFIELD (CpuPadLock), - BITFIELD (CpuSVME), - BITFIELD (CpuVMX), - BITFIELD (CpuSMX), - BITFIELD (CpuXsave), - BITFIELD (CpuXsaveopt), - BITFIELD (CpuAES), - BITFIELD (CpuPCLMUL), - BITFIELD (CpuFMA), - BITFIELD (CpuFMA4), - BITFIELD (CpuXOP), - BITFIELD (CpuLWP), - BITFIELD (CpuBMI), - BITFIELD (CpuTBM), - BITFIELD (CpuLM), - BITFIELD (CpuMovbe), - BITFIELD (CpuCX16), - BITFIELD (CpuEPT), - BITFIELD (CpuRdtscp), - BITFIELD (CpuFSGSBase), - BITFIELD (CpuRdRnd), - BITFIELD (CpuF16C), - BITFIELD (CpuBMI2), - BITFIELD (CpuLZCNT), - BITFIELD (CpuPOPCNT), - BITFIELD (CpuHLE), - BITFIELD (CpuRTM), - BITFIELD (CpuINVPCID), - BITFIELD (CpuVMFUNC), - BITFIELD (CpuRDSEED), - BITFIELD (CpuADX), - BITFIELD (CpuPRFCHW), - BITFIELD (CpuSMAP), - BITFIELD (CpuSHA), - BITFIELD (CpuClflushOpt), - BITFIELD (CpuXSAVES), - BITFIELD (CpuXSAVEC), - BITFIELD (CpuPREFETCHWT1), - BITFIELD (CpuSE1), - BITFIELD (CpuCLWB), - BITFIELD (CpuMPX), - BITFIELD (CpuAVX512IFMA), - BITFIELD (CpuAVX512VBMI), - BITFIELD (CpuAVX512_4FMAPS), - BITFIELD (CpuAVX512_4VNNIW), - BITFIELD (CpuAVX512_VPOPCNTDQ), - BITFIELD (CpuAVX512_VBMI2), - BITFIELD (CpuAVX512_VNNI), - BITFIELD (CpuAVX512_BITALG), - BITFIELD (CpuAVX512_BF16), - BITFIELD (CpuAVX512_VP2INTERSECT), - BITFIELD (CpuTDX), - BITFIELD (CpuAVX_VNNI), - BITFIELD (CpuAVX512_FP16), - BITFIELD (CpuPREFETCHI), - BITFIELD (CpuAVX_IFMA), - BITFIELD (CpuAVX_VNNI_INT8), - BITFIELD (CpuCMPCCXADD), - BITFIELD (CpuWRMSRNS), - BITFIELD (CpuMSRLIST), - BITFIELD (CpuAVX_NE_CONVERT), - BITFIELD (CpuRAO_INT), - BITFIELD (CpuMWAITX), - BITFIELD (CpuCLZERO), - BITFIELD (CpuOSPKE), - BITFIELD (CpuRDPID), - BITFIELD (CpuPTWRITE), - BITFIELD (CpuIBT), - BITFIELD (CpuSHSTK), - BITFIELD (CpuGFNI), - BITFIELD (CpuVAES), - BITFIELD (CpuVPCLMULQDQ), - BITFIELD (CpuWBNOINVD), - BITFIELD (CpuPCONFIG), - BITFIELD (CpuWAITPKG), - BITFIELD (CpuUINTR), - BITFIELD (CpuCLDEMOTE), - BITFIELD (CpuAMX_INT8), - BITFIELD (CpuAMX_BF16), - BITFIELD (CpuAMX_FP16), - BITFIELD (CpuAMX_TILE), - BITFIELD (CpuMOVDIRI), - BITFIELD (CpuMOVDIR64B), - BITFIELD (CpuENQCMD), - BITFIELD (CpuSERIALIZE), - BITFIELD (CpuRDPRU), - BITFIELD (CpuMCOMMIT), - BITFIELD (CpuSEV_ES), - BITFIELD (CpuTSXLDTRK), - BITFIELD (CpuKL), - BITFIELD (CpuWideKL), - BITFIELD (CpuHRESET), - BITFIELD (CpuINVLPGB), - BITFIELD (CpuTLBSYNC), - BITFIELD (CpuSNP), - BITFIELD (CpuRMPQUERY), - BITFIELD (Cpu64), - BITFIELD (CpuNo64), + BITFIELD (186), + BITFIELD (286), + BITFIELD (386), + BITFIELD (486), + BITFIELD (586), + BITFIELD (686), + BITFIELD (CMOV), + BITFIELD (FXSR), + BITFIELD (Clflush), + BITFIELD (Nop), + BITFIELD (SYSCALL), + BITFIELD (8087), + BITFIELD (287), + BITFIELD (387), + BITFIELD (687), + BITFIELD (FISTTP), + BITFIELD (MMX), + BITFIELD (SSE), + BITFIELD (SSE2), + BITFIELD (SSE3), + BITFIELD (SSSE3), + BITFIELD (SSE4_1), + BITFIELD (SSE4_2), + BITFIELD (AVX), + BITFIELD (AVX2), + BITFIELD (AVX512F), + BITFIELD (AVX512CD), + BITFIELD (AVX512ER), + BITFIELD (AVX512PF), + BITFIELD (AVX512VL), + BITFIELD (AVX512DQ), + BITFIELD (AVX512BW), + BITFIELD (IAMCU), + BITFIELD (SSE4a), + BITFIELD (3dnow), + BITFIELD (3dnowA), + BITFIELD (PadLock), + BITFIELD (SVME), + BITFIELD (VMX), + BITFIELD (SMX), + BITFIELD (Xsave), + BITFIELD (Xsaveopt), + BITFIELD (AES), + BITFIELD (PCLMUL), + BITFIELD (FMA), + BITFIELD (FMA4), + BITFIELD (XOP), + BITFIELD (LWP), + BITFIELD (BMI), + BITFIELD (TBM), + BITFIELD (LM), + BITFIELD (Movbe), + BITFIELD (CX16), + BITFIELD (EPT), + BITFIELD (Rdtscp), + BITFIELD (FSGSBase), + BITFIELD (RdRnd), + BITFIELD (F16C), + BITFIELD (BMI2), + BITFIELD (LZCNT), + BITFIELD (POPCNT), + BITFIELD (HLE), + BITFIELD (RTM), + BITFIELD (INVPCID), + BITFIELD (VMFUNC), + BITFIELD (RDSEED), + BITFIELD (ADX), + BITFIELD (PRFCHW), + BITFIELD (SMAP), + BITFIELD (SHA), + BITFIELD (ClflushOpt), + BITFIELD (XSAVES), + BITFIELD (XSAVEC), + BITFIELD (PREFETCHWT1), + BITFIELD (SE1), + BITFIELD (CLWB), + BITFIELD (MPX), + BITFIELD (AVX512IFMA), + BITFIELD (AVX512VBMI), + BITFIELD (AVX512_4FMAPS), + BITFIELD (AVX512_4VNNIW), + BITFIELD (AVX512_VPOPCNTDQ), + BITFIELD (AVX512_VBMI2), + BITFIELD (AVX512_VNNI), + BITFIELD (AVX512_BITALG), + BITFIELD (AVX512_BF16), + BITFIELD (AVX512_VP2INTERSECT), + BITFIELD (TDX), + BITFIELD (AVX_VNNI), + BITFIELD (AVX512_FP16), + BITFIELD (PREFETCHI), + BITFIELD (AVX_IFMA), + BITFIELD (AVX_VNNI_INT8), + BITFIELD (CMPCCXADD), + BITFIELD (WRMSRNS), + BITFIELD (MSRLIST), + BITFIELD (AVX_NE_CONVERT), + BITFIELD (RAO_INT), + BITFIELD (MWAITX), + BITFIELD (CLZERO), + BITFIELD (OSPKE), + BITFIELD (RDPID), + BITFIELD (PTWRITE), + BITFIELD (IBT), + BITFIELD (SHSTK), + BITFIELD (GFNI), + BITFIELD (VAES), + BITFIELD (VPCLMULQDQ), + BITFIELD (WBNOINVD), + BITFIELD (PCONFIG), + BITFIELD (WAITPKG), + BITFIELD (UINTR), + BITFIELD (CLDEMOTE), + BITFIELD (AMX_INT8), + BITFIELD (AMX_BF16), + BITFIELD (AMX_FP16), + BITFIELD (AMX_TILE), + BITFIELD (MOVDIRI), + BITFIELD (MOVDIR64B), + BITFIELD (ENQCMD), + BITFIELD (SERIALIZE), + BITFIELD (RDPRU), + BITFIELD (MCOMMIT), + BITFIELD (SEV_ES), + BITFIELD (TSXLDTRK), + BITFIELD (KL), + BITFIELD (WideKL), + BITFIELD (HRESET), + BITFIELD (INVLPGB), + BITFIELD (TLBSYNC), + BITFIELD (SNP), + BITFIELD (RMPQUERY), + BITFIELD (64), + BITFIELD (No64), #ifdef CpuUnused - BITFIELD (CpuUnused), + BITFIELD (Unused), #endif }; +#undef BITFIELD +#define BITFIELD(n) { n, 0, #n } + static bitfield opcode_modifiers[] = { BITFIELD (D), |