1
0
mirror of https://github.com/bitdefender/bddisasm.git synced 2024-12-22 22:18:09 +00:00

rsbddisasm: Update bindings

This commit is contained in:
Ionel-Cristinel ANICHITEI 2022-10-04 13:17:54 +03:00
parent 9ba1e6a2f9
commit 22d7c14c51
6 changed files with 113 additions and 3 deletions

View File

@ -1,6 +1,6 @@
[package] [package]
name = "bddisasm-sys" name = "bddisasm-sys"
version = "0.2.0" version = "0.2.1"
authors = ["Cristi Anichitei <ianichitei@bitdefender.com>"] authors = ["Cristi Anichitei <ianichitei@bitdefender.com>"]
edition = "2018" edition = "2018"
links = "bddisasm" links = "bddisasm"

View File

@ -1,5 +1,11 @@
# bddisasm changelog # bddisasm changelog
## 0.2.1
### Added
- support for new Intel instructions, per Intel ISA extensions document #319433-046 (September 2022): `PREFETCHITI`, `RAO-INT`, `CMPCCXADD`, `WRMSRNS`, `MSRLIST`, `AMX-FP16`, `AVX-IFMA`, `AVX-NE-CONVERT`, `AVX-VNNI-INT8`
## 0.2.0 ## 0.2.0
### Added ### Added

View File

@ -1,6 +1,6 @@
[package] [package]
name = "bddisasm" name = "bddisasm"
version = "0.2.0" version = "0.2.1"
authors = ["Cristi Anichitei <ianichitei@bitdefender.com>"] authors = ["Cristi Anichitei <ianichitei@bitdefender.com>"]
edition = "2018" edition = "2018"
license = "Apache-2.0" license = "Apache-2.0"
@ -14,7 +14,7 @@ categories = ["api-bindings", "hardware-support"]
keywords = ["disassembler", "decoder", "x86", "amd64", "x86_64"] keywords = ["disassembler", "decoder", "x86", "amd64", "x86_64"]
[dependencies] [dependencies]
bddisasm-sys = { version = "0.2.0", path = "../bddisasm-sys" } bddisasm-sys = { version = "0.2.1", path = "../bddisasm-sys" }
[features] [features]
std = [] std = []

View File

@ -23,7 +23,10 @@ pub enum Category {
Avx512fp16, Avx512fp16,
Avx512vbmi, Avx512vbmi,
Avx512vp2intersect, Avx512vp2intersect,
Avxifma,
Avxneconvert,
Avxvnni, Avxvnni,
Avxvnniint8,
Bitbyte, Bitbyte,
Blend, Blend,
Bmi1, Bmi1,
@ -33,6 +36,7 @@ pub enum Category {
Cet, Cet,
Cldemote, Cldemote,
Cmov, Cmov,
Cmpccxadd,
Compress, Compress,
CondBr, CondBr,
Conflict, Conflict,
@ -74,6 +78,7 @@ pub enum Category {
Prefetch, Prefetch,
Ptwrite, Ptwrite,
Push, Push,
Raoint,
Rdpid, Rdpid,
Rdrand, Rdrand,
Rdseed, Rdseed,
@ -136,7 +141,10 @@ impl TryFrom<ffi::ND_INS_CATEGORY> for Category {
ffi::_ND_INS_TYPE::ND_CAT_AVX512FP16 => Ok(Category::Avx512fp16), ffi::_ND_INS_TYPE::ND_CAT_AVX512FP16 => Ok(Category::Avx512fp16),
ffi::_ND_INS_TYPE::ND_CAT_AVX512VBMI => Ok(Category::Avx512vbmi), ffi::_ND_INS_TYPE::ND_CAT_AVX512VBMI => Ok(Category::Avx512vbmi),
ffi::_ND_INS_TYPE::ND_CAT_AVX512VP2INTERSECT => Ok(Category::Avx512vp2intersect), ffi::_ND_INS_TYPE::ND_CAT_AVX512VP2INTERSECT => Ok(Category::Avx512vp2intersect),
ffi::_ND_INS_TYPE::ND_CAT_AVXIFMA => Ok(Category::Avxifma),
ffi::_ND_INS_TYPE::ND_CAT_AVXNECONVERT => Ok(Category::Avxneconvert),
ffi::_ND_INS_TYPE::ND_CAT_AVXVNNI => Ok(Category::Avxvnni), ffi::_ND_INS_TYPE::ND_CAT_AVXVNNI => Ok(Category::Avxvnni),
ffi::_ND_INS_TYPE::ND_CAT_AVXVNNIINT8 => Ok(Category::Avxvnniint8),
ffi::_ND_INS_TYPE::ND_CAT_BITBYTE => Ok(Category::Bitbyte), ffi::_ND_INS_TYPE::ND_CAT_BITBYTE => Ok(Category::Bitbyte),
ffi::_ND_INS_TYPE::ND_CAT_BLEND => Ok(Category::Blend), ffi::_ND_INS_TYPE::ND_CAT_BLEND => Ok(Category::Blend),
ffi::_ND_INS_TYPE::ND_CAT_BMI1 => Ok(Category::Bmi1), ffi::_ND_INS_TYPE::ND_CAT_BMI1 => Ok(Category::Bmi1),
@ -146,6 +154,7 @@ impl TryFrom<ffi::ND_INS_CATEGORY> for Category {
ffi::_ND_INS_TYPE::ND_CAT_CET => Ok(Category::Cet), ffi::_ND_INS_TYPE::ND_CAT_CET => Ok(Category::Cet),
ffi::_ND_INS_TYPE::ND_CAT_CLDEMOTE => Ok(Category::Cldemote), ffi::_ND_INS_TYPE::ND_CAT_CLDEMOTE => Ok(Category::Cldemote),
ffi::_ND_INS_TYPE::ND_CAT_CMOV => Ok(Category::Cmov), ffi::_ND_INS_TYPE::ND_CAT_CMOV => Ok(Category::Cmov),
ffi::_ND_INS_TYPE::ND_CAT_CMPCCXADD => Ok(Category::Cmpccxadd),
ffi::_ND_INS_TYPE::ND_CAT_COMPRESS => Ok(Category::Compress), ffi::_ND_INS_TYPE::ND_CAT_COMPRESS => Ok(Category::Compress),
ffi::_ND_INS_TYPE::ND_CAT_COND_BR => Ok(Category::CondBr), ffi::_ND_INS_TYPE::ND_CAT_COND_BR => Ok(Category::CondBr),
ffi::_ND_INS_TYPE::ND_CAT_CONFLICT => Ok(Category::Conflict), ffi::_ND_INS_TYPE::ND_CAT_CONFLICT => Ok(Category::Conflict),
@ -186,6 +195,7 @@ impl TryFrom<ffi::ND_INS_CATEGORY> for Category {
ffi::_ND_INS_TYPE::ND_CAT_PREFETCH => Ok(Category::Prefetch), ffi::_ND_INS_TYPE::ND_CAT_PREFETCH => Ok(Category::Prefetch),
ffi::_ND_INS_TYPE::ND_CAT_PTWRITE => Ok(Category::Ptwrite), ffi::_ND_INS_TYPE::ND_CAT_PTWRITE => Ok(Category::Ptwrite),
ffi::_ND_INS_TYPE::ND_CAT_PUSH => Ok(Category::Push), ffi::_ND_INS_TYPE::ND_CAT_PUSH => Ok(Category::Push),
ffi::_ND_INS_TYPE::ND_CAT_RAOINT => Ok(Category::Raoint),
ffi::_ND_INS_TYPE::ND_CAT_RDPID => Ok(Category::Rdpid), ffi::_ND_INS_TYPE::ND_CAT_RDPID => Ok(Category::Rdpid),
ffi::_ND_INS_TYPE::ND_CAT_RDRAND => Ok(Category::Rdrand), ffi::_ND_INS_TYPE::ND_CAT_RDRAND => Ok(Category::Rdrand),
ffi::_ND_INS_TYPE::ND_CAT_RDSEED => Ok(Category::Rdseed), ffi::_ND_INS_TYPE::ND_CAT_RDSEED => Ok(Category::Rdseed),

View File

@ -15,6 +15,7 @@ pub enum IsaSet {
Aes, Aes,
Amd, Amd,
Amxbf16, Amxbf16,
Amxfp16,
Amxint8, Amxint8,
Amxtile, Amxtile,
Avx, Avx,
@ -37,7 +38,10 @@ pub enum IsaSet {
Avx512vnni, Avx512vnni,
Avx512vp2intersect, Avx512vp2intersect,
Avx512vpopcntdq, Avx512vpopcntdq,
Avxifma,
Avxneconvert,
Avxvnni, Avxvnni,
Avxvnniint8,
Bmi1, Bmi1,
Bmi2, Bmi2,
CetIbt, CetIbt,
@ -47,6 +51,7 @@ pub enum IsaSet {
Clfshopt, Clfshopt,
Clwb, Clwb,
Clzero, Clzero,
Cmpccxadd,
Cmpxchg16b, Cmpxchg16b,
Cyrix, Cyrix,
CyrixSmm, CyrixSmm,
@ -79,6 +84,7 @@ pub enum IsaSet {
Movdir64b, Movdir64b,
Movdiri, Movdiri,
Mpx, Mpx,
Msrlist,
Mwaitt, Mwaitt,
Pause, Pause,
Pclmulqdq, Pclmulqdq,
@ -87,8 +93,10 @@ pub enum IsaSet {
Pku, Pku,
Popcnt, Popcnt,
Ppro, Ppro,
Prefetchiti,
PrefetchNop, PrefetchNop,
Ptwrite, Ptwrite,
Raoint,
Rdpid, Rdpid,
Rdpmc, Rdpmc,
Rdpru, Rdpru,
@ -122,6 +130,7 @@ pub enum IsaSet {
Vtx, Vtx,
Waitpkg, Waitpkg,
Wbnoinvd, Wbnoinvd,
Wrmsrns,
X87, X87,
Xop, Xop,
Xsave, Xsave,
@ -141,6 +150,7 @@ impl TryFrom<ffi::ND_INS_SET> for IsaSet {
ffi::_ND_INS_SET::ND_SET_AES => Ok(IsaSet::Aes), ffi::_ND_INS_SET::ND_SET_AES => Ok(IsaSet::Aes),
ffi::_ND_INS_SET::ND_SET_AMD => Ok(IsaSet::Amd), ffi::_ND_INS_SET::ND_SET_AMD => Ok(IsaSet::Amd),
ffi::_ND_INS_SET::ND_SET_AMXBF16 => Ok(IsaSet::Amxbf16), ffi::_ND_INS_SET::ND_SET_AMXBF16 => Ok(IsaSet::Amxbf16),
ffi::_ND_INS_SET::ND_SET_AMXFP16 => Ok(IsaSet::Amxfp16),
ffi::_ND_INS_SET::ND_SET_AMXINT8 => Ok(IsaSet::Amxint8), ffi::_ND_INS_SET::ND_SET_AMXINT8 => Ok(IsaSet::Amxint8),
ffi::_ND_INS_SET::ND_SET_AMXTILE => Ok(IsaSet::Amxtile), ffi::_ND_INS_SET::ND_SET_AMXTILE => Ok(IsaSet::Amxtile),
ffi::_ND_INS_SET::ND_SET_AVX => Ok(IsaSet::Avx), ffi::_ND_INS_SET::ND_SET_AVX => Ok(IsaSet::Avx),
@ -163,7 +173,10 @@ impl TryFrom<ffi::ND_INS_SET> for IsaSet {
ffi::_ND_INS_SET::ND_SET_AVX512VNNI => Ok(IsaSet::Avx512vnni), ffi::_ND_INS_SET::ND_SET_AVX512VNNI => Ok(IsaSet::Avx512vnni),
ffi::_ND_INS_SET::ND_SET_AVX512VP2INTERSECT => Ok(IsaSet::Avx512vp2intersect), ffi::_ND_INS_SET::ND_SET_AVX512VP2INTERSECT => Ok(IsaSet::Avx512vp2intersect),
ffi::_ND_INS_SET::ND_SET_AVX512VPOPCNTDQ => Ok(IsaSet::Avx512vpopcntdq), ffi::_ND_INS_SET::ND_SET_AVX512VPOPCNTDQ => Ok(IsaSet::Avx512vpopcntdq),
ffi::_ND_INS_SET::ND_SET_AVXIFMA => Ok(IsaSet::Avxifma),
ffi::_ND_INS_SET::ND_SET_AVXNECONVERT => Ok(IsaSet::Avxneconvert),
ffi::_ND_INS_SET::ND_SET_AVXVNNI => Ok(IsaSet::Avxvnni), ffi::_ND_INS_SET::ND_SET_AVXVNNI => Ok(IsaSet::Avxvnni),
ffi::_ND_INS_SET::ND_SET_AVXVNNIINT8 => Ok(IsaSet::Avxvnniint8),
ffi::_ND_INS_SET::ND_SET_BMI1 => Ok(IsaSet::Bmi1), ffi::_ND_INS_SET::ND_SET_BMI1 => Ok(IsaSet::Bmi1),
ffi::_ND_INS_SET::ND_SET_BMI2 => Ok(IsaSet::Bmi2), ffi::_ND_INS_SET::ND_SET_BMI2 => Ok(IsaSet::Bmi2),
ffi::_ND_INS_SET::ND_SET_CET_IBT => Ok(IsaSet::CetIbt), ffi::_ND_INS_SET::ND_SET_CET_IBT => Ok(IsaSet::CetIbt),
@ -173,6 +186,7 @@ impl TryFrom<ffi::ND_INS_SET> for IsaSet {
ffi::_ND_INS_SET::ND_SET_CLFSHOPT => Ok(IsaSet::Clfshopt), ffi::_ND_INS_SET::ND_SET_CLFSHOPT => Ok(IsaSet::Clfshopt),
ffi::_ND_INS_SET::ND_SET_CLWB => Ok(IsaSet::Clwb), ffi::_ND_INS_SET::ND_SET_CLWB => Ok(IsaSet::Clwb),
ffi::_ND_INS_SET::ND_SET_CLZERO => Ok(IsaSet::Clzero), ffi::_ND_INS_SET::ND_SET_CLZERO => Ok(IsaSet::Clzero),
ffi::_ND_INS_SET::ND_SET_CMPCCXADD => Ok(IsaSet::Cmpccxadd),
ffi::_ND_INS_SET::ND_SET_CMPXCHG16B => Ok(IsaSet::Cmpxchg16b), ffi::_ND_INS_SET::ND_SET_CMPXCHG16B => Ok(IsaSet::Cmpxchg16b),
ffi::_ND_INS_SET::ND_SET_CYRIX => Ok(IsaSet::Cyrix), ffi::_ND_INS_SET::ND_SET_CYRIX => Ok(IsaSet::Cyrix),
ffi::_ND_INS_SET::ND_SET_CYRIX_SMM => Ok(IsaSet::CyrixSmm), ffi::_ND_INS_SET::ND_SET_CYRIX_SMM => Ok(IsaSet::CyrixSmm),
@ -205,6 +219,7 @@ impl TryFrom<ffi::ND_INS_SET> for IsaSet {
ffi::_ND_INS_SET::ND_SET_MOVDIR64B => Ok(IsaSet::Movdir64b), ffi::_ND_INS_SET::ND_SET_MOVDIR64B => Ok(IsaSet::Movdir64b),
ffi::_ND_INS_SET::ND_SET_MOVDIRI => Ok(IsaSet::Movdiri), ffi::_ND_INS_SET::ND_SET_MOVDIRI => Ok(IsaSet::Movdiri),
ffi::_ND_INS_SET::ND_SET_MPX => Ok(IsaSet::Mpx), ffi::_ND_INS_SET::ND_SET_MPX => Ok(IsaSet::Mpx),
ffi::_ND_INS_SET::ND_SET_MSRLIST => Ok(IsaSet::Msrlist),
ffi::_ND_INS_SET::ND_SET_MWAITT => Ok(IsaSet::Mwaitt), ffi::_ND_INS_SET::ND_SET_MWAITT => Ok(IsaSet::Mwaitt),
ffi::_ND_INS_SET::ND_SET_PAUSE => Ok(IsaSet::Pause), ffi::_ND_INS_SET::ND_SET_PAUSE => Ok(IsaSet::Pause),
ffi::_ND_INS_SET::ND_SET_PCLMULQDQ => Ok(IsaSet::Pclmulqdq), ffi::_ND_INS_SET::ND_SET_PCLMULQDQ => Ok(IsaSet::Pclmulqdq),
@ -213,8 +228,10 @@ impl TryFrom<ffi::ND_INS_SET> for IsaSet {
ffi::_ND_INS_SET::ND_SET_PKU => Ok(IsaSet::Pku), ffi::_ND_INS_SET::ND_SET_PKU => Ok(IsaSet::Pku),
ffi::_ND_INS_SET::ND_SET_POPCNT => Ok(IsaSet::Popcnt), ffi::_ND_INS_SET::ND_SET_POPCNT => Ok(IsaSet::Popcnt),
ffi::_ND_INS_SET::ND_SET_PPRO => Ok(IsaSet::Ppro), ffi::_ND_INS_SET::ND_SET_PPRO => Ok(IsaSet::Ppro),
ffi::_ND_INS_SET::ND_SET_PREFETCHITI => Ok(IsaSet::Prefetchiti),
ffi::_ND_INS_SET::ND_SET_PREFETCH_NOP => Ok(IsaSet::PrefetchNop), ffi::_ND_INS_SET::ND_SET_PREFETCH_NOP => Ok(IsaSet::PrefetchNop),
ffi::_ND_INS_SET::ND_SET_PTWRITE => Ok(IsaSet::Ptwrite), ffi::_ND_INS_SET::ND_SET_PTWRITE => Ok(IsaSet::Ptwrite),
ffi::_ND_INS_SET::ND_SET_RAOINT => Ok(IsaSet::Raoint),
ffi::_ND_INS_SET::ND_SET_RDPID => Ok(IsaSet::Rdpid), ffi::_ND_INS_SET::ND_SET_RDPID => Ok(IsaSet::Rdpid),
ffi::_ND_INS_SET::ND_SET_RDPMC => Ok(IsaSet::Rdpmc), ffi::_ND_INS_SET::ND_SET_RDPMC => Ok(IsaSet::Rdpmc),
ffi::_ND_INS_SET::ND_SET_RDPRU => Ok(IsaSet::Rdpru), ffi::_ND_INS_SET::ND_SET_RDPRU => Ok(IsaSet::Rdpru),
@ -248,6 +265,7 @@ impl TryFrom<ffi::ND_INS_SET> for IsaSet {
ffi::_ND_INS_SET::ND_SET_VTX => Ok(IsaSet::Vtx), ffi::_ND_INS_SET::ND_SET_VTX => Ok(IsaSet::Vtx),
ffi::_ND_INS_SET::ND_SET_WAITPKG => Ok(IsaSet::Waitpkg), ffi::_ND_INS_SET::ND_SET_WAITPKG => Ok(IsaSet::Waitpkg),
ffi::_ND_INS_SET::ND_SET_WBNOINVD => Ok(IsaSet::Wbnoinvd), ffi::_ND_INS_SET::ND_SET_WBNOINVD => Ok(IsaSet::Wbnoinvd),
ffi::_ND_INS_SET::ND_SET_WRMSRNS => Ok(IsaSet::Wrmsrns),
ffi::_ND_INS_SET::ND_SET_X87 => Ok(IsaSet::X87), ffi::_ND_INS_SET::ND_SET_X87 => Ok(IsaSet::X87),
ffi::_ND_INS_SET::ND_SET_XOP => Ok(IsaSet::Xop), ffi::_ND_INS_SET::ND_SET_XOP => Ok(IsaSet::Xop),
ffi::_ND_INS_SET::ND_SET_XSAVE => Ok(IsaSet::Xsave), ffi::_ND_INS_SET::ND_SET_XSAVE => Ok(IsaSet::Xsave),

View File

@ -12,7 +12,9 @@ use core::convert::TryFrom;
pub enum Mnemonic { pub enum Mnemonic {
Aaa, Aaa,
Aad, Aad,
Aadd,
Aam, Aam,
Aand,
Aas, Aas,
Adc, Adc,
Adcx, Adcx,
@ -45,7 +47,9 @@ pub enum Mnemonic {
Andnps, Andnps,
Andpd, Andpd,
Andps, Andps,
Aor,
Arpl, Arpl,
Axor,
Bextr, Bextr,
Blcfill, Blcfill,
Blci, Blci,
@ -102,14 +106,30 @@ pub enum Mnemonic {
Cmc, Cmc,
Cmovcc, Cmovcc,
Cmp, Cmp,
Cmpbexadd,
Cmpcxadd,
Cmplexadd,
Cmplxadd,
Cmpnbexadd,
Cmpncxadd,
Cmpnlexadd,
Cmpnlxadd,
Cmpnoxadd,
Cmpnpxadd,
Cmpnsxadd,
Cmpnzxadd,
Cmpoxadd,
Cmppd, Cmppd,
Cmpps, Cmpps,
Cmppxadd,
Cmps, Cmps,
Cmpsd, Cmpsd,
Cmpss, Cmpss,
Cmpsxadd,
Cmpxchg, Cmpxchg,
Cmpxchg16b, Cmpxchg16b,
Cmpxchg8b, Cmpxchg8b,
Cmpzxadd,
Comisd, Comisd,
Comiss, Comiss,
Cpuid, Cpuid,
@ -542,6 +562,8 @@ pub enum Mnemonic {
Por, Por,
Prefetch, Prefetch,
Prefetche, Prefetche,
Prefetchit0,
Prefetchit1,
Prefetchm, Prefetchm,
Prefetchnta, Prefetchnta,
Prefetcht0, Prefetcht0,
@ -601,6 +623,7 @@ pub enum Mnemonic {
Rdfsbase, Rdfsbase,
Rdgsbase, Rdgsbase,
Rdmsr, Rdmsr,
Rdmsrlist,
Rdpid, Rdpid,
Rdpkru, Rdpkru,
Rdpmc, Rdpmc,
@ -702,6 +725,7 @@ pub enum Mnemonic {
Tdpbsud, Tdpbsud,
Tdpbusd, Tdpbusd,
Tdpbuud, Tdpbuud,
Tdpfp16ps,
Test, Test,
Testui, Testui,
Tileloadd, Tileloadd,
@ -749,6 +773,8 @@ pub enum Mnemonic {
Vandnps, Vandnps,
Vandpd, Vandpd,
Vandps, Vandps,
Vbcstnebf162ps,
Vbcstnesh2ps,
Vblendmpd, Vblendmpd,
Vblendmps, Vblendmps,
Vblendpd, Vblendpd,
@ -784,6 +810,10 @@ pub enum Mnemonic {
Vcvtdq2ph, Vcvtdq2ph,
Vcvtdq2ps, Vcvtdq2ps,
Vcvtne2ps2bf16, Vcvtne2ps2bf16,
Vcvtneebf162ps,
Vcvtneeph2ps,
Vcvtneobf162ps,
Vcvtneoph2ps,
Vcvtneps2bf16, Vcvtneps2bf16,
Vcvtpd2dq, Vcvtpd2dq,
Vcvtpd2ph, Vcvtpd2ph,
@ -1210,8 +1240,14 @@ pub enum Mnemonic {
Vpcomw, Vpcomw,
Vpconflictd, Vpconflictd,
Vpconflictq, Vpconflictq,
Vpdpbssd,
Vpdpbssds,
Vpdpbsud,
Vpdpbsuds,
Vpdpbusd, Vpdpbusd,
Vpdpbusds, Vpdpbusds,
Vpdpbuud,
Vpdpbuuds,
Vpdpwssd, Vpdpwssd,
Vpdpwssds, Vpdpwssds,
Vperm2f128, Vperm2f128,
@ -1563,6 +1599,8 @@ pub enum Mnemonic {
Wrfsbase, Wrfsbase,
Wrgsbase, Wrgsbase,
Wrmsr, Wrmsr,
Wrmsrlist,
Wrmsrns,
Wrpkru, Wrpkru,
Wrshr, Wrshr,
Wrss, Wrss,
@ -1606,7 +1644,9 @@ impl TryFrom<ffi::ND_INS_CLASS> for Mnemonic {
ffi::_ND_INS_CLASS::ND_INS_INVALID => Err(DecodeError::InternalError(value as u64)), ffi::_ND_INS_CLASS::ND_INS_INVALID => Err(DecodeError::InternalError(value as u64)),
ffi::_ND_INS_CLASS::ND_INS_AAA => Ok(Mnemonic::Aaa), ffi::_ND_INS_CLASS::ND_INS_AAA => Ok(Mnemonic::Aaa),
ffi::_ND_INS_CLASS::ND_INS_AAD => Ok(Mnemonic::Aad), ffi::_ND_INS_CLASS::ND_INS_AAD => Ok(Mnemonic::Aad),
ffi::_ND_INS_CLASS::ND_INS_AADD => Ok(Mnemonic::Aadd),
ffi::_ND_INS_CLASS::ND_INS_AAM => Ok(Mnemonic::Aam), ffi::_ND_INS_CLASS::ND_INS_AAM => Ok(Mnemonic::Aam),
ffi::_ND_INS_CLASS::ND_INS_AAND => Ok(Mnemonic::Aand),
ffi::_ND_INS_CLASS::ND_INS_AAS => Ok(Mnemonic::Aas), ffi::_ND_INS_CLASS::ND_INS_AAS => Ok(Mnemonic::Aas),
ffi::_ND_INS_CLASS::ND_INS_ADC => Ok(Mnemonic::Adc), ffi::_ND_INS_CLASS::ND_INS_ADC => Ok(Mnemonic::Adc),
ffi::_ND_INS_CLASS::ND_INS_ADCX => Ok(Mnemonic::Adcx), ffi::_ND_INS_CLASS::ND_INS_ADCX => Ok(Mnemonic::Adcx),
@ -1639,7 +1679,9 @@ impl TryFrom<ffi::ND_INS_CLASS> for Mnemonic {
ffi::_ND_INS_CLASS::ND_INS_ANDNPS => Ok(Mnemonic::Andnps), ffi::_ND_INS_CLASS::ND_INS_ANDNPS => Ok(Mnemonic::Andnps),
ffi::_ND_INS_CLASS::ND_INS_ANDPD => Ok(Mnemonic::Andpd), ffi::_ND_INS_CLASS::ND_INS_ANDPD => Ok(Mnemonic::Andpd),
ffi::_ND_INS_CLASS::ND_INS_ANDPS => Ok(Mnemonic::Andps), ffi::_ND_INS_CLASS::ND_INS_ANDPS => Ok(Mnemonic::Andps),
ffi::_ND_INS_CLASS::ND_INS_AOR => Ok(Mnemonic::Aor),
ffi::_ND_INS_CLASS::ND_INS_ARPL => Ok(Mnemonic::Arpl), ffi::_ND_INS_CLASS::ND_INS_ARPL => Ok(Mnemonic::Arpl),
ffi::_ND_INS_CLASS::ND_INS_AXOR => Ok(Mnemonic::Axor),
ffi::_ND_INS_CLASS::ND_INS_BEXTR => Ok(Mnemonic::Bextr), ffi::_ND_INS_CLASS::ND_INS_BEXTR => Ok(Mnemonic::Bextr),
ffi::_ND_INS_CLASS::ND_INS_BLCFILL => Ok(Mnemonic::Blcfill), ffi::_ND_INS_CLASS::ND_INS_BLCFILL => Ok(Mnemonic::Blcfill),
ffi::_ND_INS_CLASS::ND_INS_BLCI => Ok(Mnemonic::Blci), ffi::_ND_INS_CLASS::ND_INS_BLCI => Ok(Mnemonic::Blci),
@ -1696,14 +1738,30 @@ impl TryFrom<ffi::ND_INS_CLASS> for Mnemonic {
ffi::_ND_INS_CLASS::ND_INS_CMC => Ok(Mnemonic::Cmc), ffi::_ND_INS_CLASS::ND_INS_CMC => Ok(Mnemonic::Cmc),
ffi::_ND_INS_CLASS::ND_INS_CMOVcc => Ok(Mnemonic::Cmovcc), ffi::_ND_INS_CLASS::ND_INS_CMOVcc => Ok(Mnemonic::Cmovcc),
ffi::_ND_INS_CLASS::ND_INS_CMP => Ok(Mnemonic::Cmp), ffi::_ND_INS_CLASS::ND_INS_CMP => Ok(Mnemonic::Cmp),
ffi::_ND_INS_CLASS::ND_INS_CMPBEXADD => Ok(Mnemonic::Cmpbexadd),
ffi::_ND_INS_CLASS::ND_INS_CMPCXADD => Ok(Mnemonic::Cmpcxadd),
ffi::_ND_INS_CLASS::ND_INS_CMPLEXADD => Ok(Mnemonic::Cmplexadd),
ffi::_ND_INS_CLASS::ND_INS_CMPLXADD => Ok(Mnemonic::Cmplxadd),
ffi::_ND_INS_CLASS::ND_INS_CMPNBEXADD => Ok(Mnemonic::Cmpnbexadd),
ffi::_ND_INS_CLASS::ND_INS_CMPNCXADD => Ok(Mnemonic::Cmpncxadd),
ffi::_ND_INS_CLASS::ND_INS_CMPNLEXADD => Ok(Mnemonic::Cmpnlexadd),
ffi::_ND_INS_CLASS::ND_INS_CMPNLXADD => Ok(Mnemonic::Cmpnlxadd),
ffi::_ND_INS_CLASS::ND_INS_CMPNOXADD => Ok(Mnemonic::Cmpnoxadd),
ffi::_ND_INS_CLASS::ND_INS_CMPNPXADD => Ok(Mnemonic::Cmpnpxadd),
ffi::_ND_INS_CLASS::ND_INS_CMPNSXADD => Ok(Mnemonic::Cmpnsxadd),
ffi::_ND_INS_CLASS::ND_INS_CMPNZXADD => Ok(Mnemonic::Cmpnzxadd),
ffi::_ND_INS_CLASS::ND_INS_CMPOXADD => Ok(Mnemonic::Cmpoxadd),
ffi::_ND_INS_CLASS::ND_INS_CMPPD => Ok(Mnemonic::Cmppd), ffi::_ND_INS_CLASS::ND_INS_CMPPD => Ok(Mnemonic::Cmppd),
ffi::_ND_INS_CLASS::ND_INS_CMPPS => Ok(Mnemonic::Cmpps), ffi::_ND_INS_CLASS::ND_INS_CMPPS => Ok(Mnemonic::Cmpps),
ffi::_ND_INS_CLASS::ND_INS_CMPPXADD => Ok(Mnemonic::Cmppxadd),
ffi::_ND_INS_CLASS::ND_INS_CMPS => Ok(Mnemonic::Cmps), ffi::_ND_INS_CLASS::ND_INS_CMPS => Ok(Mnemonic::Cmps),
ffi::_ND_INS_CLASS::ND_INS_CMPSD => Ok(Mnemonic::Cmpsd), ffi::_ND_INS_CLASS::ND_INS_CMPSD => Ok(Mnemonic::Cmpsd),
ffi::_ND_INS_CLASS::ND_INS_CMPSS => Ok(Mnemonic::Cmpss), ffi::_ND_INS_CLASS::ND_INS_CMPSS => Ok(Mnemonic::Cmpss),
ffi::_ND_INS_CLASS::ND_INS_CMPSXADD => Ok(Mnemonic::Cmpsxadd),
ffi::_ND_INS_CLASS::ND_INS_CMPXCHG => Ok(Mnemonic::Cmpxchg), ffi::_ND_INS_CLASS::ND_INS_CMPXCHG => Ok(Mnemonic::Cmpxchg),
ffi::_ND_INS_CLASS::ND_INS_CMPXCHG16B => Ok(Mnemonic::Cmpxchg16b), ffi::_ND_INS_CLASS::ND_INS_CMPXCHG16B => Ok(Mnemonic::Cmpxchg16b),
ffi::_ND_INS_CLASS::ND_INS_CMPXCHG8B => Ok(Mnemonic::Cmpxchg8b), ffi::_ND_INS_CLASS::ND_INS_CMPXCHG8B => Ok(Mnemonic::Cmpxchg8b),
ffi::_ND_INS_CLASS::ND_INS_CMPZXADD => Ok(Mnemonic::Cmpzxadd),
ffi::_ND_INS_CLASS::ND_INS_COMISD => Ok(Mnemonic::Comisd), ffi::_ND_INS_CLASS::ND_INS_COMISD => Ok(Mnemonic::Comisd),
ffi::_ND_INS_CLASS::ND_INS_COMISS => Ok(Mnemonic::Comiss), ffi::_ND_INS_CLASS::ND_INS_COMISS => Ok(Mnemonic::Comiss),
ffi::_ND_INS_CLASS::ND_INS_CPUID => Ok(Mnemonic::Cpuid), ffi::_ND_INS_CLASS::ND_INS_CPUID => Ok(Mnemonic::Cpuid),
@ -2136,6 +2194,8 @@ impl TryFrom<ffi::ND_INS_CLASS> for Mnemonic {
ffi::_ND_INS_CLASS::ND_INS_POR => Ok(Mnemonic::Por), ffi::_ND_INS_CLASS::ND_INS_POR => Ok(Mnemonic::Por),
ffi::_ND_INS_CLASS::ND_INS_PREFETCH => Ok(Mnemonic::Prefetch), ffi::_ND_INS_CLASS::ND_INS_PREFETCH => Ok(Mnemonic::Prefetch),
ffi::_ND_INS_CLASS::ND_INS_PREFETCHE => Ok(Mnemonic::Prefetche), ffi::_ND_INS_CLASS::ND_INS_PREFETCHE => Ok(Mnemonic::Prefetche),
ffi::_ND_INS_CLASS::ND_INS_PREFETCHIT0 => Ok(Mnemonic::Prefetchit0),
ffi::_ND_INS_CLASS::ND_INS_PREFETCHIT1 => Ok(Mnemonic::Prefetchit1),
ffi::_ND_INS_CLASS::ND_INS_PREFETCHM => Ok(Mnemonic::Prefetchm), ffi::_ND_INS_CLASS::ND_INS_PREFETCHM => Ok(Mnemonic::Prefetchm),
ffi::_ND_INS_CLASS::ND_INS_PREFETCHNTA => Ok(Mnemonic::Prefetchnta), ffi::_ND_INS_CLASS::ND_INS_PREFETCHNTA => Ok(Mnemonic::Prefetchnta),
ffi::_ND_INS_CLASS::ND_INS_PREFETCHT0 => Ok(Mnemonic::Prefetcht0), ffi::_ND_INS_CLASS::ND_INS_PREFETCHT0 => Ok(Mnemonic::Prefetcht0),
@ -2195,6 +2255,7 @@ impl TryFrom<ffi::ND_INS_CLASS> for Mnemonic {
ffi::_ND_INS_CLASS::ND_INS_RDFSBASE => Ok(Mnemonic::Rdfsbase), ffi::_ND_INS_CLASS::ND_INS_RDFSBASE => Ok(Mnemonic::Rdfsbase),
ffi::_ND_INS_CLASS::ND_INS_RDGSBASE => Ok(Mnemonic::Rdgsbase), ffi::_ND_INS_CLASS::ND_INS_RDGSBASE => Ok(Mnemonic::Rdgsbase),
ffi::_ND_INS_CLASS::ND_INS_RDMSR => Ok(Mnemonic::Rdmsr), ffi::_ND_INS_CLASS::ND_INS_RDMSR => Ok(Mnemonic::Rdmsr),
ffi::_ND_INS_CLASS::ND_INS_RDMSRLIST => Ok(Mnemonic::Rdmsrlist),
ffi::_ND_INS_CLASS::ND_INS_RDPID => Ok(Mnemonic::Rdpid), ffi::_ND_INS_CLASS::ND_INS_RDPID => Ok(Mnemonic::Rdpid),
ffi::_ND_INS_CLASS::ND_INS_RDPKRU => Ok(Mnemonic::Rdpkru), ffi::_ND_INS_CLASS::ND_INS_RDPKRU => Ok(Mnemonic::Rdpkru),
ffi::_ND_INS_CLASS::ND_INS_RDPMC => Ok(Mnemonic::Rdpmc), ffi::_ND_INS_CLASS::ND_INS_RDPMC => Ok(Mnemonic::Rdpmc),
@ -2296,6 +2357,7 @@ impl TryFrom<ffi::ND_INS_CLASS> for Mnemonic {
ffi::_ND_INS_CLASS::ND_INS_TDPBSUD => Ok(Mnemonic::Tdpbsud), ffi::_ND_INS_CLASS::ND_INS_TDPBSUD => Ok(Mnemonic::Tdpbsud),
ffi::_ND_INS_CLASS::ND_INS_TDPBUSD => Ok(Mnemonic::Tdpbusd), ffi::_ND_INS_CLASS::ND_INS_TDPBUSD => Ok(Mnemonic::Tdpbusd),
ffi::_ND_INS_CLASS::ND_INS_TDPBUUD => Ok(Mnemonic::Tdpbuud), ffi::_ND_INS_CLASS::ND_INS_TDPBUUD => Ok(Mnemonic::Tdpbuud),
ffi::_ND_INS_CLASS::ND_INS_TDPFP16PS => Ok(Mnemonic::Tdpfp16ps),
ffi::_ND_INS_CLASS::ND_INS_TEST => Ok(Mnemonic::Test), ffi::_ND_INS_CLASS::ND_INS_TEST => Ok(Mnemonic::Test),
ffi::_ND_INS_CLASS::ND_INS_TESTUI => Ok(Mnemonic::Testui), ffi::_ND_INS_CLASS::ND_INS_TESTUI => Ok(Mnemonic::Testui),
ffi::_ND_INS_CLASS::ND_INS_TILELOADD => Ok(Mnemonic::Tileloadd), ffi::_ND_INS_CLASS::ND_INS_TILELOADD => Ok(Mnemonic::Tileloadd),
@ -2343,6 +2405,8 @@ impl TryFrom<ffi::ND_INS_CLASS> for Mnemonic {
ffi::_ND_INS_CLASS::ND_INS_VANDNPS => Ok(Mnemonic::Vandnps), ffi::_ND_INS_CLASS::ND_INS_VANDNPS => Ok(Mnemonic::Vandnps),
ffi::_ND_INS_CLASS::ND_INS_VANDPD => Ok(Mnemonic::Vandpd), ffi::_ND_INS_CLASS::ND_INS_VANDPD => Ok(Mnemonic::Vandpd),
ffi::_ND_INS_CLASS::ND_INS_VANDPS => Ok(Mnemonic::Vandps), ffi::_ND_INS_CLASS::ND_INS_VANDPS => Ok(Mnemonic::Vandps),
ffi::_ND_INS_CLASS::ND_INS_VBCSTNEBF162PS => Ok(Mnemonic::Vbcstnebf162ps),
ffi::_ND_INS_CLASS::ND_INS_VBCSTNESH2PS => Ok(Mnemonic::Vbcstnesh2ps),
ffi::_ND_INS_CLASS::ND_INS_VBLENDMPD => Ok(Mnemonic::Vblendmpd), ffi::_ND_INS_CLASS::ND_INS_VBLENDMPD => Ok(Mnemonic::Vblendmpd),
ffi::_ND_INS_CLASS::ND_INS_VBLENDMPS => Ok(Mnemonic::Vblendmps), ffi::_ND_INS_CLASS::ND_INS_VBLENDMPS => Ok(Mnemonic::Vblendmps),
ffi::_ND_INS_CLASS::ND_INS_VBLENDPD => Ok(Mnemonic::Vblendpd), ffi::_ND_INS_CLASS::ND_INS_VBLENDPD => Ok(Mnemonic::Vblendpd),
@ -2378,6 +2442,10 @@ impl TryFrom<ffi::ND_INS_CLASS> for Mnemonic {
ffi::_ND_INS_CLASS::ND_INS_VCVTDQ2PH => Ok(Mnemonic::Vcvtdq2ph), ffi::_ND_INS_CLASS::ND_INS_VCVTDQ2PH => Ok(Mnemonic::Vcvtdq2ph),
ffi::_ND_INS_CLASS::ND_INS_VCVTDQ2PS => Ok(Mnemonic::Vcvtdq2ps), ffi::_ND_INS_CLASS::ND_INS_VCVTDQ2PS => Ok(Mnemonic::Vcvtdq2ps),
ffi::_ND_INS_CLASS::ND_INS_VCVTNE2PS2BF16 => Ok(Mnemonic::Vcvtne2ps2bf16), ffi::_ND_INS_CLASS::ND_INS_VCVTNE2PS2BF16 => Ok(Mnemonic::Vcvtne2ps2bf16),
ffi::_ND_INS_CLASS::ND_INS_VCVTNEEBF162PS => Ok(Mnemonic::Vcvtneebf162ps),
ffi::_ND_INS_CLASS::ND_INS_VCVTNEEPH2PS => Ok(Mnemonic::Vcvtneeph2ps),
ffi::_ND_INS_CLASS::ND_INS_VCVTNEOBF162PS => Ok(Mnemonic::Vcvtneobf162ps),
ffi::_ND_INS_CLASS::ND_INS_VCVTNEOPH2PS => Ok(Mnemonic::Vcvtneoph2ps),
ffi::_ND_INS_CLASS::ND_INS_VCVTNEPS2BF16 => Ok(Mnemonic::Vcvtneps2bf16), ffi::_ND_INS_CLASS::ND_INS_VCVTNEPS2BF16 => Ok(Mnemonic::Vcvtneps2bf16),
ffi::_ND_INS_CLASS::ND_INS_VCVTPD2DQ => Ok(Mnemonic::Vcvtpd2dq), ffi::_ND_INS_CLASS::ND_INS_VCVTPD2DQ => Ok(Mnemonic::Vcvtpd2dq),
ffi::_ND_INS_CLASS::ND_INS_VCVTPD2PH => Ok(Mnemonic::Vcvtpd2ph), ffi::_ND_INS_CLASS::ND_INS_VCVTPD2PH => Ok(Mnemonic::Vcvtpd2ph),
@ -2804,8 +2872,14 @@ impl TryFrom<ffi::ND_INS_CLASS> for Mnemonic {
ffi::_ND_INS_CLASS::ND_INS_VPCOMW => Ok(Mnemonic::Vpcomw), ffi::_ND_INS_CLASS::ND_INS_VPCOMW => Ok(Mnemonic::Vpcomw),
ffi::_ND_INS_CLASS::ND_INS_VPCONFLICTD => Ok(Mnemonic::Vpconflictd), ffi::_ND_INS_CLASS::ND_INS_VPCONFLICTD => Ok(Mnemonic::Vpconflictd),
ffi::_ND_INS_CLASS::ND_INS_VPCONFLICTQ => Ok(Mnemonic::Vpconflictq), ffi::_ND_INS_CLASS::ND_INS_VPCONFLICTQ => Ok(Mnemonic::Vpconflictq),
ffi::_ND_INS_CLASS::ND_INS_VPDPBSSD => Ok(Mnemonic::Vpdpbssd),
ffi::_ND_INS_CLASS::ND_INS_VPDPBSSDS => Ok(Mnemonic::Vpdpbssds),
ffi::_ND_INS_CLASS::ND_INS_VPDPBSUD => Ok(Mnemonic::Vpdpbsud),
ffi::_ND_INS_CLASS::ND_INS_VPDPBSUDS => Ok(Mnemonic::Vpdpbsuds),
ffi::_ND_INS_CLASS::ND_INS_VPDPBUSD => Ok(Mnemonic::Vpdpbusd), ffi::_ND_INS_CLASS::ND_INS_VPDPBUSD => Ok(Mnemonic::Vpdpbusd),
ffi::_ND_INS_CLASS::ND_INS_VPDPBUSDS => Ok(Mnemonic::Vpdpbusds), ffi::_ND_INS_CLASS::ND_INS_VPDPBUSDS => Ok(Mnemonic::Vpdpbusds),
ffi::_ND_INS_CLASS::ND_INS_VPDPBUUD => Ok(Mnemonic::Vpdpbuud),
ffi::_ND_INS_CLASS::ND_INS_VPDPBUUDS => Ok(Mnemonic::Vpdpbuuds),
ffi::_ND_INS_CLASS::ND_INS_VPDPWSSD => Ok(Mnemonic::Vpdpwssd), ffi::_ND_INS_CLASS::ND_INS_VPDPWSSD => Ok(Mnemonic::Vpdpwssd),
ffi::_ND_INS_CLASS::ND_INS_VPDPWSSDS => Ok(Mnemonic::Vpdpwssds), ffi::_ND_INS_CLASS::ND_INS_VPDPWSSDS => Ok(Mnemonic::Vpdpwssds),
ffi::_ND_INS_CLASS::ND_INS_VPERM2F128 => Ok(Mnemonic::Vperm2f128), ffi::_ND_INS_CLASS::ND_INS_VPERM2F128 => Ok(Mnemonic::Vperm2f128),
@ -3157,6 +3231,8 @@ impl TryFrom<ffi::ND_INS_CLASS> for Mnemonic {
ffi::_ND_INS_CLASS::ND_INS_WRFSBASE => Ok(Mnemonic::Wrfsbase), ffi::_ND_INS_CLASS::ND_INS_WRFSBASE => Ok(Mnemonic::Wrfsbase),
ffi::_ND_INS_CLASS::ND_INS_WRGSBASE => Ok(Mnemonic::Wrgsbase), ffi::_ND_INS_CLASS::ND_INS_WRGSBASE => Ok(Mnemonic::Wrgsbase),
ffi::_ND_INS_CLASS::ND_INS_WRMSR => Ok(Mnemonic::Wrmsr), ffi::_ND_INS_CLASS::ND_INS_WRMSR => Ok(Mnemonic::Wrmsr),
ffi::_ND_INS_CLASS::ND_INS_WRMSRLIST => Ok(Mnemonic::Wrmsrlist),
ffi::_ND_INS_CLASS::ND_INS_WRMSRNS => Ok(Mnemonic::Wrmsrns),
ffi::_ND_INS_CLASS::ND_INS_WRPKRU => Ok(Mnemonic::Wrpkru), ffi::_ND_INS_CLASS::ND_INS_WRPKRU => Ok(Mnemonic::Wrpkru),
ffi::_ND_INS_CLASS::ND_INS_WRSHR => Ok(Mnemonic::Wrshr), ffi::_ND_INS_CLASS::ND_INS_WRSHR => Ok(Mnemonic::Wrshr),
ffi::_ND_INS_CLASS::ND_INS_WRSS => Ok(Mnemonic::Wrss), ffi::_ND_INS_CLASS::ND_INS_WRSS => Ok(Mnemonic::Wrss),