summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic
diff options
context:
space:
mode:
authorLogan Chien <tzuhsiang.chien@gmail.com>2013-02-23 04:24:36 +0000
committerLogan Chien <tzuhsiang.chien@gmail.com>2013-02-23 04:24:36 +0000
commit5a5a96bfdce43384f93f12281ca97092b21e38e0 (patch)
treed4f87a86cdc6fe1692ac764d5eda86b4c12ee284 /clang/lib/Basic
parent72310355ff64de112fcdd9e39297ddf377c9257e (diff)
downloadbcm5719-llvm-5a5a96bfdce43384f93f12281ca97092b21e38e0.tar.gz
bcm5719-llvm-5a5a96bfdce43384f93f12281ca97092b21e38e0.zip
Implement __builtin_eh_return_data_regno() for ARM and MIPS.
llvm-svn: 175954
Diffstat (limited to 'clang/lib/Basic')
-rw-r--r--clang/lib/Basic/Targets.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index eaf2e7d05e6..ec57ca3609f 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -3721,6 +3721,12 @@ public:
virtual CallingConvCheckResult checkCallingConvention(CallingConv CC) const {
return (CC == CC_AAPCS || CC == CC_AAPCS_VFP) ? CCCR_OK : CCCR_Warning;
}
+
+ virtual int getEHDataRegisterNumber(unsigned RegNo) const {
+ if (RegNo == 0) return 0;
+ if (RegNo == 1) return 1;
+ return -1;
+ }
};
const char * const ARMTargetInfo::GCCRegNames[] = {
@@ -4434,6 +4440,12 @@ public:
if (it != Features.end())
Features.erase(it);
}
+
+ virtual int getEHDataRegisterNumber(unsigned RegNo) const {
+ if (RegNo == 0) return 4;
+ if (RegNo == 1) return 5;
+ return -1;
+ }
};
const Builtin::Info MipsTargetInfoBase::BuiltinInfo[] = {
OpenPOWER on IntegriCloud