[clang] [llvm] [AArch64][llvm] Add support for FEAT_HINTE for Armv9.6 onwards (PR #206905)
Jonathan Thackray via cfe-commits
cfe-commits at lists.llvm.org
Wed Jul 1 08:56:38 PDT 2026
================
@@ -192,6 +192,13 @@ std::string AArch64SysReg::genericRegisterString(uint32_t Bits) {
utostr(CRm) + "_" + utostr(Op2);
}
+bool AArch64SysReg::isHINTESystemRegisterEncoding(uint32_t Bits) {
----------------
jthackray wrote:
Yes, it's because the `HINTE` encoding space overlaps with the system register encoding space. It's related to your change https://github.com/llvm/llvm-project/pull/185709 (but which you reverted in https://github.com/llvm/llvm-project/pull/201137) but slightly different as you removed bit 20, whereas this change only carves out the `HINTE` space.
Without it, `hinte #0` disassembles to `msr S0_0_C2_C0_0, x0`:
```
printf '[0x00,0x20,0x00,0xd5]\n' | llvm-mc -triple=aarch64 -disassemble --mattr=-hinte --show-encoding
msr S0_0_C2_C0_0, x0 // encoding: [0x00,0x20,0x00,0xd5]
```
and with it:
```
% printf '[0x00,0x20,0x00,0xd5]\n' | rel/bin/llvm-mc -triple=aarch64 -disassemble --mattr=+hinte --show-encoding
hinte #0 // encoding: [0x00,0x20,0x00,0xd5]
```
https://github.com/llvm/llvm-project/pull/206905
More information about the cfe-commits
mailing list