diff options
author | Daniel Dunbar <daniel@zuster.org> | 2009-07-26 05:03:33 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2009-07-26 05:03:33 +0000 |
commit | 8977d087c693fd581db82bcff134d12da0f48bd3 (patch) | |
tree | 658de5d523595bb7928de54e705d38109d63e53b /lib/Target/ARM/TargetInfo | |
parent | 8c2f1d7e44d214bc2242a8c6faa4b624b3876540 (diff) | |
download | llvm-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')
-rw-r--r-- | lib/Target/ARM/TargetInfo/ARMTargetInfo.cpp | 34 |
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"); } |