BSD 4_3_Reno release
[unix-history] / usr / src / lib / libF77 / CCI / rindex_s.s
CommitLineData
ca67e7b4 1# "@(#)rindex_s.s 5.1 (Berkeley) 11/3/86"
23ec3622
KM
2
3.data
4.text
5LL0:.align 1
6.globl _rindex_
7.set MASK__,0x1c0c
8.data
9.text
10_rindex_: .word MASK__
11
12 movl 16(fp),r12 /* sublen */
13 tstl r12 /* if sublen == 0 */
14 jeql out0 /* return(0L) */
15
16 movl 4(fp), r11 /* str */
17 movl 8(fp), r10 /* substr */
18 addl3 r11, 12(fp), r3 /* p = str + strlen */
19 subl2 r12, r3 /* p -= sublen */
20loop:
21 cmpl r3, r11 /* while (p >= str) */
22 jlss out0 /* not found - return(0L) */
23 movl r3, r0 /* current p (in str) */
24 movl r10, r1 /* substr */
25 movl r12, r2 /* sublen */
26 cmps3 /* if strigs equal */
27 jeql out /* return index */
28
29 decl r3 /* p-- */
30 jbr loop
31
32out:
33 incl r3 /* index = ++p - str */
34 subl3 r11, r3, r0
35 ret
36
37out0:
38 clrl r0
39 ret
40