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

Jameson Nash via llvm-commits llvm-commits at lists.llvm.org
Tue May 13 09:08:56 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
----------------
vtjnash wrote:

Alright, I updated the LangRef to note that nest is undefined behavior in the compiler when used with these calling conventions so that I could remove that part of the change. There doesn't really seem a good way to assert this and return it as a Verifier error, since LLVM I doesn't think it usually has that sort of intrinsic function usage checks in the Verifier?

This PR should be ready to land now (and the langref clarifications in #139740), since it should just be a bugfix for trampoline use, without any other ABI changes.

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


More information about the llvm-commits mailing list