[llvm] [clang] New calling convention preserve_none (PR #76868)

Shengchen Kan via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 10 22:57:24 PST 2024


================
@@ -1056,6 +1056,23 @@ def CC_Intel_OCL_BI : CallingConv<[
   CCDelegateTo<CC_X86_32_C>
 ]>;
 
+def CC_X86_64_Preserve_None : CallingConv<[
+  // We don't preserve general registers, so all of them can be used to pass
+  // arguments except
+  //   - RBP        frame pointer
+  //   - R10        'nest' parameter
+  //   - RBX        base pointer
+  //   - R16 - R31  these are not available everywhere
----------------
KanRobert wrote:

I won't expect this from the name `preserve_none`. R16-R31 should be used to pas arguments when they're available. 

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


More information about the llvm-commits mailing list