Commit | Line | Data |
---|---|---|
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 | |
70 | l0201: 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 | |
80 | reltab: | |
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 | ||
94 | releq: | |
95 | beql True | |
96 | clrw -(sp) | |
97 | jmp (r8) | |
98 | relne: | |
99 | bneq True | |
100 | clrw -(sp) | |
101 | jmp (r8) | |
102 | rellt: | |
103 | blss True | |
104 | clrw -(sp) | |
105 | jmp (r8) | |
106 | relgt: | |
107 | bgtr True | |
108 | clrw -(sp) | |
109 | jmp (r8) | |
110 | relle: | |
111 | bleq True | |
112 | clrw -(sp) | |
113 | jmp (r8) | |
114 | relge: | |
115 | bgeq True | |
116 | clrw -(sp) | |
117 | jmp (r8) | |
118 | True: | |
119 | movw $1,-(sp) | |
120 | jmp (r8) | |
121 | ifeq: | |
122 | bneq iftra | |
123 | addl2 $2,r10 | |
124 | jmp (r8) | |
125 | ifne: | |
126 | beql iftra | |
127 | addl2 $2,r10 | |
128 | jmp (r8) | |
129 | iflt: | |
130 | bgeq iftra | |
131 | addl2 $2,r10 | |
132 | jmp (r8) | |
133 | ifgt: | |
134 | bleq iftra | |
135 | addl2 $2,r10 | |
136 | jmp (r8) | |
137 | ifle: | |
138 | bgtr iftra | |
139 | addl2 $2,r10 | |
140 | jmp (r8) | |
141 | ifge: | |
142 | blss iftra | |
143 | addl2 $2,r10 | |
144 | jmp (r8) | |
145 | iftra: | |
146 | cvtwl (r10),r0 | |
147 | addl2 r0,r10 | |
148 | jmp (r8) |