From: Tom Rini Date: Sat, 17 Feb 2018 22:30:41 +0000 (-0500) Subject: sh: Do not provide strncmp X-Git-Url: http://git.dujemihanovic.xyz/%22/img/sics.gif/%22/static/git-favicon.png?a=commitdiff_plain;h=b2a3372138c468c5c749c50c368dd6c11313e491;p=u-boot.git 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 Signed-off-by: Tom Rini --- diff --git a/arch/sh/include/asm/string.h b/arch/sh/include/asm/string.h index 27d981b79a..999febcb6b 100644 --- a/arch/sh/include/asm/string.h +++ b/arch/sh/include/asm/string.h @@ -81,37 +81,8 @@ static inline int strcmp(const char *__cs, const char *__ct) return __res; } -#define __HAVE_ARCH_STRNCMP -static inline 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_STRNCMP +extern int strncmp(const char *__cs, const char *__ct, size_t __n); #undef __HAVE_ARCH_MEMSET extern void *memset(void *__s, int __c, size_t __count);