Pristine Ack-5.5
[Ack-5.5.git] / modules / src / em_opt / patterns
1 /* $Id: patterns,v 1.6 1994/06/24 11:14:37 ceriel Exp $ */
2 loc adi w loc sbi w : loc $1-$3 adi w
3 inc dec:
4 inc loc adi w : loc $2+1 adi w
5 inc loc sbi w : loc $2-1 sbi w
6 dec loc adi w : loc $2-1 adi w
7 dec loc sbi w : loc $2+1 sbi w
8 ldc adi w2 ldc sbi w2 : ldc $1-$3 adi w2
9 loc adi w loc adi w : loc $1+$3 adi w
10 ldc adi w2 ldc adi w2 : ldc $1+$3 adi w2
11 loc adi w loc mli w :   loc $3 mli w loc $1*$3 adi w
12 loc adi w loc 1 sli w : loc $3 sli w loc 2*$1 adi w
13 adp 0 :
14 adp adp : adp $1+$2
15 adp lof : lof $1+$2
16 adp ldf : ldf $1+$2
17 adp !=0 loi w : lof $1
18 adp !=0 loi w2 : ldf $1
19 adp stf : stf $1+$2
20 adp sdf : sdf $1+$2
21 adp !=0 sti w : stf $1
22 adp !=0 sti w2 : sdf $1
23 asp 0 :
24 asp asp : asp $1+$2
25 blm 0 : asp 2*p
26 cmi w zeq : beq $2
27 cmi w zge : bge $2
28 cmi w zgt : bgt $2
29 cmi w zle : ble $2
30 cmi w zlt : blt $2
31 cmi w zne : bne $2
32 cmu w zeq :     beq $2
33 cmu w zne :     bne $2
34 dvi ngi $1 : ngi $1 dvi $1
35 lae adp : lae $1+$2
36 lae blm w : loi w ste $1
37 lae blm w2 : loi w2 sde $1
38 lae ldf : lde $1+$2
39 lae lof : loe $1+$2
40 lae loi w : loe $1
41 lae loi w2 : lde $1
42 #ifdef INT
43 lae loi loe $1-w ? $2%w==0: lae $3 loi $2+w
44 lae loi lde $1-w2 ? $2%w==0: lae $3 loi $2+w2
45 lae $3+$4 loi lae loi ? $2%w==0 && $4%w==0: lae $3 loi $2+$4
46 lae sti ste $1+$2 : lae $1 sti $2+w
47 lae sti sde $1+$2 : lae $1 sti $2+w2
48 lae sti loc ste $1-w : loc $3 lae $4 sti $2+w
49 lae sti lol ste $1-w : lol $3 lae $4 sti $2+w
50 #endif
51 lae lae blm loe $1+$3 ste $2+$3 : lae $1 lae $2 blm $3+w
52 lae lae blm lde $1+$3 sde $2+$3 : lae $1 lae $2 blm $3+w2
53 lae lae blm lae $1+$3 lae $2+$3 blm : lae $1 lae $2 blm $3+$6
54 lae lal blm lae $1+$3 lal $2+$3 blm ? samesign($2,$5):
55         lae $1 lal $2 blm $3+$6
56 lal lae blm lal $1+$3 lae $2+$3 blm ? samesign($1,$4):
57         lal $1 lae $2 blm $3+$6
58 lal lal blm lal $1+$3 lal $2+$3 blm ? samesign($1,$4) && samesign($2,$5):
59         lal $1 lal $2 blm $3+$6
60 lal lal sbs w ? samesign($1,$2): loc $1-$2
61 lae sdf : sde $1+$2
62 lae stf : ste $1+$2
63 lae sti w : ste $1
64 lae sti w2 : sde $1
65 lal adp ? samesign($1,$1+$2): lal $1+$2
66 lal blm w : loi w stl $1
67 lal blm w2 : loi w2 sdl $1
68 #ifdef INT
69 /*lal sti loc stl $1-w ? notreg($4) && samesign($1,$4): */
70 /*      loc $3 lal $4 sti $2+w                          */
71 /*lal sti loe stl $1-w ? notreg($4) && samesign($1,$4): */
72 /*      loe $3 lal $4 sti $2+w                          */
73 #endif
74 lal ldf ? samesign($1,$1+$2): ldl $1+$2
75 lal lof ? samesign($1,$1+$2): lol $1+$2
76 lal loi w : lol $1
77 lal loi w2 : ldl $1
78 #ifdef INT
79 /*lal loi lol $1-w ? notreg($3) && samesign($1,$3) && $2%w==0:          */
80 /*      lal $3 loi $2+w                                         */
81 /*lal loi ldl $1-w2 ? notreg($3) && samesign($1,$3) && $2%w==0: */
82 /*      lal $3 loi $2+w2                                                */
83 lal loi lal loi $1-$3 ? samesign($1,$3) && $2%w==0 && $4%w==0:
84         lal $3 loi $2+$4
85 /*lal sti stl $1+$2 ? notreg($3) && samesign($1,$3): lal $1 sti $2+w    */
86 /*lal sti sdl $1+$2 ? notreg($3) && samesign($1,$3): lal $1 sti $2+w2*/
87 #endif
88 lal sdf ? samesign($1,$1+$2): sdl $1+$2
89 lal stf ? samesign($1,$1+$2): stl $1+$2
90 lal sti w : stl $1
91 lal sti w2 : sdl $1
92 #ifdef INT
93 lde lde $1-w2 : lae $2 loi 4*w
94 lde loe $1-w : lae $2 loi 3*w
95 #endif
96 lde sde $1 :
97 lde sde lde $1+w2 sde $2+w2 : lae $1 lae $2 blm 4*w
98 #ifdef INT
99 /*ldl ldl $1-w2 ? notreg($1) && notreg($2) && samesign($1,$2):*/
100 /*      lal $2 loi 4*w                                          */
101 /*ldl lol $1-w ? notreg($1) && notreg($2) && samesign($1,$2):   */
102 /*      lal $2 loi 3*w                                          */
103 #endif
104 ldl sdl $1:
105 lxa loi lxa $1 sti $2 :
106 lxa lof lxa $1 stf $2 :
107 lxa ldf lxa $1 sdf $2 :
108 lxa >1 stf lxa $1 lof $2 : dup w lxa $1 stf $2
109 lxa >1 sdf lxa $1 ldf $2 : dup w2 lxa $1 sdf $2
110 lxl lof lxl $1 stf $2 :
111 lxl ldf lxl $1 sdf $2 :
112 lxl >1 stf lxl $1 lof $2 : dup w lxl $1 stf $2
113 lxl >1 sdf lxl $1 ldf $2 : dup w2 lxl $1 sdf $2
114 lxa >1 sti lxa $1 loi $2 ? $2%w==0: dup $2 lxa $1 sti $2
115 loc -1 adi w : dec
116 loc dec ? sfit($1-1,8*w) :      loc $1-1
117 loc -1 bgt : zge $2
118 loc -1 ble : zlt $2
119 loc -1 dvi w : ngi w
120 ldc -1 dvi w2 : ngi w2
121 loc -1 loe adi w : loe $2 dec
122 loc -1 lol adi w : lol $2 dec
123 loc -1 mli w : ngi w
124 ldc -1 mli w2 : ngi w2
125 loc -1 sbi w : inc
126 loc inc ? sfit($1+1,8*w) :      loc $1+1
127 loc 0 adi w :
128 ldc 0 adi w2 :
129 loc 0 ads w :
130 ldc 0 ads w2 :
131 zer adi $1 :
132 loc 0 beq : zeq $2
133 loc 0 bge : zge $2
134 loc 0 bgt : zgt $2
135 loc 0 ble : zle $2
136 loc 0 blt : zlt $2
137 loc 0 bne : zne $2
138 loc 0 cmi w teq : teq
139 loc 0 cmi w tge : tge
140 loc 0 cmi w tgt : tgt
141 loc 0 cmi w tle : tle
142 loc 0 cmi w tlt : tlt
143 loc 0 cmi w tne : tne
144 loc 0 cmu w teq :       teq
145 loc 0 cmu w tne :       tne
146 loc 0 cmu w zeq :       zeq $3
147 loc 0 cmu w zne :       zne $3
148 loc 0 ior w :
149 ldc 0 ior w2 :
150 zer ior $1 :
151 loc 0 ste : zre $2
152 loc 0 stl : zrl $2
153 loc 0 sbi w :
154 ldc 0 sbi w2 :
155 zer sbi $1 :
156 loc 0 xor w :
157 ldc 0 xor w2 :
158 zer xor $1 :
159 loc 1 adi w : inc
160 loc 1 bge : zgt $2
161 loc 1 blt : zle $2
162 loc 1 dvi w :
163 ldc 1 dvi w2 :
164 loc 1 dvu w :
165 loc 1 dvu w2 :
166 loc 1 loe adi w : loe $2 inc
167 loc 1 lol adi w : lol $2 inc
168 loc 0 mli w :   asp w loc 0
169 ldc 0 mli w2 :  asp w2 ldc 0
170 loc 0 mlu w : asp w loc 0
171 ldc 0 mlu w2 :  asp w2 ldc 0
172 loc 1 mli w :
173 ldc 1 mli w2 :
174 loc 1  mlu w  :
175 ldc 1  mlu w2  :
176 loc 1  sbi w  : dec
177 loc loe mli w :      loe $2  loc $1  mli w
178 loc loe mlu w :      loe $2  loc $1  mlu w
179 loc loe adi w loc :     loe $2  loc $1  adi w loc $4
180 loc loe adi w inc :     loe $2  loc $1  adi w inc
181 loc loe adi w dec :     loe $2  loc $1  adi w dec
182 loc lol mli w :      lol $2  loc $1  mli w
183 loc lol mlu w :      lol $2  loc $1  mlu w
184 loc lol adi w loc :     lol $2  loc $1  adi w loc $4
185 loc lol adi w inc :     lol $2  loc $1  adi w dec
186 loc lol adi w dec :     lol $2  loc $1  adi w dec
187 ldc lde mli w2 :    lde $2  ldc $1  mli w2
188 ldc lde mlu w2 :    lde $2  ldc $1  mlu w2
189 ldc lde adi w2 :    lde $2  ldc $1  adi w2
190 ldc ldl mli w2 :    ldl $2  ldc $1  mli w2
191 ldc ldl mlu w2 :    ldl $2  ldc $1  mlu w2
192 ldc ldl adi w2 :    ldl $2  ldc $1  adi w2
193 loc 2  mli w  :         loc 1   sli w
194 loc 4  mli w  :         loc 2   sli w
195 loc 8  mli w  :         loc 3   sli w
196 loc 16  mli w  :        loc 4   sli w
197 loc 32  mli w  :        loc 5   sli w
198 loc 64  mli w  :        loc 6   sli w
199 loc 128  mli w  :       loc 7   sli w
200 loc 256  mli w  :       loc 8   sli w
201 loc 2  mlu w  :         loc 1   slu w
202 loc 4  mlu w  :         loc 2   slu w
203 loc 8  mlu w  :         loc 3   slu w
204 loc 16  mlu w  :        loc 4   slu w
205 loc 32  mlu w  :        loc 5   slu w
206 loc 64  mlu w  :        loc 6   slu w
207 loc 128  mlu w  :       loc 7   slu w
208 loc 256  mlu w  :       loc 8   slu w
209 loc 2  dvu w  :         loc 1   sru w
210 loc 4  dvu w  :         loc 2   sru w
211 loc 8  dvu w  :         loc 3   sru w
212 loc 16  dvu w  :        loc 4   sru w
213 loc 32  dvu w  :        loc 5   sru w
214 loc 64  dvu w  :        loc 6   sru w
215 loc 128  dvu w  :       loc 7   sru w
216 loc 256  dvu w  :       loc 8   sru w
217 loc adi undefined :   adi $1
218 loc sbi undefined :   sbi $1
219 loc mli undefined :   mli $1
220 loc dvi undefined :   dvi $1
221 loc rmi undefined :   rmi $1
222 loc ngi undefined :   ngi $1
223 loc sli undefined :   sli $1
224 loc sri undefined :   sri $1
225 loc adu undefined :   adu $1
226 loc sbu undefined :   sbu $1
227 loc mlu undefined :   mlu $1
228 loc dvu undefined :   dvu $1
229 loc rmu undefined :   rmu $1
230 loc slu undefined :   slu $1
231 loc sru undefined :   sru $1
232 loc adf undefined :   adf $1
233 loc sbf undefined :   sbf $1
234 loc mlf undefined :   mlf $1
235 loc dvf undefined :   dvf $1
236 loc ngf undefined :   ngf $1
237 loc fif undefined :   fif $1
238 loc fef undefined :   fef $1
239 loc zer undefined :   zer $1
240 loc zrf undefined :   zrf $1
241 loc los w :     loi $1
242 loc sts w :     sti $1
243 loc ads w :     adp $1
244 ldc ads w2 ? sfit($1,8*w):      adp $1
245 loc ass w :     asp $1
246 loc bls w :     blm $1
247 loc dus w :     dup $1
248 loc loc $1 cii :
249 loc loc $1 cuu :
250 loc loc $1 cff :
251 loc and undefined :   and $1
252 loc ior undefined :   ior $1
253 loc xor undefined :   xor $1
254 loc com undefined :   com $1
255 loc rol undefined :   rol $1
256 loc 0 rol :
257 loc ror undefined :   ror $1
258 loc 0 ror :
259 loc inn undefined :   inn $1
260 loc set undefined :   set $1
261 loc cmi undefined :   cmi $1
262 loc cmu undefined :   cmu $1
263 loc cmf undefined :   cmf $1
264 loe dec ste $1:     dee $1
265 loe inc ste $1:     ine $1
266 loe loc 0  mli w  :     loc 0
267 #ifdef INT
268 loe loe $1-w :       lde $2
269 loe loe $1+w beq :   lde $1  beq $3
270 loe loe $1+w bge :   lde $1  ble $3
271 loe loe $1+w bgt :   lde $1  blt $3
272 loe loe $1+w ble :   lde $1  bge $3
273 loe loe $1+w blt :   lde $1  bgt $3
274 loe loe $1+w bne :   lde $1  bne $3
275 loe loe $1+w  cmi w  :  lde $1  cmi w   ngi w
276 #endif
277 ngi w teq :  teq
278 ngi w tge :  tle
279 ngi w tgt :  tlt
280 ngi w tle :  tge
281 ngi w tlt :  tgt
282 ngi w tne :  tne
283 #ifdef INT
284 loe loe $1+w  mli w  :  lde $1  mli w
285 loe loe $1+w  adi w  :  lde $1  adi w
286 loe loe $1 : loe $1  dup w
287 #endif
288 loe ste $1 :
289 lol blm w ? p==w : loi w   sil $1
290 ldl blm w ? p==w2 :  loi w   sil $1
291 lol dec stl $1 :     del $1
292 lol inc stl $1 :     inl $1
293 lol loc 0  mli w  :     loc 0
294 lol loi w ? w==p :  lil $1
295 ldl loi w ? p==w2 :  lil $1
296 #ifdef INT
297 /*lol lol $1-w ? notreg($1) && notreg($2) && samesign($1,$2):           */
298 /*      ldl $2                                                          */
299 /*lol lol $1+w  beq ? notreg($1) && notreg($2) && samesign($1,$2):      */
300 /*      ldl $1  beq $3                                                  */
301 /*lol lol $1+w  bge ? notreg($1) && notreg($2) && samesign($1,$2):      */
302 /*      ldl $1  ble $3                                                  */
303 /*lol lol $1+w  bgt ? notreg($1) && notreg($2) && samesign($1,$2):      */
304 /*      ldl $1  blt $3                                                  */
305 /*lol lol $1+w  ble ? notreg($1) && notreg($2) && samesign($1,$2):      */
306 /*      ldl $1  bge $3                                                  */
307 /*lol lol $1+w  blt ? notreg($1) && notreg($2) && samesign($1,$2):      */
308 /*      ldl $1  bgt $3                                                  */
309 /*lol lol $1+w  bne ? notreg($1) && notreg($2) && samesign($1,$2):      */
310 /*      ldl $1  bne $3                                                  */
311 /*lol lol $1+w  cmi w ?   notreg($1) && notreg($2) && samesign($1,$2):  */
312 /*      ldl $1  cmi w   ngi w                                           */
313 /*lol lol $1+w  mli w ?   notreg($1) && notreg($2) && samesign($1,$2):  */
314 /*      ldl $1  mli w                                                   */
315 /*lol lol $1+w  adi w ?   notreg($1) && notreg($2) && samesign($1,$2):  */
316 /*      ldl $1  adi w                                                   */
317 lol lol $1 : lol $1  dup w
318 #endif
319 lol stl $1:
320 lol  sti w ? p==w :  sil $1
321 ldl sti w ? p==w2 :  sil $1
322 mli ngi $1: ngi $1  mli $1
323 ngi adi $1: sbi $1
324 ngf adf $1: sbf $1
325 ngi sbi $1: adi $1
326 ngf sbf $1: adf $1
327 ngi ngi $1:
328 ngf ngf $1:
329 #ifdef INT
330 sde sde $1+w2 :     lae $1  sti 4*w
331 sde ste $1+w2 :     lae $1  sti 3*w
332 sde loc ste $1-w :   loc $2  lae $3  sti 3*w
333 sde lol ste $1-w :   lol $2  lae $3  sti 3*w
334 sde lde $1 : dup w2 sde $1
335 #endif
336 sdf 0 :      sti w2
337 #ifdef INT
338 /*sdl sdl $1+w2 ? notreg($1) && notreg($2) && samesign($1,$2):          */
339 /*      lal $1  sti 4*w                                                 */
340 /*sdl stl $1+w2 ? notreg($1) && notreg($2) && samesign($1,$2):          */
341 /*      lal $1  sti 3*w                                                 */
342 /*sdl loc stl $1-w ? notreg($1) && notreg($3) && samesign($1,$3):       */
343 /*      loc $2  lal $3  sti 3*w                                         */
344 /*sdl loe stl $1-w ? notreg($1) && notreg($3) && samesign($1,$3):       */
345 /*      loe $2  lal $3  sti 3*w                                         */
346 sdl ldl $1 : dup w2 sdl $1
347 ste loe $1 : dup w   ste $1
348 ste ste $1-w :       sde $2
349 ste loc ste $1-w :   loc $2  sde $3
350 ste lol ste $1-w :   lol $2  sde $3
351 stl lol $1 : dup w   stl $1
352 #endif
353 stf 0 : sti w
354 sdl ldl $1 ret w2  :  ret w2
355 #ifdef INT
356 /*stl stl $1+w ? notreg($1) && notreg($2) && samesign($1,$2):  sdl $1   */
357 /*stl loc stl $1-w ? notreg($1) && notreg($3) && samesign($1,$3):       */
358 /*      loc $2  sdl $3                                                  */
359 /*stl loe stl $1-w ? notreg($1) && notreg($3) && samesign($1,$3):       */
360 /*      loe $2  sdl $3                                                  */
361 #endif
362 stl lol $1 ret w  :    ret w
363 lal sti lal $1 loi $2 ret $2 :  ret $2
364 loc sbi w  loc sbi w  : loc $1+$3 sbi w
365 ldc sbi w2  ldc sbi w2  :     ldc $1+$3 sbi w2
366 loc sbi w  loc adi w  : loc $1-$3 sbi w
367 ldc sbi w2  ldc adi w2  :     ldc $1-$3 sbi w2
368 loc sbi w  loc mli w  : loc $3 mli w loc $1*$3 sbi w
369 loc sbi w  loc 1 sli w    : loc $3 sli w loc 2*$1 sbi w
370 teq teq :       tne
371 teq tne :       teq
372 teq zne :       zeq $2
373 teq zeq :       zne $2
374 tge teq :       tlt
375 tge tne :       tge
376 tge zeq :       zlt $2
377 tge zne :       zge $2
378 tgt teq :       tle
379 tgt tne :       tgt
380 tgt zeq :       zle $2
381 tgt zne :       zgt $2
382 tle teq :       tgt
383 tle tne :       tle
384 tle zeq :       zgt $2
385 tle zne :       zle $2
386 tlt teq :       tge
387 tlt tne :       tlt
388 tlt zeq :       zge $2
389 tlt zne :       zlt $2
390 tne teq :       teq
391 tne tne :       tne
392 tne zeq :       zeq $2
393 tne zne :       zne $2
394 #ifdef INT
395 loc 0  loc 0  loc 0    :    zer 3*w
396 zer defined loc 0 :   zer $1+w
397 #endif
398 loi 1  loc and w  ? ($2&255)==255:    loi 1
399 loi <w loc w loc cii : loi $1 loc $2 loc $3 cui
400 loi 1  loc 1  loc w  cii loc 255  and w     :   loi 1
401 loi 1  loc 1  loc w  cii loc cmi w zeq ? $5>=0&&$5<128 :        loi 1 loc $5 cmi w zeq $7
402 loi 1  loc 1  loc w  cii loc cmi w zne ? $5>=0&&$5<128 :        loi 1 loc $5 cmi w zne $7
403 loi 1  loc 1  loc w  cii loc w  loc w  ciu loc 255 and w:       loi 1
404 cmp teq :       cms p   teq
405 cmp tne :       cms p   tne
406 cmp zeq :       cms p   zeq $2
407 cmp zne :       cms p   zne $2
408 cmu defined teq :    cms $1  teq
409 cmu defined tne :    cms $1  tne
410 cms w zeq :  beq $2
411 cms w zne :  bne $2
412 lol lae aar w adp :  adp $4  lol $1  lae $2  aar w
413 loe lae aar w adp :  adp $4  loe $1  lae $2  aar w
414 cmi defined zeq :    cms $1  zeq $2
415 cmi defined zne :    cms $1  zne $2
416 #ifdef INT
417 loe $4  inc dup w ste  :        ine $1  loe $1
418 loe $4  dec dup w ste  :        dee $1  loe $1
419 lol $4  inc dup w stl  :        inl $1  lol $1
420 lol $4  dec dup w stl  :        del $1  lol $1
421 adp dup p ste adp -$1 ? p==w : dup p adp $1 ste $3
422 adp dup p sde adp -$1 ? p==w2 : dup p adp $1 sde $3
423 adp dup p stl adp -$1 ? p==w :       dup p   adp $1   stl $3
424 adp dup p sdl adp -$1 ? p==w2 :       dup p   adp $1   sdl $3
425 inc dup w ste dec :  dup w   inc     ste $3
426 inc dup w stl dec :  dup w   inc     stl $3
427 #endif
428 bra lab $1 :    lab $2
429 zeq bra lab $1 :     zne $2  lab $1
430 zge bra lab $1:     zlt $2  lab $1
431 zgt bra lab $1 :     zle $2  lab $1
432 zlt bra lab $1 :     zge $2  lab $1
433 zle bra lab $1 :     zgt $2  lab $1
434 zne bra lab $1 :     zeq $2  lab $1
435 beq bra lab $1 :     bne $2  lab $1
436 bge bra lab $1 :     blt $2  lab $1
437 bgt bra lab $1 :     ble $2  lab $1
438 blt bra lab $1 :     bge $2  lab $1
439 ble bra lab $1 :     bgt $2  lab $1
440 bne bra lab $1 :     beq $2  lab $1
441 lin lin :       lin $2
442 lin lab lin :   lab $2  lin $3
443 lin ret :       ret $2
444 lin bra :       bra $2
445 #ifdef INT
446 dup p  stl loi w ? p==w :     stl $2  lil $2
447 dup p  sdl loi w  ? p==w2 :     sdl $2  lil $2
448 dup p  stl sti w ? p==w :     stl $2  sil $2
449 dup p  sdl sti w ? p==w2  :     sdl $2  sil $2
450 #endif
451 loc 0  cms w  : tne
452 zer w : loc 0
453 loc loc adi w ? sfit($1+$2,8*w) : loc $1+$2
454 loc loc sbi w ? sfit($1-$2,8*w) : loc $1-$2
455 loc loc mli w ? sfit($1*$2,8*w) : loc $1*$2
456 loc loc !=0 dvi w : loc $1/$2
457 loc loc and w  :        loc $1&$2
458 loc loc ior w  :        loc $1|$2
459 loc 0  loc 0  ior w2    :       
460 loc loc xor w  :        loc $1^$2
461 loc 0  loc 0  xor w2    :       
462 loc loc rol w  :        loc rotate($1,$2)
463 loc loc ror w  :        loc rotate($1,8*w-$2)
464 loc ngi w ? sfit(-$1,8*w) : loc -$1
465 loc com w  :    loc ~$1
466 ldc ngi w2  : ldc -$1
467 /*loc lae aar w ? $1>=rom(2,0) && $1 <= rom(2,0)+rom(2,1) :     */
468 /*      adp ($1-rom(2,0))*rom(2,2)                              */
469 /*loc lae lar w ? $1>=rom(2,0) && $1 <= rom(2,0)+rom(2,1) :     */
470 /*      adp ($1-rom(2,0))*rom(2,2) loi rom(2,2)                 */
471 /*loc lae sar w ? $1>=rom(2,0) && $1 <= rom(2,0)+rom(2,1) :     */
472 /*      adp ($1-rom(2,0))*rom(2,2) sti rom(2,2)                 */
473 loc teq : loc $1==0
474 loc tne : loc $1!=0
475 loc tge : loc $1>=0
476 loc tle : loc $1<=0
477 loc tgt : loc $1>0
478 loc tlt : loc $1<0
479 loc 0  zeq : bra $2
480 loc zeq :
481 loc !=0 zne : bra $2
482 loc zne :
483 loc >=0 zge : bra $2
484 loc zge :
485 loc <=0 zle : bra $2
486 loc zle :
487 loc >0 zgt : bra $2
488 loc zgt :
489 loc <0 zlt : bra $2
490 loc zlt :
491 loc loc $1 beq : bra $3
492 loc loc beq :
493 loc loc !=$1 bne : bra $3
494 loc loc bne :
495 loc loc bge ? $1>=$2 : bra $3
496 loc loc bge :
497 loc loc ble ? $1<=$2 : bra $3
498 loc loc ble :
499 loc loc bgt ? $1>$2 : bra $3
500 loc loc bgt :
501 loc loc blt ? $1<$2 : bra $3
502 loc loc blt :
503 lae loi >4*w lal sti $2  : lae $1 lal $3 blm $2
504 lal loi >4*w lae sti $2  : lal $1 lae $3 blm $2
505 lal loi >4*w lal sti $2  ? ( $3<=$1-$2 || $3>=$1+$2 ) :
506         lal $1 lal $3 blm $2
507 lae loi >4*w lae sti $2 ? ($3<=$1-$2 || $3>=$1+$2) :
508         lae $1 lae $3 blm $2
509 loc 0  loc w  loc cif  :        zrf $3
510 loc >=0 loc w  loc w2  ciu :    ldc $1
511 loc loc w  loc w2  cii  :       ldc $1
512 loi loc >=0 inn $1 ? $2<$1*8 : 
513         lof ($2/(8*w))*w loc $2&(8*w-1) inn w
514 ldl loc >=0  inn w2 ? $2<16*w : 
515         lol $1+($2/(8*w))*w loc $2&(8*w-1) inn w
516 lde loc >=0 inn w2 ? $2<16*w : 
517         loe $1+($2/(8*w))*w loc $2&(8*w-1) inn w
518 ldf loc >=0 inn w2 ? $2<16*w : 
519         lof $1+($2/(8*w))*w loc $2&(8*w-1) inn w
520 loc inn ? $1<0 || $1>=8*$2 : asp $2 loc 0
521 lol loc adi w  stl $1 : loc $2 lol $1 adi w stl $4
522 lol loe adi w  stl $1 : loe $2 lol $1 adi w stl $4
523 lol lol !=$1 adi w  stl $1  : lol $2 lol $1 adi w stl $4
524 loe loc adi w  ste $1 : loc $2 loe $1 adi w ste $4
525 loe loe !=$1 adi w  ste $1  : loe $2 loe $1 adi w ste $4
526 loe lol adi w  ste $1 : lol $2 loe $1 adi w ste $4
527 lol loc ior w  stl $1 : loc $2 lol $1 ior w stl $4
528 lol loe ior w  stl $1 : loe $2 lol $1 ior w stl $4
529 lol lol !=$1 ior w  stl $1  : lol $2 lol $1 ior w stl $4
530 loe loc ior w  ste $1 : loc $2 loe $1 ior w ste $4
531 loe loe !=$1 ior w  ste $1  : loe $2 loe $1 ior w ste $4
532 loe lol ior w  ste $1 : lol $2 loe $1 ior w ste $4
533 lol loc and w  stl $1 : loc $2 lol $1 and w stl $4
534 lol loe and w  stl $1 : loe $2 lol $1 and w stl $4
535 lol lol !=$1 and w  stl $1  : lol $2 lol $1 and w stl $4
536 loe loc and w  ste $1 : loc $2 loe $1 and w ste $4
537 loe loe !=$1 and w  ste $1  : loe $2 loe $1 and w ste $4
538 loe lol and w  ste $1 : lol $2 loe $1 and w ste $4
539 loi asp $1 : asp p
540 lal loi 4*w loc loc loc loc ior 4*w ? ($3==0)+($4==0)+($5==0)+($6==0)>2 :
541         lol $1+3*w loc $3 ior w lol $1+w2 loc $4 ior w lol $1+w loc $5 ior w lol $1 loc $6 ior w
542 loc dup 2  stl loc dup 2 stl  :
543         loc $1 stl $3 loc $4 stl $6 loc $1 loc $4
544 lol lol adp stl $2 sti != p ? p==w : lol $1 sti $5 lol $2 adp $3 stl $4
545 ldl ldl adp sdl $2 sti != p ? p==w2 : ldl $1 sti $5 ldl $2 adp $3 sdl $4
546 loe loe adp ste $2 sti !=p ? p==w : loe $1 sti $5 loe $2 adp $3 ste $4
547 lde lde adp sde $2 sti !=p ? p==w2 : lde $1 sti $5 lde $2 adp $3 sde $4
548 #ifndef INT
549 dup w  stl : stl $2 lol $2
550 dup w  ste : ste $2 loe $2
551 dup w  sil : sil $2 lil $2
552 dup w  loe sti w ? p==w  : loe $2 sti w loe $2 loi w
553 dup w  lde sti w ? p==w2  : lde $2 sti w lde $2 loi w
554 dup w  lol stf ? p==w : lol $2 stf $3 lol $2 lof $3
555 dup w  ldl stf ? p==w2 : ldl $2 stf $3 ldl $2 lof $3
556 dup w  loe stf ? p==w : loe $2 stf $3 loe $2 lof $3
557 dup w  lde stf ? p==w2 : lde $2 stf $3 lde $2 lof $3
558 dup w2  sdl : sdl $2 ldl $2
559 dup w2  sde : sde $2 lde $2
560 dup w2  lol sti w2 ? p==w  : lol $2 sti w2 lol $2 loi w2
561 dup w2  ldl sti w2 ? p==w2  : ldl $2 sti w2 ldl $2 loi w2
562 dup w2  loe sti w2 ? p==w  : loe $2 sti w2 loe $2 loi w2
563 dup w2  lde sti w2 ? p==w2  : lde $2 sti w2 lde $2 loi w2
564 dup w2  lol sdf ? p==w : lol $2 sdf $3 lol $2 ldf $3
565 dup w2  ldl sdf ? p==w2 : ldl $2 sdf $3 ldl $2 ldf $3
566 dup w2  loe sdf ? p==w : loe $2 sdf $3 loe $2 ldf $3
567 dup w2  lde sdf ? p==w2 : lde $2 sdf $3 lde $2 ldf $3
568 lol dup w  : lol $1 lol $1
569 loe dup w  : loe $1 loe $1
570 lil dup w  : lil $1 lil $1
571 loe loi w  dup 2 ? p==w  : loe $1 loi w loe $1 loi w
572 lde loi w  dup 2 ? p==w2  : lde $1 loi w lde $1 loi w
573 ldl dup w2  : ldl $1 ldl $1
574 lde dup w2  : lde $1 lde $1
575 #endif
576 adp stl lol $2 adp -$1 ? p==w : dup p adp $1 stl $2
577 adp sdl ldl $2 adp -$1 ? p==w2 : dup p adp $1 sdl $2
578 adp ste loe $2 adp -$1 ? p==w : dup p adp $1 ste $2
579 adp sde lde $2 adp -$1 ? p==w2 : dup p adp $1 sde $2
580 adp sil lil $2 adp -$1 ? p==w : dup p adp $1 sil $2
581 adp lol sti p  lol $2 loi p  adp -$1 ? p==w : dup p adp $1 lol $2 sti p
582 adp ldl sti p  ldl $2 loi p  adp -$1 ? p==w2 : dup p adp $1 ldl $2 sti p
583 adp loe sti p  loe $2 loi p  adp -$1 ? p==w : dup p adp $1 loe $2 sti p
584 adp lde sti p  lde $2 loi p  adp -$1 ? p==w2 : dup p adp $1 lde $2 sti p
585 /* dead code patterns */
586 bra aar : bra $1
587 bra adf : bra $1
588 bra adi : bra $1
589 bra adp : bra $1
590 bra ads : bra $1
591 bra adu : bra $1
592 bra and : bra $1
593 bra asp : bra $1
594 bra ass : bra $1
595 bra beq : bra $1
596 bra bge : bra $1
597 bra bgt : bra $1
598 bra ble : bra $1
599 bra blm : bra $1
600 bra bls : bra $1
601 bra blt : bra $1
602 bra bne : bra $1
603 bra bra : bra $1
604 bra cai : bra $1
605 bra cal : bra $1
606 bra cff : bra $1
607 bra cfi : bra $1
608 bra cfu : bra $1
609 bra cif : bra $1
610 bra cii : bra $1
611 bra ciu : bra $1
612 bra cmf : bra $1
613 bra cmi : bra $1
614 bra cmp : bra $1
615 bra cms : bra $1
616 bra cmu : bra $1
617 bra com : bra $1
618 bra csa : bra $1
619 bra csb : bra $1
620 bra cuf : bra $1
621 bra cui : bra $1
622 bra cuu : bra $1
623 bra dch : bra $1
624 bra dec : bra $1
625 bra dee : bra $1
626 bra del : bra $1
627 bra dup : bra $1
628 bra dus : bra $1
629 bra dvf : bra $1
630 bra dvi : bra $1
631 bra dvu : bra $1
632 bra exg : bra $1
633 bra fef : bra $1
634 bra fif : bra $1
635 bra fil : bra $1
636 bra gto : bra $1
637 bra inc : bra $1
638 bra ine : bra $1
639 bra inl : bra $1
640 bra inn : bra $1
641 bra ior : bra $1
642 bra lae : bra $1
643 bra lal : bra $1
644 bra lar : bra $1
645 bra ldc : bra $1
646 bra lde : bra $1
647 bra ldf : bra $1
648 bra ldl : bra $1
649 bra lfr : bra $1
650 bra lil : bra $1
651 bra lim : bra $1
652 bra lin : bra $1
653 bra lni : bra $1
654 bra loc : bra $1
655 bra loe : bra $1
656 bra lof : bra $1
657 bra loi : bra $1
658 bra lol : bra $1
659 bra lor : bra $1
660 bra los : bra $1
661 bra lpb : bra $1
662 bra lpi : bra $1
663 bra lxa : bra $1
664 bra lxl : bra $1
665 bra mlf : bra $1
666 bra mli : bra $1
667 bra mlu : bra $1
668 bra mon : bra $1
669 bra ngf : bra $1
670 bra ngi : bra $1
671 bra nop : bra $1
672 bra rck : bra $1
673 bra ret : bra $1
674 bra rmi : bra $1
675 bra rmu : bra $1
676 bra rol : bra $1
677 bra ror : bra $1
678 bra rtt : bra $1
679 bra sar : bra $1
680 bra sbf : bra $1
681 bra sbi : bra $1
682 bra sbs : bra $1
683 bra sbu : bra $1
684 bra sde : bra $1
685 bra sdf : bra $1
686 bra sdl : bra $1
687 bra set : bra $1
688 bra sig : bra $1
689 bra sil : bra $1
690 bra sim : bra $1
691 bra sli : bra $1
692 bra slu : bra $1
693 bra sri : bra $1
694 bra sru : bra $1
695 bra ste : bra $1
696 bra stf : bra $1
697 bra sti : bra $1
698 bra stl : bra $1
699 bra str : bra $1
700 bra sts : bra $1
701 bra teq : bra $1
702 bra tge : bra $1
703 bra tgt : bra $1
704 bra tle : bra $1
705 bra tlt : bra $1
706 bra tne : bra $1
707 bra trp : bra $1
708 bra xor : bra $1
709 bra zeq : bra $1
710 bra zer : bra $1
711 bra zge : bra $1
712 bra zgt : bra $1
713 bra zle : bra $1
714 bra zlt : bra $1
715 bra zne : bra $1
716 bra zre : bra $1
717 bra zrf : bra $1
718 bra zrl : bra $1