================
@@ -343,18 +362,23 @@ int DwarfInstructions<A, R>::stepWithDwarf(
if (RAState == RASignedWithPC) {
register unsigned long long x15 __asm("x15") =
prolog.ptrAuthDiversifier;
- if (cieInfo.addressesSignedWithBKey) {
- asm("hint 0x27\n\t" // pacm
- "hint 0xe"
- : "+r"(x17)
- : "r"(x16), "r"(x15)); // autib1716
- } else {
- asm("hint 0x27\n\t" // pacm
- "hint 0xc"
- : "+r"(x17)
- : "r"(x16), "r"(x15)); // autia1716
+ if (cieInfo.nonHintPAuthFrame)
+ x17 = nonHintLRAuthentication(prolog.ptrAuthDiversifier, cfa,
+ returnAddress,
+ cieInfo.addressesSignedWithBKey);
+ else {
+ if (cieInfo.addressesSignedWithBKey) {
+ asm("hint 0x27\n\t"); // pacm
+ asm("hint 0xe" : "+r"(x17) : "r"(x16), "r"(x15)); // autib1716
----------------
kmclaughlin-arm wrote:
Moved the pacm instruction into the same statement, similar to how it was
before.
https://github.com/llvm/llvm-project/pull/233885
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits