| Adrian Bunk | b00dc83 | 2008-05-19 16:52:27 -0700 | [diff] [blame] | 1 | /* | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 2 |  * Sparc64 optimized memcmp code. | 
 | 3 |  * | 
 | 4 |  * Copyright (C) 1997 Jakub Jelinek (jj@sunsite.mff.cuni.cz) | 
 | 5 |  * Copyright (C) 2000 David S. Miller (davem@redhat.com) | 
 | 6 |  */ | 
 | 7 |  | 
 | 8 | 	.text | 
 | 9 | 	.align	32 | 
 | 10 | 	.globl	__memcmp, memcmp | 
 | 11 | __memcmp: | 
 | 12 | memcmp: | 
 | 13 | 	cmp	%o2, 0		! IEU1	Group | 
 | 14 | loop:	be,pn	%icc, ret_0	! CTI | 
 | 15 | 	 nop			! IEU0 | 
 | 16 | 	ldub	[%o0], %g7	! LSU	Group | 
 | 17 | 	ldub	[%o1], %g3	! LSU	Group | 
 | 18 | 	sub	%o2, 1, %o2	! IEU0 | 
 | 19 | 	add	%o0, 1, %o0	! IEU1 | 
 | 20 | 	add	%o1, 1, %o1	! IEU0	Group | 
 | 21 | 	subcc	%g7, %g3, %g3	! IEU1	Group | 
 | 22 | 	be,pt	%icc, loop	! CTI | 
 | 23 | 	 cmp	%o2, 0		! IEU1	Group | 
 | 24 |  | 
 | 25 | ret_n0:	retl | 
 | 26 | 	 mov	%g3, %o0 | 
 | 27 | ret_0:	retl | 
 | 28 | 	 mov	0, %o0 |