From: Adhemerval Zanella Netto Date: Tue, 28 Feb 2023 18:23:25 +0000 (-0300) Subject: arm: Remove __builtin_arm_uqsub8 usage on string-fza.h X-Git-Tag: glibc-2.38~503 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3a4781c16c680a2c5ab4585b4696f781898ab610;p=thirdparty%2Fglibc.git arm: Remove __builtin_arm_uqsub8 usage on string-fza.h The __builtin_arm_uqsub8 is an internal GCC builtin which might change in future release (the correct way is to include "arm_acle.h" and use __uqsub8 ()). Since not all compilers support it, just use the inline assembler instead. Checked on armv7a-linux-gnueabihf. Reviewed-by: Wilco Dijkstra --- diff --git a/sysdeps/arm/armv6t2/string-fza.h b/sysdeps/arm/armv6t2/string-fza.h index d85ce86434b..fb750119911 100644 --- a/sysdeps/arm/armv6t2/string-fza.h +++ b/sysdeps/arm/armv6t2/string-fza.h @@ -33,13 +33,9 @@ find_zero_all (op_t x) /* Use unsigned saturated subtraction from 1 in each byte. That leaves 1 for every byte that was zero. */ op_t ones = repeat_bytes (0x01); -#if __GNUC_PREREQ (10, 0) - return __builtin_arm_uqsub8 (ones, x); -#else op_t ret; asm ("uqsub8 %0,%1,%2" : "=r"(ret) : "r"(ones), "r"(x)); return ret; -#endif } /* Identify bytes that are equal between X1 and X2. */