aboutsummaryrefslogtreecommitdiff
path: root/lib/Target/Alpha/AlphaSubtarget.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2005-10-23 22:15:34 +0000
committerChris Lattner <sabre@nondot.org>2005-10-23 22:15:34 +0000
commited465f54077d78172a84eff8195adfbfa3117ceb (patch)
treeba742decc4c7f6adf462555f3dc0b88af3a74396 /lib/Target/Alpha/AlphaSubtarget.cpp
parent5882e40dedb6c4e12ca917e08280d7100a1d4681 (diff)
Autogen subtarget information from .td files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23904 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/Alpha/AlphaSubtarget.cpp')
-rw-r--r--lib/Target/Alpha/AlphaSubtarget.cpp44
1 files changed, 10 insertions, 34 deletions
diff --git a/lib/Target/Alpha/AlphaSubtarget.cpp b/lib/Target/Alpha/AlphaSubtarget.cpp
index 15f51c4601..3cbdcb269b 100644
--- a/lib/Target/Alpha/AlphaSubtarget.cpp
+++ b/lib/Target/Alpha/AlphaSubtarget.cpp
@@ -16,46 +16,22 @@
#include "llvm/Module.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Target/SubtargetFeature.h"
-#include "llvm/Support/Debug.h"
-
+#include "AlphaGenSubtarget.inc"
using namespace llvm;
-enum AlphaFeature {
- AlphaFeatureCIX = 1 << 0,
- AlphaFeatureFIX = 1 << 1,
-};
-/// Sorted (by key) array of values for CPU subtype.
-static const SubtargetFeatureKV AlphaSubTypeKV[] = {
- { "ev56" , "Select the Alpha EV56 processor", 0 },
- { "ev6" , "Select the Alpha EV6 processor", AlphaFeatureFIX },
- { "ev67" , "Select the Alpha EV67 processor", AlphaFeatureFIX | AlphaFeatureCIX },
- { "generic", "Select instructions for a generic Alpha processor (EV56)", 0 },
- { "pca56" , "Select the Alpha PCA56 processor", 0 },
+enum {
+ FeatureKVSize = sizeof(FeatureKV) / sizeof(SubtargetFeatureKV),
+ SubTypeKVSize = sizeof(SubTypeKV) / sizeof(SubtargetFeatureKV)
};
-/// Length of AlphaSubTypeKV.
-static const unsigned AlphaSubTypeKVSize = sizeof(AlphaSubTypeKV)
- / sizeof(SubtargetFeatureKV);
-
-/// Sorted (by key) array of values for CPU features.
-static SubtargetFeatureKV AlphaFeatureKV[] = {
- { "CIX", "Should CIX extentions be used" , AlphaFeatureCIX },
- { "FIX" , "Should FIX extentions be used" , AlphaFeatureFIX },
- };
-/// Length of AlphaFeatureKV.
-static const unsigned AlphaFeatureKVSize = sizeof(AlphaFeatureKV)
- / sizeof(SubtargetFeatureKV);
-
AlphaSubtarget::AlphaSubtarget(const Module &M, const std::string &FS)
- :HasF2I(false), HasCT(false)
-{
+ : HasF2I(false), HasCT(false) {
std::string CPU = "generic";
uint32_t Bits =
- SubtargetFeatures::Parse(FS, CPU,
- AlphaSubTypeKV, AlphaSubTypeKVSize,
- AlphaFeatureKV, AlphaFeatureKVSize);
- HasF2I = (Bits & AlphaFeatureFIX) != 0;
- HasCT = (Bits & AlphaFeatureCIX) != 0;
-
+ SubtargetFeatures::Parse(FS, CPU,
+ SubTypeKV, SubTypeKVSize,
+ FeatureKV, FeatureKVSize);
+ HasF2I = (Bits & FeatureFIX) != 0;
+ HasCT = (Bits & FeatureCIX) != 0;
}