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
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
17 adp !=0 loi w : lof $1
18 adp !=0 loi w2 : ldf $1
21 adp !=0 sti w : stf $1
22 adp !=0 sti w2 : sdf $1
34 dvi ngi $1 : ngi $1 dvi $1
36 lae blm w : loi w ste $1
37 lae blm w2 : loi w2 sde $1
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
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
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
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 */
74 lal ldf ? samesign($1,$1+$2): ldl $1+$2
75 lal lof ? samesign($1,$1+$2): lol $1+$2
79 /*lal loi lol $1-w ? notreg($3) && samesign($1,$3) && $2%w==0: */
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:
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*/
88 lal sdf ? samesign($1,$1+$2): sdl $1+$2
89 lal stf ? samesign($1,$1+$2): stl $1+$2
93 lde lde $1-w2 : lae $2 loi 4*w
94 lde loe $1-w : lae $2 loi 3*w
97 lde sde lde $1+w2 sde $2+w2 : lae $1 lae $2 blm 4*w
99 /*ldl ldl $1-w2 ? notreg($1) && notreg($2) && samesign($1,$2):*/
101 /*ldl lol $1-w ? notreg($1) && notreg($2) && samesign($1,$2): */
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
116 loc dec ? sfit($1-1,8*w) : loc $1-1
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
124 ldc -1 mli w2 : ngi w2
126 loc inc ? sfit($1+1,8*w) : loc $1+1
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
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
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
244 ldc ads w2 ? sfit($1,8*w): adp $1
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
257 loc ror undefined : ror $1
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
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
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
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
297 /*lol lol $1-w ? notreg($1) && notreg($2) && samesign($1,$2): */
299 /*lol lol $1+w beq ? notreg($1) && notreg($2) && samesign($1,$2): */
301 /*lol lol $1+w bge ? notreg($1) && notreg($2) && samesign($1,$2): */
303 /*lol lol $1+w bgt ? notreg($1) && notreg($2) && samesign($1,$2): */
305 /*lol lol $1+w ble ? notreg($1) && notreg($2) && samesign($1,$2): */
307 /*lol lol $1+w blt ? notreg($1) && notreg($2) && samesign($1,$2): */
309 /*lol lol $1+w bne ? notreg($1) && notreg($2) && samesign($1,$2): */
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): */
315 /*lol lol $1+w adi w ? notreg($1) && notreg($2) && samesign($1,$2): */
317 lol lol $1 : lol $1 dup w
320 lol sti w ? p==w : sil $1
321 ldl sti w ? p==w2 : sil $1
322 mli ngi $1: ngi $1 mli $1
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
338 /*sdl sdl $1+w2 ? notreg($1) && notreg($2) && samesign($1,$2): */
340 /*sdl stl $1+w2 ? notreg($1) && notreg($2) && samesign($1,$2): */
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
354 sdl ldl $1 ret w2 : ret w2
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): */
359 /*stl loe stl $1-w ? notreg($1) && notreg($3) && samesign($1,$3): */
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
395 loc 0 loc 0 loc 0 : zer 3*w
396 zer defined loc 0 : zer $1+w
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
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
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
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
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
442 lin lab lin : lab $2 lin $3
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
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
460 loc loc xor w : loc $1^$2
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
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) */
491 loc loc $1 beq : bra $3
493 loc loc !=$1 bne : bra $3
495 loc loc bge ? $1>=$2 : bra $3
497 loc loc ble ? $1<=$2 : bra $3
499 loc loc bgt ? $1>$2 : bra $3
501 loc loc blt ? $1<$2 : bra $3
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 ) :
507 lae loi >4*w lae sti $2 ? ($3<=$1-$2 || $3>=$1+$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
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
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
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 */