diff options
Diffstat (limited to 'contrib/llvm-project/compiler-rt/lib/builtins/aarch64/sme-libc-routines.c')
-rw-r--r-- | contrib/llvm-project/compiler-rt/lib/builtins/aarch64/sme-libc-routines.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/contrib/llvm-project/compiler-rt/lib/builtins/aarch64/sme-libc-routines.c b/contrib/llvm-project/compiler-rt/lib/builtins/aarch64/sme-libc-routines.c new file mode 100644 index 000000000000..315490e73ea2 --- /dev/null +++ b/contrib/llvm-project/compiler-rt/lib/builtins/aarch64/sme-libc-routines.c @@ -0,0 +1,12 @@ +#include <stddef.h> + +const void *__arm_sc_memchr(const void *src, int c, + size_t n) __arm_streaming_compatible { + const unsigned char *srcp = (const unsigned char *)src; + unsigned char c8 = (unsigned char)c; + for (size_t i = 0; i < n; ++i) + if (srcp[i] == c8) + return &srcp[i]; + + return NULL; +} |