Fix f64 and f128 for ppc-darwin.

This patch adds -f64:32:64 to 32 bit ppc darwin since a f64 inside a
structure are only 32 bit aligned.

The patch also drop -f128:64:128 from all ppc darwin, since f128 is
128 bit aligned.

llvm-svn: 197574
This commit is contained in:
Rafael Espindola 2013-12-18 15:06:25 +00:00
parent e1792e72e1
commit 9b3064d2fb

View File

@ -49,9 +49,11 @@ static std::string getDataLayoutString(const PPCSubtarget &ST) {
// documentation are wrong; these are correct (i.e. "what gcc does").
if (ST.isPPC64() || ST.isSVR4ABI())
Ret += "-i64:64";
else
Ret += "-f64:32:64";
// Set support for 128 floats depending on the ABI.
if (!ST.isPPC64() || !ST.isSVR4ABI())
if (!ST.isPPC64() && ST.isSVR4ABI())
Ret += "-f128:64:128";
// PPC64 has 32 and 64 bit registers, PPC32 has only 32 bit ones.