[all-commits] [llvm/llvm-project] 0b326b: [PAC][CodeGen][ELF][AArch64] Support signed TLSDESC

Daniil Kovalev via All-commits all-commits at lists.llvm.org
Sun Dec 8 06:01:35 PST 2024


  Branch: refs/heads/users/kovdan01/pauth-signed-tlsdesc-codegen
  Home:   https://github.com/llvm/llvm-project
  Commit: 0b326b23a5ee1db0c44cff6fcdead9c2c832dad8
      https://github.com/llvm/llvm-project/commit/0b326b23a5ee1db0c44cff6fcdead9c2c832dad8
  Author: Daniil Kovalev <dkovalev at accesssoftek.com>
  Date:   2024-12-08 (Sun, 08 Dec 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
    M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
    M llvm/lib/Target/AArch64/AArch64ISelLowering.h
    M llvm/lib/Target/AArch64/AArch64InstrInfo.td
    M llvm/lib/Target/AArch64/AArch64MCInstLower.cpp
    M llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
    M llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFObjectWriter.cpp
    M llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.cpp
    M llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.h
    A llvm/test/CodeGen/AArch64/ptrauth-arm64-tls-dynamics.ll
    M llvm/test/MC/AArch64/arm64-elf-relocs.s
    M llvm/test/MC/AArch64/ilp32-diagnostics.s

  Log Message:
  -----------
  [PAC][CodeGen][ELF][AArch64] Support signed TLSDESC

Support the following relocations and assembly operators:

- `R_AARCH64_AUTH_TLSDESC_ADR_PAGE21` (`:tlsdesc_auth:` for `adrp`)
- `R_AARCH64_AUTH_TLSDESC_LD64_LO12` (`:tlsdesc_auth_lo12:` for `ldr`)
- `R_AARCH64_AUTH_TLSDESC_ADD_LO12` (`:tlsdesc_auth_lo12:` for `add`)

`TLSDESC_AUTH_CALLSEQ` pseudo-instruction is introduced which is later expanded
to actual instruction sequence like the following.

```
adrp  x0, :tlsdesc_auth:var
ldr   x16, [x0, #:tlsdesc_auth_lo12:var]
add   x0, x0, #:tlsdesc_auth_lo12:var
.tlsdesccall var
blraa x16, x0
(TPIDR_EL0 offset now in x0)
```

Only SelectionDAG ISel is supported.

Tests starting with 'ptrauth-' have corresponding variants w/o this prefix.


  Commit: a5209c70eedad26e41ab8adbbc5847b498294eb8
      https://github.com/llvm/llvm-project/commit/a5209c70eedad26e41ab8adbbc5847b498294eb8
  Author: Daniil Kovalev <dkovalev at accesssoftek.com>
  Date:   2024-12-08 (Sun, 08 Dec 2024)

  Changed paths:
    M llvm/test/MC/AArch64/ilp32-diagnostics.s

  Log Message:
  -----------
  Check error line number in test


  Commit: cf96e452afb6f35eb53f55ccacc178a93bf4317e
      https://github.com/llvm/llvm-project/commit/cf96e452afb6f35eb53f55ccacc178a93bf4317e
  Author: Daniil Kovalev <dkovalev at accesssoftek.com>
  Date:   2024-12-08 (Sun, 08 Dec 2024)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
    M llvm/test/CodeGen/AArch64/ptrauth-arm64-tls-dynamics.ll

  Log Message:
  -----------
  Do not emit .tlsdesccall for AUTH TLSDESC


Compare: https://github.com/llvm/llvm-project/compare/c7d72cb7122e...cf96e452afb6

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