xref: /openbmc/linux/arch/sparc/lib/strncmp_64.S (revision 4cdb71b6)
1b2441318SGreg Kroah-Hartman/* SPDX-License-Identifier: GPL-2.0 */
2478b8fecSSam Ravnborg/*
3478b8fecSSam Ravnborg * Sparc64 optimized strncmp code.
4478b8fecSSam Ravnborg *
5478b8fecSSam Ravnborg * Copyright (C) 1997 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
6478b8fecSSam Ravnborg */
7478b8fecSSam Ravnborg
8*4cdb71b6SMasahiro Yamada#include <linux/export.h>
98695c37dSDavid S. Miller#include <linux/linkage.h>
10478b8fecSSam Ravnborg#include <asm/asi.h>
11478b8fecSSam Ravnborg
12478b8fecSSam Ravnborg	.text
138695c37dSDavid S. MillerENTRY(strncmp)
14478b8fecSSam Ravnborg	brlez,pn %o2, 3f
15478b8fecSSam Ravnborg	 lduba	[%o0] (ASI_PNF), %o3
16478b8fecSSam Ravnborg1:
17478b8fecSSam Ravnborg	add	%o0, 1, %o0
18478b8fecSSam Ravnborg	ldub	[%o1], %o4
19478b8fecSSam Ravnborg	brz,pn	%o3, 2f
20478b8fecSSam Ravnborg	 add	%o1, 1, %o1
21478b8fecSSam Ravnborg	cmp	%o3, %o4
22478b8fecSSam Ravnborg	bne,pn	%icc, 2f
23478b8fecSSam Ravnborg	 subcc	%o2, 1, %o2
24478b8fecSSam Ravnborg	bne,a,pt %xcc, 1b
25478b8fecSSam Ravnborg	 ldub	[%o0], %o3
26478b8fecSSam Ravnborg2:
27478b8fecSSam Ravnborg	retl
28478b8fecSSam Ravnborg	 sub	%o3, %o4, %o0
29478b8fecSSam Ravnborg3:
30478b8fecSSam Ravnborg	retl
31478b8fecSSam Ravnborg	 clr	%o0
328695c37dSDavid S. MillerENDPROC(strncmp)
33d3867f04SAl ViroEXPORT_SYMBOL(strncmp)
34