aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/X86
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Target/X86')
-rw-r--r--lib/Target/X86/X86Subtarget.h5
-rw-r--r--lib/Target/X86/X86TargetMachine.cpp6
2 files changed, 6 insertions, 5 deletions
diff --git a/lib/Target/X86/X86Subtarget.h b/lib/Target/X86/X86Subtarget.h
index 6240dc2..772f143 100644
--- a/lib/Target/X86/X86Subtarget.h
+++ b/lib/Target/X86/X86Subtarget.h
@@ -143,6 +143,11 @@ public:
TargetType == isCygwin); }
bool isTargetCygwin() const { return TargetType == isCygwin; }
+ std::string getDataLayout() const { return
+ is64Bit() ? std::string("e-p:64:64-f64:32:64-i64:32:64-f80:128:128") :
+ isTargetDarwin() ? std::string("e-p:32:32-f64:32:64-i64:32:64-f80:128:128") :
+ std::string("e-p:32:32-f64:32:64-i64:32:64-f80:32:32"); }
+
bool isPICStyleSet() const { return PICStyle != PICStyle::None; }
bool isPICStyleGOT() const { return PICStyle == PICStyle::GOT; }
bool isPICStyleStub() const { return PICStyle == PICStyle::Stub; }
diff --git a/lib/Target/X86/X86TargetMachine.cpp b/lib/Target/X86/X86TargetMachine.cpp
index c754a1d..f87640f 100644
--- a/lib/Target/X86/X86TargetMachine.cpp
+++ b/lib/Target/X86/X86TargetMachine.cpp
@@ -114,11 +114,7 @@ X86_64TargetMachine::X86_64TargetMachine(const Module &M, const std::string &FS)
X86TargetMachine::X86TargetMachine(const Module &M, const std::string &FS,
bool is64Bit)
: Subtarget(M, FS, is64Bit),
- DataLayout(Subtarget.is64Bit() ?
- std::string("e-p:64:64-f64:32:64-i64:32:64-f80:128:128") :
- Subtarget.isTargetDarwin() ?
- std::string("e-p:32:32-f64:32:64-i64:32:64-f80:128:128") :
- std::string("e-p:32:32-f64:32:64-i64:32:64-f80:32:32")),
+ DataLayout(Subtarget.getDataLayout()),
FrameInfo(TargetFrameInfo::StackGrowsDown,
Subtarget.getStackAlignment(), Subtarget.is64Bit() ? -8 : -4),
InstrInfo(*this), JITInfo(*this), TLInfo(*this) {