================
@@ -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

Reply via email to