[compiler-rt] [flang] [llvm] [AArch64] fix trampoline implementation: use X15 (PR #126743)

Eli Friedman via llvm-commits llvm-commits at lists.llvm.org
Tue May 13 14:00:05 PDT 2025


================
@@ -523,6 +537,7 @@ def CC_AArch64_Preserve_None : CallingConv<[
   // We can pass arguments in all general registers, except:
   // - X8, used for sret
   // - X16/X17, used by the linker as IP0/IP1
+  // - X15, the nest register and used by Windows for stack allocation
----------------
efriedma-quic wrote:

We prefer intrinsics use standardized attributes/semantics to avoid scattering special cases all over, but we do have checks for specific intrinsics in certain cases.

For constructs which could have well-defined semantics on some other backend, but can't be lowered by some particular backend (like weird calling conventions), we usually just have the backend report an error, though.

https://github.com/llvm/llvm-project/pull/126743


More information about the llvm-commits mailing list