[llvm] [PAC][IR][AArch64] Add "ptrauth(...)" Constant to represent signed pointers. (PR #85738)
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Wed May 8 18:21:49 PDT 2024
================
@@ -4750,6 +4750,40 @@ reference to the CFI jump table in the ``LowerTypeTests`` pass. These constants
may be useful in low-level programs, such as operating system kernels, which
need to refer to the actual function body.
+.. _ptrauth_constant:
+
+Pointer Authentication Constants
+--------------------------------
+
+``ptrauth (ptr CST, i32 KEY[, i64 DISC[, ptr ADDRDISC]?]?)``
+
+A '``ptrauth``' constant represents a pointer with a cryptographic
+authentication signature embedded into some bits, as described in the
+`Pointer Authentication <PointerAuth.html>`__ document.
+
+A '``ptrauth``' constant is simply a constant equivalent to the
+``llvm.ptrauth.sign`` intrinsic, potentially fed by a discriminator
+``llvm.ptrauth.blend`` if needed.
+
+Its type is the same as the first argument. An integer constant discriminator
+and an address discriminator may be optionally specified. Otherwise, they have
+values ``i64 0`` and ``ptr null``.
+
+If the address disciminator is ``null`` then the expression is equivalent to
----------------
nikic wrote:
```suggestion
If the address discriminator is ``null`` then the expression is equivalent to
```
https://github.com/llvm/llvm-project/pull/85738
More information about the llvm-commits
mailing list