summaryrefslogtreecommitdiff
path: root/arch/sh
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2018-02-17 17:30:41 -0500
committerMarek Vasut <marex@denx.de>2018-02-23 00:06:05 +0100
commitb2a3372138c468c5c749c50c368dd6c11313e491 (patch)
treedf1e27a1bbd99e7f4a2f9c4a767118342d33625f /arch/sh
parent036c9679d25cba87e7b82dc18d6f5f939d9806dd (diff)
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')
-rw-r--r--arch/sh/include/asm/string.h33
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);