aboutsummaryrefslogtreecommitdiff
path: root/string/include
diff options
context:
space:
mode:
authorGabor Kertesz <gabor.kertesz@arm.com>2020-04-08 10:49:47 +0100
committerSzabolcs Nagy <szabolcs.nagy@arm.com>2020-04-08 13:21:07 +0100
commit72b1035135ef08b9aed453c8182659594b2578ec (patch)
tree30e4c1324e9cb9fae0cdee6dc1a6f268fcf08f1a /string/include
parente89e4598a137d0526d45b0bc58a229348aa970dc (diff)
downloadarm-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.h1
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