[all-commits] [llvm/llvm-project] 464fa3: [AArch64][MachO] Encode @AUTH to ARM64_RELOC_AUTHE...

Ahmed Bougacha via All-commits all-commits at lists.llvm.org
Fri Aug 16 12:00:01 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 464fa3b3b047518699689b57c473c87701986593
      https://github.com/llvm/llvm-project/commit/464fa3b3b047518699689b57c473c87701986593
  Author: Ahmed Bougacha <ahmed at bougacha.org>
  Date:   2024-08-16 (Fri, 16 Aug 2024)

  Changed paths:
    M llvm/docs/PointerAuth.md
    M llvm/lib/Object/MachOObjectFile.cpp
    M llvm/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp
    A llvm/test/MC/AArch64/arm64e-authenticated-pointer-reloc.s

  Log Message:
  -----------
  [AArch64][MachO] Encode @AUTH to ARM64_RELOC_AUTHENTICATED_POINTER.

This adds MachO support for emission of authenticated pointer
relocations.

We already support AArch64AuthMCExpr, to represent assembly expressions
such as:
  .quad <symbol>@AUTH(<key>, <discriminator> [, addr])
For example:
  .quad _g3 at AUTH(ib, 1234, addr)

These @AUTH expressions lower to a new kind of MachO relocation:
  ARM64_RELOC_AUTHENTICATED_POINTER (11)

The relocation points to the referenced symbol.
The other data, describing the signing scheme and original addend
(only 32 bits instead of 64), is encoded into the addend (in the
relocated location):

  |63|62|61-51|50-49|  48  |47     -     32|31  -  0|
  | 1| 0|  0  | key | addr | discriminator | addend |



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