diff options
author | Tom Rini <trini@konsulko.com> | 2018-02-18 01:30:41 +0300 |
---|---|---|
committer | Marek Vasut <marex@denx.de> | 2018-02-23 02:06:05 +0300 |
commit | b2a3372138c468c5c749c50c368dd6c11313e491 (patch) | |
tree | df1e27a1bbd99e7f4a2f9c4a767118342d33625f /arch/sh/include | |
parent | 036c9679d25cba87e7b82dc18d6f5f939d9806dd (diff) | |
download | u-boot-b2a3372138c468c5c749c50c368dd6c11313e491.tar.xz |
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>
Diffstat (limited to 'arch/sh/include')
-rw-r--r-- | arch/sh/include/asm/string.h | 33 |
1 files changed, 2 insertions, 31 deletions
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); |