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