Commit aea98844 authored by Ahmed Bougacha's avatar Ahmed Bougacha
Browse files

[IR][AArch64] Add "ptrauth(...)" Constant to represent signed pointers.



This defines a new kind of IR Constant that represents a ptrauth
signed pointer, as used in AArch64 PAuth.

It allows representing most kinds of signed pointer constants
used thus far in the llvm ptrauth implementations, notably those
used in the Darwin and ELF ABIs being implemented for c/c++.
These signed pointer constants are then lowered to ELF/MachO
relocations.

These can be simply thought of as a constant `llvm.ptrauth.sign`,
with the interesting addition of discriminator computation:
the `ptrauth` constant can also represent a combined blend,
when both address and integer discriminator operands are used.

Co-Authored-by: default avatarTim Northover <tnorthover@apple.com>
parent 0c423af5
Pipeline #1622 failed with stages
in 0 seconds