]> git.lizzy.rs Git - plan9front.git/blob - sys/src/libc/mips/memchr.s
merge
[plan9front.git] / sys / src / libc / mips / memchr.s
1         TEXT    memchr(SB), $0
2 MOVW R1, 0(FP)
3
4         MOVW    n+8(FP), R1
5         MOVW    s1+0(FP), R2
6         MOVBU   c+7(FP), R3
7         ADDU    R1, R2, R6
8
9         AND     $(~1), R1, R5
10         ADDU    R2, R5
11         BEQ     R2, R5, lt2
12
13 l1:
14         MOVBU   0(R2), R4
15         MOVBU   1(R2), R7
16         BEQ     R3, R4, eq0
17         ADDU    $2, R2
18         BEQ     R3, R7, eq
19         BNE     R2, R5, l1
20
21 lt2:
22         BEQ     R2, R6, zret
23
24 l2:
25         MOVBU   (R2), R4
26         ADDU    $1, R2
27         BEQ     R3, R4, eq
28         BNE     R2, R6, l2
29 zret:
30         MOVW    R0, R1
31         RET
32
33 eq0:
34         MOVW    R2, R1
35         RET
36
37 eq:
38         SUBU    $1,R2, R1
39         RET