Releases: intelxed/xed
v2025.12.14
The release aligns XED with Intel ISE Revision 060 and adds support for the Nova Lake (NVL) chip configuration.
General Improvements
-
New instruction metadata export utility (
xed_to_db.py):
Introduced a user-facing utility that exposes XED instruction metadata through a type-safe Python dataclass for direct consumption in Python frameworks, and also supports exporting the same data as structured JSON files.
This enables external tools to consume the instruction database either programmatically or via JSON, without parsing internal XED data files, and includes serialization and validation helpers. -
Fixed the
xed_decoded_inst_vector_length_bits()API to consistently return a vector length of 128 bits for SIMD scalar instructions, where EVEX.VL is ignored. -
Removed the redundant
ptrkeyword from AMX instruction memory disassembly, since memory width is defined byLDTILECFG. -
Enhanced the XED examples README with detailed explanations and a standalone build guide.
-
Improved Python code robustness and general maintainability.
Full Changelog: v2025.11.23...v2025.12.14
v2025.11.23
This release aligns XED with Intel® architecture specifications, including:
- Intel® SDM Revision 089
- Intel® ISE Revision 059
- Intel® APX Revision 7.0
Key ISA Updates
- Dropped support for AMX-TRANSPOSE instructions.
- Updated CPUID sensitivity for several APX instructions to include the APX_NCI_NDD_NF bit.
- Added support for the UDB undefined instruction.
- Updated the supported chip list for the PBNDKB instruction.
General
- Refactored XED extensions for APX-promoted instructions to align with legacy ISA extensions.
This treats APX promotions as ISA optimizations rather than new extensions, improving XED classification. - Added a new XED classifier for APX-F (Foundation) instructions.
Note: the existingxed_classify_apx()API is unchanged and continues to detect instructions with APX-specific encodings. - Renamed the RAO_INT XED extension to RAO.
- Enhanced the XED builder to include XedPy Python sources and examples when the
--xedpybuild knob is used. - Improved
pysrc/gen_cpuid.pyoutput by supporting grouped CPUID information and filtering duplicate entries. - Added extended documentation and a new README file for XED
pysrcscripts. - Improved builder error messaging by removing the
"fatal"token from non-verbose builds that encounter a failedgit describe, preventing confusion during build failures. - Renamed the AMD/VIA-enabled build option to AMD/VIA.
Fixes
- Added missing RING0 attributes for multiple instructions. (Fixes: #350)
- Dropped CLDEMOTE from ADL.
- Fixed the
examples/mfile.pybuilder to support manual, direct execution inside the XED kit. - Added missing XED APIs in the dynamic XED build. (Fixes: #353)
- Fixed XED examples Clang 19 build warnings. (Fixes: #354, Closes: #351)
- Improved ENC2 resilience with multiple internal stability enhancements. (Fixes: #355)
- Marked
xed_decoded_inst_get_byte()as a private API, as it is not intended or safe for library consumers. - Dropped a redundant
XED_DLL_GLOBALlibrary C macro. (Fixes #352) - Fixed the XED library build when MPX support is excluded.
Full Changelog: v2025.06.08...v2025.11.23
v2025.06.08
This release aligns XED with Intel’s latest architecture specifications, including:
- Intel® SDM Revision 087
- Intel® ISE Revision 057
- Intel® AVX10.2 Revision 5.0
Key ISA-related changes:
- Dropped support for AVX10/256-specific architectural features, including YMM embedded rounding and AVX10 VL-specific CPUID enumerations
- Updated CPUID sensitivity for various AVX10.2 instructions
- Updated exception class handling for several AVX512 instructions
General
- Modified arguments of the
xed_operand_print()decoder API to correctly represent the destination EVEX operand (the old signature is deprecated and replaced) - Restructured XED examples for improved clarity, naming, and usability
- Improved XedPy with more robust initialization and initial high-level Python encode APIs
- Migrated internal types to use
stdint.hexclusively - Added ENC2 support for REX2 prefix encoding with EGPR operands
Fixes
- Fixed many build exclusion options; deprecated several build flavors in favor of
--no-avx512as the minimal build kit (Fixes #336) - Encoder: fixed AMX encoding for non-index SIBMEM operands
- Added missing and removed incorrect non-temporal memory hints
- Resolved Python 3.12 compatibility warnings (Closes #346)
- Fixed AMD
INVLPGBoperand specification (Closes #345) - Corrected AMD
PREFETCH_EXCLUSIVEmnemonic name (Fixes #215) - Updated instruction definitions for various AVX512 instructions
- Applied various documentation improvements (Fixes #347)
Full Changelog: v2025.03.02...v2025.06.08
v2025.03.02
The release updates XED according to Intel's latest ISA publications, including AVX10.2 (Revision 3.0) and APX (Revision 6.0) architecture specifications.
This release also introduces major enhancements to the decoder control APIs.
ISA Updates
- Added new APX instructions that promote the Diamond Rapids ISA.
- Added support for AVX10.2 mnemonic renames.
- Improved definitions for Intel SDM-recommended multi-byte NOPs (See #340).
- Fixed ISA-SET discrepancy for FISTTP.
- Corrected element types for VCVTQQ2PD and VGET{MANT,EXP}PBF16 instructions.
- Refined TSX ISA definition for accurate disassembly representation.
- Dropped compatibility mode SYSCALL per Intel's latest FRED specification.
- Added missing
PROTECTED_MODEandNOPXED attributes for existing ISA.
General
- Python APIs: The
_pybinding APIs are now autogenerated during the build for an accurate representation of the chosen build kit.
For more information, check thexed\pyext\examples\README.mdfile. - Python APIs example: Enhancements for the CFFI example and provided XedPy class.
- Updated the XED build to support Clang versions 17 and 18.
- Improved XED examples documentation and source-code comments.
- Simplified the encode request for AVX10/256VL Embedded Rounding Control instructions by setting only the
ROUNDCXED operand.
Fixes
- Fixed UBSan errors (closes #339).
- Fixed Sierra-Forest and other chip-excluded builds using the
--no-{chip}build knobs (fixes #343). - Corrected SIB segment mapping for the R21 register (fixes #340).
- Internal improvements and code cleanup (fixes #340).
Decoder
- Added REAL-mode legality checks (
INVALID_MODEerror for illegal instructions). - Disassembler: Added support for Intel's recommended APX assembly syntax for NF (No Flags) and DFV (Default Flags Values) instructions.
- Enhanced APIs for APX/DFV instructions to ensure simplicity and efficiency. See the API reference page and the
xed-ex1.cexample for more details.
API Improvements for Decoder ISA Control
The XED decoder control APIs now fully support the xed_chip_features_t structure, offering greater flexibility and control compared to the
xed_chip_enum_t concept, enabling users to customize feature sets with precision.
- Improved the
xed_chip_features_tAPIs to provide fine-grained control over ISA initialization.
This approach is now recommended over the rawxed3_operand_set_*APIs. - Introduced a new API,
xed_set_decoder_modes(), which allows explicit initialization of decoder modes with improved performance through one-time decoder ISA initialization.
Backward Compatibility
- Backward compatibility for existing APIs is maintained.
- Backward compatibility for decoder initialization of several ISA features has been deprecated.
Previously default-on features likeP4(PAUSE),LZCNT(replacing BSR), andTZCNT(replacing BSF) are now disabled by default unless explicitly enabled by users through the raw XED setter APIs or the chip/chip-features APIs.
Decoder PREFETCH as NOP - New Capability
- Based on decoder ISA initialization, the XED decoder now returns NOPs instead of PREFETCH instructions when PREFETCH is not supported by the chip/features. Previously, PREFETCH instructions were returned as illegal if they were unsupported by the XED chip.
Usage Example
- For detailed usage guidance, refer to the XED
xed-ex4.cexample tool, which includes decoder initialization recommendations for dual-encoding ISA.
Full Changelog: v2024.11.04...v2025.03.02
v2024.11.04
The release updates XED according to Intel's latest ISA publications, as detailed in ISE054, ISE055 and AVX10.2-rev2.0.
This version includes support for:
- Intel Diamond Rapids (DMR) chip
- Diamond Rapids AMX instructions
- MOVRS and AVX10-MOVRS instructions
- SM4 EVEX instructions
- MSR-IMM instructions (including APX-promoted variants)
- Encoding updates for various AVX10.2 instructions
- Other updates across XED chip definitions
General
- Shared Library Build for Python: Introduces a unique XED shared library build, exposing all XED APIs via a shared library object.
This enables the library to be loaded in Python environments, allowing interaction with XED using Python APIs.
See the examples in pyext/README.md for more details. (Closes #302) - Disassembler Enhancements: Adds support for emitting CS/DS ignored branch hint prefixes, configurable through the
xed_format_options_tstructure. - Updates minimum Python requirement from 3.8 to 3.9.
- Improves Internal ISA definition APX files (See #338)
Fixes
- Resolves C11 build warnings with GCC (Fixes #332, Closes #333)
- Improves length and error reporting for illegal instructions caused by a zeroed EVEX map (Resolves #334)
Full Changelog: v2024.09.09...v2024.11.04
v2024.09.09
General:
- Set the default security build level to 2, enabling the build of a more secure C library by default. If needed, users can lower the security level using the
--security-level=1build option.
Add:
- Add AVX10/256 VL-ignored (Neither SAE nor Embedded-RC behavior) instructions.
- Add ENC2 support for AVX10/256VL Embedded-RC instructions.
Fix:
- Fix potential buffer overflow in ILD (resolves #331)
- Resolve Python 3.12 Regex syntax warnings.
Full Changelog: v2024.08.15...v2024.09.09
v2024.08.15
The release adds support for Intel Advanced Vector Extensions 10.2 (Intel® AVX10.2) ISA, compliant with the AVX10.2 architecture specification rev-1.0 (July 2024).
Added:
- Decoder and encoder support for Intel AVX10.2 new ISA (No ENC2 support for YMM embedded-RC)
Fixed:
- MPX: Removed wrong support for 16-bit addressing variants (#57)
Full Changelog: v2024.05.20...v2024.08.15
v2024.05.20
General:
- Remove a deprecated
pin-crtbuild option
Added:
- Support APX zero-upper recommended assembly syntax for
IMULandSETccinstructions - Update the
xed_operand_values_mandatory_66_prefix()API to support scalable
instructions introduced with APX - Enhance ENC2 support for legacy instructions with a mandatory
0xF2/0xF3prefix - Integrate an encoding bits emitter for the
xed-ex1.cexample tool (available in verbose mode)
Fixed:
- Add Missing MSR operand for
U{WR,RD}MSRandWRMSRNSinstructions - Fix build errors when the
no-amdoption is enabled and the object area is not clean
Python Code Quality Improvements:
- Simplify the process of adding mbuild to
PYTHONPATH(resolves #323) - Remove duplicate print utilities in
read_xed_db.py(resolves #325) - Create enums for
typeandemit_typeinactions.py(resolves #326)
We sincerely thank all members of the XED community for their essential contributions.
Full Changelog: v2024.04.01...v2024.05.20
v2024.04.01
This release updates XED according to Intel's latest APX spec (Rev-04), April 2024.
It includes:
- Remove promoted SHA and KeyLocker EVEX instructions
- Encoding update for URDMSR/UWRMSR
- Addition of missing CPUID sensitivity for promoted POPCNT EVEX instruction
- Update the handling of EVEX.U and reinterpretation to X4
General:
- Enable a secured build using a new
--security-levelmfile.py knob (1->Medium, 2->High, 3->Highest).
The default level is 1 (will be raised to 2 in a future release)
Please expect performance degradation with level 3. - Drop the ICC/ICL build options using mfile.py
Added:
- AMX: Support the restriction of illegal register combination (Solves #303)
- Disassembler: Print sequential registers using "+(N-1)" notation
- Add ENC2 support for Intel APX architecture (TBD: REX2 for EGPR support)
- Add ENC2 support for KOP instructions
Fixed:
- ISA definition fixes (APX/MOVDIR64B missing operands, Fix CPUID for SYS{ENTER,EXIT}, fix MMX extensions)
- RFLAGS: Fix width definition and wrong duplicated operands for several instructions (Solves #320)
- Fix CPL definition for ENQCMDS (Solves #311)
- Fix CPL definition for LGDT (Solves #312)
- Fix CPL definition for VMCALL (Solves #313)
- Several bug fixes and improvements for the ENC2 library.
For a list of unsupported IFORMS, please check theenc2_unsupported_ref.jsonfile. - Fix build with the clang built of llvm-project trunk (Solves #315)
Modified:
We express our gratitude to all members of the XED community for their valuable contributions.
Full Changelog: v2023.12.19...v2024.04.01
v2023.12.19
This release updates XED according to Intel APX (Rev-03) and Intel AVX10 (Rev-02) architecture specifications, December 2023.
General:
- The XED user guide was updated with explanations for APX, AVX10, and more (https://intelxed.github.io/)
- Updated Python version requirement and documentation to 3.8 (closes #306)
Added:
- Added new APX promoted instructions: RAO-INT and USER-MSR (APX Arch Spec Rev-03)
- Added a complete XED encoder support for Intel APX architecture
- APX(CCMPcc/CTESTcc): Added operand parser API that extracts the default-flags-values from XED DFV pseudo-register
- Updated APX CPUID sensitivity with additional Legacy/VEX CPUID records
- FRED: Added compatibility mode SYSCALL
Fixed:
- Fixed missing REX2 prefix restriction for several legacy instructions
- APX/JMPABS: Added missing RIP suppressed operand
- ENC2: Fixed the encoding of instruction's operands
- Fixed CPUID records for KEYLOCKER and MOVDIR instructions
Modified:
- Updated AVX10 CPUID sensitivity of 64-bit KMASK instructions (AVX10 Arch Spec Rev-02)
- Improved Python code for genutil.py (resolves #307)
Full Changelog: v2023.10.11...v2023.12.19