summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorSaleem Abdulrasool <compnerd@compnerd.org>2017-09-26 19:26:01 +0000
committerSaleem Abdulrasool <compnerd@compnerd.org>2017-09-26 19:26:01 +0000
commit4d321336d020189659a0d665dcd0b8f444e7be5c (patch)
treea4e7834bf4631283efb8219e0a77befe6bb5d3be /clang/lib
parent99eda60b49e6c483f8548eb69709d8b5a7bed7b8 (diff)
downloadbcm5719-llvm-4d321336d020189659a0d665dcd0b8f444e7be5c.tar.gz
bcm5719-llvm-4d321336d020189659a0d665dcd0b8f444e7be5c.zip
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
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/Basic/Targets/AArch64.cpp2
-rw-r--r--clang/lib/Basic/Targets/X86.h2
2 files changed, 4 insertions, 0 deletions
diff --git a/clang/lib/Basic/Targets/AArch64.cpp b/clang/lib/Basic/Targets/AArch64.cpp
index 0de8727a1a3..2a85c89cbb3 100644
--- a/clang/lib/Basic/Targets/AArch64.cpp
+++ b/clang/lib/Basic/Targets/AArch64.cpp
@@ -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:
diff --git a/clang/lib/Basic/Targets/X86.h b/clang/lib/Basic/Targets/X86.h
index a08eeec59dc..27732dbe3bc 100644
--- a/clang/lib/Basic/Targets/X86.h
+++ b/clang/lib/Basic/Targets/X86.h
@@ -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:
OpenPOWER on IntegriCloud