blob: 3d37d65f674c36b21d707e9223ed3193eaf5a92c [file] [log] [blame]
Greg Kroah-Hartmanb2441312017-11-01 15:07:57 +01001/* SPDX-License-Identifier: GPL-2.0 */
Adrian Bunkb00dc832008-05-19 16:52:27 -07002/*
Linus Torvalds1da177e2005-04-16 15:20:36 -07003 * Sparc64 optimized strncmp code.
4 *
5 * Copyright (C) 1997 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
6 */
7
David S. Miller8695c372012-05-11 20:33:22 -07008#include <linux/linkage.h>
Linus Torvalds1da177e2005-04-16 15:20:36 -07009#include <asm/asi.h>
Al Virod3867f042016-01-16 21:39:30 -050010#include <asm/export.h>
Linus Torvalds1da177e2005-04-16 15:20:36 -070011
12 .text
David S. Miller8695c372012-05-11 20:33:22 -070013ENTRY(strncmp)
Linus Torvalds1da177e2005-04-16 15:20:36 -070014 brlez,pn %o2, 3f
15 lduba [%o0] (ASI_PNF), %o3
161:
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
262:
27 retl
28 sub %o3, %o4, %o0
293:
30 retl
31 clr %o0
David S. Miller8695c372012-05-11 20:33:22 -070032ENDPROC(strncmp)
Al Virod3867f042016-01-16 21:39:30 -050033EXPORT_SYMBOL(strncmp)