summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/PowerPC/PPCSubtarget.h
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Target/PowerPC/PPCSubtarget.h')
-rw-r--r--llvm/lib/Target/PowerPC/PPCSubtarget.h27
1 files changed, 21 insertions, 6 deletions
diff --git a/llvm/lib/Target/PowerPC/PPCSubtarget.h b/llvm/lib/Target/PowerPC/PPCSubtarget.h
index e898a048c6c..2c5c6bac7cd 100644
--- a/llvm/lib/Target/PowerPC/PPCSubtarget.h
+++ b/llvm/lib/Target/PowerPC/PPCSubtarget.h
@@ -35,6 +35,7 @@ protected:
bool IsGigaProcessor;
bool Has64BitSupport;
bool Use64BitRegs;
+ bool IsPPC64;
bool HasAltivec;
bool HasFSQRT;
bool HasSTFIWX;
@@ -58,21 +59,35 @@ public:
/// getInstrItins - Return the instruction itineraies based on subtarget
/// selection.
const InstrItineraryData getInstrItineraryData() const { return InstrItins; }
-
+
+ /// getTargetDataString - Return the pointer size and type alignment
+ /// properties of this subtarget.
const char *getTargetDataString() const {
- // FIXME: Make is64Bit be for the processor, not the target.
- return true ? "E-p:32:32-d:32-l:32" : "E-p:64:64-d:32-l:32";
+ return isPPC64() ? "E-p:64:64-d:32-l:32" : "E-p:32:32-d:32-l:32";
}
+ /// isPPC64 - Return true if we are generating code for 64-bit pointer mode.
+ ///
+ bool isPPC64() const { return IsPPC64; }
+
+ /// has64BitSupport - Return true if the selected CPU supports 64-bit
+ /// instructions, regardless of whether we are in 32-bit or 64-bit mode.
+ bool has64BitSupport() const { return Has64BitSupport; }
+
+ /// use64BitRegs - Return true if in 64-bit mode or if we should use 64-bit
+ /// registers in 32-bit mode when possible. This can only true if
+ /// has64BitSupport() returns true.
+ bool use64BitRegs() const { return Use64BitRegs; }
+
+
+ // Specific obvious features.
bool hasFSQRT() const { return HasFSQRT; }
bool hasSTFIWX() const { return HasSTFIWX; }
- bool use64BitRegs() const { return Use64BitRegs; }
bool hasAltivec() const { return HasAltivec; }
+ bool isGigaProcessor() const { return IsGigaProcessor; }
bool isAIX() const { return IsAIX; }
bool isDarwin() const { return IsDarwin; }
- bool has64BitSupport() const { return Has64BitSupport; }
- bool isGigaProcessor() const { return IsGigaProcessor; }
};
} // End llvm namespace
OpenPOWER on IntegriCloud