diff options
author | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2023-01-10 18:00:58 -0300 |
---|---|---|
committer | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2023-02-06 16:19:35 -0300 |
commit | 30cf54bf3072be942847400c1669bcd63aab039e (patch) | |
tree | 3fb85ccfa434cd8bd8f4047dd4a12ff55bae3a65 /stdio-common/tst-printf-binary.c | |
parent | 506f7dbbabbad1f2d9f745636937b20c2670c29b (diff) | |
download | glibc-30cf54bf3072be942847400c1669bcd63aab039e.zip glibc-30cf54bf3072be942847400c1669bcd63aab039e.tar.gz glibc-30cf54bf3072be942847400c1669bcd63aab039e.tar.bz2 |
string: Improve generic strcmp
It follows the strategy:
- Align the first input to word boundary using byte operations.
- If second input is also word aligned, read a word per time, check for
null (using has_zero), and check final words using byte operation.
- If second input is not word aligned, loop by aligning the source, and
merging the result of two reads. Similar to aligned case, check for
null with has_zero, and check final words using byte operation.
Checked on x86_64-linux-gnu, i686-linux-gnu, powerpc64-linux-gnu,
and powerpc-linux-gnu by removing the arch-specific assembly
implementation and disabling multi-arch (it covers both LE and BE
for 64 and 32 bits).
Co-authored-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Noah Goldstein <goldstein.w.n@gmail.com>
Diffstat (limited to 'stdio-common/tst-printf-binary.c')
0 files changed, 0 insertions, 0 deletions