[all-commits] [llvm/llvm-project] c20991: [AArch64][llvm] Some instructions should be `HINT`...

Jonathan Thackray via All-commits all-commits at lists.llvm.org
Tue Apr 28 11:46:40 PDT 2026


  Branch: refs/heads/users/jthackray/rewrite_stshh
  Home:   https://github.com/llvm/llvm-project
  Commit: c209918853ac1438e997039faed8f0d4cee770b4
      https://github.com/llvm/llvm-project/commit/c209918853ac1438e997039faed8f0d4cee770b4
  Author: Jonathan Thackray <jonathan.thackray at arm.com>
  Date:   2026-04-28 (Tue, 28 Apr 2026)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
    M llvm/lib/Target/AArch64/AArch64InstrFormats.td
    M llvm/lib/Target/AArch64/AArch64InstrInfo.td
    M llvm/lib/Target/AArch64/AArch64SystemOperands.td
    M llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
    M llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.cpp
    M llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.h
    M llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h

  Log Message:
  -----------
  [AArch64][llvm] Some instructions should be `HINT` aliases (NFC)

Implement the following instructions as a `HINT` alias instead of a
dedicated instruction in separate classes:
  * `stshh`
  * `stcph`
  * `shuh`
  * `tsb`

Updated all their helper methods too, and updated the `stshh` pseudo
expansion for the intrinsic to emit `HINT #0x30 | policy`.

Code in AArch64AsmPrinter::emitInstruction identified an initial BTI using a
broad bitmask on the HINT immediate, which also matched shuh/stcph (50..52)
This could move the patchable entry label after a non-BTI instruction.
Replaced it with an exact BTI check using the BTI HINT range (32..63) and
AArch64BTIHint::lookupBTIByEncoding(Imm ^ 32).

A following change will remove duplicated code and simplify.

No test changes.


  Commit: 7451f52cfb720c0f3a9ca4d32226b9d7b13c8209
      https://github.com/llvm/llvm-project/commit/7451f52cfb720c0f3a9ca4d32226b9d7b13c8209
  Author: Jonathan Thackray <jonathan.thackray at arm.com>
  Date:   2026-04-28 (Tue, 28 Apr 2026)

  Changed paths:
    M llvm/test/MC/AArch64/armv8.2a-statistical-profiling.s
    M llvm/test/MC/AArch64/armv8.4a-trace.s
    M llvm/test/MC/AArch64/armv9.5a-pauthlr.s
    M llvm/test/MC/AArch64/armv9.6a-pcdphint.s
    M llvm/test/MC/AArch64/armv9.7a-memsys.s
    M llvm/test/MC/AArch64/basic-a64-instructions.s
    M llvm/test/MC/AArch64/ras-extension.s
    M llvm/test/MC/AArch64/speculation-barriers.s

  Log Message:
  -----------
  fixup! Add testcases for all missing HINTs


Compare: https://github.com/llvm/llvm-project/compare/424140a876e7...7451f52cfb72

To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list