|
|
1.1 root 1: .data
2: .text
3: LL0:.align 1
4: .globl _s_cmp
5: .set MASK__,0x1004
6: .data
7: .text
8: _s_cmp:.word MASK__
9: movl 4(fp),r0 /* a */
10: movl 8(fp),r1 /* b */
11: movl 12(fp),r12 /* la */
12: cmpl r12,16(fp) /* if (la <= lb) */
13: jgtr L17
14: movl r12, r2 /* compare according to la */
15: cmps3
16: jeql L2 /* if not equal */
17:
18: L20:
19: cvtbl (r0), r0 /* return(*a - *b) */
20: cvtbl (r1), r1
21: subl2 r1,r0
22: ret
23:
24: L2:
25: cmpl r12,16(fp) /* if (la == lb) */
26: jneq L50
27: clrl r0 /* then strings are equal */
28: ret
29:
30: L50:
31: addl3 8(fp), 16(fp), r12 /* r12 = bend */
32:
33: L3:
34: cmpb (r1), $32 /* if *b != space */
35: jeql L4
36: cvtbl (r1), r1
37: movl $32, r0 /* return(' ' - *b) */
38: subl2 r1, r0
39: ret
40:
41: L4: /* else loop */
42: incl r1
43: cmpl r1, r12
44: jlssu L3 /* till bend */
45: clrl r0
46: ret /* strings equal: return(0) */
47:
48:
49: L17: /* else */
50: movl 16(fp), r2 /* compare according to lb */
51: cmps3
52: jneq L20 /* if not equal */
53: /* return(*a - *b) */
54: addl3 4(fp), 12(fp), r12 /* r12 = aend */
55:
56: L30:
57: cmpb (r0), $32 /* if *a != space */
58: jeql L40
59: cvtbl (r0), r0
60: movl $32, r1 /* return(*a - ' ') */
61: subl2 r1, r0
62: ret
63:
64: L40: /* else loop */
65: incl r0
66: cmpl r0, r12
67: jlssu L30 /* till bend */
68: clrl r0
69: ret /* strings equal: return(0) */
70:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.