This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH] Backport testsuite: Introduce be/le selectors
- From: Kelvin Nilsen <kdnilsen at linux dot ibm dot com>
- To: Segher Boessenkool <segher at kernel dot crashing dot org>, Jeff Law <law at redhat dot com>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Wed, 27 Jun 2018 11:01:35 -0500
- Subject: [PATCH] Backport testsuite: Introduce be/le selectors
- References: <e4aa84b83e00e1c571493217b4f1924f522c8ecf.1526938969.git.segher@kernel.crashing.org> <b1077213-dde4-aaf8-7525-821013f6fd84@redhat.com> <20180523173109.GT17342@gate.crashing.org>
Hi Jeff,
Is it ok to backport this patch to gcc 8? There are other backports of test programs that would like to use the new selector options.
Thanks.
On 5/23/18 12:31 PM, Segher Boessenkool wrote:
> On Tue, May 22, 2018 at 03:21:30PM -0600, Jeff Law wrote:
>> On 05/21/2018 03:46 PM, Segher Boessenkool wrote:
>>> This patch creates "be" and "le" selectors, which can be used by all
>>> architectures, similar to ilp32 and lp64.
>>
>> I think this is fine. "be" "le" are used all over the place in gcc and
>> the kernel to denote big/little endian.
>
> Thanks. This is what I checked in (to trunk):
>
>
> 2017-05-23 Segher Boessenkool <segher@kernel.crashing.org>
>
> * doc/sourcebuild.texi (Endianness): New subsubsection.
>
> gcc/testsuite/
> * lib/target-supports.exp (check_effective_target_be): New.
> (check_effective_target_le): New.
>
>
> diff --git a/gcc/doc/sourcebuild.texi b/gcc/doc/sourcebuild.texi
> index dfb0578..596007d 100644
> --- a/gcc/doc/sourcebuild.texi
> +++ b/gcc/doc/sourcebuild.texi
> @@ -1313,6 +1313,16 @@ By convention, keywords ending in @code{_nocache} can also include options
> specified for the particular test in an earlier @code{dg-options} or
> @code{dg-add-options} directive.
>
> +@subsubsection Endianness
> +
> +@table @code
> +@item be
> +Target uses big-endian memory order for multi-byte and multi-word data.
> +
> +@item le
> +Target uses little-endian memory order for multi-byte and multi-word data.
> +@end table
> +
> @subsubsection Data type sizes
>
> @table @code
> diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
> index aa1296e6..0a53d7b 100644
> --- a/gcc/testsuite/lib/target-supports.exp
> +++ b/gcc/testsuite/lib/target-supports.exp
> @@ -2523,6 +2523,22 @@ proc check_effective_target_next_runtime { } {
> }]
> }
>
> +# Return 1 if we're generating code for big-endian memory order.
> +
> +proc check_effective_target_be { } {
> + return [check_no_compiler_messages be object {
> + int dummy[__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ ? 1 : -1];
> + }]
> +}
> +
> +# Return 1 if we're generating code for little-endian memory order.
> +
> +proc check_effective_target_le { } {
> + return [check_no_compiler_messages le object {
> + int dummy[__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ ? 1 : -1];
> + }]
> +}
> +
> # Return 1 if we're generating 32-bit code using default options, 0
> # otherwise.
>