|
|
1.1 root 1: # "@(#)rindex_s.s 5.1 (Berkeley) 11/3/86"
2:
3: .data
4: .text
5: LL0:.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 */
20: loop:
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:
32: out:
33: incl r3 /* index = ++p - str */
34: subl3 r11, r3, r0
35: ret
36:
37: out0:
38: clrl r0
39: ret
40:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.