12e2b6b53SPeter Waller #include <stddef.h> 231125785SDinar Temirbulatov 3*5a8956eaSKeith Packard /* The asm version uses FP registers. Use this on targets without them */ 4*5a8956eaSKeith Packard #if __ARM_FP == 0 5*5a8956eaSKeith Packard void *__arm_sc_memset(void *dest, int c, size_t n) __arm_streaming_compatible { 6*5a8956eaSKeith Packard unsigned char *destp = (unsigned char *)dest; 7*5a8956eaSKeith Packard unsigned char c8 = (unsigned char)c; 8*5a8956eaSKeith Packard for (size_t i = 0; i < n; ++i) 9*5a8956eaSKeith Packard destp[i] = c8; 10*5a8956eaSKeith Packard 11*5a8956eaSKeith Packard return dest; 12*5a8956eaSKeith Packard } 13*5a8956eaSKeith Packard #endif 14*5a8956eaSKeith Packard 1531125785SDinar Temirbulatov const void *__arm_sc_memchr(const void *src, int c, 1631125785SDinar Temirbulatov size_t n) __arm_streaming_compatible { 1731125785SDinar Temirbulatov const unsigned char *srcp = (const unsigned char *)src; 1831125785SDinar Temirbulatov unsigned char c8 = (unsigned char)c; 1931125785SDinar Temirbulatov for (size_t i = 0; i < n; ++i) 2031125785SDinar Temirbulatov if (srcp[i] == c8) 2131125785SDinar Temirbulatov return &srcp[i]; 2231125785SDinar Temirbulatov 2331125785SDinar Temirbulatov return NULL; 2431125785SDinar Temirbulatov } 25