Make more code aarch64 friendly

This commit is contained in:
Justine Tunney 2023-05-02 13:38:16 -07:00
parent ca2860947f
commit 2b73e72d59
No known key found for this signature in database
GPG key ID: BE714B4575D6E328
568 changed files with 2197 additions and 1061 deletions

View file

@ -34,6 +34,7 @@ typedef char xmm_t __attribute__((__vector_size__(16), __aligned__(16)));
*/
noasan void *memmem(const void *haystack, size_t haystacklen,
const void *needle, size_t needlelen) {
#ifdef __x86_64__
char c;
xmm_t n, *v;
unsigned i, k, m;
@ -69,4 +70,17 @@ noasan void *memmem(const void *haystack, size_t haystacklen,
m &= ~(1 << k);
} while (m);
}
#else
size_t i, j;
if (!needlelen) return haystack;
if (needlelen > haystacklen) return 0;
for (i = 0; i < haystacklen; ++i) {
for (j = 0;; ++j) {
if (j == needlelen) return (/*unconst*/ char *)haystack + i;
if (i + j == haystacklen) break;
if (((char *)haystack)[i + j] != ((char *)needle)[j]) break;
}
}
return 0;
#endif
}