aboutsummaryrefslogtreecommitdiff
path: root/lib/Target/PowerPC/PPCSubtarget.cpp
diff options
context:
space:
mode:
authorJim Laskey <jlaskey@mac.com>2005-10-26 17:30:34 +0000
committerJim Laskey <jlaskey@mac.com>2005-10-26 17:30:34 +0000
commit581a8f79bc1ac3cbe5d621f0b4a0252ab2890bc1 (patch)
treee0435c8b6e5ebbbf495377a4cd055095d2589939 /lib/Target/PowerPC/PPCSubtarget.cpp
parentf0c2be4d2b6f5b04746efae88e8bc642a864361e (diff)
Give full control of subtarget features over to table generated code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24013 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/PowerPC/PPCSubtarget.cpp')
-rw-r--r--lib/Target/PowerPC/PPCSubtarget.cpp21
1 files changed, 12 insertions, 9 deletions
diff --git a/lib/Target/PowerPC/PPCSubtarget.cpp b/lib/Target/PowerPC/PPCSubtarget.cpp
index 1995e1ceb0..94af54c359 100644
--- a/lib/Target/PowerPC/PPCSubtarget.cpp
+++ b/lib/Target/PowerPC/PPCSubtarget.cpp
@@ -68,22 +68,25 @@ static const char *GetCurrentPowerPCCPU() {
}
#endif
+
PPCSubtarget::PPCSubtarget(const Module &M, const std::string &FS)
- : StackAlignment(16), IsGigaProcessor(false), IsAIX(false), IsDarwin(false) {
+ : StackAlignment(16)
+ , IsGigaProcessor(false)
+ , Is64Bit(false)
+ , Has64BitRegs(false)
+ , HasAltivec(false)
+ , HasFSQRT(false)
+ , IsAIX(false)
+ , IsDarwin(false) {
// Determine default and user specified characteristics
std::string CPU = "generic";
#if defined(__APPLE__)
CPU = GetCurrentPowerPCCPU();
#endif
- SubtargetFeatures Features(FS);
- Features.setCPUIfNone(CPU);
- uint32_t Bits = Features.getBits(SubTypeKV, SubTypeKVSize,
- FeatureKV, FeatureKVSize);
- IsGigaProcessor = (Bits & FeatureGPUL ) != 0;
- Is64Bit = (Bits & Feature64Bit) != 0;
- HasFSQRT = (Bits & FeatureFSqrt) != 0;
- Has64BitRegs = (Bits & Feature64BitRegs) != 0;
+
+ // Parse features string.
+ ParseSubtargetFeatures(FS, CPU);
// Set the boolean corresponding to the current target triple, or the default
// if one cannot be determined, to true.