diff --git a/[refs] b/[refs] index 2a951b8f3407..49a55495e5a2 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d0c3d534a4388a465101b634a95f2ec586415254 +refs/heads/master: 9b4b8feb962f4b3e74768b7205f1f8f6cce87238 diff --git a/trunk/arch/powerpc/boot/string.S b/trunk/arch/powerpc/boot/string.S index 2627558bcb71..643e4cb2f11d 100644 --- a/trunk/arch/powerpc/boot/string.S +++ b/trunk/arch/powerpc/boot/string.S @@ -219,6 +219,19 @@ backwards_memcpy: mtctr r7 b 1b + .globl memchr +memchr: + cmpwi 0,r5,0 + blelr + mtctr r5 + addi r3,r3,-1 +1: lbzu r0,1(r3) + cmpw r0,r4 + beqlr + bdnz 1b + li r3,0 + blr + .globl memcmp memcmp: cmpwi 0,r5,0 diff --git a/trunk/arch/powerpc/boot/string.h b/trunk/arch/powerpc/boot/string.h index 4650030d1040..50091cc0eed9 100644 --- a/trunk/arch/powerpc/boot/string.h +++ b/trunk/arch/powerpc/boot/string.h @@ -14,6 +14,7 @@ extern size_t strnlen(const char *s, size_t count); extern void *memset(void *s, int c, size_t n); extern void *memmove(void *dest, const void *src, unsigned long n); extern void *memcpy(void *dest, const void *src, unsigned long n); +extern void *memchr(const void *s, int c, size_t n); extern int memcmp(const void *s1, const void *s2, size_t n); #endif /* _PPC_BOOT_STRING_H_ */