This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH, PR83492] Fix selection of aarch64 big-endian shift parameters based on __AARCH64EB__



On 20/12/17 14:58, Michael Weiser wrote:
Hi Kyrill,

On Wed, Dec 20, 2017 at 09:25:07AM +0000, Kyrill Tkachov wrote:

A patch to use __ARM_BIG_ENDIAN in those two spots is approved.
I'll take care of the opt_random occurrence.
Michael, would you like to respin your patch to libcpp to use
__ARM_BIG_ENDIAN?
Happy to. Created yesterday against trunk, no changes with today's trunk.
Tested successfully by applying to 7.2.0, bootstrapping on
aarch64_be-unknown-linux-gnu and compiling various OS packages with the
resulting compiler.

Thanks! I think that's the first report I've seen of an aarch64_be-unknown-linux-gnu bootstrap :)
Since Jeff approved such a change already I've applied it
for you to trunk as r255896.

I'll give it a day or two for any auto-testers to give it a
try before backporting to the GCC 7 branch.

Thanks,
Kyrill

2017-12-20  Michael Weiser  <michael.weiser@gmx.de>

	PR preprocessor/83492
	* lex.c (search_line_fast) [__ARM_NEON && __ARM_64BIT_STATE]:
	Fix selection of big-endian shift parameters by using
	__ARM_BIG_ENDIAN.

Index: libcpp/lex.c
===================================================================
--- libcpp/lex.c	(revision 255828)
+++ libcpp/lex.c	(working copy)
@@ -772,7 +772,7 @@
    const uint8x16_t repl_qm = vdupq_n_u8 ('?');
    const uint8x16_t xmask = (uint8x16_t) vdupq_n_u64 (0x8040201008040201ULL);
-#ifdef __AARCH64EB
+#ifdef __ARM_BIG_ENDIAN
    const int16x8_t shift = {8, 8, 8, 8, 0, 0, 0, 0};
  #else
    const int16x8_t shift = {0, 0, 0, 0, 8, 8, 8, 8};


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]