]> git.ipfire.org Git - people/ms/u-boot.git/commitdiff
sh: Do not provide strncmp
authorTom Rini <trini@konsulko.com>
Sat, 17 Feb 2018 22:30:41 +0000 (17:30 -0500)
committerMarek Vasut <marex@denx.de>
Thu, 22 Feb 2018 23:06:05 +0000 (00:06 +0100)
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>
arch/sh/include/asm/string.h

index 27d981b79af8a4749103a676571bf2827dcc7c76..999febcb6b7d3c82053095b124f8993e08480022 100644 (file)
@@ -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);