Remove the 's' DataLayout specification
[oota-llvm.git] / lib / Target / X86 / X86TargetMachine.cpp
index 4675a4ec03d0e404ca93e71e97b4421485e2f1bc..773d702a6b7c753c5482f3648c62e85860a4c718 100644 (file)
@@ -38,22 +38,20 @@ static std::string computeDataLayout(const X86Subtarget &ST) {
   if (ST.isTarget64BitILP32() || !ST.is64Bit())
     Ret += "-p:32:32";
 
-  // Objects on the stack ore aligned to 64 bits.
-  // FIXME: of any size?
-  if (ST.is64Bit())
-    Ret += "-s:64";
-
   // Some ABIs align 64 bit integers and doubles to 64 bits, others to 32.
-  if (ST.is64Bit() || ST.isTargetCygMing() || ST.isTargetWindows())
-    Ret += "-i64:64:64";
+  if (ST.is64Bit() || ST.isTargetCygMing() || ST.isTargetWindows() ||
+      ST.isTargetNaCl())
+    Ret += "-i64:64";
   else
     Ret += "-f64:32:64";
 
   // Some ABIs align long double to 128 bits, others to 32.
-  if (ST.is64Bit() || ST.isTargetDarwin())
-    Ret += "-f80:128:128";
+  if (ST.isTargetNaCl())
+    ; // No f80
+  else if (ST.is64Bit() || ST.isTargetDarwin())
+    Ret += "-f80:128";
   else
-    Ret += "-f80:32:32";
+    Ret += "-f80:32";
 
   // The registers can hold 8, 16, 32 or, in x86-64, 64 bits.
   if (ST.is64Bit())