mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-09-28 07:30:26 +09:00
sh: Do not provide strncmp
With modern GCC, we get warnings such as: cmd/jffs2.c: In function 'mtdparts_init': arch/sh/include/asm/string.h:110:38: warning: array subscript is above array bounds [-Warray-bounds] : "0" (__cs), "1" (__ct), "r" (__cs+__n) ~~~~^~~~ This results in a small size reduction as well. Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org> Signed-off-by: Tom Rini <trini@konsulko.com>
This commit is contained in:
parent
036c9679d2
commit
b2a3372138
@ -81,37 +81,8 @@ static inline int strcmp(const char *__cs, const char *__ct)
|
|||||||
return __res;
|
return __res;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define __HAVE_ARCH_STRNCMP
|
#undef __HAVE_ARCH_STRNCMP
|
||||||
static inline int strncmp(const char *__cs, const char *__ct, size_t __n)
|
extern int strncmp(const char *__cs, const char *__ct, size_t __n);
|
||||||
{
|
|
||||||
register int __res;
|
|
||||||
unsigned long __dummy;
|
|
||||||
|
|
||||||
if (__n == 0)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
__asm__ __volatile__(
|
|
||||||
"mov.b @%1+, %3\n"
|
|
||||||
"1:\n\t"
|
|
||||||
"mov.b @%0+, %2\n\t"
|
|
||||||
"cmp/eq %6, %0\n\t"
|
|
||||||
"bt/s 2f\n\t"
|
|
||||||
" cmp/eq #0, %3\n\t"
|
|
||||||
"bt/s 3f\n\t"
|
|
||||||
" cmp/eq %3, %2\n\t"
|
|
||||||
"bt/s 1b\n\t"
|
|
||||||
" mov.b @%1+, %3\n\t"
|
|
||||||
"add #-2, %1\n\t"
|
|
||||||
"mov.b @%1, %3\n"
|
|
||||||
"2:\n\t"
|
|
||||||
"sub %3, %2\n"
|
|
||||||
"3:"
|
|
||||||
:"=r" (__cs), "=r" (__ct), "=&r" (__res), "=&z" (__dummy)
|
|
||||||
: "0" (__cs), "1" (__ct), "r" (__cs+__n)
|
|
||||||
: "t");
|
|
||||||
|
|
||||||
return __res;
|
|
||||||
}
|
|
||||||
|
|
||||||
#undef __HAVE_ARCH_MEMSET
|
#undef __HAVE_ARCH_MEMSET
|
||||||
extern void *memset(void *__s, int __c, size_t __count);
|
extern void *memset(void *__s, int __c, size_t __count);
|
||||||
|
Loading…
Reference in New Issue
Block a user