diff options
Diffstat (limited to 'src/real_mode/display.rs')
-rw-r--r-- | src/real_mode/display.rs | 1478 |
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 | |