From 22d7c14c51eae76e1087fc9037c39044108d89df Mon Sep 17 00:00:00 2001 From: Ionel-Cristinel ANICHITEI Date: Tue, 4 Oct 2022 13:17:54 +0300 Subject: [PATCH] rsbddisasm: Update bindings --- bindings/rsbddisasm/bddisasm-sys/Cargo.toml | 2 +- bindings/rsbddisasm/bddisasm/CHANGELOG.md | 6 ++ bindings/rsbddisasm/bddisasm/Cargo.toml | 4 +- .../bddisasm/src/instruction_category.rs | 10 +++ bindings/rsbddisasm/bddisasm/src/isa_set.rs | 18 +++++ bindings/rsbddisasm/bddisasm/src/mnemonic.rs | 76 +++++++++++++++++++ 6 files changed, 113 insertions(+), 3 deletions(-) diff --git a/bindings/rsbddisasm/bddisasm-sys/Cargo.toml b/bindings/rsbddisasm/bddisasm-sys/Cargo.toml index ff40e5a..fa4ab10 100644 --- a/bindings/rsbddisasm/bddisasm-sys/Cargo.toml +++ b/bindings/rsbddisasm/bddisasm-sys/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "bddisasm-sys" -version = "0.2.0" +version = "0.2.1" authors = ["Cristi Anichitei "] edition = "2018" links = "bddisasm" diff --git a/bindings/rsbddisasm/bddisasm/CHANGELOG.md b/bindings/rsbddisasm/bddisasm/CHANGELOG.md index ef16ac1..4c95393 100644 --- a/bindings/rsbddisasm/bddisasm/CHANGELOG.md +++ b/bindings/rsbddisasm/bddisasm/CHANGELOG.md @@ -1,5 +1,11 @@ # 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 ### Added diff --git a/bindings/rsbddisasm/bddisasm/Cargo.toml b/bindings/rsbddisasm/bddisasm/Cargo.toml index ab131f8..7142c02 100644 --- a/bindings/rsbddisasm/bddisasm/Cargo.toml +++ b/bindings/rsbddisasm/bddisasm/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "bddisasm" -version = "0.2.0" +version = "0.2.1" authors = ["Cristi Anichitei "] edition = "2018" license = "Apache-2.0" @@ -14,7 +14,7 @@ categories = ["api-bindings", "hardware-support"] keywords = ["disassembler", "decoder", "x86", "amd64", "x86_64"] [dependencies] -bddisasm-sys = { version = "0.2.0", path = "../bddisasm-sys" } +bddisasm-sys = { version = "0.2.1", path = "../bddisasm-sys" } [features] std = [] diff --git a/bindings/rsbddisasm/bddisasm/src/instruction_category.rs b/bindings/rsbddisasm/bddisasm/src/instruction_category.rs index 6121941..9ddda64 100644 --- a/bindings/rsbddisasm/bddisasm/src/instruction_category.rs +++ b/bindings/rsbddisasm/bddisasm/src/instruction_category.rs @@ -23,7 +23,10 @@ pub enum Category { Avx512fp16, Avx512vbmi, Avx512vp2intersect, + Avxifma, + Avxneconvert, Avxvnni, + Avxvnniint8, Bitbyte, Blend, Bmi1, @@ -33,6 +36,7 @@ pub enum Category { Cet, Cldemote, Cmov, + Cmpccxadd, Compress, CondBr, Conflict, @@ -74,6 +78,7 @@ pub enum Category { Prefetch, Ptwrite, Push, + Raoint, Rdpid, Rdrand, Rdseed, @@ -136,7 +141,10 @@ impl TryFrom for Category { 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_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_AVXVNNIINT8 => Ok(Category::Avxvnniint8), 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_BMI1 => Ok(Category::Bmi1), @@ -146,6 +154,7 @@ impl TryFrom for Category { 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_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_COND_BR => Ok(Category::CondBr), ffi::_ND_INS_TYPE::ND_CAT_CONFLICT => Ok(Category::Conflict), @@ -186,6 +195,7 @@ impl TryFrom for Category { 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_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_RDRAND => Ok(Category::Rdrand), ffi::_ND_INS_TYPE::ND_CAT_RDSEED => Ok(Category::Rdseed), diff --git a/bindings/rsbddisasm/bddisasm/src/isa_set.rs b/bindings/rsbddisasm/bddisasm/src/isa_set.rs index 2fc031d..e9be91d 100644 --- a/bindings/rsbddisasm/bddisasm/src/isa_set.rs +++ b/bindings/rsbddisasm/bddisasm/src/isa_set.rs @@ -15,6 +15,7 @@ pub enum IsaSet { Aes, Amd, Amxbf16, + Amxfp16, Amxint8, Amxtile, Avx, @@ -37,7 +38,10 @@ pub enum IsaSet { Avx512vnni, Avx512vp2intersect, Avx512vpopcntdq, + Avxifma, + Avxneconvert, Avxvnni, + Avxvnniint8, Bmi1, Bmi2, CetIbt, @@ -47,6 +51,7 @@ pub enum IsaSet { Clfshopt, Clwb, Clzero, + Cmpccxadd, Cmpxchg16b, Cyrix, CyrixSmm, @@ -79,6 +84,7 @@ pub enum IsaSet { Movdir64b, Movdiri, Mpx, + Msrlist, Mwaitt, Pause, Pclmulqdq, @@ -87,8 +93,10 @@ pub enum IsaSet { Pku, Popcnt, Ppro, + Prefetchiti, PrefetchNop, Ptwrite, + Raoint, Rdpid, Rdpmc, Rdpru, @@ -122,6 +130,7 @@ pub enum IsaSet { Vtx, Waitpkg, Wbnoinvd, + Wrmsrns, X87, Xop, Xsave, @@ -141,6 +150,7 @@ impl TryFrom for IsaSet { 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_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_AMXTILE => Ok(IsaSet::Amxtile), ffi::_ND_INS_SET::ND_SET_AVX => Ok(IsaSet::Avx), @@ -163,7 +173,10 @@ impl TryFrom for IsaSet { 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_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_AVXVNNIINT8 => Ok(IsaSet::Avxvnniint8), 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_CET_IBT => Ok(IsaSet::CetIbt), @@ -173,6 +186,7 @@ impl TryFrom for IsaSet { 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_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_CYRIX => Ok(IsaSet::Cyrix), ffi::_ND_INS_SET::ND_SET_CYRIX_SMM => Ok(IsaSet::CyrixSmm), @@ -205,6 +219,7 @@ impl TryFrom for IsaSet { 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_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_PAUSE => Ok(IsaSet::Pause), ffi::_ND_INS_SET::ND_SET_PCLMULQDQ => Ok(IsaSet::Pclmulqdq), @@ -213,8 +228,10 @@ impl TryFrom for IsaSet { 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_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_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_RDPMC => Ok(IsaSet::Rdpmc), ffi::_ND_INS_SET::ND_SET_RDPRU => Ok(IsaSet::Rdpru), @@ -248,6 +265,7 @@ impl TryFrom for IsaSet { 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_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_XOP => Ok(IsaSet::Xop), ffi::_ND_INS_SET::ND_SET_XSAVE => Ok(IsaSet::Xsave), diff --git a/bindings/rsbddisasm/bddisasm/src/mnemonic.rs b/bindings/rsbddisasm/bddisasm/src/mnemonic.rs index 448043c..5baa2b1 100644 --- a/bindings/rsbddisasm/bddisasm/src/mnemonic.rs +++ b/bindings/rsbddisasm/bddisasm/src/mnemonic.rs @@ -12,7 +12,9 @@ use core::convert::TryFrom; pub enum Mnemonic { Aaa, Aad, + Aadd, Aam, + Aand, Aas, Adc, Adcx, @@ -45,7 +47,9 @@ pub enum Mnemonic { Andnps, Andpd, Andps, + Aor, Arpl, + Axor, Bextr, Blcfill, Blci, @@ -102,14 +106,30 @@ pub enum Mnemonic { Cmc, Cmovcc, Cmp, + Cmpbexadd, + Cmpcxadd, + Cmplexadd, + Cmplxadd, + Cmpnbexadd, + Cmpncxadd, + Cmpnlexadd, + Cmpnlxadd, + Cmpnoxadd, + Cmpnpxadd, + Cmpnsxadd, + Cmpnzxadd, + Cmpoxadd, Cmppd, Cmpps, + Cmppxadd, Cmps, Cmpsd, Cmpss, + Cmpsxadd, Cmpxchg, Cmpxchg16b, Cmpxchg8b, + Cmpzxadd, Comisd, Comiss, Cpuid, @@ -542,6 +562,8 @@ pub enum Mnemonic { Por, Prefetch, Prefetche, + Prefetchit0, + Prefetchit1, Prefetchm, Prefetchnta, Prefetcht0, @@ -601,6 +623,7 @@ pub enum Mnemonic { Rdfsbase, Rdgsbase, Rdmsr, + Rdmsrlist, Rdpid, Rdpkru, Rdpmc, @@ -702,6 +725,7 @@ pub enum Mnemonic { Tdpbsud, Tdpbusd, Tdpbuud, + Tdpfp16ps, Test, Testui, Tileloadd, @@ -749,6 +773,8 @@ pub enum Mnemonic { Vandnps, Vandpd, Vandps, + Vbcstnebf162ps, + Vbcstnesh2ps, Vblendmpd, Vblendmps, Vblendpd, @@ -784,6 +810,10 @@ pub enum Mnemonic { Vcvtdq2ph, Vcvtdq2ps, Vcvtne2ps2bf16, + Vcvtneebf162ps, + Vcvtneeph2ps, + Vcvtneobf162ps, + Vcvtneoph2ps, Vcvtneps2bf16, Vcvtpd2dq, Vcvtpd2ph, @@ -1210,8 +1240,14 @@ pub enum Mnemonic { Vpcomw, Vpconflictd, Vpconflictq, + Vpdpbssd, + Vpdpbssds, + Vpdpbsud, + Vpdpbsuds, Vpdpbusd, Vpdpbusds, + Vpdpbuud, + Vpdpbuuds, Vpdpwssd, Vpdpwssds, Vperm2f128, @@ -1563,6 +1599,8 @@ pub enum Mnemonic { Wrfsbase, Wrgsbase, Wrmsr, + Wrmsrlist, + Wrmsrns, Wrpkru, Wrshr, Wrss, @@ -1606,7 +1644,9 @@ impl TryFrom for Mnemonic { 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_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_AAND => Ok(Mnemonic::Aand), 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_ADCX => Ok(Mnemonic::Adcx), @@ -1639,7 +1679,9 @@ impl TryFrom for Mnemonic { 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_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_AXOR => Ok(Mnemonic::Axor), 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_BLCI => Ok(Mnemonic::Blci), @@ -1696,14 +1738,30 @@ impl TryFrom for Mnemonic { 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_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_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_CMPSD => Ok(Mnemonic::Cmpsd), 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_CMPXCHG16B => Ok(Mnemonic::Cmpxchg16b), 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_COMISS => Ok(Mnemonic::Comiss), ffi::_ND_INS_CLASS::ND_INS_CPUID => Ok(Mnemonic::Cpuid), @@ -2136,6 +2194,8 @@ impl TryFrom for Mnemonic { 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_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_PREFETCHNTA => Ok(Mnemonic::Prefetchnta), ffi::_ND_INS_CLASS::ND_INS_PREFETCHT0 => Ok(Mnemonic::Prefetcht0), @@ -2195,6 +2255,7 @@ impl TryFrom for Mnemonic { 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_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_RDPKRU => Ok(Mnemonic::Rdpkru), ffi::_ND_INS_CLASS::ND_INS_RDPMC => Ok(Mnemonic::Rdpmc), @@ -2296,6 +2357,7 @@ impl TryFrom for Mnemonic { 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_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_TESTUI => Ok(Mnemonic::Testui), ffi::_ND_INS_CLASS::ND_INS_TILELOADD => Ok(Mnemonic::Tileloadd), @@ -2343,6 +2405,8 @@ impl TryFrom for Mnemonic { 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_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_VBLENDMPS => Ok(Mnemonic::Vblendmps), ffi::_ND_INS_CLASS::ND_INS_VBLENDPD => Ok(Mnemonic::Vblendpd), @@ -2378,6 +2442,10 @@ impl TryFrom for Mnemonic { 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_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_VCVTPD2DQ => Ok(Mnemonic::Vcvtpd2dq), ffi::_ND_INS_CLASS::ND_INS_VCVTPD2PH => Ok(Mnemonic::Vcvtpd2ph), @@ -2804,8 +2872,14 @@ impl TryFrom for Mnemonic { 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_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_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_VPDPWSSDS => Ok(Mnemonic::Vpdpwssds), ffi::_ND_INS_CLASS::ND_INS_VPERM2F128 => Ok(Mnemonic::Vperm2f128), @@ -3157,6 +3231,8 @@ impl TryFrom for Mnemonic { 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_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_WRSHR => Ok(Mnemonic::Wrshr), ffi::_ND_INS_CLASS::ND_INS_WRSS => Ok(Mnemonic::Wrss),