Author: johannes Date: Fri Aug 3 15:20:50 2007 New Revision: 40792 URL: http://llvm.org/viewvc/llvm-project?rev=40792&view=rev Log: long double patch 2 of N. Handle it in TargetData. (I've tried to get the info right for all targets, but I'm not expert on all of them - check yours.)
Modified: llvm/trunk/lib/Target/Alpha/AlphaTargetMachine.cpp llvm/trunk/lib/Target/IA64/IA64TargetMachine.cpp llvm/trunk/lib/Target/PowerPC/PPCSubtarget.h llvm/trunk/lib/Target/Sparc/SparcTargetMachine.cpp llvm/trunk/lib/Target/TargetData.cpp llvm/trunk/lib/Target/X86/X86TargetMachine.cpp Modified: llvm/trunk/lib/Target/Alpha/AlphaTargetMachine.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Alpha/AlphaTargetMachine.cpp?rev=40792&r1=40791&r2=40792&view=diff ============================================================================== --- llvm/trunk/lib/Target/Alpha/AlphaTargetMachine.cpp (original) +++ llvm/trunk/lib/Target/Alpha/AlphaTargetMachine.cpp Fri Aug 3 15:20:50 2007 @@ -57,7 +57,7 @@ } AlphaTargetMachine::AlphaTargetMachine(const Module &M, const std::string &FS) - : DataLayout("e"), + : DataLayout("e-f128:128:128"), FrameInfo(TargetFrameInfo::StackGrowsDown, 16, 0), JITInfo(*this), Subtarget(M, FS), Modified: llvm/trunk/lib/Target/IA64/IA64TargetMachine.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/IA64/IA64TargetMachine.cpp?rev=40792&r1=40791&r2=40792&view=diff ============================================================================== --- llvm/trunk/lib/Target/IA64/IA64TargetMachine.cpp (original) +++ llvm/trunk/lib/Target/IA64/IA64TargetMachine.cpp Fri Aug 3 15:20:50 2007 @@ -63,7 +63,7 @@ /// IA64TargetMachine ctor - Create an LP64 architecture model /// IA64TargetMachine::IA64TargetMachine(const Module &M, const std::string &FS) - : DataLayout("e"), + : DataLayout("e-f80:128:128"), FrameInfo(TargetFrameInfo::StackGrowsDown, 16, 0), TLInfo(*this) { // FIXME? check this stuff } Modified: llvm/trunk/lib/Target/PowerPC/PPCSubtarget.h URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/PPCSubtarget.h?rev=40792&r1=40791&r2=40792&view=diff ============================================================================== --- llvm/trunk/lib/Target/PowerPC/PPCSubtarget.h (original) +++ llvm/trunk/lib/Target/PowerPC/PPCSubtarget.h Fri Aug 3 15:20:50 2007 @@ -104,8 +104,8 @@ /// getTargetDataString - Return the pointer size and type alignment /// properties of this subtarget. const char *getTargetDataString() const { - return isPPC64() ? "E-p:64:64-f64:32:64-i64:32:64" - : "E-p:32:32-f64:32:64-i64:32:64"; + return isPPC64() ? "E-p:64:64-f64:32:64-i64:32:64-f128:64:128" + : "E-p:32:32-f64:32:64-i64:32:64-f128:64:128"; } /// isPPC64 - Return true if we are generating code for 64-bit pointer mode. Modified: llvm/trunk/lib/Target/Sparc/SparcTargetMachine.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Sparc/SparcTargetMachine.cpp?rev=40792&r1=40791&r2=40792&view=diff ============================================================================== --- llvm/trunk/lib/Target/Sparc/SparcTargetMachine.cpp (original) +++ llvm/trunk/lib/Target/Sparc/SparcTargetMachine.cpp Fri Aug 3 15:20:50 2007 @@ -30,7 +30,7 @@ /// SparcTargetMachine ctor - Create an ILP32 architecture model /// SparcTargetMachine::SparcTargetMachine(const Module &M, const std::string &FS) - : DataLayout("E-p:32:32"), + : DataLayout("E-p:32:32-f128:128:128"), Subtarget(M, FS), InstrInfo(Subtarget), FrameInfo(TargetFrameInfo::StackGrowsDown, 8, 0) { } Modified: llvm/trunk/lib/Target/TargetData.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/TargetData.cpp?rev=40792&r1=40791&r2=40792&view=diff ============================================================================== --- llvm/trunk/lib/Target/TargetData.cpp (original) +++ llvm/trunk/lib/Target/TargetData.cpp Fri Aug 3 15:20:50 2007 @@ -436,6 +436,13 @@ return 4; case Type::DoubleTyID: return 8; + case Type::PPC_FP128TyID: + case Type::FP128TyID: + return 16; + // In memory objects this is always aligned to a higher boundary, but + // only 10 bytes contain information. + case Type::X86_FP80TyID: + return 10; case Type::VectorTyID: { const VectorType *PTy = cast<VectorType>(Ty); return PTy->getBitWidth() / 8; @@ -493,6 +500,11 @@ break; case Type::FloatTyID: case Type::DoubleTyID: + // PPC_FP128TyID and FP128TyID have different data contents, but the + // same size and alignment, so they look the same here. + case Type::PPC_FP128TyID: + case Type::FP128TyID: + case Type::X86_FP80TyID: AlignType = FLOAT_ALIGN; break; case Type::VectorTyID: { Modified: llvm/trunk/lib/Target/X86/X86TargetMachine.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86TargetMachine.cpp?rev=40792&r1=40791&r2=40792&view=diff ============================================================================== --- llvm/trunk/lib/Target/X86/X86TargetMachine.cpp (original) +++ llvm/trunk/lib/Target/X86/X86TargetMachine.cpp Fri Aug 3 15:20:50 2007 @@ -115,8 +115,8 @@ bool is64Bit) : Subtarget(M, FS, is64Bit), DataLayout(Subtarget.is64Bit() ? - std::string("e-p:64:64-f64:32:64-i64:32:64") : - std::string("e-p:32:32-f64:32:64-i64:32:64")), + std::string("e-p:64:64-f64:32:64-i64:32:64-f80:128:128") : + std::string("e-p:32:32-f64:32:64-i64:32:64-f80:128:128")), FrameInfo(TargetFrameInfo::StackGrowsDown, Subtarget.getStackAlignment(), Subtarget.is64Bit() ? -8 : -4), InstrInfo(*this), JITInfo(*this), TLInfo(*this) { _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits