r245084 - WindowsX86: long double is x87DoubleExtended on mingw

Hans Wennborg via cfe-commits cfe-commits at lists.llvm.org
Tue Aug 18 15:01:36 PDT 2015


Richard, I tried to ping you on the review thread but I'm not sure it
got through. Martell requested this be merged to 3.7. What do you
think?

On Fri, Aug 14, 2015 at 12:05 PM, Martell Malone via cfe-commits
<cfe-commits at lists.llvm.org> wrote:
> 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);
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


More information about the cfe-commits mailing list