summaryrefslogtreecommitdiff
path: root/lib/Target/X86/TargetInfo
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/X86/TargetInfo
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/X86/TargetInfo')
-rw-r--r--lib/Target/X86/TargetInfo/X86TargetInfo.cpp34
1 files changed, 5 insertions, 29 deletions
diff --git a/lib/Target/X86/TargetInfo/X86TargetInfo.cpp b/lib/Target/X86/TargetInfo/X86TargetInfo.cpp
index d371bced71..08d4d84f8a 100644
--- a/lib/Target/X86/TargetInfo/X86TargetInfo.cpp
+++ b/lib/Target/X86/TargetInfo/X86TargetInfo.cpp
@@ -12,36 +12,12 @@
#include "llvm/Target/TargetRegistry.h"
using namespace llvm;
-Target llvm::TheX86_32Target;
-
-static unsigned X86_32_TripleMatchQuality(const std::string &TT) {
- // We strongly match "i[3-9]86-*".
- if (TT.size() >= 5 && TT[0] == 'i' && TT[2] == '8' && TT[3] == '6' &&
- TT[4] == '-' && TT[1] - '3' < 6)
- return 20;
-
- return 0;
-}
-
-Target llvm::TheX86_64Target;
-
-static unsigned X86_64_TripleMatchQuality(const std::string &TT) {
- // We strongly match "x86_64-*".
- if (TT.size() >= 7 && TT[0] == 'x' && TT[1] == '8' && TT[2] == '6' &&
- TT[3] == '_' && TT[4] == '6' && TT[5] == '4' && TT[6] == '-')
- return 20;
-
- return 0;
-}
+Target llvm::TheX86_32Target, llvm::TheX86_64Target;
extern "C" void LLVMInitializeX86TargetInfo() {
- TargetRegistry::RegisterTarget(TheX86_32Target, "x86",
- "32-bit X86: Pentium-Pro and above",
- &X86_32_TripleMatchQuality,
- /*HasJIT=*/true);
+ RegisterTarget<Triple::x86, /*HasJIT=*/true>
+ X(TheX86_32Target, "x86", "32-bit X86: Pentium-Pro and above");
- TargetRegistry::RegisterTarget(TheX86_64Target, "x86-64",
- "64-bit X86: EM64T and AMD64",
- &X86_64_TripleMatchQuality,
- /*HasJIT=*/true);
+ RegisterTarget<Triple::x86_64, /*HasJIT=*/true>
+ Y(TheX86_64Target, "x86-64", "64-bit X86: EM64T and AMD64");
}