summaryrefslogtreecommitdiff
path: root/lib/Target/ARM/TargetInfo/ARMTargetInfo.cpp
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-07-26 05:03:33 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-07-26 05:03:33 +0000
commit8977d087c693fd581db82bcff134d12da0f48bd3 (patch)
tree658de5d523595bb7928de54e705d38109d63e53b /lib/Target/ARM/TargetInfo/ARMTargetInfo.cpp
parent8c2f1d7e44d214bc2242a8c6faa4b624b3876540 (diff)
downloadllvm-8977d087c693fd581db82bcff134d12da0f48bd3.tar.gz
llvm-8977d087c693fd581db82bcff134d12da0f48bd3.tar.bz2
llvm-8977d087c693fd581db82bcff134d12da0f48bd3.tar.xz
Factor commonality in triple match routines into helper template for registering
classes, and migrate existing targets over. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77126 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/TargetInfo/ARMTargetInfo.cpp')
-rw-r--r--lib/Target/ARM/TargetInfo/ARMTargetInfo.cpp34
1 files changed, 5 insertions, 29 deletions
diff --git a/lib/Target/ARM/TargetInfo/ARMTargetInfo.cpp b/lib/Target/ARM/TargetInfo/ARMTargetInfo.cpp
index a975a1c6e9..163a0a9875 100644
--- a/lib/Target/ARM/TargetInfo/ARMTargetInfo.cpp
+++ b/lib/Target/ARM/TargetInfo/ARMTargetInfo.cpp
@@ -12,36 +12,12 @@
#include "llvm/Target/TargetRegistry.h"
using namespace llvm;
-Target llvm::TheARMTarget;
-
-static unsigned ARM_TripleMatchQuality(const std::string &TT) {
- // Match arm-foo-bar, as well as things like armv5blah-*
- if (TT.size() >= 4 &&
- (TT.substr(0, 4) == "arm-" || TT.substr(0, 4) == "armv"))
- return 20;
-
- return 0;
-}
-
-Target llvm::TheThumbTarget;
-
-static unsigned Thumb_TripleMatchQuality(const std::string &TT) {
- // Match thumb-foo-bar, as well as things like thumbv5blah-*
- if (TT.size() >= 6 &&
- (TT.substr(0, 6) == "thumb-" || TT.substr(0, 6) == "thumbv"))
- return 20;
-
- return 0;
-}
+Target llvm::TheARMTarget, llvm::TheThumbTarget;
extern "C" void LLVMInitializeARMTargetInfo() {
- TargetRegistry::RegisterTarget(TheARMTarget, "arm",
- "ARM",
- &ARM_TripleMatchQuality,
- /*HasJIT=*/true);
+ RegisterTarget<Triple::arm, /*HasJIT=*/true>
+ X(TheARMTarget, "arm", "ARM");
- TargetRegistry::RegisterTarget(TheThumbTarget, "thumb",
- "Thumb",
- &Thumb_TripleMatchQuality,
- /*HasJIT=*/true);
+ RegisterTarget<Triple::thumb, /*HasJIT=*/true>
+ Y(TheThumbTarget, "thumb", "Thumb");
}