diff options
author | Logan Chien <tzuhsiang.chien@gmail.com> | 2013-02-23 04:24:36 +0000 |
---|---|---|
committer | Logan Chien <tzuhsiang.chien@gmail.com> | 2013-02-23 04:24:36 +0000 |
commit | 5a5a96bfdce43384f93f12281ca97092b21e38e0 (patch) | |
tree | d4f87a86cdc6fe1692ac764d5eda86b4c12ee284 /clang/lib/Basic/Targets.cpp | |
parent | 72310355ff64de112fcdd9e39297ddf377c9257e (diff) | |
download | bcm5719-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/Targets.cpp')
-rw-r--r-- | clang/lib/Basic/Targets.cpp | 12 |
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[] = { |