aboutsummaryrefslogtreecommitdiff
path: root/src/real_mode/display.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/real_mode/display.rs')
-rw-r--r--src/real_mode/display.rs1478
1 files changed, 7 insertions, 1471 deletions
diff --git a/src/real_mode/display.rs b/src/real_mode/display.rs
index 6f6eb74..5783d1a 100644
--- a/src/real_mode/display.rs
+++ b/src/real_mode/display.rs
@@ -345,1480 +345,10 @@ impl fmt::Display for Opcode {
}
}
-const MNEMONICS: &[&'static str] = &[
- "invalid",
- "add",
- "or",
- "adc",
- "sbb",
- "and",
- "xor",
- "sub",
- "cmp",
- "xadd",
- "bt",
- "bts",
- "btc",
- "btr",
- "bsf",
- "bsr",
- "tzcnt",
- "movss",
- "addss",
- "subss",
- "mulss",
- "divss",
- "minss",
- "maxss",
- "sqrtss",
- "movsd",
- "sqrtsd",
- "addsd",
- "subsd",
- "mulsd",
- "divsd",
- "minsd",
- "maxsd",
- "movsldup",
- "movshdup",
- "movddup",
- "haddps",
- "hsubps",
- "addsubpd",
- "addsubps",
- "cvtsi2ss",
- "cvtsi2sd",
- "cvttsd2si",
- "cvttps2dq",
- "cvtpd2dq",
- "cvtpd2ps",
- "cvtps2dq",
- "cvtsd2si",
- "cvtsd2ss",
- "cvttss2si",
- "cvtss2si",
- "cvtss2sd",
- "cvtdq2pd",
- "lddqu",
- "movzx",
- "movsx",
- "movsxd",
- "sar",
- "sal",
- "shr",
- "shrd",
- "shl",
- "rcr",
- "rcl",
- "ror",
- "rol",
- "inc",
- "dec",
- "hlt",
- "call",
- "callf",
- "jmp",
- "jmpf",
- "push",
- "pop",
- "lea",
- "nop",
- "prefetchnta",
- "prefetch0",
- "prefetch1",
- "prefetch2",
- "xchg",
- "popf",
- "int",
- "into",
- "iret",
- "iretd",
- "iretq",
- "retf",
- "enter",
- "leave",
- "mov",
- "ret",
- "pushf",
- "wait",
- "cbw",
- "cwde",
- "cdqe",
- "cwd",
- "cdq",
- "cqo",
- "lods",
- "stos",
- "lahf",
- "sahf",
- "cmps",
- "scas",
- "movs",
- "test",
- "ins",
- "in",
- "outs",
- "out",
- "imul",
- "jo",
- "jno",
- "jb",
- "jnb",
- "jz",
- "jnz",
- "ja",
- "jna",
- "js",
- "jns",
- "jp",
- "jnp",
- "jl",
- "jge",
- "jle",
- "jg",
- "cmova",
- "cmovb",
- "cmovg",
- "cmovge",
- "cmovl",
- "cmovle",
- "cmovna",
- "cmovnb",
- "cmovno",
- "cmovnp",
- "cmovns",
- "cmovnz",
- "cmovo",
- "cmovp",
- "cmovs",
- "cmovz",
- "div",
- "idiv",
- "mul",
- "neg",
- "not",
- "cmpxchg",
- "seto",
- "setno",
- "setb",
- "setae",
- "setz",
- "setnz",
- "setbe",
- "seta",
- "sets",
- "setns",
- "setp",
- "setnp",
- "setl",
- "setge",
- "setle",
- "setg",
- "cpuid",
- "ud0",
- "ud1",
- "ud2",
- "wbinvd",
- "invd",
- "sysret",
- "clts",
- "syscall",
- "lsl",
- "lar",
- "les",
- "lds",
- "sgdt",
- "sidt",
- "lgdt",
- "lidt",
- "smsw",
- "lmsw",
- "swapgs",
- "rdtscp",
- "invlpg",
- "fxsave",
- "fxrstor",
- "ldmxcsr",
- "stmxcsr",
- "xsave",
- "xrstor",
- "xsaveopt",
- "lfence",
- "mfence",
- "sfence",
- "clflush",
- "clflushopt",
- "clwb",
- "wrmsr",
- "rdtsc",
- "rdmsr",
- "rdpmc",
- "sldt",
- "str",
- "lldt",
- "ltr",
- "verr",
- "verw",
- "cmc",
- "clc",
- "stc",
- "cli",
- "sti",
- "cld",
- "std",
- "jmpe",
- "popcnt",
- "movdqu",
- "movdqa",
- "movq",
- "cmpss",
- "cmpsd",
- "unpcklps",
- "unpcklpd",
- "unpckhps",
- "unpckhpd",
- "pshufhw",
- "pshuflw",
- "movups",
- "movq2dq",
- "movdq2q",
- "rsqrtss",
- "rcpss",
- "andn",
- "bextr",
- "blsi",
- "blsmsk",
- "blsr",
- "vmclear",
- "vmxon",
- "vmcall",
- "vmlaunch",
- "vmresume",
- "vmxoff",
- "pconfig",
- "monitor",
- "mwait",
- "monitorx",
- "mwaitx",
- "clac",
- "stac",
- "encls",
- "enclv",
- "xgetbv",
- "xsetbv",
- "vmfunc",
- "xabort",
- "xbegin",
- "xend",
- "xtest",
- "enclu",
- "rdpkru",
- "wrpkru",
- "rdpru",
- "clzero",
- "rdseed",
- "rdrand",
- "addps",
- "addpd",
- "andnps",
- "andnpd",
- "andps",
- "andpd",
- "bswap",
- "cmppd",
- "cmpps",
- "comisd",
- "comiss",
- "cvtdq2ps",
- "cvtpi2ps",
- "cvtpi2pd",
- "cvtps2pd",
- "cvtps2pi",
- "cvtpd2pi",
- "cvttps2pi",
- "cvttpd2pi",
- "cvttpd2dq",
- "divps",
- "divpd",
- "emms",
- "getsec",
- "lfs",
- "lgs",
- "lss",
- "maskmovq",
- "maskmovdqu",
- "maxps",
- "maxpd",
- "minps",
- "minpd",
- "movaps",
- "movapd",
- "movd",
- "movlps",
- "movlpd",
- "movhps",
- "movhpd",
- "movlhps",
- "movhlps",
- "movupd",
- "movmskps",
- "movmskpd",
- "movnti",
- "movntps",
- "movntpd",
- "extrq",
- "insertq",
- "movntss",
- "movntsd",
- "movntq",
- "movntdq",
- "mulps",
- "mulpd",
- "orps",
- "orpd",
- "packssdw",
- "packsswb",
- "packuswb",
- "paddb",
- "paddd",
- "paddq",
- "paddsb",
- "paddsw",
- "paddusb",
- "paddusw",
- "paddw",
- "pand",
- "pandn",
- "pavgb",
- "pavgw",
- "pcmpeqb",
- "pcmpeqd",
- "pcmpeqw",
- "pcmpgtb",
- "pcmpgtd",
- "pcmpgtw",
- "pinsrw",
- "pmaddwd",
- "pmaxsw",
- "pmaxub",
- "pminsw",
- "pminub",
- "pmovmskb",
- "pmulhuw",
- "pmulhw",
- "pmullw",
- "pmuludq",
- "por",
- "psadbw",
- "pshufw",
- "pshufd",
- "pslld",
- "pslldq",
- "psllq",
- "psllw",
- "psrad",
- "psraw",
- "psrld",
- "psrldq",
- "psrlq",
- "psrlw",
- "psubb",
- "psubd",
- "psubq",
- "psubsb",
- "psubsw",
- "psubusb",
- "psubusw",
- "psubw",
- "punpckhbw",
- "punpckhdq",
- "punpckhwd",
- "punpcklbw",
- "punpckldq",
- "punpcklwd",
- "punpcklqdq",
- "punpckhqdq",
- "pxor",
- "rcpps",
- "rsm",
- "rsqrtps",
- "shld",
- "shufpd",
- "shufps",
- "slhd",
- "sqrtps",
- "sqrtpd",
- "subps",
- "subpd",
- "sysenter",
- "sysexit",
- "ucomisd",
- "ucomiss",
- "vmread",
- "vmwrite",
- "xorps",
- "xorpd",
- "vmovddup",
- "vpshuflw",
- "vpshufhw",
- "vhaddps",
- "vhsubps",
- "vaddsubps",
- "vcvtpd2dq",
- "vlddqu",
- "vcomisd",
- "vcomiss",
- "vucomisd",
- "vucomiss",
- "vaddpd",
- "vaddps",
- "vaddsd",
- "vaddss",
- "vaddsubpd",
- "vaesdec",
- "vaesdeclast",
- "vaesenc",
- "vaesenclast",
- "vaesimc",
- "vaeskeygenassist",
- "vblendpd",
- "vblendps",
- "vblendvpd",
- "vblendvps",
- "vbroadcastf128",
- "vbroadcasti128",
- "vbroadcastsd",
- "vbroadcastss",
- "vcmpsd",
- "vcmpss",
- "vcmppd",
- "vcmpps",
- "vcvtdq2pd",
- "vcvtdq2ps",
- "vcvtpd2ps",
- "vcvtph2ps",
- "vcvtps2dq",
- "vcvtps2pd",
- "vcvtss2sd",
- "vcvtsi2ss",
- "vcvtsi2sd",
- "vcvtsd2si",
- "vcvtsd2ss",
- "vcvtps2ph",
- "vcvtss2si",
- "vcvttpd2dq",
- "vcvttps2dq",
- "vcvttss2si",
- "vcvttsd2si",
- "vdivpd",
- "vdivps",
- "vdivsd",
- "vdivss",
- "vdppd",
- "vdpps",
- "vextractf128",
- "vextracti128",
- "vextractps",
- "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",
- "vgatherdpd",
- "vgatherdps",
- "vgatherqpd",
- "vgatherqps",
- "vhaddpd",
- "vhsubpd",
- "vinsertf128",
- "vinserti128",
- "vinsertps",
- "vmaskmovdqu",
- "vmaskmovpd",
- "vmaskmovps",
- "vmaxpd",
- "vmaxps",
- "vmaxsd",
- "vmaxss",
- "vminpd",
- "vminps",
- "vminsd",
- "vminss",
- "vmovapd",
- "vmovaps",
- "vmovd",
- "vmovdqa",
- "vmovdqu",
- "vmovhlps",
- "vmovhpd",
- "vmovhps",
- "vmovlhps",
- "vmovlpd",
- "vmovlps",
- "vmovmskpd",
- "vmovmskps",
- "vmovntdq",
- "vmovntdqa",
- "vmovntpd",
- "vmovntps",
- "vmovq",
- "vmovss",
- "vmovsd",
- "vmovshdup",
- "vmovsldup",
- "vmovupd",
- "vmovups",
- "vmpsadbw",
- "vmulpd",
- "vmulps",
- "vmulsd",
- "vmulss",
- "vpabsb",
- "vpabsd",
- "vpabsw",
- "vpackssdw",
- "vpackusdw",
- "vpacksswb",
- "vpackuswb",
- "vpaddb",
- "vpaddd",
- "vpaddq",
- "vpaddsb",
- "vpaddsw",
- "vpaddusb",
- "vpaddusw",
- "vpaddw",
- "vpalignr",
- "vandpd",
- "vandps",
- "vorpd",
- "vorps",
- "vandnpd",
- "vandnps",
- "vpand",
- "vpandn",
- "vpavgb",
- "vpavgw",
- "vpblendd",
- "vpblendvb",
- "vpblendw",
- "vpbroadcastb",
- "vpbroadcastd",
- "vpbroadcastq",
- "vpbroadcastw",
- "vpclmulqdq",
- "vpcmpeqb",
- "vpcmpeqd",
- "vpcmpeqq",
- "vpcmpeqw",
- "vpcmpgtb",
- "vpcmpgtd",
- "vpcmpgtq",
- "vpcmpgtw",
- "vpcmpestri",
- "vpcmpestrm",
- "vpcmpistri",
- "vpcmpistrm",
- "vperm2f128",
- "vperm2i128",
- "vpermd",
- "vpermilpd",
- "vpermilps",
- "vpermpd",
- "vpermps",
- "vpermq",
- "vpextrb",
- "vpextrd",
- "vpextrq",
- "vpextrw",
- "vpgatherdd",
- "vpgatherdq",
- "vpgatherqd",
- "vpgatherqq",
- "vphaddd",
- "vphaddsw",
- "vphaddw",
- "vpmaddubsw",
- "vphminposuw",
- "vphsubd",
- "vphsubsw",
- "vphsubw",
- "vpinsrb",
- "vpinsrd",
- "vpinsrq",
- "vpinsrw",
- "vpmaddwd",
- "vpmaskmovd",
- "vpmaskmovq",
- "vpmaxsb",
- "vpmaxsd",
- "vpmaxsw",
- "vpmaxub",
- "vpmaxuw",
- "vpmaxud",
- "vpminsb",
- "vpminsw",
- "vpminsd",
- "vpminub",
- "vpminuw",
- "vpminud",
- "vpmovmskb",
- "vpmovsxbd",
- "vpmovsxbq",
- "vpmovsxbw",
- "vpmovsxdq",
- "vpmovsxwd",
- "vpmovsxwq",
- "vpmovzxbd",
- "vpmovzxbq",
- "vpmovzxbw",
- "vpmovzxdq",
- "vpmovzxwd",
- "vpmovzxwq",
- "vpmuldq",
- "vpmulhrsw",
- "vpmulhuw",
- "vpmulhw",
- "vpmullq",
- "vpmulld",
- "vpmullw",
- "vpmuludq",
- "vpor",
- "vpsadbw",
- "vpshufb",
- "vpshufd",
- "vpsignb",
- "vpsignd",
- "vpsignw",
- "vpslld",
- "vpslldq",
- "vpsllq",
- "vpsllvd",
- "vpsllvq",
- "vpsllw",
- "vpsrad",
- "vpsravd",
- "vpsraw",
- "vpsrld",
- "vpsrldq",
- "vpsrlq",
- "vpsrlvd",
- "vpsrlvq",
- "vpsrlw",
- "vpsubb",
- "vpsubd",
- "vpsubq",
- "vpsubsb",
- "vpsubsw",
- "vpsubusb",
- "vpsubusw",
- "vpsubw",
- "vptest",
- "vpunpckhbw",
- "vpunpckhdq",
- "vpunpckhqdq",
- "vpunpckhwd",
- "vpunpcklbw",
- "vpunpckldq",
- "vpunpcklqdq",
- "vpunpcklwd",
- "vpxor",
- "vrcpps",
- "vroundpd",
- "vroundps",
- "vroundsd",
- "vroundss",
- "vrsqrtps",
- "vrsqrtss",
- "vrcpss",
- "vshufpd",
- "vshufps",
- "vsqrtpd",
- "vsqrtps",
- "vsqrtss",
- "vsqrtsd",
- "vsubpd",
- "vsubps",
- "vsubsd",
- "vsubss",
- "vtestpd",
- "vtestps",
- "vunpckhpd",
- "vunpckhps",
- "vunpcklpd",
- "vunpcklps",
- "vxorpd",
- "vxorps",
- "vzeroupper",
- "vzeroall",
- "vldmxcsr",
- "vstmxcsr",
- "pclmulqdq",
- "aeskeygenassist",
- "aesimc",
- "aesenc",
- "aesenclast",
- "aesdec",
- "aesdeclast",
- "pcmpgtq",
- "pcmpistrm",
- "pcmpistri",
- "pcmpestri",
- "packusdw",
- "pcmpestrm",
- "pcmpeqq",
- "ptest",
- "phminposuw",
- "dpps",
- "dppd",
- "mpsadbw",
- "pmovzxdq",
- "pmovsxdq",
- "pmovzxbd",
- "pmovsxbd",
- "pmovzxwq",
- "pmovsxwq",
- "pmovzxbq",
- "pmovsxbq",
- "pmovsxwd",
- "pmovzxwd",
- "pextrq",
- "pextrd",
- "pextrw",
- "pextrb",
- "pmovsxbw",
- "pmovzxbw",
- "pinsrq",
- "pinsrd",
- "pinsrb",
- "extractps",
- "insertps",
- "roundss",
- "roundsd",
- "roundps",
- "roundpd",
- "pmaxsb",
- "pmaxsd",
- "pmaxuw",
- "pmaxud",
- "pminsd",
- "pminsb",
- "pminud",
- "pminuw",
- "blendw",
- "pblendvb",
- "pblendw",
- "blendvps",
- "blendvpd",
- "blendps",
- "blendpd",
- "pmuldq",
- "movntdqa",
- "pmulld",
- "palignr",
- "psignw",
- "psignd",
- "psignb",
- "pshufb",
- "pmulhrsw",
- "pmaddubsw",
- "pabsd",
- "pabsw",
- "pabsb",
- "phsubsw",
- "phsubw",
- "phsubd",
- "phaddd",
- "phaddsw",
- "phaddw",
- "hsubpd",
- "haddpd",
- "sha1rnds4",
- "sha1nexte",
- "sha1msg1",
- "sha1msg2",
- "sha256rnds2",
- "sha256msg1",
- "sha256msg2",
- "lzcnt",
- "clgi",
- "stgi",
- "skinit",
- "vmload",
- "vmmcall",
- "vmsave",
- "vmrun",
- "invlpga",
- "invlpgb",
- "tlbsync",
- "movbe",
- "adcx",
- "adox",
- "prefetchw",
- "rdpid",
- "cmpxchg8b",
- "cmpxchg16b",
- "vmptrld",
- "vmptrst",
- "bzhi",
- "mulx",
- "shlx",
- "shrx",
- "sarx",
- "pdep",
- "pext",
- "rorx",
- "xrstors",
- "xrstors64",
- "xsavec",
- "xsavec64",
- "xsaves",
- "xsaves64",
- "rdfsbase",
- "rdgsbase",
- "wrfsbase",
- "wrgsbase",
- "crc32",
- "salc",
- "xlat",
-
- "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",
- "loopnz",
- "loopz",
- "loop",
- "jcxz",
- "pusha",
- "popa",
- "bound",
- "arpl",
- "aas",
- "aaa",
- "das",
- "daa",
- "aam",
- "aad",
- "movdir64b",
- "movdiri",
- "aesdec128kl",
- "aesdec256kl",
- "aesdecwide128kl",
- "aesdecwide256kl",
- "aesenc128kl",
- "aesenc256kl",
- "aesencwide128kl",
- "aesencwide256kl",
- "encodekey128",
- "encodekey256",
- "loadiwkey",
-
- // unsure
- "hreset",
-
- // 3dnow
- "femms",
- "pi2fw",
- "pi2fd",
- "pi2iw",
- "pi2id",
- "pmulhrw",
- "pfcmpge",
- "pfmin",
- "pfrcp",
- "pfrsqrt",
- "pfsub",
- "pfadd",
- "pfcmpgt",
- "pfmax",
- "pfrcpit1",
- "pfrsqit1",
- "pfsubr",
- "pfacc",
- "pfcmpeq",
- "pfmul",
- "pfmulhrw",
- "pfrcpit2",
- "pfnacc",
- "pfpnacc",
- "pswapd",
- "pavgusb",
-
- // ENQCMD
- "enqcmd",
- "enqcmds",
-
- // INVPCID,
- "invept",
- "invvpid",
- "invpcid",
-
- // PTWRITE
- "ptwrite",
-
- // GFNI
- "gf2p8affineqb",
- "gf2p8affineinvqb",
- "gf2p8mulb",
-
- // CET
- "wruss",
- "wrss",
- "incssp",
- "saveprevssp",
- "setssbsy",
- "clrssbsy",
- "rstorssp",
- "endbr64",
- "endbr32",
-
- // TDX
- "tdcall",
- "seamret",
- "seamops",
- "seamcall",
-
- // WAITPKG
- "tpause",
- "umonitor",
- "umwait",
-
- // UINTR
- "uiret",
- "testui",
- "clui",
- "stui",
- "senduipi",
-
- // TSXLDTRK
- "xsusldtrk",
- "xresldtrk",
-
- // AVX512F
- "valignd",
- "valignq",
- "vblendmpd",
- "vblendmps",
- "vcompresspd",
- "vcompressps",
- "vcvtpd2udq",
- "vcvttpd2udq",
- "vcvtps2udq",
- "vcvttps2udq",
- "vcvtqq2pd",
- "vcvtqq2ps",
- "vcvtsd2usi",
- "vcvttsd2usi",
- "vcvtss2usi",
- "vcvttss2usi",
- "vcvtudq2pd",
- "vcvtudq2ps",
- "vcvtusi2usd",
- "vcvtusi2uss",
- "vexpandpd",
- "vexpandps",
- "vextractf32x4",
- "vextractf64x4",
- "vextracti32x4",
- "vextracti64x4",
- "vfixupimmpd",
- "vfixupimmps",
- "vfixupimmsd",
- "vfixupimmss",
- "vgetexppd",
- "vgetexpps",
- "vgetexpsd",
- "vgetexpss",
- "vgetmantpd",
- "vgetmantps",
- "vgetmantsd",
- "vgetmantss",
- "vinsertf32x4",
- "vinsertf64x4",
- "vinserti64x4",
- "vmovdqa32",
- "vmovdqa64",
- "vmovdqu32",
- "vmovdqu64",
- "vpblendmd",
- "vpblendmq",
- "vpcmpd",
- "vpcmpud",
- "vpcmpq",
- "vpcmpuq",
- "vpcompressq",
- "vpcompressd",
- "vpermi2d",
- "vpermi2q",
- "vpermi2pd",
- "vpermi2ps",
- "vpermt2d",
- "vpermt2q",
- "vpermt2pd",
- "vpermt2ps",
- "vpmaxsq",
- "vpmaxuq",
- "vpminsq",
- "vpminuq",
- "vpmovsqb",
- "vpmovusqb",
- "vpmovsqw",
- "vpmovusqw",
- "vpmovsqd",
- "vpmovusqd",
- "vpmovsdb",
- "vpmovusdb",
- "vpmovsdw",
- "vpmovusdw",
- "vprold",
- "vprolq",
- "vprolvd",
- "vprolvq",
- "vprord",
- "vprorq",
- "vprorrd",
- "vprorrq",
- "vpscatterdd",
- "vpscatterdq",
- "vpscatterqd",
- "vpscatterqq",
- "vpsraq",
- "vpsravq",
- "vptestnmd",
- "vptestnmq",
- "vpternlogd",
- "vpternlogq",
- "vptestmd",
- "vptestmq",
- "vrcp14pd",
- "vrcp14ps",
- "vrcp14sd",
- "vrcp14ss",
- "vrndscalepd",
- "vrndscaleps",
- "vrndscalesd",
- "vrndscaless",
- "vrsqrt14pd",
- "vrsqrt14ps",
- "vrsqrt14sd",
- "vrsqrt14ss",
- "vscaledpd",
- "vscaledps",
- "vscaledsd",
- "vscaledss",
- "vscatterdd",
- "vscatterdq",
- "vscatterqd",
- "vscatterqq",
- "vshuff32x4",
- "vshuff64x2",
- "vshufi32x4",
- "vshufi64x2",
-
- // AVX512DQ
- "vcvttpd2qq",
- "vcvtpd2qq",
- "vcvttpd2uqq",
- "vcvtpd2uqq",
- "vcvttps2qq",
- "vcvtps2qq",
- "vcvttps2uqq",
- "vcvtps2uqq",
- "vcvtuqq2pd",
- "vcvtuqq2ps",
- "vextractf64x2",
- "vextracti64x2",
- "vfpclasspd",
- "vfpclassps",
- "vfpclasssd",
- "vfpclassss",
- "vinsertf64x2",
- "vinserti64x2",
- "vpmovm2d",
- "vpmovm2q",
- "vpmovb2d",
- "vpmovq2m",
- "vrangepd",
- "vrangeps",
- "vrangesd",
- "vrangess",
- "vreducepd",
- "vreduceps",
- "vreducesd",
- "vreducess",
-
- // AVX512BW
- "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",
-
- // AVX512CD
- "vpbroadcastm",
- "vpconflictd",
- "vpconflictq",
- "vplzcntd",
- "vplzcntq",
-
- "kunpckbw",
- "kunpckwd",
- "kunpckdq",
-
- "kaddb",
- "kandb",
- "kandnb",
- "kmovb",
- "knotb",
- "korb",
- "kortestb",
- "kshiftlb",
- "kshiftrb",
- "ktestb",
- "kxnorb",
- "kxorb",
- "kaddw",
- "kandw",
- "kandnw",
- "kmovw",
- "knotw",
- "korw",
- "kortestw",
- "kshiftlw",
- "kshiftrw",
- "ktestw",
- "kxnorw",
- "kxorw",
- "kaddd",
- "kandd",
- "kandnd",
- "kmovd",
- "knotd",
- "kord",
- "kortestd",
- "kshiftld",
- "kshiftrd",
- "ktestd",
- "kxnord",
- "kxord",
- "kaddq",
- "kandq",
- "kandnq",
- "kmovq",
- "knotq",
- "korq",
- "kortestq",
- "kshiftlq",
- "kshiftrq",
- "ktestq",
- "kxnorq",
- "kxorq",
-
- // AVX512ER
- "vexp2pd",
- "vexp2ps",
- "vexp2sd",
- "vexp2ss",
- "vrcp28pd",
- "vrcp28ps",
- "vrcp28sd",
- "vrcp28ss",
- "vrsqrt28pd",
- "vrsqrt28ps",
- "vrsqrt28sd",
- "vrsqrt28ss",
-
- // AVX512PF
- "vgatherpf0dpd",
- "vgatherpf0dps",
- "vgatherpf0qpd",
- "vgatherpf0qps",
- "vgatherpf1dpd",
- "vgatherpf1dps",
- "vgatherpf1qpd",
- "vgatherpf1qps",
- "vscatterpf0dpd",
- "vscatterpf0dps",
- "vscatterpf0qpd",
- "vscatterpf0qps",
- "vscatterpf1dpd",
- "vscatterpf1dps",
- "vscatterpf1qpd",
- "vscatterpf1qps",
-
- // MPX
- "bndmk",
- "bndcl",
- "bndcu",
- "bndcn",
- "bndmov",
- "bndldx",
- "bndstx",
-
-
-
- "vgf2p8affineqb",
- "vgf2p8affineinvqb",
- "vpshrdq",
- "vpshrdd",
- "vpshrdw",
- "vpshldq",
- "vpshldd",
- "vpshldw",
- "vbroadcastf32x8",
- "vbroadcastf64x4",
- "vbroadcastf32x4",
- "vbroadcastf64x2",
- "vbroadcastf32x2",
- "vbroadcasti32x8",
- "vbroadcasti64x4",
- "vbroadcasti32x4",
- "vbroadcasti64x2",
- "vbroadcasti32x2",
- "vextracti32x8",
- "vextractf32x8",
- "vinserti32x8",
- "vinsertf32x8",
- "vinserti32x4",
- "v4fnmaddss",
- "v4fnmaddps",
- "vcvtneps2bf16",
- "v4fmaddss",
- "v4fmaddps",
- "vcvtne2ps2bf16",
- "vp2intersectd",
- "vp2intersectq",
- "vp4dpwssds",
- "vp4dpwssd",
- "vpdpwssds",
- "vpdpwssd",
- "vpdpbusds",
- "vdpbf16ps",
- "vpbroadcastmw2d",
- "vpbroadcastmb2q",
- "vpmovd2m",
- "vpmovqd",
- "vpmovwb",
- "vpmovdb",
- "vpmovdw",
- "vpmovqb",
- "vpmovqw",
- "vgf2p8mulb",
- "vpmadd52huq",
- "vpmadd52luq",
- "vpshufbitqmb",
- "vpermb",
- "vpexpandd",
- "vpexpandq",
- "vpabsq",
- "vprorvd",
- "vprorvq",
- "vpmultishiftqb",
- "vpermt2b",
- "vpermt2w",
- "vpshrdvq",
- "vpshrdvd",
- "vpshrdvw",
- "vpshldvq",
- "vpshldvd",
- "vpshldvw",
- "vpcompressb",
- "vpcompressw",
- "vpexpandb",
- "vpexpandw",
- "vpopcntd",
- "vpopcntq",
- "vpopcntb",
- "vpopcntw",
- "vscalefss",
- "vscalefsd",
- "vscalefps",
- "vscalefpd",
- "vpdpbusd",
- "vcvtusi2sd",
- "vcvtusi2ss",
- "vpxord",
- "vpxorq",
- "vpord",
- "vporq",
- "vpandnd",
- "vpandnq",
- "vpandd",
- "vpandq",
- "psmash",
- "pvalidate",
- "rmpadjust",
- "rmpupdate",
-];
-
impl Opcode {
fn name(&self) -> &'static str {
unsafe {
- MNEMONICS.get_kinda_unchecked(*self as usize)
+ crate::generated::opcode::MNEMONICS.get_kinda_unchecked(*self as usize)
}
}
}
@@ -2523,6 +1053,10 @@ impl <T: fmt::Write, Y: YaxColors> Colorize<T, Y> for Opcode {
Opcode::VSCATTERDQ |
Opcode::VSCATTERQD |
Opcode::VSCATTERQQ |
+ Opcode::VSCATTERDPS |
+ Opcode::VSCATTERDPD |
+ Opcode::VSCATTERQPS |
+ Opcode::VSCATTERQPD |
Opcode::VPSCATTERDD |
Opcode::VPSCATTERDQ |
Opcode::VPSCATTERQD |
@@ -2711,6 +1245,8 @@ impl <T: fmt::Write, Y: YaxColors> Colorize<T, Y> for Opcode {
Opcode::VPINSRW |
Opcode::VPMASKMOVD |
Opcode::VPMASKMOVQ |
+ Opcode::VCOMPRESSD |
+ Opcode::VCOMPRESSQ |
Opcode::VCOMPRESSPD |
Opcode::VCOMPRESSPS |
Opcode::VPCOMPRESSQ |