summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/Mangle.cpp
diff options
context:
space:
mode:
authorErich Keane <erich.keane@intel.com>2016-11-02 18:29:35 +0000
committerErich Keane <erich.keane@intel.com>2016-11-02 18:29:35 +0000
commit757d317c24288bdfb333b6b2c1fbd7ae01d59493 (patch)
tree6bc5cdaab773009ff9f3b9b0ffaee356b82dc279 /clang/lib/AST/Mangle.cpp
parent1867c6cd422a18a6e93a8c851d86993671a1718b (diff)
regcall: Implement regcall Calling Conv in clang
This patch implements the register call calling convention, which ensures as many values as possible are passed in registers. CodeGen changes were committed in https://reviews.llvm.org/rL284108. Differential Revision: https://reviews.llvm.org/D25204 llvm-svn: 285849
Diffstat (limited to 'clang/lib/AST/Mangle.cpp')
-rw-r--r--clang/lib/AST/Mangle.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/clang/lib/AST/Mangle.cpp b/clang/lib/AST/Mangle.cpp
index ee241732e8ad..05dd886adcef 100644
--- a/clang/lib/AST/Mangle.cpp
+++ b/clang/lib/AST/Mangle.cpp
@@ -52,6 +52,7 @@ void MangleContext::anchor() { }
enum CCMangling {
CCM_Other,
CCM_Fast,
+ CCM_RegCall,
CCM_Vector,
CCM_Std
};
@@ -152,6 +153,8 @@ void MangleContext::mangleName(const NamedDecl *D, raw_ostream &Out) {
Out << '_';
else if (CC == CCM_Fast)
Out << '@';
+ else if (CC == CCM_RegCall)
+ Out << "__regcall3__";
if (!MCXX)
Out << D->getIdentifier()->getName();