|
@@ -141,26 +141,4 @@ extern void *memcpy(void *__to, __const__ void *__from, size_t __n);
|
|
#define __HAVE_ARCH_MEMMOVE
|
|
#define __HAVE_ARCH_MEMMOVE
|
|
extern void *memmove(void *__dest, __const__ void *__src, size_t __n);
|
|
extern void *memmove(void *__dest, __const__ void *__src, size_t __n);
|
|
|
|
|
|
-#ifdef CONFIG_32BIT
|
|
|
|
-#define __HAVE_ARCH_MEMSCAN
|
|
|
|
-static __inline__ void *memscan(void *__addr, int __c, size_t __size)
|
|
|
|
-{
|
|
|
|
- char *__end = (char *)__addr + __size;
|
|
|
|
- unsigned char __uc = (unsigned char) __c;
|
|
|
|
-
|
|
|
|
- __asm__(".set\tpush\n\t"
|
|
|
|
- ".set\tnoat\n\t"
|
|
|
|
- ".set\treorder\n\t"
|
|
|
|
- "1:\tbeq\t%0,%1,2f\n\t"
|
|
|
|
- "addiu\t%0,1\n\t"
|
|
|
|
- "lbu\t$1,-1(%0)\n\t"
|
|
|
|
- "bne\t$1,%z4,1b\n"
|
|
|
|
- "2:\t.set\tpop"
|
|
|
|
- : "=r" (__addr), "=r" (__end)
|
|
|
|
- : "0" (__addr), "1" (__end), "Jr" (__uc));
|
|
|
|
-
|
|
|
|
- return __addr;
|
|
|
|
-}
|
|
|
|
-#endif /* CONFIG_32BIT */
|
|
|
|
-
|
|
|
|
#endif /* _ASM_STRING_H */
|
|
#endif /* _ASM_STRING_H */
|