summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2013-12-17 15:29:48 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2013-12-17 15:29:48 +0000
commit345d718d1612fc0582cf0ca75c4fb6c05fd72383 (patch)
treec9acc09ad644cad6166e5b84f709694f91a6e284 /llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
parent26c67b787970ffa58931b351f64d23c5c1d476f9 (diff)
downloadbcm5719-llvm-345d718d1612fc0582cf0ca75c4fb6c05fd72383.tar.gz
bcm5719-llvm-345d718d1612fc0582cf0ca75c4fb6c05fd72383.zip
Fix the pointer size for the PS3 datalayout.
This will be tested from clang. llvm-svn: 197501
Diffstat (limited to 'llvm/lib/Target/PowerPC/PPCTargetMachine.cpp')
-rw-r--r--llvm/lib/Target/PowerPC/PPCTargetMachine.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
index 17799cb829d..3d8fa1c195d 100644
--- a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
+++ b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
@@ -35,11 +35,14 @@ extern "C" void LLVMInitializePowerPCTarget() {
/// Return the datalayout string of a subtarget.
static std::string getDataLayoutString(const PPCSubtarget &ST) {
+ const Triple &T = ST.getTargetTriple();
+
// PPC is big endian.
std::string Ret = "E";
- // PPC32 has 32 bit pointers.
- if (!ST.isPPC64())
+ // PPC32 has 32 bit pointers. The PS3 (OS Lv2) is a PPC64 machine with 32 bit
+ // pointers.
+ if (!ST.isPPC64() || T.getOS() == Triple::Lv2)
Ret += "-p:32:32";
// Note, the alignment values for f64 and i64 on ppc64 in Darwin
OpenPOWER on IntegriCloud