================
@@ -827,6 +827,54 @@ DEFINE_LIBUNWIND_FUNCTION(__unw_getcontext)
   ret
 #endif
 
+//
+// extern "C" bool __libunwind_Registers_arm64_za_disable()
+//
+// On return:
+//  success (true/false) is returned in x0
+//
+  .p2align 2
+DEFINE_LIBUNWIND_FUNCTION(__libunwind_Registers_arm64_za_disable)
+  // If TPIDR2_EL0 is null, the subroutine just disables ZA.
----------------
MacDue wrote:

The `BTI_C` macro used in `compiler-rt` (which may not expand to a `bti` 
instruction) does not exist in `libunwind`.  Other functions add 
`pacibsp/retab` based on `__has_feature(ptrauth_calls)`, so I've updated 
`__libunwind_Registers_arm64_za_disable` to do the same (IIRC, `pacibsp` also 
acts like a `bti`).

I'm not sure what `.variant_pcs` would mean/do here. I believe this function 
should comply with the standard C calling convention (which it is called with), 
 as the declaration in `Registers.hpp` does not indicate any alternate calling 
convention. 

https://github.com/llvm/llvm-project/pull/165451
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to