forked from Minki/linux
1da177e4c3
Initial git repository build. I'm not bothering with the full history, even though we have it. We can create a separate "historical" git archive of that later if we want to, and in the meantime it's about 3.2GB when imported into git - space that would just make the early git days unnecessarily complicated, when we don't have a lot of good infrastructure for it. Let it rip!
119 lines
1.3 KiB
ArmAsm
119 lines
1.3 KiB
ArmAsm
/* $Id: strncmp.S,v 1.2 1996/09/09 02:47:20 davem Exp $
|
|
* strncmp.S: Hand optimized Sparc assembly of GCC output from GNU libc
|
|
* generic strncmp routine.
|
|
*/
|
|
|
|
.text
|
|
.align 4
|
|
.global __strncmp, strncmp
|
|
__strncmp:
|
|
strncmp:
|
|
mov %o0, %g3
|
|
mov 0, %o3
|
|
|
|
cmp %o2, 3
|
|
ble 7f
|
|
mov 0, %g2
|
|
|
|
sra %o2, 2, %o4
|
|
ldub [%g3], %o3
|
|
|
|
0:
|
|
ldub [%o1], %g2
|
|
add %g3, 1, %g3
|
|
and %o3, 0xff, %o0
|
|
|
|
cmp %o0, 0
|
|
be 8f
|
|
add %o1, 1, %o1
|
|
|
|
cmp %o0, %g2
|
|
be,a 1f
|
|
ldub [%g3], %o3
|
|
|
|
retl
|
|
sub %o0, %g2, %o0
|
|
|
|
1:
|
|
ldub [%o1], %g2
|
|
add %g3,1, %g3
|
|
and %o3, 0xff, %o0
|
|
|
|
cmp %o0, 0
|
|
be 8f
|
|
add %o1, 1, %o1
|
|
|
|
cmp %o0, %g2
|
|
be,a 1f
|
|
ldub [%g3], %o3
|
|
|
|
retl
|
|
sub %o0, %g2, %o0
|
|
|
|
1:
|
|
ldub [%o1], %g2
|
|
add %g3, 1, %g3
|
|
and %o3, 0xff, %o0
|
|
|
|
cmp %o0, 0
|
|
be 8f
|
|
add %o1, 1, %o1
|
|
|
|
cmp %o0, %g2
|
|
be,a 1f
|
|
ldub [%g3], %o3
|
|
|
|
retl
|
|
sub %o0, %g2, %o0
|
|
|
|
1:
|
|
ldub [%o1], %g2
|
|
add %g3, 1, %g3
|
|
and %o3, 0xff, %o0
|
|
|
|
cmp %o0, 0
|
|
be 8f
|
|
add %o1, 1, %o1
|
|
|
|
cmp %o0, %g2
|
|
be 1f
|
|
add %o4, -1, %o4
|
|
|
|
retl
|
|
sub %o0, %g2, %o0
|
|
|
|
1:
|
|
|
|
cmp %o4, 0
|
|
bg,a 0b
|
|
ldub [%g3], %o3
|
|
|
|
b 7f
|
|
and %o2, 3, %o2
|
|
|
|
9:
|
|
ldub [%o1], %g2
|
|
add %g3, 1, %g3
|
|
and %o3, 0xff, %o0
|
|
|
|
cmp %o0, 0
|
|
be 8f
|
|
add %o1, 1, %o1
|
|
|
|
cmp %o0, %g2
|
|
be 7f
|
|
add %o2, -1, %o2
|
|
|
|
8:
|
|
retl
|
|
sub %o0, %g2, %o0
|
|
|
|
7:
|
|
cmp %o2, 0
|
|
bg,a 9b
|
|
ldub [%g3], %o3
|
|
|
|
and %g2, 0xff, %o0
|
|
retl
|
|
sub %o3, %o0, %o0
|