Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[linux-2.6-microblaze.git] / arch / sparc / lib / strncmp_64.S
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Sparc64 optimized strncmp code.
4  *
5  * Copyright (C) 1997 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
6  */
7
8 #include <linux/linkage.h>
9 #include <asm/asi.h>
10 #include <asm/export.h>
11
12         .text
13 ENTRY(strncmp)
14         brlez,pn %o2, 3f
15          lduba  [%o0] (ASI_PNF), %o3
16 1:
17         add     %o0, 1, %o0
18         ldub    [%o1], %o4
19         brz,pn  %o3, 2f
20          add    %o1, 1, %o1
21         cmp     %o3, %o4
22         bne,pn  %icc, 2f
23          subcc  %o2, 1, %o2
24         bne,a,pt %xcc, 1b
25          ldub   [%o0], %o3
26 2:
27         retl
28          sub    %o3, %o4, %o0
29 3:
30         retl
31          clr    %o0
32 ENDPROC(strncmp)
33 EXPORT_SYMBOL(strncmp)