aboutsummaryrefslogtreecommitdiff
path: root/data/x86_64.json
diff options
context:
space:
mode:
Diffstat (limited to 'data/x86_64.json')
-rw-r--r--data/x86_64.json3426
1 files changed, 3426 insertions, 0 deletions
diff --git a/data/x86_64.json b/data/x86_64.json
new file mode 100644
index 0000000..f11a297
--- /dev/null
+++ b/data/x86_64.json
@@ -0,0 +1,3426 @@
+{
+ "sets": [
+ {
+ "name": "8086_bcd",
+ "new": [
+ "aaa",
+ "aad",
+ "aam",
+ "aas",
+ "daa",
+ "das"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "8086",
+ "new": [
+ "invalid",
+ "cmc",
+ "clc",
+ "stc",
+ "cli",
+ "sti",
+ "cld",
+ "std",
+ "add",
+ "or",
+ "adc",
+ "sbb",
+ "and",
+ "xor",
+ "sub",
+ "cmp",
+ "sar",
+ "sal",
+ "shr",
+ "shl",
+ "rcr",
+ "rcl",
+ "ror",
+ "rol",
+ "inc",
+ "dec",
+ "hlt",
+ "call",
+ "callf",
+ "jmp",
+ "jmpf",
+ "push",
+ "pop",
+ "lea",
+ "nop",
+ "xchg",
+ "popf",
+ "int",
+ "into",
+ "iret",
+ "iretd",
+ "iretq",
+ "retf",
+ "enter",
+ "leave",
+ "mov",
+ "return",
+ "pushf",
+ "wait",
+ "cbw",
+ "cwd",
+ "cqo",
+ "lods",
+ "stos",
+ "cmps",
+ "scas",
+ "movs",
+ "test",
+ "in",
+ "out",
+ "imul",
+ "jo",
+ "jno",
+ "jb",
+ "jnb",
+ "jz",
+ "jnz",
+ "ja",
+ "jna",
+ "js",
+ "jns",
+ "jp",
+ "jnp",
+ "jl",
+ "jge",
+ "jle",
+ "jg",
+ "ud0",
+ "ud1",
+ "ud2",
+ "div",
+ "idiv",
+ "mul",
+ "neg",
+ "not",
+ "xlat",
+
+ "loopnz",
+ "loopz",
+ "loop",
+
+ "salc"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "80186_pusha",
+ "new": [
+ "pusha",
+ "popa"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "80186_bound",
+ "remark": "not included in the base 80186 because that set is reused to extend into 64bit, where bound is not",
+ "new": [
+ "bound"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "80286_arpl",
+ "remark": "not included in the base 80286 because that set is reused to extend into 64bit, where arpl is not",
+ "new": [
+ "arpl"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "80186",
+ "new": [
+ "enter",
+ "leave",
+ "ins",
+ "outs"
+ ],
+ "extended": [
+ "push",
+ "imul",
+ "shl",
+ "shr",
+ "sal",
+ "sar",
+ "rol",
+ "ror",
+ "rcl",
+ "rcr"
+ ]
+ },
+ {
+ "name": "80286",
+ "new": [
+ "clts",
+ "lar",
+ "lgdt",
+ "lidt",
+ "lldt",
+ "lmsw",
+ "lsl",
+ "sgdt",
+ "sidt",
+ "sldt",
+ "smsw",
+ "str",
+ "ltr",
+ "verr",
+ "verw"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "80386",
+ "new": [
+ "bsf",
+ "bsr",
+ "bt",
+ "bts",
+ "btc",
+ "btr",
+ "cdq",
+ "cwde",
+ "lds",
+ "les",
+ "lfs",
+ "lgs",
+ "lss",
+ "movzx",
+ "movsx",
+ "seto",
+ "setno",
+ "setb",
+ "setae",
+ "setz",
+ "setnz",
+ "setbe",
+ "seta",
+ "sets",
+ "setns",
+ "setp",
+ "setnp",
+ "setl",
+ "setge",
+ "setle",
+ "setg",
+ "shld",
+ "shrd"
+ ]
+ },
+ {
+ "name": "jcxz",
+ "remark": "for 16-bit modes, jcxz is treated as jcxz (e.g. 16-bit ecx test)",
+ "new": [
+ "jcxz"
+ ]
+ },
+ {
+ "name": "jecxz",
+ "remark": "for 32-bit modes, jcxz is treated as jecxz (e.g. 32-bit ecx test)",
+ "new": [
+ "jecxz"
+ ]
+ },
+ {
+ "name": "80486",
+ "new": [
+ "bswap",
+ "cmpxchg",
+ "invd",
+ "wbinvd",
+ "invlpg",
+ "xadd"
+ ]
+ },
+ {
+ "name": "pentium",
+ "new": [
+ "cpuid",
+ "wrmsr",
+ "rdtsc",
+ "rdmsr",
+ "rsm",
+ "cmpxchg8b"
+ ]
+ },
+ {
+ "name": "pentium_pro",
+ "new": [
+ "+pentium",
+ "+cmov",
+ "ud2"
+ ]
+ },
+ {
+ "name": "64bit",
+ "new": [
+ "+8086",
+ "+80186",
+ "+80286",
+ "+80386",
+ "+80486",
+ "+3dnow",
+ "+3dnowprefetch",
+ "+x87",
+ "+mmx",
+ "+sse",
+ "+sse2",
+ "+pentium_pro",
+ "+cmpxchg16b",
+
+ "jrcxz",
+ "cdqe",
+ "movzx",
+ "swapgs",
+ "movsxd",
+ "+syscall",
+ "+fsgsbase"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "extra_instructions",
+ "remark": "real_mode and long_mode had these instructions in their Opcode enums, but these variants could never be constructed. they were included by accident, and so are ''redundant'' with the extension that added them, but are explicitly noted as an error here.",
+ "new": [
+ "swapgs",
+ "slhd",
+ "cdqe",
+ "movsxd",
+ "cmpxchg16b"
+ ]
+ },
+ {
+ "name": "typo_instructions",
+ "remark": "these instructions never existed, are just transcription errors.",
+ "new": [
+ "+avx512_f_typo",
+ "slhd"
+ ]
+ },
+ {
+ "name": "x86_64_baseline",
+ "new": [
+ "+80386",
+ "+cmov",
+ "+x87",
+ "+mmx",
+ "+sse",
+ "+sse2",
+ "+sse3",
+ "+fxsr",
+ "+64bit",
+ "+typo_instructions"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "mmx",
+ "new": [
+ "rdpmc",
+ "punpcklbw",
+ "punpcklwd",
+ "punpckldq",
+ "packsswb",
+ "pcmpgtb",
+ "pcmpgtd",
+ "pcmpgtw",
+ "packuswb",
+ "punpckhbw",
+ "punpckhwd",
+ "punpckhdq",
+ "packssdw",
+ "movd",
+ "movq",
+ "pcmpeqb",
+ "pcmpeqd",
+ "pcmpeqw",
+ "psrlw",
+ "psrld",
+ "psrlq",
+ "pmullw",
+ "psubusb",
+ "psubusw",
+ "pand",
+ "paddusb",
+ "paddusw",
+ "pandn",
+ "psraw",
+ "psrad",
+ "pmulhw",
+ "psubsb",
+ "psubsw",
+ "por",
+ "paddsb",
+ "paddsw",
+ "pxor",
+ "psllw",
+ "pslld",
+ "psllq",
+ "pmaddwd",
+ "psubb",
+ "psubw",
+ "psubd",
+ "paddb",
+ "paddw",
+ "paddd",
+ "emms"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "sse",
+ "new": [
+ "movss",
+ "addss",
+ "subss",
+ "mulss",
+ "divss",
+ "minss",
+ "maxss",
+ "sqrtss",
+ "movups",
+ "movhlps",
+ "movlps",
+ "movhps",
+ "movlhps",
+ "unpcklps",
+ "unpckhps",
+ "prefetchnta",
+ "prefetch0",
+ "prefetch1",
+ "prefetch2",
+ "movaps",
+ "cvtpi2ps",
+ "cvtsi2ss",
+ "movntps",
+ "cvttss2si",
+ "cvttps2pi",
+ "cvtss2si",
+ "cvtps2pi",
+ "ucomiss",
+ "comiss",
+ "sqrtps",
+ "movmskps",
+ "rsqrtss",
+ "rsqrtps",
+ "rcpps",
+ "rcpss",
+ "andps",
+ "andnps",
+ "xorps",
+ "orps",
+ "addps",
+ "mulps",
+ "subps",
+ "minps",
+ "divps",
+ "maxps",
+ "pshufw",
+ "ldmxcsr",
+ "stmxcsr",
+ "sfence",
+ "cmpps",
+ "cmpss",
+ "pinsrw",
+ "pextrw",
+ "shufps",
+ "pmovmskb",
+ "pminub",
+ "pmaxub",
+ "pavgb",
+ "pavgw",
+ "pmulhuw",
+ "movntq",
+ "pminsw",
+ "pmaxsw",
+ "psadbw",
+ "maskmovq",
+ "ldmxcsr",
+ "stmxcsr"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "sse2",
+ "new": [
+ "movupd",
+ "psrldq",
+ "pslldq",
+ "movsd",
+ "movlpd",
+ "unpcklpd",
+ "unpckhpd",
+ "movhpd",
+ "movapd",
+ "movmskpd",
+ "cvtpi2pd",
+ "cvtsi2sd",
+ "movntpd",
+ "movnti",
+ "movntdq",
+ "cvttpd2pi",
+ "cvttsd2si",
+ "cvtpd2pi",
+ "cvtsd2si",
+ "ucomisd",
+ "comisd",
+ "sqrtpd",
+ "sqrtsd",
+ "andpd",
+ "andnpd",
+ "orpd",
+ "xorpd",
+ "addpd",
+ "addsd",
+ "mulsd",
+ "mulpd",
+ "cvtps2pd",
+ "cvtpd2ps",
+ "cvtss2sd",
+ "cvtsd2ss",
+ "cvtps2dq",
+ "cvtdq2ps",
+ "cvttps2dq",
+ "subsd",
+ "subpd",
+ "minpd",
+ "minsd",
+ "divpd",
+ "divsd",
+ "maxpd",
+ "maxsd",
+ "punpcklqdq",
+ "punpckhqdq",
+ "movdqa",
+ "movdqu",
+ "pshufhw",
+ "pshuflw",
+ "pshufd",
+ "lfence",
+ "mfence",
+ "clflush",
+ "cmppd",
+ "cmpps",
+ "cmpsd",
+ "shufpd",
+ "paddq",
+ "movq2dq",
+ "movdq2q",
+ "cvtpd2dq",
+ "cvttpd2dq",
+ "cvtdq2pd",
+ "pmuludq",
+ "maskmovdqu",
+ "psubq"
+ ],
+ "extended": [
+ "punpcklbw",
+ "punpcklwd",
+ "punpckldq",
+ "packsswb",
+ "pcmpgtb",
+ "pcmpgtd",
+ "pcmpgtw",
+ "packuswb",
+ "punpckhbw",
+ "punpckhwd",
+ "punpckhdq",
+ "packssdw",
+ "movd",
+ "movq",
+ "pcmpeqb",
+ "pcmpeqd",
+ "pcmpeqw",
+ "psrlw",
+ "psrld",
+ "psrlq",
+ "pmullw",
+ "psubusb",
+ "psubusw",
+ "pand",
+ "paddusb",
+ "paddusw",
+ "pandn",
+ "psraw",
+ "psrad",
+ "pmulhw",
+ "psubsb",
+ "psubsw",
+ "por",
+ "paddsb",
+ "paddsw",
+ "pxor",
+ "psllw",
+ "pslld",
+ "psllq",
+ "pmaddwd",
+ "psubb",
+ "psubw",
+ "psubd",
+ "paddb",
+ "paddw",
+ "paddd"
+ ]
+ },
+ {
+ "name": "sse3",
+ "new": [
+ "addsubpd",
+ "addsubps",
+ "hsubpd",
+ "haddpd",
+ "movsldup",
+ "movshdup",
+ "movddup",
+ "haddps",
+ "hsubps",
+ "lddqu",
+ "+monitor"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "ssse3",
+ "new": [
+ "palignr",
+ "psignw",
+ "psignd",
+ "psignb",
+ "pshufb",
+ "pmulhrsw",
+ "pmaddubsw",
+ "pabsd",
+ "pabsw",
+ "pabsb",
+ "phsubsw",
+ "phsubw",
+ "phsubd",
+ "phaddd",
+ "phaddsw",
+ "phaddw"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "monitor",
+ "new": [
+ "monitor",
+ "mwait"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "vmx",
+ "new": [
+ "vmptrld",
+ "vmptrst",
+ "vmclear",
+ "vmread",
+ "vmwrite",
+ "vmcall",
+ "vmlaunch",
+ "vmresume",
+ "vmxoff",
+ "vmxon",
+ "invept",
+ "invvpid",
+ "vmfunc"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "fma3",
+ "new": [
+ "vfmadd132pd",
+ "vfmadd132ps",
+ "vfmadd132sd",
+ "vfmadd132ss",
+ "vfmadd213pd",
+ "vfmadd213ps",
+ "vfmadd213sd",
+ "vfmadd213ss",
+ "vfmadd231pd",
+ "vfmadd231ps",
+ "vfmadd231sd",
+ "vfmadd231ss",
+ "vfmaddsub132pd",
+ "vfmaddsub132ps",
+ "vfmaddsub213pd",
+ "vfmaddsub213ps",
+ "vfmaddsub231pd",
+ "vfmaddsub231ps",
+ "vfmsub132pd",
+ "vfmsub132ps",
+ "vfmsub132sd",
+ "vfmsub132ss",
+ "vfmsub213pd",
+ "vfmsub213ps",
+ "vfmsub213sd",
+ "vfmsub213ss",
+ "vfmsub231pd",
+ "vfmsub231ps",
+ "vfmsub231sd",
+ "vfmsub231ss",
+ "vfmsubadd132pd",
+ "vfmsubadd132ps",
+ "vfmsubadd213pd",
+ "vfmsubadd213ps",
+ "vfmsubadd231pd",
+ "vfmsubadd231ps",
+ "vfnmadd132pd",
+ "vfnmadd132ps",
+ "vfnmadd132sd",
+ "vfnmadd132ss",
+ "vfnmadd213pd",
+ "vfnmadd213ps",
+ "vfnmadd213sd",
+ "vfnmadd213ss",
+ "vfnmadd231pd",
+ "vfnmadd231ps",
+ "vfnmadd231sd",
+ "vfnmadd231ss",
+ "vfnmsub132pd",
+ "vfnmsub132ps",
+ "vfnmsub132sd",
+ "vfnmsub132ss",
+ "vfnmsub213pd",
+ "vfnmsub213ps",
+ "vfnmsub213sd",
+ "vfnmsub213ss",
+ "vfnmsub231pd",
+ "vfnmsub231ps",
+ "vfnmsub231sd",
+ "vfnmsub231ss"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "cmpxchg16b",
+ "remark": "appears to be present in all x86-64 machines, though it's hard to find data to confirm",
+ "new": [
+ "cmpxchg16b"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "sse4_1",
+ "new": [
+ "phminposuw",
+ "pmuldq",
+ "pmulld",
+ "dpps",
+ "dppd",
+ "packusdw",
+ "pcmpeqq",
+ "ptest",
+ "movntdqa",
+ "roundss",
+ "roundsd",
+ "roundps",
+ "roundpd",
+ "pmaxsb",
+ "pmaxsd",
+ "pmaxuw",
+ "pmaxud",
+ "pminsd",
+ "pminsb",
+ "pminud",
+ "pminuw",
+ "blendw",
+ "pblendw",
+ "blendvps",
+ "blendvpd",
+ "pblendvb",
+ "blendps",
+ "blendpd",
+ "mpsadbw",
+ "pmovzxdq",
+ "pmovsxdq",
+ "pmovzxbd",
+ "pmovsxbd",
+ "pmovzxwq",
+ "pmovsxwq",
+ "pmovzxbq",
+ "pmovsxbq",
+ "pmovsxwd",
+ "pmovzxwd",
+ "pextrq",
+ "pextrd",
+ "pextrb",
+ "pmovsxbw",
+ "pmovzxbw",
+ "pinsrq",
+ "pinsrd",
+ "pinsrb",
+ "extractps",
+ "insertps"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "sse4_2",
+ "new": [
+ "crc32",
+ "pcmpestri",
+ "pcmpestrm",
+ "pcmpistri",
+ "pcmpistrm",
+ "pcmpgtq"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "movbe",
+ "new": [
+ "movbe"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "popcnt",
+ "new": [
+ "popcnt"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "aesni",
+ "new": [
+ "aeskeygenassist",
+ "aesimc",
+ "aesenc",
+ "aesenclast",
+ "aesdec",
+ "aesdeclast"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "sgx",
+ "new": [
+ "encls",
+ "enclu",
+ "enclv"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "bmi1",
+ "new": [
+ "andn",
+ "bextr",
+ "blsi",
+ "blsmsk",
+ "blsr",
+ "tzcnt"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "bmi2",
+ "new": [
+ "bzhi",
+ "mulx",
+ "pdep",
+ "pext",
+ "rorx",
+ "sarx",
+ "shrx",
+ "shlx"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "avx",
+ "new": [
+ "vlddqu",
+ "vpaddb",
+ "vpaddd",
+ "vpaddq",
+ "vpaddw",
+ "vpabsb",
+ "vpabsw",
+ "vpabsd",
+ "vmaxsd",
+ "vmaxss",
+ "vminsd",
+ "vminss",
+ "vmulsd",
+ "vmulss",
+ "vrcpss",
+ "vpsubusb",
+ "vpsubusw",
+ "vxorpd",
+ "vxorps",
+ "vpavgb",
+ "vpavgw",
+ "vandnpd",
+ "vandnps",
+ "vphaddd",
+ "vphaddsw",
+ "vphaddw",
+ "vandpd",
+ "vandps",
+ "vpaddsb",
+ "vpaddsw",
+ "vpaddusb",
+ "vpaddusw",
+ "vphsubd",
+ "vphsubsw",
+ "vphsubw",
+ "vhaddpd",
+ "vhaddps",
+ "vhsubpd",
+ "vhsubps",
+ "vorpd",
+ "vorps",
+ "vpblendvb",
+ "vpblendw",
+ "vaddsubpd",
+ "vaddsubps",
+ "vrsqrtps",
+ "vrsqrtss",
+ "vpalignr",
+ "vpsubsb",
+ "vpsubsw",
+ "vpmulhuw",
+ "vpmulhw",
+ "vpmullw",
+ "vpshufb",
+ "vpshufhw",
+ "vpshuflw",
+ "vphminposuw",
+ "vrcpps",
+ "vmpsadbw",
+ "vpmaddubsw",
+ "vpmaddwd",
+ "vmaskmovdqu",
+ "vpmovmskb",
+ "vpsadbw",
+
+ "vpslldq",
+ "vpsrldq",
+
+ "vdppd",
+ "vdpps",
+
+ "vldmxcsr",
+ "vstmxcsr",
+
+ "vmovmskpd",
+ "vmovmskps",
+
+ "vptest",
+ "vtestpd",
+ "vtestps",
+ "vpextrb",
+ "vpextrw",
+ "vpextrd",
+ "vpextrq",
+ "vpackssdw",
+ "vpackusdw",
+ "vpacksswb",
+ "vpackuswb",
+ "vblendpd",
+ "vblendps",
+ "vblendvpd",
+ "vblendvps",
+ "vpmulhrsw",
+
+ "vpand",
+ "vpandn",
+ "vpor",
+
+ "vpcmpeqb",
+ "vpcmpeqd",
+ "vpcmpeqq",
+ "vpcmpeqw",
+ "vpcmpgtb",
+ "vpcmpgtd",
+ "vpcmpgtq",
+ "vpcmpgtw",
+
+ "vpmaxsb",
+ "vpmaxsd",
+ "vpmaxsw",
+ "vpmaxub",
+ "vpmaxuw",
+ "vpminsb",
+ "vpminsw",
+ "vpminub",
+ "vpminuw",
+ "vpmaxud",
+ "vpminsd",
+ "vpsignb",
+ "vpsignw",
+ "vpsignd",
+ "vpinsrb",
+ "vpinsrw",
+ "vpinsrd",
+ "vpinsrq",
+
+ "vpmovsxbd",
+ "vpmovsxbq",
+ "vpmovsxbw",
+ "vpmovsxdq",
+ "vpmovsxwd",
+ "vpmovsxwq",
+ "vpmovzxbd",
+ "vpmovzxbq",
+ "vpmovzxbw",
+ "vpmovzxdq",
+ "vpmovzxwd",
+ "vpmovzxwq",
+
+ "vpmuldq",
+ "vpmullq",
+ "vpmulld",
+ "vpmuludq",
+ "vpshufd",
+ "vshufpd",
+ "vshufps",
+ "vsqrtpd",
+ "vsqrtps",
+ "vsqrtss",
+ "vsqrtsd",
+ "vsubpd",
+ "vsubps",
+ "vsubsd",
+ "vsubss",
+ "vucomisd",
+ "vucomiss",
+ "vroundpd",
+ "vroundps",
+ "vroundsd",
+ "vroundss",
+
+ "vpslld",
+ "vpsllq",
+ "vpsllw",
+ "vpsrad",
+ "vpsraw",
+ "vpsrld",
+ "vpsrlq",
+ "vpsrlw",
+ "vpsubb",
+ "vpsubw",
+ "vpsubd",
+ "vpsubq",
+ "vpxor",
+
+ "vpunpckhbw",
+ "vpunpckhwd",
+ "vpunpckhdq",
+ "vpunpckhqdq",
+ "vpunpcklbw",
+ "vpunpcklwd",
+ "vpunpckldq",
+ "vpunpcklqdq",
+ "vunpckhpd",
+ "vunpckhps",
+ "vunpcklpd",
+ "vunpcklps",
+ "vpcmpestri",
+ "vpcmpestrm",
+ "vpcmpistri",
+ "vpcmpistrm",
+
+ "vbroadcastss",
+ "vbroadcastsd",
+ "vbroadcastf128",
+ "vbroadcastsd",
+ "vbroadcastss",
+ "vinsertf128",
+ "vextractf128",
+ "vmaskmovpd",
+ "vmaskmovps",
+ "vpermilpd",
+ "vpermilps",
+ "vperm2f128",
+ "vzeroupper",
+ "vzeroall"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "avx2",
+ "new": [
+ "vbroadcasti128",
+ "vpbroadcastb",
+ "vpbroadcastw",
+ "vpbroadcastd",
+ "vpbroadcastq",
+ "vinserti128",
+ "vextracti128",
+ "vpmaskmovd",
+ "vpmaskmovq",
+ "vpermps",
+ "vpermd",
+ "vpermpd",
+ "vpermq",
+ "vperm2i128",
+ "vpblendd",
+ "vpsllvd",
+ "vpsllvq",
+ "vpsrlvd",
+ "vpsrlvq",
+ "vpsravd"
+ ],
+ "extended": [
+ "vpaddb",
+ "vpaddd",
+ "vpaddq",
+ "vpaddw",
+ "vpabsb",
+ "vpabsw",
+ "vpabsd",
+ "vpand",
+ "vpandn",
+ "vpor",
+ "vpavgb",
+ "vpavgw",
+ "vphaddd",
+ "vphaddsw",
+ "vphaddw",
+ "vpmulhrsw",
+ "vpaddsb",
+ "vpaddsw",
+ "vpaddusb",
+ "vpaddusw",
+ "vphsubd",
+ "vphsubsw",
+ "vphsubw",
+ "vpblendvb",
+ "vpblendw",
+ "vpalignr",
+ "vpsubsb",
+ "vpsubsw",
+ "vpmulhuw",
+ "vpmulhw",
+ "vpmullw",
+ "vpshufb",
+ "vpshufhw",
+ "vpshuflw",
+ "vmpsadbw",
+ "vpmaddubsw",
+ "vpmaddwd",
+ "vpmovmskb",
+ "vpsadbw",
+
+ "vpslldq",
+ "vpsrldq",
+
+ "vpcmpeqb",
+ "vpcmpeqd",
+ "vpcmpeqq",
+ "vpcmpeqw",
+ "vpcmpgtb",
+ "vpcmpgtd",
+ "vpcmpgtq",
+ "vpcmpgtw",
+ "vpmaxsb",
+ "vpmaxsd",
+ "vpmaxsw",
+ "vpmaxud",
+ "vpminsd",
+ "vpminud",
+
+ "vpmovsxbd",
+ "vpmovsxbq",
+ "vpmovsxbw",
+ "vpmovsxdq",
+ "vpmovsxwd",
+ "vpmovsxwq",
+ "vpmovzxbd",
+ "vpmovzxbq",
+ "vpmovzxbw",
+ "vpmovzxdq",
+ "vpmovzxwd",
+ "vpmovzxwq",
+ "vpackssdw",
+ "vpackusdw",
+ "vpacksswb",
+ "vpackuswb",
+
+ "vpmuldq",
+ "vpmullq",
+ "vpmulld",
+ "vpmuludq",
+ "vpshufd",
+ "vshufpd",
+ "vshufps",
+ "vsqrtpd",
+ "vsqrtps",
+ "vsubps",
+ "vsubpd",
+
+ "vpslld",
+ "vpsllq",
+ "vpsllw",
+ "vpsrad",
+ "vpsraw",
+ "vpsrld",
+ "vpsrlq",
+ "vpsrlw",
+ "vpsubb",
+ "vpsubw",
+ "vpsubd",
+ "vpsubq",
+ "vpxor",
+ "vpsignb",
+ "vpsignd",
+ "vpsignw",
+
+ "vpunpckhbw",
+ "vpunpckhwd",
+ "vpunpckhdq",
+ "vpunpckhqdq",
+ "vpunpcklbw",
+ "vpunpcklwd",
+ "vpunpckldq",
+ "vpunpcklqdq",
+ "vunpckhpd",
+ "vunpckhps",
+ "vunpcklpd",
+ "vunpcklps",
+
+ "vbroadcastss",
+ "vbroadcastsd",
+ "vbroadcastsd",
+ "vbroadcastss"
+ ]
+ },
+ {
+ "name": "invpcid",
+ "new": [
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "invlpgb",
+ "new": [
+ "invlpgb",
+ "tlbsync"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "mpx",
+ "new": [
+ "bndmk",
+ "bndcl",
+ "bndcu",
+ "bndcn",
+ "bndmov",
+ "bndldx",
+ "bndstx"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "avx512_f_typo",
+ "remark": "these instructions never existed, are just transcription errors.",
+ "new": [
+ "vprorrd",
+ "vprorrq"
+ ]
+ },
+ {
+ "name": "vpclmulqdq",
+ "new": [
+ "vpclmulqdq"
+ ]
+ },
+ {
+ "name": "avx_unimplemented",
+ "remark": "these avx instructions were missed when implementing the various avx* extensions",
+ "new": [
+ "vpmaxub",
+ "vpmaxub"
+ ]
+ },
+ {
+ "name": "avx512_f__vl_unimplemented",
+ "remark": "these avx512f instructions were missed when implementing avx512",
+ "new": [
+ "vscatterdps",
+ "vscatterdpd",
+ "vscatterqps",
+ "vscatterqpd"
+ ]
+ },
+ {
+ "name": "avx512bw_unimplemented",
+ "remark": "these avx512bw instructions were missed when implementing avx512",
+ "new": [
+ "vpmovq2m"
+ ]
+ },
+ {
+ "name": "invpcid_unimplemented",
+ "new": [
+ "invvpid"
+ ]
+ },
+
+ {
+ "name": "avx512_f_typo",
+ "new": [
+ "vprorrd",
+ "vprorrq"
+ ]
+ },
+
+ {
+ "name": "avx512_f",
+ "new": [
+ "+avx512_f__vl_unimplemented",
+ "vcvtqq2pd",
+ "vcvtqq2ps",
+ "vcvtusi2usd",
+ "vcvtusi2uss",
+ "vextractf32x4",
+ "vextractf64x4",
+ "vextracti32x4",
+ "vextracti64x4",
+ "vfixupimmsd",
+ "vfixupimmss",
+ "vinserti64x4",
+ "vmovdqa32",
+ "vmovdqa64",
+ "vmovdqu32",
+ "vmovdqu64",
+ "vpcompressq",
+ "vpcompressd",
+ "vscaledpd",
+ "vscaledps",
+ "vscaledsd",
+ "vscaledss",
+ "vscatterdd",
+ "vscatterdq",
+ "vscatterqd",
+ "vscatterqq",
+
+ "vaddpd",
+ "vaddps",
+ "vcmppd",
+ "vcmpps",
+ "vcvtdq2pd",
+ "vcvtdq2ps",
+ "vcvtpd2dq",
+ "vcvtpd2ps",
+ "vcvtps2dq",
+ "vcvtps2pd",
+ "vcvttpd2dq",
+ "vcvttps2dq",
+ "vdivpd",
+ "vdivps",
+ "vmaxpd",
+ "vmaxps",
+ "vminpd",
+ "vminps",
+ "vmovapd",
+ "vmovaps",
+ "vmovddup",
+ "vmovdqa",
+ "vmovdqu",
+ "vmovntdqa",
+ "vmovntdq",
+ "vmovntpd",
+ "vmovntps",
+ "vmovshdup",
+ "vmovsldup",
+ "vmovupd",
+ "vmovups",
+ "vmulpd",
+ "vmulps",
+ "vpandd",
+ "vpandq",
+ "vpandnd",
+ "vpandnq",
+ "vpcmpeqd",
+ "vpcmpeqq",
+ "vpcmpgtd",
+ "vpcmpgtq",
+ "vpmaxsd",
+ "vpmaxsq",
+ "vpmaxud",
+ "vpmaxuq",
+ "vpminsd",
+ "vpminsq",
+ "vpminud",
+ "vpminuq",
+ "vpcmpd",
+ "vpcmpq",
+ "vpcmpud",
+ "vpcmpuq",
+
+ "vpord",
+ "vporq",
+ "vpxord",
+ "vpxorq",
+
+ "vpslld",
+ "vpsllq",
+ "vpsllw",
+ "vpsrad",
+ "vpsraq",
+ "valignd",
+ "valignq",
+ "vblendmpd",
+ "vblendmps",
+ "vprold",
+ "vprolq",
+ "vprolvd",
+ "vprolvq",
+ "vprord",
+ "vprorq",
+ "vprorvd",
+ "vprorvq",
+
+ "vpunpckhdq",
+ "vpunpckhqdq",
+ "vpunpckldq",
+ "vpunpcklqdq",
+ "vunpckhpd",
+ "vunpckhps",
+ "vunpcklpd",
+ "vunpcklps",
+
+ "vbroadcastf32x4",
+ "vbroadcastf64x4",
+ "vbroadcasti64x4",
+ "vbroadcasti32x4",
+ "vinsertf32x4",
+ "vinserti32x4",
+ "vshuff32x4",
+ "vshuff64x2",
+ "vshufi32x4",
+ "vshufi64x2",
+ "vcompressd",
+ "vcompressq",
+ "vcompresspd",
+ "vcompressps",
+ "vexpandpd",
+ "vexpandps",
+ "vcvtpd2udq",
+ "vcvtps2udq",
+ "vcvtudq2pd",
+ "vcvtudq2ps",
+ "vcvttpd2udq",
+ "vcvttps2udq",
+ "vfixupimmpd",
+ "vfixupimmps",
+ "vcvtph2ps",
+ "vcvtps2ph",
+
+ "vfmadd132pd",
+ "vfmadd132ps",
+ "vfmadd213pd",
+ "vfmadd213ps",
+ "vfmadd231pd",
+ "vfmadd231ps",
+ "vfmaddsub132pd",
+ "vfmaddsub132ps",
+ "vfmaddsub213pd",
+ "vfmaddsub213ps",
+ "vfmaddsub231pd",
+ "vfmaddsub231ps",
+ "vfmsub132pd",
+ "vfmsub132ps",
+ "vfmsub213pd",
+ "vfmsub213ps",
+ "vfmsub231pd",
+ "vfmsub231ps",
+ "vfmsubadd132pd",
+ "vfmsubadd132ps",
+ "vfmsubadd213pd",
+ "vfmsubadd213ps",
+ "vfmsubadd231pd",
+ "vfmsubadd231ps",
+ "vfnmadd132pd",
+ "vfnmadd132ps",
+ "vfnmadd213pd",
+ "vfnmadd213ps",
+ "vfnmadd231pd",
+ "vfnmadd231ps",
+ "vfnmsub132pd",
+ "vfnmsub132ps",
+ "vfnmsub213pd",
+ "vfnmsub213ps",
+ "vfnmsub231pd",
+ "vfnmsub231ps",
+
+ "vscatterdps",
+ "vscatterdpd",
+ "vscatterqps",
+ "vscatterqpd",
+ "vgatherdpd",
+ "vgatherdps",
+ "vgatherqpd",
+ "vgatherqps",
+ "vgetexppd",
+ "vgetexpps",
+ "vgetmantpd",
+ "vgetmantps",
+ "vpblendmd",
+ "vpblendmq",
+
+ "vpermd",
+ "vpermq",
+ "vpermi2d",
+ "vpermi2q",
+ "vpermi2pd",
+ "vpermi2ps",
+ "vpermt2d",
+ "vpermt2q",
+ "vpermt2pd",
+ "vpermt2ps",
+ "vpexpandd",
+ "vpexpandq",
+ "vpgatherdd",
+ "vpgatherdq",
+ "vpgatherqd",
+ "vpgatherqq",
+ "vpscatterdd",
+ "vpscatterdq",
+ "vpscatterqd",
+ "vpscatterqq",
+ "vpmovdb",
+ "vpmovsdb",
+ "vpmovusdb",
+ "vpmovdw",
+ "vpmovsdw",
+ "vpmovusdw",
+ "vpmovqb",
+ "vpmovsqb",
+ "vpmovusqb",
+ "vpmovqd",
+ "vpmovsqd",
+ "vpmovusqd",
+ "vpmovqw",
+ "vpmovsqw",
+ "vpmovusqw",
+
+ "vpsravq",
+ "vpternlogd",
+ "vpternlogq",
+ "vptestmd",
+ "vptestmq",
+ "vptestnmd",
+ "vptestnmq",
+ "vrcp14pd",
+ "vrcp14ps",
+ "vrndscalepd",
+ "vrndscaleps",
+ "vrsqrt14pd",
+ "vrsqrt14ps",
+ "vscalefps",
+ "vscalefpd",
+ "vpabsq",
+
+ "vaddsd",
+ "vaddss",
+ "vcmpsd",
+ "vcmpss",
+ "vcomisd",
+ "vcomiss",
+ "vcvtsd2si",
+ "vcvtsd2ss",
+ "vcvtsi2ss",
+ "vcvtsi2sd",
+ "vcvtss2sd",
+ "vcvtss2si",
+ "vcvttss2si",
+ "vcvttsd2si",
+ "vdivsd",
+ "vdivss",
+ "vextractps",
+ "vinsertps",
+ "vgetmantsd",
+ "vgetmantss",
+
+ "vmovd",
+ "vmovq",
+ "vmovhlps",
+ "vmovhpd",
+ "vmovhps",
+ "vmovlhps",
+ "vmovlpd",
+ "vmovlps",
+ "vmovss",
+ "vmovsd",
+ "vsqrtss",
+ "vsqrtsd",
+ "vsubsd",
+ "vsubss",
+ "vucomisd",
+ "vucomiss",
+ "vrcp14sd",
+ "vrcp14ss",
+ "vrndscalesd",
+ "vrndscaless",
+ "vrsqrt14sd",
+ "vrsqrt14ss",
+ "vscalefss",
+ "vscalefsd",
+
+ "vinsertf64x4",
+
+ "vcvtusi2sd",
+ "vcvtusi2ss",
+ "vcvtsd2usi",
+ "vcvtss2usi",
+ "vcvttsd2usi",
+ "vcvttss2usi",
+
+ "kandw",
+ "kandnw",
+ "kmovw",
+ "knotw",
+ "korw",
+ "kortestw",
+ "kshiftlw",
+ "kshiftrw",
+ "kunpckbw",
+ "kxnorw",
+ "kxorw"
+ ],
+ "extended": [
+ "vpabsd",
+ "vpaddd",
+ "vmaxsd",
+ "vmaxss",
+ "vminsd",
+ "vminss",
+ "vmulsd",
+ "vmulss",
+
+ "vfmadd213sd",
+ "vfmadd213ss",
+ "vfmadd132sd",
+ "vfmadd132ss",
+ "vfmadd231sd",
+ "vfmadd231ss",
+ "vfmsub132sd",
+ "vfmsub132ss",
+ "vfmsub213sd",
+ "vfmsub213ss",
+ "vfmsub231sd",
+ "vfmsub231ss",
+ "vfnmsub132sd",
+ "vfnmsub132ss",
+ "vfnmsub213sd",
+ "vfnmsub213ss",
+ "vfnmsub231sd",
+ "vfnmsub231ss",
+ "vfnmadd132sd",
+ "vfnmadd132ss",
+ "vfnmadd213sd",
+ "vfnmadd213ss",
+ "vfnmadd231sd",
+ "vfnmadd231ss",
+
+ "vpmovsxbd",
+ "vpmovsxbq",
+ "vpmovsxdq",
+ "vpmovsxwd",
+ "vpmovsxwq",
+ "vpmovzxbd",
+ "vpmovzxbq",
+ "vpmovzxdq",
+ "vpmovzxwd",
+ "vpmovzxwq",
+
+ "vpmuldq",
+ "vpmulld",
+ "vpmuludq",
+ "vpshufd",
+ "vshufpd",
+ "vshufps",
+ "vsqrtpd",
+ "vsqrtps",
+
+ "vpslld",
+ "vpsllq",
+ "vpsrad",
+ "vpsrld",
+ "vpsrlq",
+ "vpsubd",
+ "vpsubq",
+ "vsubpd",
+ "vsubps",
+
+ "vpbroadcastd",
+ "vpbroadcastq",
+ "vpermilpd",
+ "vpermilps",
+ "vpermpd",
+ "vpermps",
+ "vpsllvd",
+ "vpsllvq",
+ "vpsravd",
+ "vpsrlvd",
+ "vpsrlvq"
+ ]
+ },
+ {
+ "name": "avx512_dq",
+ "new": [
+ "kandb",
+ "kandnb",
+ "kaddb",
+ "ktestb",
+ "kaddw",
+ "ktestw",
+ "kmovb",
+ "knotb",
+ "korb",
+ "kortestb",
+ "kshiftlb",
+ "kshiftrb",
+ "kxnorb",
+ "kxorb",
+ "vbroadcastf32x2",
+ "vbroadcastf64x2",
+ "vbroadcastf32x8",
+ "vbroadcasti32x8",
+ "vbroadcasti64x2",
+ "vbroadcasti32x2",
+ "vextractf32x8",
+ "vextracti32x8",
+ "vgetexpsd",
+ "vgetexpss",
+ "vxorpd",
+ "vxorps",
+ "vpextrd",
+ "vpextrq",
+ "vpinsrd",
+ "vpinsrq",
+ "vandnpd",
+ "vandnps",
+ "vandpd",
+ "vandps",
+ "vorpd",
+ "vorps",
+ "vcvttpd2qq",
+ "vcvtpd2qq",
+ "vcvttpd2uqq",
+ "vcvtpd2uqq",
+ "vcvttps2qq",
+ "vcvtps2qq",
+ "vcvttps2uqq",
+ "vcvtps2uqq",
+ "vcvtuqq2pd",
+ "vcvtuqq2ps",
+ "vextractf64x2",
+ "vextracti64x2",
+ "vfpclasspd",
+ "vfpclassps",
+ "vfpclasssd",
+ "vfpclassss",
+ "vinsertf64x2",
+ "vinsertf32x8",
+ "vinserti32x8",
+ "vinserti64x2",
+ "vpmovm2d",
+ "vpmovm2q",
+ "vpmovb2d",
+ "vpmovq2m",
+ "vrangepd",
+ "vrangeps",
+ "vrangesd",
+ "vrangess",
+ "vreducepd",
+ "vreduceps",
+ "vreducesd",
+ "vreducess"
+ ],
+ "extended": [
+ "vpaddq",
+ "vpmullq"
+ ]
+ },
+ {
+ "name": "rdseed",
+ "new": [
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "adx",
+ "new": [
+ "adcx",
+ "adox"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "avx512_ifma",
+ "new": [
+ "vpmadd52huq",
+ "vpmadd52luq"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "pcommit",
+ "new": [
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "avx512_pf",
+ "new": [
+ "vgatherpf0dpd",
+ "vgatherpf0dps",
+ "vgatherpf0qpd",
+ "vgatherpf0qps",
+ "vgatherpf1dpd",
+ "vgatherpf1dps",
+ "vgatherpf1qpd",
+ "vgatherpf1qps",
+ "vscatterpf0dpd",
+ "vscatterpf0dps",
+ "vscatterpf0qpd",
+ "vscatterpf0qps",
+ "vscatterpf1dpd",
+ "vscatterpf1dps",
+ "vscatterpf1qpd",
+ "vscatterpf1qps"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "avx512_er",
+ "new": [
+ "vexp2pd",
+ "vexp2ps",
+ "vexp2sd",
+ "vexp2ss",
+ "vrcp28pd",
+ "vrcp28ps",
+ "vrcp28sd",
+ "vrcp28ss",
+ "vrsqrt28pd",
+ "vrsqrt28ps",
+ "vrsqrt28sd",
+ "vrsqrt28ss"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "avx512_cd",
+ "new": [
+ "vpbroadcastmw2d",
+ "vpbroadcastmb2q",
+ "vpbroadcastm",
+ "vpconflictd",
+ "vpconflictq",
+ "vplzcntd",
+ "vplzcntq"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "sha",
+ "new": [
+ "sha1rnds4",
+ "sha1nexte",
+ "sha1msg1",
+ "sha1msg2",
+ "sha256rnds2",
+ "sha256msg1",
+ "sha256msg2"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "avx512_bw",
+ "new": [
+ "+avx512bw_unimplemented",
+ "kandq",
+ "kandd",
+ "kandnq",
+ "kandnd",
+ "kmovd",
+ "kmovq",
+ "knotd",
+ "knotq",
+ "kord",
+ "korq",
+ "kaddd",
+ "ktestd",
+ "kaddq",
+ "ktestq",
+ "kortestd",
+ "kortestq",
+ "kshiftld",
+ "kshiftrd",
+ "kshiftlq",
+ "kshiftrq",
+ "kunpckwd",
+ "kunpckdq",
+ "kxnord",
+ "kxnorq",
+ "kxord",
+ "kxorq",
+ "vpcmpeqb",
+ "vpcmpeqw",
+ "vpcmpgtb",
+ "vpcmpgtw",
+ "vpsubusb",
+ "vpsubusw",
+ "vpermw",
+ "vpermi2w",
+ "vpermt2w",
+ "vpsllvw",
+ "vpsravw",
+ "vpsrlvw",
+ "vpextrb",
+ "vpextrw",
+ "vpinsrb",
+ "vpinsrw",
+ "vpmulhuw",
+ "vpmulhrsw",
+ "vpaddsb",
+ "vpaddsw",
+ "vpaddusb",
+ "vpaddusw",
+ "vpalignr",
+ "vpmovd2m",
+ "vpmovq2m",
+ "vpmovwb",
+ "vdbpsadbw",
+ "vmovdqu8",
+ "vmovdqu16",
+ "vpblendmb",
+ "vpblendmw",
+ "vpcmpb",
+ "vpcmpub",
+ "vpcmpw",
+ "vpcmpuw",
+ "vpermw",
+ "vpermi2b",
+ "vpermi2w",
+ "vpmovm2b",
+ "vpmovm2w",
+ "vpmovb2m",
+ "vpmovw2m",
+ "vpmovswb",
+ "vpmovuswb",
+ "vpsllvw",
+ "vpsravw",
+ "vpsrlvw",
+ "vptestnmb",
+ "vptestnmw",
+ "vptestmb",
+ "vptestmw"
+ ],
+ "extended": [
+ "vpabsb",
+ "vpabsw",
+
+ "vpaddb",
+ "vpaddw",
+ "vpsubsb",
+ "vpsubsw",
+ "vpmaxsb",
+ "vpmaxsw",
+ "vpminsb",
+ "vpminsw",
+ "vpminub",
+ "vpminuw",
+ "vpmaddubsw",
+ "vpmaddwd",
+ "vpsadbw",
+
+ "vpslldq",
+ "vpsrldq",
+
+ "vpmovsxbw",
+ "vpmovzxbw",
+ "vpsllw",
+ "vpsraw",
+ "vpsrlw",
+ "vpsubb",
+ "vpsubw",
+
+ "vpunpckhbw",
+ "vpunpckhwd",
+ "vpunpcklbw",
+ "vpunpcklwd",
+ "vpbroadcastb",
+ "vpbroadcastw",
+ "vpermt2w",
+ "vpackssdw",
+ "vpackusdw",
+ "vpacksswb",
+ "vpackuswb",
+ "vpavgb",
+ "vpavgw",
+ "vpmulhw",
+ "vpmullw",
+ "vpshufb",
+ "vpshufhw",
+ "vpshuflw"
+ ]
+ },
+ {
+ "name": "avx512_vl",
+ "remark": "not used for opcode generation, since this only adds new modes to existing instructions",
+ "new": [
+ ],
+ "extended": [
+ "vaddpd",
+ "vaddps",
+ "vcmppd",
+ "vcmpps",
+ "vcvtdq2pd",
+ "vcvtdq2ps",
+ "vcvtpd2dq",
+ "vcvtpd2ps",
+ "vcvtps2dq",
+ "vcvtps2pd",
+ "vcvttpd2dq",
+ "vcvttps2dq",
+ "vdivpd",
+ "vdivps",
+ "vmaxpd",
+ "vmaxps",
+ "vminpd",
+ "vminps",
+ "vmovapd",
+ "vmovaps",
+ "vmovddup",
+ "vmovdqa",
+ "vmovdqu",
+ "vmovntdqa",
+ "vmovntdq",
+ "vmovntpd",
+ "vmovntps",
+ "vmovshdup",
+ "vmovsldup",
+ "vmovupd",
+ "vmovups",
+ "vmulpd",
+ "vmulps",
+ "vpandd",
+ "vpandq",
+ "vpandnd",
+ "vpandnq",
+ "vpcmpeqd",
+ "vpcmpeqq",
+ "vpcmpgtd",
+ "vpcmpgtq",
+ "vpmaxsd",
+ "vpmaxsq",
+ "vpmaxud",
+ "vpmaxud",
+ "vpminsd",
+ "vpminsq",
+ "vpminud",
+ "vpminuq",
+ "vpcmpd",
+ "vpcmpq",
+ "vpcmpud",
+ "vpcmpuq",
+
+ "vpord",
+ "vporq",
+ "vpxord",
+ "vpxorq",
+
+ "vpslld",
+ "vpsllq",
+ "vpsllw",
+ "vpsrad",
+ "vpsraq",
+ "valignd",
+ "valignq",
+ "vblendmpd",
+ "vblendmps",
+ "vprold",
+ "vprolq",
+ "vprolvd",
+ "vprolvq",
+ "vprord",
+ "vprorq",
+ "vprorvd",
+ "vprorvq",
+
+ "vpunpckhdq",
+ "vpunpckhqdq",
+ "vpunpckldq",
+ "vpunpcklqdq",
+ "vunpckhpd",
+ "vunpckhps",
+ "vunpcklpd",
+ "vunpcklps",
+
+ "vbroadcastf32x4",
+ "vbroadcastf64x4",
+ "vbroadcasti64x4",
+ "vbroadcasti32x4",
+ "vinsertf32x4",
+ "vinserti32x4",
+ "vshuff32x4",
+ "vshuff64x2",
+ "vshufi32x4",
+ "vshufi64x2",
+ "vcompressd",
+ "vcompressq",
+ "vcompresspd",
+ "vcompressps",
+ "vexpandpd",
+ "vexpandps",
+ "vcvtpd2udq",
+ "vcvtps2udq",
+ "vcvtudq2pd",
+ "vcvtudq2ps",
+ "vcvttpd2udq",
+ "vcvttps2udq",
+ "vfixupimmpd",
+ "vfixupimmps",
+ "vcvtph2ps",
+ "vcvtps2ph",
+
+ "vfmadd132pd",
+ "vfmadd132ps",
+ "vfmadd213pd",
+ "vfmadd213ps",
+ "vfmadd231pd",
+ "vfmadd231ps",
+ "vfmaddsub132pd",
+ "vfmaddsub132ps",
+ "vfmaddsub213pd",
+ "vfmaddsub213ps",
+ "vfmaddsub231pd",
+ "vfmaddsub231ps",
+ "vfmsub132pd",
+ "vfmsub132ps",
+ "vfmsub213pd",
+ "vfmsub213ps",
+ "vfmsub231pd",
+ "vfmsub231ps",
+ "vfmsubadd132pd",
+ "vfmsubadd132ps",
+ "vfmsubadd213pd",
+ "vfmsubadd213ps",
+ "vfmsubadd231pd",
+ "vfmsubadd231ps",
+ "vfnmadd132pd",
+ "vfnmadd132ps",
+ "vfnmadd213pd",
+ "vfnmadd213ps",
+ "vfnmadd231pd",
+ "vfnmadd231ps",
+ "vfnmsub132pd",
+ "vfnmsub132ps",
+ "vfnmsub213pd",
+ "vfnmsub213ps",
+ "vfnmsub231pd",
+ "vfnmsub231ps",
+
+ "vscatterdps",
+ "vscatterdpd",
+ "vscatterqps",
+ "vscatterqpd",
+ "vgatherdpd",
+ "vgatherdps",
+ "vgatherqpd",
+ "vgatherqps",
+ "vgetexppd",
+ "vgetexpps",
+ "vgetmantpd",
+ "vgetmantps",
+ "vpblendmd",
+ "vpblendmq",
+
+ "vpermd",
+ "vpermq",
+ "vpermi2d",
+ "vpermi2q",
+ "vpermi2pd",
+ "vpermi2ps",
+ "vpermt2d",
+ "vpermt2q",
+ "vpermt2pd",
+ "vpermt2ps",
+ "vpexpandd",
+ "vpexpandq",
+ "vpgatherdd",
+ "vpgatherdq",
+ "vpgatherqd",
+ "vpgatherqq",
+ "vpscatterdd",
+ "vpscatterdq",
+ "vpscatterqd",
+ "vpscatterqq",
+ "vpmovdb",
+ "vpmovsdb",
+ "vpmovusdb",
+ "vpmovdw",
+ "vpmovsdw",
+ "vpmovusdw",
+ "vpmovqb",
+ "vpmovsqb",
+ "vpmovusqb",
+ "vpmovqd",
+ "vpmovsqd",
+ "vpmovusqd",
+ "vpmovqw",
+ "vpmovsqw",
+ "vpmovusqw",
+
+ "vpsravq",
+ "vpternlogd",
+ "vpternlogq",
+ "vptestmd",
+ "vptestmq",
+ "vptestnmd",
+ "vptestnmq",
+ "vrcp14pd",
+ "vrcp14ps",
+ "vrndscalepd",
+ "vrndscaleps",
+ "vrsqrt14pd",
+ "vrsqrt14ps",
+ "vscalefps",
+ "vscalefpd",
+ "vpabsq"
+ ]
+ },
+ {
+ "name": "prefetchwt1",
+ "new": [
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "avx512_vbmi",
+ "new": [
+ "vpermt2b",
+ "vpermb"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "avx512_vbmi2",
+ "new": [
+ "vpcompressb",
+ "vpcompressw",
+ "vpshldvw",
+ "vpshldw",
+ "vpexpandb",
+ "vpexpandw",
+ "vpshrdvw",
+ "vpshrdw",
+ "vpshldvq",
+ "vpshldvd",
+ "vpshldq",
+ "vpshldd",
+ "vpshrdq",
+ "vpshrdd",
+ "vpshrdvq",
+ "vpshrdvd"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "gfni",
+ "new": [
+ "gf2p8affineqb",
+ "gf2p8affineinvqb",
+ "gf2p8mulb"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "avx512_gfni",
+ "new": [
+ "vgf2p8affineqb",
+ "vgf2p8affineinvqb",
+ "vgf2p8mulb"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "vaes",
+ "new": [
+ "vaesdec",
+ "vaesdeclast",
+ "vaesenc",
+ "vaesenclast",
+ "vaesimc",
+ "vaeskeygenassist"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "clmul",
+ "remark": "this extension is pclmulqdq in a few forms",
+ "new": [
+ "+pclmulqdq"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "pclmulqdq",
+ "new": [
+ "pclmulqdq"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "avx512_vp2intersect",
+ "new": [
+ "vp2intersectd",
+ "vp2intersectq"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "avx512_vnni",
+ "new": [
+ "vpdpbusds",
+ "vpdpbusd",
+ "vpdpwssds",
+ "vpdpwssd"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "avx512_bitalg",
+ "new": [
+ "vpopcntd",
+ "vpopcntq",
+ "vpopcntb",
+ "vpopcntw",
+ "vpshufbitqmb",
+ "vpmultishiftqb"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "avx512_vpopcntdq",
+ "new": [
+ "vpopcntd",
+ "vpopcntq"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "avx512_4vnniw",
+ "new": [
+ "vp4dpwssds",
+ "vp4dpwssd"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "avx512_4fmaps",
+ "new": [
+ "v4fnmaddss",
+ "v4fnmaddps",
+ "v4fmaddss",
+ "v4fmaddps"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "avx512_bf16",
+ "new": [
+ "vcvtne2ps2bf16",
+ "vcvtneps2bf16",
+ "vdpbf16ps"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "cx8",
+ "new": [
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "sysenter",
+ "new": [
+ "sysenter",
+ "sysexit"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "syscall",
+ "new": [
+ "syscall",
+ "sysret"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "rdtscp",
+ "new": [
+ "rdtscp"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "abm",
+ "new": [
+ "popcnt",
+ "lzcnt"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "sse4a",
+ "new": [
+ "extrq",
+ "insertq",
+ "movntsd",
+ "movntss"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "3dnowprefetch",
+ "new": [
+ "prefetchw"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "xop",
+ "new": [
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "skinit",
+ "new": [
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "tbm",
+ "new": [
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "svm",
+ "new": [
+ "clgi",
+ "stgi",
+ "skinit",
+ "vmload",
+ "vmmcall",
+ "vmsave",
+ "vmrun",
+ "invlpga"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "lahfsahf",
+ "new": [
+ "lahf",
+ "sahf"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "cmov",
+ "new": [
+ "cmova",
+ "cmovb",
+ "cmovg",
+ "cmovge",
+ "cmovl",
+ "cmovle",
+ "cmovna",
+ "cmovnb",
+ "cmovno",
+ "cmovnp",
+ "cmovns",
+ "cmovnz",
+ "cmovo",
+ "cmovp",
+ "cmovs",
+ "cmovz"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "f16c",
+ "new": [
+ "vcvtph2ps",
+ "vcvtps2ph"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "fma4",
+ "new": [
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "prefetchw",
+ "new": [
+ "+3dnowprefetch"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "tsx",
+ "new": [
+ "xabort",
+ "xbegin",
+ "xend",
+ "xtest"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "lzcnt",
+ "new": [
+ "lzcnt"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "keylocker",
+ "new": [
+ "aesdec128kl",
+ "aesdec256kl",
+ "aesdecwide128kl",
+ "aesdecwide256kl",
+ "aesenc128kl",
+ "aesenc256kl",
+ "aesencwide128kl",
+ "aesencwide256kl",
+ "encodekey128",
+ "encodekey256",
+ "loadiwkey"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "cet",
+ "new": [
+ "wruss",
+ "wrss",
+ "incssp",
+ "saveprevssp",
+ "setssbsy",
+ "clrssbsy",
+ "rstorssp",
+ "endbr64",
+ "endbr32"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "tdx",
+ "new": [
+ "tdcall",
+ "seamret",
+ "seamops",
+ "seamcall"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "waitpkg",
+ "new": [
+ "tpause",
+ "umonitor",
+ "umwait"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "uintr",
+ "new": [
+ "uiret",
+ "testui",
+ "clui",
+ "stui",
+ "senduipi"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "tsxldtrk",
+ "new": [
+ "xsusldtrk",
+ "xresldtrk"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "3dnow",
+ "new": [
+ "femms",
+ "pi2fw",
+ "pi2fd",
+ "pf2iw",
+ "pf2id",
+ "pmulhrw",
+ "pfcmpge",
+ "pfmin",
+ "pfrcp",
+ "pfrsqrt",
+ "pfsub",
+ "pfadd",
+ "pfcmpgt",
+ "pfmax",
+ "pfrcpit1",
+ "pfrsqit1",
+ "pfsubr",
+ "pfacc",
+ "pfcmpeq",
+ "pfmul",
+ "pfmulhrw",
+ "pfrcpit2",
+ "pfnacc",
+ "pfpnacc",
+ "pswapd",
+ "pavgusb",
+ "+3dnowprefetch"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "enqcmd",
+ "new": [
+ "enqcmd",
+ "enqcmds"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "invpcid",
+ "new": [
+ "invept",
+ "invvpid",
+ "invpcid"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "ptwrite",
+ "new": [
+ "ptwrite"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "x87",
+ "new": [
+ "f2xm1",
+ "fabs",
+ "fadd",
+ "faddp",
+ "fbld",
+ "fbstp",
+ "fchs",
+ "fcmovb",
+ "fcmovbe",
+ "fcmove",
+ "fcmovnb",
+ "fcmovnbe",
+ "fcmovne",
+ "fcmovnu",
+ "fcmovu",
+ "fcom",
+ "fcomi",
+ "fcomip",
+ "fcomp",
+ "fcompp",
+ "fcos",
+ "fdecstp",
+ "fdisi8087_nop",
+ "fdiv",
+ "fdivp",
+ "fdivr",
+ "fdivrp",
+ "feni8087_nop",
+ "ffree",
+ "ffreep",
+ "fiadd",
+ "ficom",
+ "ficomp",
+ "fidiv",
+ "fidivr",
+ "fild",
+ "fimul",
+ "fincstp",
+ "fist",
+ "fistp",
+ "fisttp",
+ "fisub",
+ "fisubr",
+ "fld",
+ "fld1",
+ "fldcw",
+ "fldenv",
+ "fldl2e",
+ "fldl2t",
+ "fldlg2",
+ "fldln2",
+ "fldpi",
+ "fldz",
+ "fmul",
+ "fmulp",
+ "fnclex",
+ "fninit",
+ "fnop",
+ "fnsave",
+ "fnstcw",
+ "fnstenv",
+ "fnstor",
+ "fnstsw",
+ "fpatan",
+ "fprem",
+ "fprem1",
+ "fptan",
+ "frndint",
+ "frstor",
+ "fscale",
+ "fsetpm287_nop",
+ "fsin",
+ "fsincos",
+ "fsqrt",
+ "fst",
+ "fstp",
+ "fstpnce",
+ "fsub",
+ "fsubp",
+ "fsubr",
+ "fsubrp",
+ "ftst",
+ "fucom",
+ "fucomi",
+ "fucomip",
+ "fucomp",
+ "fucompp",
+ "fxam",
+ "fxch",
+ "fxtract",
+ "fyl2x",
+ "fyl2xp1"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "snp",
+ "new": [
+ "psmash",
+ "pvalidate",
+ "rmpadjust",
+ "rmpupdate"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "fxsr",
+ "new": [
+ "fxsave",
+ "fxrstor"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "xsave",
+ "new": [
+ "+xsaveopt",
+ "xgetbv",
+ "xrstor",
+ "xrstors",
+ "xsave",
+ "xsavec",
+ "xsaves",
+ "xsetbv",
+ "+xsave64"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "xsave64",
+ "new": [
+ "xrstors64",
+ "xsavec64",
+ "xsaves64"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "rdrand",
+ "new": [
+ "rdrand"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "rdseed",
+ "new": [
+ "rdseed"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "xsaveopt",
+ "new": [
+ "xsaveopt"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "smap",
+ "new": [
+ "clac",
+ "stac"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "rdpid",
+ "new": [
+ "rdpid"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "salc",
+ "new": [
+ "salc"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "clwb",
+ "new": [
+ "clwb"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "clzero",
+ "new": [
+ "clzero"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "pconfig",
+ "new": [
+ "pconfig"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "hreset",
+ "new": [
+ "hreset"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "clflushopt",
+ "new": [
+ "clflushopt"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "pmem",
+ "new": [
+ "+clflushopt",
+ "+clwb"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "emx",
+ "new": [
+ "monitorx",
+ "mwaitx",
+ "+monitor"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "mpk",
+ "new": [
+ "rdpkru",
+ "wrpkru"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "rdpru",
+ "new": [
+ "rdpru"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "itanium",
+ "new": [
+ "jmpe"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "smx",
+ "new": [
+ "getsec"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "fsgsbase",
+ "new": [
+ "rdfsbase",
+ "rdgsbase",
+ "wrfsbase",
+ "wrgsbase"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "movdir",
+ "new": [
+ "movdiri",
+ "movdir64b"
+ ],
+ "extended": [
+ ]
+ },
+ {
+ "name": "new",
+ "vendor": "yax",
+ "remark": "misc instruction sets implementing newer features of x86, such as `syscall`, `skinit`, `svm`, `tsx`, `mpx`, and others",
+ "new": [
+ "+invpcid_unimplemented",
+ "+invpcid",
+ "+pconfig",
+ "+abm",
+ "+smap",
+ "+smx",
+ "+rdpid",
+ "+rdpru",
+ "+tsxldtrk",
+ "+waitpkg",
+ "+clwb",
+ "+uintr",
+ "+mpk",
+ "+emx",
+ "+snp",
+ "+invlpgb",
+ "+enqcmd",
+ "+cet",
+ "+tdx",
+ "+clflushopt",
+ "+fxsr",
+ "+sgx",
+ "+keylocker",
+ "+vmx",
+ "+svm",
+ "+rdrand",
+ "+rdseed",
+ "+ptwrite",
+ "+clzero",
+ "+popcnt",
+ "+movbe",
+ "+xsave",
+ "+xsave64",
+ "+mpx",
+ "+tsx",
+ "+movdir",
+ "+sysenter",
+ "+syscall",
+ "+hreset",
+ "+rdtscp"
+ ]
+ },
+ {
+ "name": "simd",
+ "vendor": "yax",
+ "remark": "SIMD extensions for x86-family architectures",
+ "new": [
+ "+3dnow",
+ "+sha",
+ "+mmx",
+ "+sse",
+ "+sse2",
+ "+sse3",
+ "+ssse3",
+ "+sse4a",
+ "+sse4_1",
+ "+sse4_2",
+ "+pclmulqdq",
+ "+avx",
+ "+avx2",
+ "+gfni",
+ "+fma3",
+ "+fma4",
+ "+bmi1",
+ "+bmi2",
+ "+aesni",
+ "+avx_unimplemented",
+ "+avx512_f",
+ "+avx512_f_typo",
+ "+avx512_vnni",
+ "+avx512_dq",
+ "+avx512_er",
+ "+avx512_ifma",
+ "+avx512_pf",
+ "+avx512_cd",
+ "+avx512_bw",
+ "+avx512_vbmi",
+ "+avx512_vbmi2",
+ "+avx512_gfni",
+ "+avx512_bitalg",
+ "+avx512_vpopcntdq",
+ "+avx512_4vnniw",
+ "+avx512_4fmaps",
+ "+avx512_bf16",
+ "+avx512_vp2intersect",
+ "+vpclmulqdq",
+ "+vaes"
+ ]
+ }
+ ],
+ "uarch": [
+ {
+ "name": "k8",
+ "vendor": "amd",
+ "sets": [
+ "64bit"
+ ]
+ },
+ {
+ "name": "k10",
+ "vendor": "amd",
+ "sets": [
+ "+k8",
+ "cmov",
+ "cmpxchg16b",
+ "svm",
+ "abm",
+ "lahfsahf",
+ "sse3",
+ "ssse3",
+ "sse4_1",
+ "sse4_2",
+ "sse4a"
+ ]
+ },
+ {
+ "name": "bulldozer",
+ "vendor": "amd",
+ "sets": [
+ "+k10",
+ "bmi1",
+ "aesni",
+ "pclmulqdq",
+ "f16c",
+ "avx",
+ "fma4",
+ "xop"
+ ]
+ },
+ {
+ "name": "piledriver",
+ "vendor": "amd",
+ "sets": [
+ "+bulldozer",
+ "tbm",
+ "fma3",
+ "fma4"
+ ]
+ },
+ {
+ "name": "steamroller",
+ "vendor": "amd",
+ "sets": [
+ "+bulldozer"
+ ]
+ },
+ {
+ "name": "excavator",
+ "vendor": "amd",
+ "sets": [
+ "+steamroller",
+ "movbe",
+ "bmi2",
+ "rdrand",
+ "avx",
+ "xop",
+ "sha",
+ "avx2"
+ ]
+ },
+ {
+ "name": "zen",
+ "vendor": "amd",
+ "sets": [
+ "+k10",
+ "avx",
+ "avx2",
+ "bmi1",
+ "bmi2",
+ "aesni",
+ "pclmulqdq",
+ "f16c",
+ "movbe",
+ "rdrand",
+ "adx",
+ "sha",
+ "rdseed",
+ "fma3",
+ "xsave",
+ "clflushopt",
+ "clzero"
+ ]
+ },
+ {
+ "name": "netburst",
+ "vendor": "intel",
+ "sets": [
+ "64bit",
+ "cmov",
+ "cmpxchg16b",
+ "sse3"
+ ]
+ },
+ {
+ "name": "core",
+ "vendor": "intel",
+ "sets": [
+ "+netburst",
+ "ssse3"
+ ]
+ },
+ {
+ "name": "penryn",
+ "vendor": "intel",
+ "sets": [
+ "+core",
+ "sse4_1"
+ ]
+ },
+ {
+ "name": "nehalem",
+ "vendor": "intel",
+ "sets": [
+ "+penryn",
+ "sse4_2",
+ "popcnt"
+ ]
+ },
+ {
+ "name": "westmere",
+ "vendor": "intel",
+ "sets": [
+ "+nehalem",
+ "aesni",
+ "pclmulqdq"
+ ]
+ },
+ {
+ "name": "sandybridge",
+ "vendor": "intel",
+ "sets": [
+ "+westmere",
+ "avx"
+ ]
+ },
+ {
+ "name": "ivybridge",
+ "vendor": "intel",
+ "sets": [
+ "+sandybridge",
+ "f16c",
+ "rdrand"
+ ]
+ },
+ {
+ "name": "haswell",
+ "vendor": "intel",
+ "sets": [
+ "+ivybridge",
+ "bmi1",
+ "bmi2",
+ "abm",
+ "fma3",
+ "avx2"
+ ]
+ },
+ {
+ "name": "haswell_ex",
+ "vendor": "intel",
+ "sets": [
+ "+haswell",
+ "tsx"
+ ]
+ },
+ {
+ "name": "broadwell",
+ "vendor": "intel",
+ "sets": [
+ "+haswell_ex",
+ "rdseed",
+ "prefetchw"
+ ]
+ },
+ {
+ "name": "skylake",
+ "vendor": "intel",
+ "sets": [
+ "+broadwell",
+ "mpx",
+ "sgx"
+ ]
+ },
+ {
+ "name": "kabylake",
+ "vendor": "intel",
+ "sets": [
+ "+skylake"
+ ]
+ },
+ {
+ "name": "tigerlake",
+ "vendor": "intel",
+ "sets": [
+ "keylocker"
+ ]
+ },
+ {
+ "name": "goldencove",
+ "vendor": "intel",
+ "sets": [
+ "/cldemote",
+ "ptwrite",
+ "hreset",
+ "avx512_vnni",
+ "avx512_f",
+ "/avx512_fp16"
+ ]
+ },
+ {
+ "name": "long_mode",
+ "vendor": "yax",
+ "remark": "pseudo-architecture describing the sum of all x86_64 instructions on various processors and architectures",
+ "sets": [
+ "+goldencove",
+ "+tigerlake",
+ "+kabylake",
+ "+skylake",
+ "+broadwell",
+ "+haswell_ex",
+ "+haswell",
+ "+ivybridge",
+ "+sandybridge",
+ "+westmere",
+ "+nehalem",
+ "+penryn",
+ "+core",
+ "+netburst",
+ "+zen",
+ "+excavator",
+ "+steamroller",
+ "+piledriver",
+ "+bulldozer",
+ "+k10",
+ "+k8",
+ "x86_64_baseline",
+ "simd",
+ "new",
+ "itanium",
+ "avx_unimplemented",
+ "avx512bw_unimplemented",
+ "invpcid_unimplemented",
+ "avx512_f__vl_unimplemented",
+ "typo_instructions"
+ ]
+ },
+ {
+ "name": "protected_mode",
+ "vendor": "yax",
+ "remark": "pseudo-architecture describing the sum of all x86_32 instructions on various processors and architectures",
+ "sets": [
+ "80186_bound",
+ "jecxz",
+ "fsgsbase",
+ "extra_instructions",
+ "pentium_pro",
+ "8086_bcd",
+ "80186_pusha",
+ "8086",
+ "x87",
+ "80186",
+ "80286",
+ "80286_arpl",
+ "80386",
+ "80486",
+ "itanium",
+ "lahfsahf",
+ "adx",
+ "simd",
+ "new"
+ ]
+ },
+ {
+ "name": "real_mode",
+ "vendor": "yax",
+ "remark": "pseudo-architecture describing the sum of all x86_16 instructions on various processors and architectures",
+ "sets": [
+ "80186_bound",
+ "jcxz",
+ "fsgsbase",
+ "extra_instructions",
+ "pentium_pro",
+ "8086_bcd",
+ "80186_pusha",
+ "8086",
+ "x87",
+ "80186",
+ "80286",
+ "80286_arpl",
+ "80386",
+ "80486",
+ "itanium",
+ "lahfsahf",
+ "adx",
+ "simd",
+ "new"
+ ]
+ },
+ {
+ "name": "x86_generic",
+ "vendor": "yax",
+ "remark": "the union of all instructions in any x86 operation mode. processor can execute all these instructions in a single execution mode, but the generalization can be useful for f.ex generic program disassembly",
+ "sets": [
+ "+real_mode",
+ "+protected_mode",
+ "+long_mode"
+ ]
+ }
+ ]
+}