|
|
1.1 root 1: #
2: # Copyright (c) 1979 Regents of the University of California
3: #
4: # char sccsid[] = "@(#)03rel.s 4.1 10/10/80";
5: #
6: # RELATIONAL OPERATORS
7: #
8: _REL2:
9: cvtbl (r10)+,r0
10: movw (sp)+,r1
11: cmpw (sp)+,r1
12: jmp *reltab(r0)
13: _REL42:
14: cvtbl (r10)+,r0
15: movl (sp)+,r1
16: cvtwl (sp)+,r2
17: cmpl r2,r1
18: jmp *reltab(r0)
19: _REL24:
20: cvtbl (r10)+,r0
21: cvtwl (sp)+,r1
22: cmpl (sp)+,r1
23: jmp *reltab(r0)
24: _REL4:
25: cvtbl (r10)+,r0
26: movl (sp)+,r1
27: cmpl (sp)+,r1
28: jmp *reltab(r0)
29: _REL28:
30: cvtbl (r10)+,r0
31: cvtwd (sp)+,r1
32: cmpd (sp)+,r1
33: jmp *reltab(r0)
34: _REL48:
35: cvtbl (r10)+,r0
36: cvtld (sp)+,r1
37: cmpd (sp)+,r1
38: jmp *reltab(r0)
39: _REL82:
40: cvtbl (r10)+,r0
41: movd (sp)+,r1
42: cvtwd (sp)+,r3
43: cmpd r3,r1
44: jmp *reltab(r0)
45: _REL84:
46: cvtbl (r10)+,r0
47: movd (sp)+,r1
48: cvtld (sp)+,r3
49: cmpd r3,r1
50: jmp *reltab(r0)
51: _REL8:
52: cvtbl (r10)+,r0
53: movd (sp)+,r1
54: cmpd (sp)+,r1
55: jmp *reltab(r0)
56: _RELG:
57: cvtbl (r10)+,r5 #r5 has jump opcode
58: movzwl (r10)+,r1 #r1 has comparison length
59: movl r1,r4 #r4 has stack length
60: blbc r4,l0201
61: incl r4
62: l0201:
63: addl3 sp,r4,r3 #r3 has addr of bottom operand
64: addl2 r3,r4 #r4 points to cleared stack
65: cmpc3 r1,(r3),(sp) #do comparison
66: movpsl r2 #save condition codes
67: movl r4,sp #update stack
68: bicpsw $15 #restore condition codes
69: bispsw r2
70: jmp *reltab(r5)
71:
72: .align 1
73: reltab:
74: .long releq
75: .long relne
76: .long rellt
77: .long relgt
78: .long relle
79: .long relge
80: .long ifeq
81: .long ifne
82: .long iflt
83: .long ifgt
84: .long ifle
85: .long ifge
86:
87: releq:
88: beql True
89: clrw -(sp)
90: jmp (r8)
91: relne:
92: bneq True
93: clrw -(sp)
94: jmp (r8)
95: rellt:
96: blss True
97: clrw -(sp)
98: jmp (r8)
99: relgt:
100: bgtr True
101: clrw -(sp)
102: jmp (r8)
103: relle:
104: bleq True
105: clrw -(sp)
106: jmp (r8)
107: relge:
108: bgeq True
109: clrw -(sp)
110: jmp (r8)
111: True:
112: movw $1,-(sp)
113: jmp (r8)
114: ifeq:
115: bneq iftra
116: addl2 $2,r10
117: jmp (r8)
118: ifne:
119: beql iftra
120: addl2 $2,r10
121: jmp (r8)
122: iflt:
123: bgeq iftra
124: addl2 $2,r10
125: jmp (r8)
126: ifgt:
127: bleq iftra
128: addl2 $2,r10
129: jmp (r8)
130: ifle:
131: bgtr iftra
132: addl2 $2,r10
133: jmp (r8)
134: ifge:
135: blss iftra
136: addl2 $2,r10
137: jmp (r8)
138: iftra:
139: cvtwl (r10),r0
140: addl2 r0,r10
141: jmp (r8)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.