xref: /openbmc/linux/arch/sparc/lib/memcmp.S (revision 4cdb71b6)
1b2441318SGreg Kroah-Hartman/* SPDX-License-Identifier: GPL-2.0 */
218cdae68SDavid S. Miller/* Sparc optimized memcmp code.
318cdae68SDavid S. Miller *
418cdae68SDavid S. Miller * Copyright (C) 1997 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
518cdae68SDavid S. Miller * Copyright (C) 2000, 2008 David S. Miller (davem@davemloft.net)
618cdae68SDavid S. Miller */
718cdae68SDavid S. Miller
8*4cdb71b6SMasahiro Yamada#include <linux/export.h>
918cdae68SDavid S. Miller#include <linux/linkage.h>
1018cdae68SDavid S. Miller#include <asm/asm.h>
1118cdae68SDavid S. Miller
1218cdae68SDavid S. Miller	.text
1318cdae68SDavid S. MillerENTRY(memcmp)
1418cdae68SDavid S. Miller	cmp	%o2, 0
1518cdae68SDavid S. Miller1:	BRANCH32(be, pn, 2f)
1618cdae68SDavid S. Miller	 nop
1718cdae68SDavid S. Miller	ldub	[%o0], %g7
1818cdae68SDavid S. Miller	ldub	[%o1], %g3
1918cdae68SDavid S. Miller	sub	%o2, 1, %o2
2018cdae68SDavid S. Miller	add	%o0, 1, %o0
2118cdae68SDavid S. Miller	add	%o1, 1, %o1
2218cdae68SDavid S. Miller	subcc	%g7, %g3, %g3
2318cdae68SDavid S. Miller	BRANCH32(be, pt, 1b)
2418cdae68SDavid S. Miller	 cmp	%o2, 0
2518cdae68SDavid S. Miller	retl
2618cdae68SDavid S. Miller	 mov	%g3, %o0
2718cdae68SDavid S. Miller2:	retl
2818cdae68SDavid S. Miller	 mov	0, %o0
2918cdae68SDavid S. MillerENDPROC(memcmp)
30d3867f04SAl ViroEXPORT_SYMBOL(memcmp)
31