diff options
Diffstat (limited to 'arch/sparc/lib/strncmp_64.S')
-rw-r--r-- | arch/sparc/lib/strncmp_64.S | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/arch/sparc/lib/strncmp_64.S b/arch/sparc/lib/strncmp_64.S new file mode 100644 index 000000000000..980e83751556 --- /dev/null +++ b/arch/sparc/lib/strncmp_64.S | |||
@@ -0,0 +1,32 @@ | |||
1 | /* | ||
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 | ||