r245084 - WindowsX86: long double is x87DoubleExtended on mingw
Martell Malone via cfe-commits
cfe-commits at lists.llvm.org
Fri Aug 14 12:05:56 PDT 2015
Author: martell
Date: Fri Aug 14 14:05:56 2015
New Revision: 245084
URL: http://llvm.org/viewvc/llvm-project?rev=245084&view=rev
Log:
WindowsX86: long double is x87DoubleExtended on mingw
Summary:
long double on x86 mingw is 80bits and is aligned to 16bytes
Fixes:
https://llvm.org/bugs/show_bug.cgi?id=24398
Reviewers: rnk
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D12037
Modified:
cfe/trunk/lib/Basic/Targets.cpp
Modified: cfe/trunk/lib/Basic/Targets.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/Targets.cpp?rev=245084&r1=245083&r2=245084&view=diff
==============================================================================
--- cfe/trunk/lib/Basic/Targets.cpp (original)
+++ cfe/trunk/lib/Basic/Targets.cpp Fri Aug 14 14:05:56 2015
@@ -3784,7 +3784,10 @@ namespace {
class MinGWX86_32TargetInfo : public WindowsX86_32TargetInfo {
public:
MinGWX86_32TargetInfo(const llvm::Triple &Triple)
- : WindowsX86_32TargetInfo(Triple) {}
+ : WindowsX86_32TargetInfo(Triple) {
+ LongDoubleWidth = LongDoubleAlign = 128;
+ LongDoubleFormat = &llvm::APFloat::x87DoubleExtended;
+ }
void getTargetDefines(const LangOptions &Opts,
MacroBuilder &Builder) const override {
WindowsX86_32TargetInfo::getTargetDefines(Opts, Builder);
@@ -4014,7 +4017,10 @@ public:
class MinGWX86_64TargetInfo : public WindowsX86_64TargetInfo {
public:
MinGWX86_64TargetInfo(const llvm::Triple &Triple)
- : WindowsX86_64TargetInfo(Triple) {}
+ : WindowsX86_64TargetInfo(Triple) {
+ LongDoubleWidth = LongDoubleAlign = 128;
+ LongDoubleFormat = &llvm::APFloat::x87DoubleExtended;
+ }
void getTargetDefines(const LangOptions &Opts,
MacroBuilder &Builder) const override {
WindowsX86_64TargetInfo::getTargetDefines(Opts, Builder);
More information about the cfe-commits
mailing list