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.wei...@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};