| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | /* $Id: strncmp.S,v 1.2 1997/03/11 17:51:44 jj Exp $ | 
|  | 2 | * Sparc64 optimized strncmp code. | 
|  | 3 | * | 
|  | 4 | * Copyright (C) 1997 Jakub Jelinek (jj@sunsite.mff.cuni.cz) | 
|  | 5 | */ | 
|  | 6 |  | 
|  | 7 | #include <asm/asi.h> | 
|  | 8 |  | 
|  | 9 | .text | 
|  | 10 | .align	32 | 
|  | 11 | .globl	strncmp | 
|  | 12 | .type	strncmp,#function | 
|  | 13 | 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 | .size	strncmp, .-strncmp |