[cfe-commits] r141601 - /cfe/trunk/lib/Basic/Targets.cpp

Eli Friedman eli.friedman at gmail.com
Mon Oct 10 17:37:26 PDT 2011


On Mon, Oct 10, 2011 at 4:44 PM, Lang Hames <lhames at gmail.com> wrote:
> Author: lhames
> Date: Mon Oct 10 18:44:43 2011
> New Revision: 141601
>
> URL: http://llvm.org/viewvc/llvm-project?rev=141601&view=rev
> Log:
> Update target data strings for ARM and X86 to include the natural stack
> alignment parameter "S<size>" that was introduced in r141599.
>
>
> 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=141601&r1=141600&r2=141601&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Basic/Targets.cpp (original)
> +++ cfe/trunk/lib/Basic/Targets.cpp Mon Oct 10 18:44:43 2011
> @@ -1974,7 +1974,7 @@
>     LongDoubleAlign = 32;
>     DescriptionString = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-"
>                         "i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-"
> -                        "a0:0:64-f80:32:32-n8:16:32";
> +                        "a0:0:64-f80:32:32-n8:16:32-S32";

x86-32 Linux actually uses 128-bit stack alignment.  And I think
that's true for most x86-32 platforms besides Windows.

-Eli

>     SizeType = UnsignedInt;
>     PtrDiffType = SignedInt;
>     IntPtrType = SignedInt;
> @@ -2020,7 +2020,7 @@
>     IntPtrType = SignedLong;
>     DescriptionString = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-"
>                         "i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-"
> -                        "a0:0:64-f80:128:128-n8:16:32";
> +                        "a0:0:64-f80:128:128-n8:16:32-S128";
>     HasAlignMac68kSupport = true;
>   }
>
> @@ -2038,7 +2038,7 @@
>     DoubleAlign = LongLongAlign = 64;
>     DescriptionString = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-"
>                         "i64:64:64-f32:32:32-f64:64:64-f80:128:128-v64:64:64-"
> -                        "v128:128:128-a0:0:64-f80:32:32-n8:16:32";
> +                        "v128:128:128-a0:0:64-f80:32:32-n8:16:32-S32";
>   }
>   virtual void getTargetDefines(const LangOptions &Opts,
>                                 MacroBuilder &Builder) const {
> @@ -2108,7 +2108,7 @@
>     DoubleAlign = LongLongAlign = 64;
>     DescriptionString = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-"
>                         "i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-"
> -                        "a0:0:64-f80:32:32-n8:16:32";
> +                        "a0:0:64-f80:32:32-n8:16:32-S32";
>   }
>   virtual void getTargetDefines(const LangOptions &Opts,
>                                 MacroBuilder &Builder) const {
> @@ -2215,7 +2215,7 @@
>
>     DescriptionString = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-"
>                         "i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-"
> -                        "a0:0:64-s0:64:64-f80:128:128-n8:16:32:64";
> +                        "a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128";
>
>     // Use fpret only for long double.
>     RealTypeUsesObjCFPRet = (1 << TargetInfo::LongDouble);
> @@ -2382,11 +2382,11 @@
>       // so set preferred for small types to 32.
>       DescriptionString = ("e-p:32:32:32-i1:8:32-i8:8:32-i16:16:32-i32:32:32-"
>                            "i64:64:64-f32:32:32-f64:64:64-"
> -                           "v64:64:64-v128:64:128-a0:0:32-n32");
> +                           "v64:64:64-v128:64:128-a0:0:32-n32-S64");
>     } else {
>       DescriptionString = ("e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-"
>                            "i64:64:64-f32:32:32-f64:64:64-"
> -                           "v64:64:64-v128:64:128-a0:0:64-n32");
> +                           "v64:64:64-v128:64:128-a0:0:64-n32-S64");
>     }
>
>     // ARM targets default to using the ARM C++ ABI.
> @@ -2424,11 +2424,11 @@
>         // so set preferred for small types to 32.
>         DescriptionString = ("e-p:32:32:32-i1:8:32-i8:8:32-i16:16:32-i32:32:32-"
>                              "i64:32:64-f32:32:32-f64:32:64-"
> -                             "v64:32:64-v128:32:128-a0:0:32-n32");
> +                             "v64:32:64-v128:32:128-a0:0:32-n32-S32");
>       } else {
>         DescriptionString = ("e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-"
>                              "i64:32:64-f32:32:32-f64:32:64-"
> -                             "v64:32:64-v128:32:128-a0:0:32-n32");
> +                             "v64:32:64-v128:32:128-a0:0:32-n32-S32");
>       }
>
>       // FIXME: Override "preferred align" for double and long long.
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>




More information about the cfe-commits mailing list