summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic
diff options
context:
space:
mode:
authorSaleem Abdulrasool <compnerd@compnerd.org>2018-12-06 03:28:37 +0000
committerSaleem Abdulrasool <compnerd@compnerd.org>2018-12-06 03:28:37 +0000
commitf587857c8834981fe142826e3001d28ce9cf8922 (patch)
tree8fb722dd8e3a3bdd671f3668cd7c03a5417440f9 /clang/lib/Basic
parent889d20715ea1144b812e589a008746cbcab052ff (diff)
downloadbcm5719-llvm-f587857c8834981fe142826e3001d28ce9cf8922.tar.gz
bcm5719-llvm-f587857c8834981fe142826e3001d28ce9cf8922.zip
ARM, AArch64: support `__attribute__((__swiftcall__))`
Support the Swift calling convention on Windows ARM and AArch64. Both of these conform to the AAPCS, AAPCS64 calling convention, and LLVM has been adjusted to account for the register usage. Ensure that the frontend passes this into the backend. This allows the swift runtime to be built for Windows. llvm-svn: 348454
Diffstat (limited to 'clang/lib/Basic')
-rw-r--r--clang/lib/Basic/Targets/AArch64.cpp1
-rw-r--r--clang/lib/Basic/Targets/ARM.cpp1
2 files changed, 2 insertions, 0 deletions
diff --git a/clang/lib/Basic/Targets/AArch64.cpp b/clang/lib/Basic/Targets/AArch64.cpp
index e64eb21a49f..376cba6e455 100644
--- a/clang/lib/Basic/Targets/AArch64.cpp
+++ b/clang/lib/Basic/Targets/AArch64.cpp
@@ -514,6 +514,7 @@ WindowsARM64TargetInfo::checkCallingConvention(CallingConv CC) const {
case CC_OpenCLKernel:
case CC_PreserveMost:
case CC_PreserveAll:
+ case CC_Swift:
case CC_Win64:
return CCCR_OK;
default:
diff --git a/clang/lib/Basic/Targets/ARM.cpp b/clang/lib/Basic/Targets/ARM.cpp
index 5345d1f8e9d..cb202eac985 100644
--- a/clang/lib/Basic/Targets/ARM.cpp
+++ b/clang/lib/Basic/Targets/ARM.cpp
@@ -996,6 +996,7 @@ WindowsARMTargetInfo::checkCallingConvention(CallingConv CC) const {
case CC_OpenCLKernel:
case CC_PreserveMost:
case CC_PreserveAll:
+ case CC_Swift:
return CCCR_OK;
default:
return CCCR_Warning;
OpenPOWER on IntegriCloud