aarch64: deprecate some ISA features
Deprecates several AArch64 ISA features that were specified but not implemented in products, marking the first step towards eventual removal.
Richard Earnshaw’s patch series introduces deprecation warnings for several AArch64 ISA features that were specified but never implemented in actual products. This is the initial step towards potentially removing support for these features from the tools entirely. Features affected include TME (Transactional Memory Extension) and MPAMv2_VID (Memory Partitioning and Monitoring v2), with the latter involving reverts of previous commits to correctly remove support. The series also includes NEWS file updates and test suite adjustments.
- proposer
Introduces deprecation warnings for unused AArch64 ISA features as a step toward their eventual removal from the tools.
- contributor
Removes a stray comment from opcode/aarch64.h that was left after a flag bit was removed.
- contributor
Adds warnings for instructions related to the unimplemented TME feature and updates existing warning functions.
- contributor
Removes MLBI instruction from a system register alias test, as MLBI is related to unimplemented features.
- contributor
Reverts a previous commit that added support for MLBI system instructions, as MLBI is now considered obsolete.
- contributor
Reverts a commit that added FEAT_MPAMv2_VID system registers, as this feature has been withdrawn by Arm.
- contributor
Removes the '+mpamv2' feature option from the assembler configuration, aligning with the withdrawal of the feature.
- contributor
Updates the NEWS file to reflect the withdrawal of the MPAMv2_VID feature.
Technical Tradeoffs
- Deprecating features first allows users to adapt gradually before full removal, minimizing disruption.
- Reverting previous implementation commits ensures consistency but requires careful conflict resolution if the original commits had subsequent changes.
- Removing unused features simplifies the toolchain maintenance and reduces code complexity.
In Details
Arm has withdrawn certain architectural features for AArch64 that, while defined, never saw product implementation. This series addresses the binutils assembler's response to this withdrawal. It marks features like TME (Transactional Memory Extension) and MPAMv2_VID (Memory Partitioning and Monitoring v2) as deprecated, issuing warnings if they are used. Subsequent commits in the series revert previous additions of these features and clean up related tests and documentation. The ultimate goal is to remove support for these unused features entirely from the toolchain.
- AArch64
- The 64-bit ARM architecture.
- ISA
- Instruction Set Architecture, defining the set of instructions that a processor can execute.
- TME
- Transactional Memory Extension, a set of instructions designed to simplify the implementation of transactional memory.
- MPAMv2_VID
- Memory Partitioning and Monitoring version 2, a feature for managing and monitoring memory resources, with specific Video ID (VID) aspects.
- Deprecation
- Marking a feature or component as obsolete, indicating that it will be removed in a future version, often accompanied by warnings.
- gas
- The GNU Assembler.