Basic: support Preserve{Most,All} CC on Windows
Add support for the `preserve_mostcc` and `preserve_allcc` on Windows x86_64 and AArch64. This is used by Swift. llvm-svn: 314236
This commit is contained in:
parent
99eda60b49
commit
4d321336d0
|
@ -452,6 +452,8 @@ WindowsARM64TargetInfo::checkCallingConvention(CallingConv CC) const {
|
|||
return CCCR_Ignore;
|
||||
case CC_C:
|
||||
case CC_OpenCLKernel:
|
||||
case CC_PreserveMost:
|
||||
case CC_PreserveAll:
|
||||
case CC_Win64:
|
||||
return CCCR_OK;
|
||||
default:
|
||||
|
|
|
@ -916,6 +916,8 @@ public:
|
|||
case CC_C:
|
||||
case CC_X86VectorCall:
|
||||
case CC_IntelOclBicc:
|
||||
case CC_PreserveMost:
|
||||
case CC_PreserveAll:
|
||||
case CC_X86_64SysV:
|
||||
case CC_Swift:
|
||||
case CC_X86RegCall:
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
// RUN: %clang_cc1 -triple x86_64-unknown-unknown -emit-llvm < %s | FileCheck %s
|
||||
// RUN: %clang_cc1 -triple arm64-unknown-unknown -emit-llvm < %s | FileCheck %s
|
||||
|
||||
// RUN: %clang_cc1 -triple x86_64-unknown-windows-msvc -emit-llvm %s -o - | FileCheck %s
|
||||
// RUN: %clang_cc1 -triple aarch64-unknown-windows-msvc -emit-llvm %s -o - | FileCheck %s
|
||||
|
||||
// Check that the preserve_most calling convention attribute at the source level
|
||||
// is lowered to the corresponding calling convention attrribute at the LLVM IR
|
||||
// level.
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
// RUN: %clang_cc1 %s -fsyntax-only -triple x86_64-unknown-unknown -verify
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple arm64-unknown-unknown -verify
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple x86_64-unknown-windows-msvc -verify
|
||||
// RUN: %clang_cc1 %s -fsyntax-only -triple aarch64-unknown-windows-msvc -verify
|
||||
|
||||
typedef void typedef_fun_t(int);
|
||||
|
||||
void __attribute__((preserve_most)) foo(void *ptr) {
|
||||
|
|
Loading…
Reference in New Issue