diff options
author | Gabor Kertesz <gabor.kertesz@arm.com> | 2020-04-08 10:49:47 +0100 |
---|---|---|
committer | Szabolcs Nagy <szabolcs.nagy@arm.com> | 2020-04-08 13:21:07 +0100 |
commit | 72b1035135ef08b9aed453c8182659594b2578ec (patch) | |
tree | 30e4c1324e9cb9fae0cdee6dc1a6f268fcf08f1a /string/include | |
parent | e89e4598a137d0526d45b0bc58a229348aa970dc (diff) | |
download | arm-optimized-routines-72b1035135ef08b9aed453c8182659594b2578ec.tar.gz |
ARMv8.5 MTE: Add MTE compatible version of memchr.
Reading outside the range of the string is only allowed within 16 byte
aligned granules when MTE is enabled.
This implementation is based on string/aarch64/memchr.S
The 64-bit syndrome value is changed to contain only 16 bytes of data.
The 32 byte loop is unrolled to two 16 byte reads.
Testing done:
optimized-routines/string/test/memchr.c
Booted nanodroid with MTE enabled.
bionic string tests with MTE enabled.
Diffstat (limited to 'string/include')
-rw-r--r-- | string/include/stringlib.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/string/include/stringlib.h b/string/include/stringlib.h index 25a4475..03ccee5 100644 --- a/string/include/stringlib.h +++ b/string/include/stringlib.h @@ -27,6 +27,7 @@ char *__strchrnul_aarch64 (const char *, int ); size_t __strlen_aarch64 (const char *); size_t __strnlen_aarch64 (const char *, size_t); int __strncmp_aarch64 (const char *, const char *, size_t); +void * __memchr_aarch64_mte (const void *, int, size_t); char *__strchr_aarch64_mte (const char *, int); size_t __strlen_aarch64_mte (const char *); #if __ARM_NEON |