|
|
1.1 root 1: #
2: # Copyright (c) 1979 Regents of the University of California
3: #
4: # char sccsid[] = "@(#)02relset.s 4.1 10/10/80";
5: #
6: # RELATIONALS ON SETS
7: #
8: _RELT:
9: cvtbl (r10)+,r5 #r5 has jump opcode
10: movzwl (r10)+,r1 #r1 has comparison length (bytes)
11: movl r1,r4 #r4 has stack length
12: blbc r4,l0211
13: incl r4
14: l0211:
15: addl3 sp,r4,r3 #r3 has addr of lower operand
16: addl2 r3,r4 #r4 points to cleared stack
17: jsb *settab(r5) #calc condition, return boolean in r0
18: movl r4,sp #reset stack
19: cmpl r5,$20 #check for branch
20: bgtr l0212
21: movw r0,-(sp) #put boolean on stack
22: jmp (r8)
23: l0212:
24: tstl r0
25: beql l0213
26: addl2 $2,r10 #continue on true
27: jmp (r8)
28: l0213:
29: cvtwl (r10),r0 #skip on false
30: addl2 r0,r10
31: jmp (r8)
32:
33: .align 1
34: settab: #condition code branch table
35: .long seteq #generate boolean answer
36: .long setne
37: .long setlt
38: .long setgt
39: .long setle
40: .long setge
41: .long seteq #branch on condition false
42: .long setne
43: .long setlt
44: .long setgt
45: .long setle
46: .long setge
47:
48: setlt:
49: moval 4(sp),r2 #skip over return address
50: ashl $-1,r1,r1
51: l0214:
52: bicw3 (r2),(r3),r0
53: bneq false
54: bicw2 (r3)+,(r2)+
55: bneq l0216 #need only check <= for remainder of set
56: sobgtr r1,l0214
57: false:
58: clrl r0
59: rsb
60: setle:
61: moval 4(sp),r2
62: ashl $-1,r1,r1
63: l0215:
64: bicw2 (r2)+,(r3)+
65: bneq false
66: l0216:
67: sobgtr r1,l0215
68: true:
69: movl $1,r0
70: rsb
71: seteq:
72: cmpc3 r1,(r3),4(sp)
73: beql true
74: clrl r0
75: rsb
76: setne:
77: cmpc3 r1,(r3),4(sp)
78: bneq true
79: clrl r0
80: rsb
81: setgt:
82: moval 4(sp),r2
83: ashl $-1,r1,r1
84: l0217:
85: bicw3 (r3),(r2),r0
86: bneq false
87: bicw2 (r2)+,(r3)+
88: bneq l0219 #need only check >= for remainder of set
89: sobgtr r1,l0217
90: clrl r0
91: rsb
92: setge:
93: moval 4(sp),r2
94: ashl $-1,r1,r1
95: l0218:
96: bicw2 (r3)+,(r2)+
97: bneq false
98: l0219:
99: sobgtr r1,l0218
100: movl $1,r0
101: rsb
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.