aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2007-01-19 19:22:40 +0000
committerEvan Cheng <evan.cheng@apple.com>2007-01-19 19:22:40 +0000
commit1a3771e30e48b9cc21ccdc79fc9cf37ec4104b17 (patch)
tree03bb670e5f3a5a6dbb553fd41f49b4a4170cf402
parent8e1185bd5ccc00576d2a4755f0e5ea8da5abb312 (diff)
Introduce TargetType's ELF and Darwin.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33363 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Target/ARM/ARMSubtarget.cpp15
-rw-r--r--lib/Target/ARM/ARMSubtarget.h10
2 files changed, 17 insertions, 8 deletions
diff --git a/lib/Target/ARM/ARMSubtarget.cpp b/lib/Target/ARM/ARMSubtarget.cpp
index 35bb9accc3..27889c7818 100644
--- a/lib/Target/ARM/ARMSubtarget.cpp
+++ b/lib/Target/ARM/ARMSubtarget.cpp
@@ -22,8 +22,12 @@ static cl::opt<bool> Thumb("enable-thumb",
cl::desc("Switch to thumb mode in ARM backend"));
ARMSubtarget::ARMSubtarget(const Module &M, const std::string &FS)
- : ARMArchVersion(V4T), HasVFP2(false), IsDarwin(false),
- UseThumbBacktraces(false), IsR9Reserved(false), stackAlignment(8) {
+ : ARMArchVersion(V4T)
+ , HasVFP2(false)
+ , UseThumbBacktraces(false)
+ , IsR9Reserved(false)
+ , stackAlignment(8)
+ , TargetType(isELF) { // Default to ELF unless otherwise specified.
// Determine default and user specified characteristics
std::string CPU = "generic";
@@ -37,14 +41,15 @@ ARMSubtarget::ARMSubtarget(const Module &M, const std::string &FS)
// if one cannot be determined, to true.
const std::string& TT = M.getTargetTriple();
if (TT.length() > 5) {
- IsDarwin = TT.find("-darwin") != std::string::npos;
+ if (TT.find("-darwin") != std::string::npos)
+ TargetType = isDarwin;
} else if (TT.empty()) {
#if defined(__APPLE__)
- IsDarwin = true;
+ TargetType = isDarwin;
#endif
}
- if (IsDarwin) {
+ if (isTargetDarwin()) {
UseThumbBacktraces = true;
IsR9Reserved = true;
stackAlignment = 4;
diff --git a/lib/Target/ARM/ARMSubtarget.h b/lib/Target/ARM/ARMSubtarget.h
index d5c4b5eb03..33e440b0cf 100644
--- a/lib/Target/ARM/ARMSubtarget.h
+++ b/lib/Target/ARM/ARMSubtarget.h
@@ -37,8 +37,6 @@ protected:
/// IsThumb - True if we are in thumb mode, false if in ARM mode.
bool IsThumb;
- bool IsDarwin;
-
/// UseThumbBacktraces - True if we use thumb style backtraces.
bool UseThumbBacktraces;
@@ -50,6 +48,10 @@ protected:
unsigned stackAlignment;
public:
+ enum {
+ isELF, isDarwin
+ } TargetType;
+
/// This constructor initializes the data members to match that
/// of the specified module.
///
@@ -66,7 +68,9 @@ protected:
bool hasVFP2() const { return HasVFP2; }
- bool isDarwin() const { return IsDarwin; }
+ bool isTargetDarwin() const { return TargetType == isDarwin; }
+ bool isTargetELF() const { return TargetType == isELF; }
+
bool isThumb() const { return IsThumb; }
bool useThumbBacktraces() const { return UseThumbBacktraces; }