Changes to build cleanly
[fw/sdcc] / src / SDCCpeeph.rul
1 /* Generated file DO NOT Edit */
2 /* To Make changes to rules   */
3 /* edit file SDCCpeeph.def    */
4 "\n"
5 "\n"
6 "replace restart {\n"
7 "        xch  a,%1\n"
8 "        xch  a,%1\n"
9 "} by {\n"
10 "        ; Peephole 2.a   removed redundant xch xch\n"
11 "}\n"
12 "\n"
13 "replace restart {\n"
14 "        mov  %1,#0x00\n"
15 "        mov  a,#0x00\n"
16 "} by {\n"
17 "        ; Peephole 3.a   changed mov to clr\n"
18 "        clr  a\n"
19 "        mov  %1,a\n"
20 "}\n"
21 "\n"
22 "replace restart {\n"
23 "        mov  %1,#0x00\n"
24 "        clr  a\n"
25 "} by {\n"
26 "        ; Peephole 3.b   changed mov to clr\n"
27 "        clr  a\n"
28 "        mov  %1,a\n"
29 "}\n"
30 "\n"
31 "replace restart {\n"
32 "        mov  %1,#0x00\n"
33 "        mov  %2,#0x00\n"
34 "        mov  a,%3\n"
35 "} by {\n"
36 "        ; Peephole 3.c   changed mov to clr\n"
37 "        clr  a\n"
38 "        mov  %1,a\n"
39 "        mov  %2,a\n"
40 "        mov  a,%3\n"
41 "}\n"
42 "\n"
43 "\n"
44 "\n"
45 "replace {\n"
46 "        mov  %1,a\n"
47 "        mov  dptr,#%2\n"
48 "        mov  a,%1\n"
49 "        movx @dptr,a\n"
50 "} by {\n"
51 "        ; Peephole 100   removed redundant mov\n"
52 "        mov  %1,a\n"
53 "        mov  dptr,#%2\n"
54 "        movx @dptr,a\n"
55 "}\n"
56 "\n"
57 "replace {\n"
58 "       mov  a,acc\n"
59 "} by {\n"
60 "       ;  Peephole 100.a   removed redundant mov\n"
61 "}\n"
62 "\n"
63 "replace {\n"
64 "        mov  a,%1\n"
65 "        movx @dptr,a\n"
66 "        inc  dptr\n"
67 "        mov  a,%1\n"
68 "        movx @dptr,a\n"
69 "} by {\n"
70 "        ; Peephole 101   removed redundant mov\n"
71 "        mov  a,%1\n"
72 "        movx @dptr,a\n"
73 "        inc  dptr\n"
74 "        movx @dptr,a\n"
75 "}\n"
76 "\n"
77 "replace {\n"
78 "        mov  %1,%2\n"
79 "        ljmp %3\n"
80 "%4:\n"
81 "        mov  %1,%5\n"
82 "%3:\n"
83 "        mov  dpl,%1\n"
84 "%7:\n"
85 "        mov  sp,bp\n"
86 "        pop  bp\n"
87 "} by {\n"
88 "        ; Peephole 102   removed redundant mov\n"
89 "        mov  dpl,%2\n"
90 "        ljmp %3\n"
91 "%4:\n"
92 "        mov  dpl,%5\n"
93 "%3:\n"
94 "%7:\n"
95 "        mov  sp,bp\n"
96 "        pop  bp\n"
97 "}\n"
98 "\n"
99 "replace {\n"
100 "        mov  %1,%2\n"
101 "        ljmp %3\n"
102 "%4:\n"
103 "        mov  a%1,%5\n"
104 "%3:\n"
105 "        mov  dpl,%1\n"
106 "%7:\n"
107 "        mov  sp,bp\n"
108 "        pop  bp\n"
109 "} by {\n"
110 "        ; Peephole 103   removed redundant mov\n"
111 "        mov  dpl,%2\n"
112 "        ljmp %3\n"
113 "%4:\n"
114 "        mov  dpl,%5\n"
115 "%3:\n"
116 "%7:\n"
117 "        mov  sp,bp\n"
118 "        pop  bp\n"
119 "}\n"
120 "\n"
121 "replace {\n"
122 "        mov  a,bp\n"
123 "        clr  c\n"
124 "        add  a,#0x01\n"
125 "        mov  r%1,a\n"
126 "} by {\n"
127 "        ; Peephole 104   optimized increment (acc not set to r%1, flags undefined)\n"
128 "        mov  r%1,bp\n"
129 "        inc  r%1\n"
130 "}\n"
131 "\n"
132 "replace {\n"
133 "        mov  %1,a\n"
134 "        mov  a,%1\n"
135 "} by {\n"
136 "        ; Peephole 105   removed redundant mov\n"
137 "        mov  %1,a\n"
138 "}\n"
139 "\n"
140 "replace {\n"
141 "        mov  %1,a\n"
142 "        clr  c\n"
143 "        mov  a,%1\n"
144 "} by {\n"
145 "        ; Peephole 106   removed redundant mov \n"
146 "        mov  %1,a\n"
147 "        clr  c\n"
148 "}\n"
149 "\n"
150 "replace {\n"
151 "        ljmp %1\n"
152 "%1:\n"
153 "} by {\n"
154 "        ; Peephole 107   removed redundant ljmp\n"
155 "%1:\n"
156 "}\n"
157 "\n"
158 "replace {\n"
159 "        jc   %1\n"
160 "        ljmp %5\n"
161 "%1:\n"
162 "} by {\n"
163 "        ; Peephole 108   removed ljmp by inverse jump logic\n"
164 "        jnc  %5\n"
165 "%1:\n"
166 "} if labelInRange\n"
167 "\n"
168 "replace {\n"
169 "        jz   %1\n"
170 "        ljmp %5\n"
171 "%1:\n"
172 "} by {\n"
173 "        ; Peephole 109   removed ljmp by inverse jump logic\n"
174 "        jnz  %5\n"
175 "%1:\n"
176 "} if labelInRange\n"
177 "\n"
178 "replace {\n"
179 "        jnz  %1\n"
180 "        ljmp %5\n"
181 "%1:\n"
182 "} by {\n"
183 "        ; Peephole 110   removed ljmp by inverse jump logic\n"
184 "        jz  %5\n"
185 "%1:\n"
186 "} if labelInRange\n"
187 "\n"
188 "replace {\n"
189 "        jb   %1,%2\n"
190 "        ljmp %5\n"
191 "%2:\n"
192 "} by {\n"
193 "        ; Peephole 111   removed ljmp by inverse jump logic\n"
194 "        jnb  %1,%5\n"
195 "%2:\n"
196 "} if labelInRange\n"
197 "\n"
198 "replace {\n"
199 "        jnb  %1,%2\n"
200 "        ljmp %5\n"
201 "%2:\n"
202 "} by {\n"
203 "        ; Peephole 112   removed ljmp by inverse jump logic\n"
204 "        jb   %1,%5\n"
205 "%2:\n"
206 "} if labelInRange\n"
207 "\n"
208 "replace {\n"
209 "        clr  a\n"
210 "        cjne %1,%2,%3\n"
211 "        cpl  a\n"
212 "%3:\n"
213 "        rrc  a\n"
214 "        mov  %4,c\n"
215 "} by {\n"
216 "        ; Peephole 113   optimized misc sequence\n"
217 "        clr  %4\n"
218 "        cjne %1,%2,%3\n"
219 "        setb %4\n"
220 "%3:\n"
221 "}\n"
222 "\n"
223 "replace {\n"
224 "        clr  a\n"
225 "        cjne %1,%2,%3\n"
226 "        cjne %10,%11,%3\n"
227 "        cpl  a\n"
228 "%3:\n"
229 "        rrc  a\n"
230 "        mov  %4,c\n"
231 "} by {\n"
232 "        ; Peephole 114   optimized misc sequence\n"
233 "        clr  %4\n"
234 "        cjne %1,%2,%3\n"
235 "        cjne %10,%11,%3\n"
236 "        setb %4\n"
237 "%3:\n"
238 "}\n"
239 "\n"
240 "replace {\n"
241 "        clr  a\n"
242 "        cjne %1,%2,%3\n"
243 "        cpl  a\n"
244 "%3:\n"
245 "        jnz  %4\n"
246 "} by {\n"
247 "        ; Peephole 115   jump optimization \n"
248 "        cjne %1,%2,%3\n"
249 "        sjmp %4\n"
250 "%3:\n"
251 "}\n"
252 "\n"
253 "replace {\n"
254 "        clr  a\n"
255 "        cjne %1,%2,%3\n"
256 "        cjne %9,%10,%3\n"
257 "        cpl  a\n"
258 "%3:\n"
259 "        jnz  %4\n"
260 "} by {\n"
261 "        ; Peephole 116   jump optimization\n"
262 "        cjne %1,%2,%3\n"
263 "        cjne %9,%10,%3\n"
264 "        sjmp %4\n"
265 "%3:\n"
266 "}\n"
267 "\n"
268 "replace {\n"
269 "        clr  a\n"
270 "        cjne %1,%2,%3\n"
271 "        cjne %9,%10,%3\n"
272 "        cjne %11,%12,%3\n"
273 "        cpl  a\n"
274 "%3:\n"
275 "        jnz %4\n"
276 "} by {\n"
277 "        ; Peephole 117   jump optimization\n"
278 "        cjne %1,%2,%3\n"
279 "        cjne %9,%10,%3\n"
280 "        cjne %11,%12,%3\n"
281 "        sjmp %4\n"
282 "%3:\n"
283 "}\n"
284 "\n"
285 "replace {\n"
286 "        clr  a\n"
287 "        cjne %1,%2,%3\n"
288 "        cjne %9,%10,%3\n"
289 "        cjne %11,%12,%3\n"
290 "        cjne %13,%14,%3\n"
291 "        cpl  a\n"
292 "%3:\n"
293 "        jnz %4\n"
294 "} by {\n"
295 "        ; Peephole 118   jump optimization\n"
296 "        cjne %1,%2,%3\n"
297 "        cjne %9,%10,%3\n"
298 "        cjne %11,%12,%3\n"
299 "        cjne %13,%14,%3\n"
300 "        sjmp %4\n"
301 "%3:\n"
302 "}\n"
303 "replace {\n"
304 "        mov  a,#0x01\n"
305 "        cjne %1,%2,%3\n"
306 "        clr  a\n"
307 "%3:\n"
308 "        jnz  %4\n"
309 "} by {\n"
310 "        ; Peephole 119   jump optimization\n"
311 "        cjne %1,%2,%4\n"
312 "%3:\n"
313 "}\n"
314 "\n"
315 "replace {\n"
316 "        mov  a,#0x01\n"
317 "        cjne %1,%2,%3\n"
318 "        cjne %10,%11,%3\n"
319 "        clr  a\n"
320 "%3:\n"
321 "        jnz  %4\n"
322 "} by {\n"
323 "        ; Peephole 120   jump optimization\n"
324 "        cjne %1,%2,%4\n"
325 "        cjne %10,%11,%4\n"
326 "%3:\n"
327 "}\n"
328 "replace {\n"
329 "        mov  a,#0x01\n"
330 "        cjne %1,%2,%3\n"
331 "        cjne %10,%11,%3\n"
332 "        cjne %12,%13,%3\n"
333 "        clr  a\n"
334 "%3:\n"
335 "        jnz  %4\n"
336 "} by {\n"
337 "        ; Peephole 121   jump optimization\n"
338 "        cjne %1,%2,%4\n"
339 "        cjne %10,%11,%4\n"
340 "        cjne %12,%13,%4\n"
341 "%3:\n"
342 "}\n"
343 "\n"
344 "replace {\n"
345 "        mov  a,#0x01\n"
346 "        cjne %1,%2,%3\n"
347 "        cjne %10,%11,%3\n"
348 "        cjne %12,%13,%3\n"
349 "        cjne %14,%15,%3\n"
350 "        clr  a\n"
351 "%3:\n"
352 "        jnz  %4\n"
353 "} by {\n"
354 "        ; Peephole 122   jump optimization\n"
355 "        cjne %1,%2,%4\n"
356 "        cjne %10,%11,%4\n"
357 "        cjne %12,%13,%4\n"
358 "        cjne %14,%15,%4\n"
359 "%3:\n"
360 "}\n"
361 "\n"
362 "replace {\n"
363 "        mov  a,#0x01\n"
364 "        cjne %1,%2,%3\n"
365 "        clr  a\n"
366 "%3:\n"
367 "        jz   %4\n"
368 "} by {\n"
369 "        ; Peephole 123   jump optimization\n"
370 "        cjne %1,%2,%3\n"
371 "        smp  %4\n"
372 "%3:\n"
373 "}\n"
374 "replace {\n"
375 "        mov  a,#0x01\n"
376 "        cjne %1,%2,%3\n"
377 "        cjne %10,%11,%3\n"
378 "        clr  a\n"
379 "%3:\n"
380 "        jz   %4\n"
381 "} by {\n"
382 "        ; Peephole 124   jump optimization\n"
383 "        cjne %1,%2,%3\n"
384 "        cjne %10,%11,%3\n"
385 "        smp  %4\n"
386 "%3:\n"
387 "}\n"
388 "\n"
389 "replace {\n"
390 "        mov  a,#0x01\n"
391 "        cjne %1,%2,%3\n"
392 "        cjne %10,%11,%3\n"
393 "        cjne %12,%13,%3\n"
394 "        clr  a\n"
395 "%3:\n"
396 "        jz   %4\n"
397 "} by {\n"
398 "        ; Peephole 125   jump optimization\n"
399 "        cjne %1,%2,%3\n"
400 "        cjne %10,%11,%3\n"
401 "        cjne %12,%13,%3\n"
402 "        sjmp %4\n"
403 "%3:\n"
404 "}\n"
405 "\n"
406 "replace {\n"
407 "        mov  a,#0x01\n"
408 "        cjne %1,%2,%3\n"
409 "        cjne %10,%11,%3\n"
410 "        cjne %12,%13,%3\n"
411 "        cjne %14,%15,%3\n"
412 "        clr  a\n"
413 "%3:\n"
414 "        jz   %4\n"
415 "} by {\n"
416 "        ; Peephole 126   jump optimization\n"
417 "        cjne %1,%2,%3\n"
418 "        cjne %10,%11,%3\n"
419 "        cjne %12,%13,%3\n"
420 "        cjne %14,%15,%3\n"
421 "        sjmp %4\n"
422 "%3:\n"
423 "}\n"
424 "\n"
425 "replace {\n"
426 "        push psw\n"
427 "        mov  psw,%1\n"
428 "        push bp\n"
429 "        mov  bp,%2\n"
430 "%3:\n"
431 "        mov  %2,bp\n"
432 "        pop  bp\n"
433 "        pop  psw\n"
434 "        ret\n"
435 "} by {\n"
436 "        ; Peephole 127   removed misc sequence\n"
437 "        ret\n"
438 "}\n"
439 "\n"
440 "replace {\n"
441 "        clr  a\n"
442 "        rlc  a\n"
443 "        jz   %1\n"
444 "} by {\n"
445 "        ; Peephole 128   jump optimization\n"
446 "        jnc  %1\n"
447 "}\n"
448 "\n"
449 "replace {\n"
450 "        clr  a\n"
451 "        rlc  a\n"
452 "        jnz  %1\n"
453 "} by {\n"
454 "        ; Peephole 129   jump optimization\n"
455 "        jc   %1\n"
456 "}\n"
457 "\n"
458 "replace { \n"
459 "        mov  r%1,@r%2\n"
460 "} by {\n"
461 "        ; Peephole 130   changed target address mode r%1 to ar%1\n"
462 "        mov  ar%1,@r%2\n"
463 "}\n"
464 "\n"
465 "replace { \n"
466 "        mov  a,%1\n"
467 "        subb a,#0x01\n"
468 "        mov  %2,a\n"
469 "        mov  %1,%2\n"
470 "} by {\n"
471 "        ; Peephole 131   optimized decrement (not caring for c)\n"
472 "        dec  %1         \n"
473 "        mov  %2,%1      \n"
474 "}\n"
475 "\n"
476 "replace {\n"
477 "        ljmp %5\n"
478 "%1:\n"
479 "} by {\n"
480 "        ; Peephole 132   changed ljmp to sjmp\n"
481 "        sjmp %5\n"
482 "%1:\n"
483 "} if labelInRange\n"
484 "\n"
485 "replace {\n"
486 "        mov  r%1,%2\n"
487 "        mov  ar%3,@r%1\n"
488 "        inc  r%3\n"
489 "        mov  r%4,%2\n"
490 "        mov  @r%4,ar%3\n"
491 "} by {\n"
492 "        ; Peephole 133   removed redundant moves\n"
493 "        mov  r%1,%2\n"
494 "        inc  @r%1\n"
495 "        mov  ar%3,@r%1\n"
496 "}\n"
497 "\n"
498 "replace {\n"
499 "        mov  r%1,%2\n"
500 "        mov  ar%3,@r%1\n"
501 "        dec  r%3\n"
502 "        mov  r%4,%2\n"
503 "        mov  @r%4,ar%3\n"
504 "} by {\n"
505 "        ; Peephole 134   removed redundant moves\n"
506 "        mov  r%1,%2\n"
507 "        dec  @r%1\n"
508 "        mov  ar%3,@r%1\n"
509 "}\n"
510 "\n"
511 "replace {\n"
512 "        mov  r%1,a\n"
513 "        mov  a,r%2\n"
514 "        orl  a,r%1\n"
515 "} by {\n"
516 "        ; Peephole 135   removed redundant mov\n"
517 "        mov  r%1,a\n"
518 "        orl  a,r%2\n"
519 "}\n"
520 "\n"
521 "replace {\n"
522 "        mov  %1,a\n"
523 "        mov  dpl,%2\n"
524 "        mov  dph,%3\n"
525 "        mov  a,%1\n"
526 "} by {\n"
527 "        ; Peephole 136   removed redundant moves\n"
528 "        mov  %1,a\n"
529 "        mov  dpl,%2\n"
530 "        mov  dph,%3\n"
531 "}\n"
532 "\n"
533 "replace {\n"
534 "        mov  b,#0x00\n"
535 "        mov  a,%1\n"
536 "        cjne %2,%3,%4\n"
537 "        mov  b,#0x01\n"
538 "%4:\n"
539 "        mov  a,b\n"
540 "        jz   %5\n"
541 "} by {\n"
542 "        ; Peephole 137   optimized misc jump sequence\n"
543 "        mov  a,%1\n"
544 "        cjne %2,%3,%5\n"
545 "%4:\n"
546 "}\n"
547 "\n"
548 "replace {\n"
549 "        mov  b,#0x00\n"
550 "        mov  a,%1\n"
551 "        cjne %2,%3,%4\n"
552 "        mov  b,#0x01\n"
553 "%4:\n"
554 "        mov  a,b\n"
555 "        jnz  %5\n"
556 "} by {\n"
557 "        ; Peephole 138   optimized misc jump sequence\n"
558 "        mov  a,%1\n"
559 "        cjne %2,%3,%4\n"
560 "        sjmp %5\n"
561 "%4:\n"
562 "}\n"
563 "\n"
564 "replace {\n"
565 "        mov  r%1,a\n"
566 "        anl  ar%1,%2\n"
567 "        mov  a,r%1\n"
568 "} by {\n"
569 "        ; Peephole 139   removed redundant mov\n"
570 "        anl  a,%2\n"
571 "        mov  r%1,a\n"
572 "}\n"
573 "\n"
574 "replace {\n"
575 "        mov  r%1,a\n"
576 "        orl  ar%1,%2\n"
577 "        mov  a,r%1\n"
578 "} by {\n"
579 "        ; Peephole 140   removed redundant mov\n"
580 "        orl  a,%2\n"
581 "        mov  r%1,a }\n"
582 "\n"
583 "replace {\n"
584 "        mov  r%1,a\n"
585 "        xrl  ar%1,%2\n"
586 "        mov  a,r%1\n"
587 "} by {\n"
588 "        ; Peephole 141   removed redundant mov\n"
589 "        xrl  a,%2\n"
590 "        mov  r%1,a\n"
591 "}\n"
592 "\n"
593 "replace {\n"
594 "        mov  r%1,a\n"
595 "        mov  r%2,ar%1\n"
596 "        mov  ar%1,@r%2\n"
597 "} by {\n"
598 "        ; Peephole 142   removed redundant moves\n"
599 "        mov  r%2,a\n"
600 "        mov  ar%1,@r%2\n"
601 "}\n"
602 "\n"
603 "replace {\n"
604 "        rlc  a\n"
605 "        mov  acc.0,c\n"
606 "} by {\n"
607 "        ; Peephole 143   converted rlc to rl\n"
608 "        rl   a\n"
609 "}\n"
610 "\n"
611 "replace {\n"
612 "        rrc  a\n"
613 "        mov  acc.7,c\n"
614 "} by {\n"
615 "        ; Peephole 144   converted rrc to rc\n"
616 "        rr   a\n"
617 "}\n"
618 "\n"
619 "replace {\n"
620 "        clr  c\n"
621 "        addc a,%1\n"
622 "} by {\n"
623 "        ; Peephole 145   changed to add without carry  \n"
624 "        add  a,%1\n"
625 "}\n"
626 "\n"
627 "replace {\n"
628 "        clr  c\n"
629 "        mov  a,%1\n"
630 "        addc a,%2\n"
631 "} by {\n"
632 "        ; Peephole 146   changed to add without carry\n"
633 "        mov  a,%1\n"
634 "        add  a,%2\n"
635 "}\n"
636 "\n"
637 "replace {\n"
638 "        orl  r%1,a\n"
639 "} by {\n"
640 "        ; Peephole 147   changed target address mode r%1 to ar%1\n"
641 "        orl  ar%1,a\n"
642 "}\n"
643 "\n"
644 "replace {\n"
645 "        anl  r%1,a\n"
646 "} by {\n"
647 "        ; Peephole 148   changed target address mode r%1 to ar%1\n"
648 "        anl  ar%1,a\n"
649 "}\n"
650 "\n"
651 "replace {\n"
652 "        xrl  r%1,a\n"
653 "} by {\n"
654 "        ; Peephole 149   changed target address mode r%1 to ar%1\n"
655 "        xrl  ar%1,a\n"
656 "}\n"
657 "\n"
658 "replace {\n"
659 "        mov  %1,dpl\n"
660 "        mov  dpl,%1\n"
661 "%9:\n"
662 "        ret\n"
663 "} by {\n"
664 "        ; Peephole 150   removed misc moves via dpl before return\n"
665 "%9:\n"
666 "        ret\n"
667 "}\n"
668 "\n"
669 "replace {\n"
670 "        mov  %1,dpl\n"
671 "        mov  %2,dph\n"
672 "        mov  dpl,%1\n"
673 "        mov  dph,%2\n"
674 "%9:\n"
675 "        ret\n"
676 "} by {\n"
677 "        ; Peephole 151   removed misc moves via dph, dpl before return\n"
678 "%9:\n"
679 "        ret\n"
680 "}\n"
681 "\n"
682 "replace {\n"
683 "        mov  %1,dpl\n"
684 "        mov  %2,dph\n"
685 "        mov  dpl,%1\n"
686 "%9:\n"
687 "        ret\n"
688 "} by {\n"
689 "        ; Peephole 152   removed misc moves via dph, dpl before return\n"
690 "%9:\n"
691 "        ret\n"
692 "}\n"
693 "\n"
694 "replace {\n"
695 "        mov  %1,dpl\n"
696 "        mov  %2,dph\n"
697 "        mov  %3,b\n"
698 "        mov  dpl,%1\n"
699 "        mov  dph,%2\n"
700 "        mov  b,%3\n"
701 "%9:\n"
702 "        ret\n"
703 "} by {\n"
704 "        ; Peephole 153   removed misc moves via dph, dpl, b before return\n"
705 "%9:\n"
706 "        ret\n"
707 "}\n"
708 "\n"
709 "replace {\n"
710 "        mov  %1,dpl\n"
711 "        mov  %2,dph\n"
712 "        mov  %3,b\n"
713 "        mov  dpl,%1\n"
714 "%9:\n"
715 "        ret\n"
716 "} by {\n"
717 "        ; Peephole 154   removed misc moves via dph, dpl, b before return\n"
718 "%9:\n"
719 "        ret\n"
720 "}\n"
721 "\n"
722 "replace {\n"
723 "        mov  %1,dpl\n"
724 "        mov  %2,dph\n"
725 "        mov  %3,b\n"
726 "        mov  dpl,%1\n"
727 "        mov  dph,%2\n"
728 "%9:\n"
729 "        ret\n"
730 "} by {\n"
731 "        ; Peephole 155   removed misc moves via dph, dpl, b before return\n"
732 "%9:\n"
733 "        ret\n"
734 "}\n"
735 "\n"
736 "replace {\n"
737 "        mov  %1,dpl\n"
738 "        mov  %2,dph\n"
739 "        mov  %3,b\n"
740 "        mov  %4,a\n"
741 "        mov  dpl,%1\n"
742 "        mov  dph,%2\n"
743 "        mov  b,%3\n"
744 "        mov  a,%4\n"
745 "%9:\n"
746 "        ret\n"
747 "} by {\n"
748 "        ; Peephole 156   removed misc moves via dph, dpl, b, a before return\n"
749 "%9:\n"
750 "        ret\n"
751 "}\n"
752 "\n"
753 "replace {\n"
754 "        mov  %1,dpl\n"
755 "        mov  %2,dph\n"
756 "        mov  %3,b\n"
757 "        mov  %4,a\n"
758 "        mov  dpl,%1\n"
759 "        mov  dph,%2\n"
760 "%9:\n"
761 "        ret\n"
762 "} by {\n"
763 "        ; Peephole 157   removed misc moves via dph, dpl, b, a before return\n"
764 "%9:\n"
765 "        ret\n"
766 "}\n"
767 "\n"
768 "replace {\n"
769 "        mov  %1,dpl\n"
770 "        mov  %2,dph\n"
771 "        mov  %3,b\n"
772 "        mov  %4,a\n"
773 "        mov  dpl,%1\n"
774 "%9:\n"
775 "        ret } by {\n"
776 "        ; Peephole 158   removed misc moves via dph, dpl, b, a before return\n"
777 "%9:\n"
778 "        ret }\n"
779 "\n"
780 "replace {\n"
781 "        mov  %1,#%2\n"
782 "        xrl  %1,#0x80\n"
783 "} by {\n"
784 "        ; Peephole 159   avoided xrl during execution\n"
785 "        mov  %1,#(%2 ^ 0x80)\n"
786 "}\n"
787 "\n"
788 "replace {\n"
789 "        jnc  %1\n"
790 "        sjmp %2\n"
791 "%1:\n"
792 "} by {\n"
793 "        ; Peephole 160   removed sjmp by inverse jump logic\n"
794 "        jc   %2\n"
795 "%1:}\n"
796 "\n"
797 "replace {\n"
798 "        jc   %1\n"
799 "        sjmp %2\n"
800 "%1:\n"
801 "} by {\n"
802 "        ; Peephole 161   removed sjmp by inverse jump logic\n"
803 "        jnc  %2\n"
804 "%1:}\n"
805 "\n"
806 "replace {\n"
807 "        jnz  %1\n"
808 "        sjmp %2\n"
809 "%1:\n"
810 "} by {\n"
811 "        ; Peephole 162   removed sjmp by inverse jump logic\n"
812 "        jz   %2\n"
813 "%1:}\n"
814 "\n"
815 "replace {\n"
816 "        jz   %1\n"
817 "        sjmp %2\n"
818 "%1:\n"
819 "} by {\n"
820 "        ; Peephole 163   removed sjmp by inverse jump logic\n"
821 "        jnz  %2\n"
822 "%1:}\n"
823 "\n"
824 "replace {\n"
825 "        jnb  %3,%1\n"
826 "        sjmp %2\n"
827 "%1:\n"
828 "} by {\n"
829 "        ; Peephole 164   removed sjmp by inverse jump logic\n"
830 "        jb   %3,%2\n"
831 "%1:}\n"
832 "\n"
833 "replace {\n"
834 "        jb   %3,%1\n"
835 "        sjmp %2\n"
836 "%1:\n"
837 "} by {\n"
838 "        ; Peephole 165   removed sjmp by inverse jump logic\n"
839 "        jnb  %3,%2\n"
840 "%1:}\n"
841 "\n"
842 "replace {\n"
843 "        mov  %1,%2\n"
844 "        mov  %3,%1\n"
845 "        mov  %2,%1\n"
846 "} by {\n"
847 "        ; Peephole 166   removed redundant mov\n"
848 "        mov  %1,%2\n"
849 "        mov  %3,%1 }\n"
850 "\n"
851 "replace {\n"
852 "        mov  c,%1\n"
853 "        cpl  c\n"
854 "        mov  %1,c\n"
855 "} by {\n"
856 "        ; Peephole 167   removed redundant bit moves (c not set to %1)\n"
857 "        cpl  %1 }\n"
858 "\n"
859 "replace {\n"
860 "        jnb  %1,%2\n"
861 "        sjmp %3\n"
862 "%2:} by {\n"
863 "        ; Peephole 168   jump optimization\n"
864 "        jb   %1,%3\n"
865 "%2:}\n"
866 "\n"
867 "replace {\n"
868 "        jb   %1,%2\n"
869 "        sjmp %3\n"
870 "%2:} by {\n"
871 "        ; Peephole 169   jump optimization\n"
872 "        jnb  %1,%3\n"
873 "%2:}\n"
874 "\n"
875 "replace {\n"
876 "        clr  a\n"
877 "        cjne %1,%2,%3\n"
878 "        cpl  a\n"
879 "%3:\n"
880 "        jz   %4\n"
881 "} by {\n"
882 "        ; Peephole 170   jump optimization\n"
883 "        cjne %1,%2,%4\n"
884 "%3:}\n"
885 "\n"
886 "replace {\n"
887 "        clr  a\n"
888 "        cjne %1,%2,%3\n"
889 "        cjne %9,%10,%3\n"
890 "        cpl  a\n"
891 "%3:\n"
892 "        jz   %4\n"
893 "} by {\n"
894 "        ; Peephole 171   jump optimization\n"
895 "        cjne %1,%2,%4\n"
896 "        cjne %9,%10,%4\n"
897 "%3:}\n"
898 "\n"
899 "replace {\n"
900 "        clr  a\n"
901 "        cjne %1,%2,%3\n"
902 "        cjne %9,%10,%3\n"
903 "        cjne %11,%12,%3\n"
904 "        cpl  a\n"
905 "%3:\n"
906 "        jz   %4\n"
907 "} by {\n"
908 "        ; Peephole 172   jump optimization\n"
909 "        cjne %1,%2,%4\n"
910 "        cjne %9,%10,%4\n"
911 "        cjne %11,%12,%4\n"
912 "%3:}\n"
913 "\n"
914 "replace {\n"
915 "        clr  a\n"
916 "        cjne %1,%2,%3\n"
917 "        cjne %9,%10,%3\n"
918 "        cjne %11,%12,%3\n"
919 "        cjne %13,%14,%3\n"
920 "        cpl  a\n"
921 "%3:\n"
922 "        jz   %4\n"
923 "} by {\n"
924 "        ; Peephole 173   jump optimization\n"
925 "        cjne %1,%2,%4\n"
926 "        cjne %9,%10,%4\n"
927 "        cjne %11,%12,%4\n"
928 "        cjne %13,%14,%4\n"
929 "%3:}\n"
930 "\n"
931 "replace {\n"
932 "        mov  r%1,%2\n"
933 "        clr  c\n"
934 "        mov  a,r%1\n"
935 "        subb a,#0x01\n"
936 "        mov  %2,a\n"
937 "} by {\n"
938 "        ; Peephole 174   optimized decrement (acc not set to %2, flags undefined)\n"
939 "        mov  r%1,%2\n"
940 "        dec  %2\n"
941 "}\n"
942 "\n"
943 "\n"
944 "replace {\n"
945 "        mov  r%1,%2\n"
946 "        mov  a,r%1\n"
947 "        add  a,#0x01\n"
948 "        mov  %2,a\n"
949 "} by {\n"
950 "        ; Peephole 175   optimized increment (acc not set to %2, flags undefined)\n"
951 "        mov  r%1,%2\n"
952 "        inc  %2\n"
953 "}\n"
954 "\n"
955 "replace {\n"
956 "        mov  %1,@r%2\n"
957 "        inc  %1\n"
958 "        mov  @r%2,%1\n"
959 "} by {\n"
960 "        ; Peephole 176   optimized increment, removed redundant mov\n"
961 "        inc  @r%2\n"
962 "        mov  %1,@r%2\n"
963 "}\n"
964 "\n"
965 "replace {\n"
966 "        mov  %1,%2\n"
967 "        mov  %2,%1\n"
968 "} by {\n"
969 "        ; Peephole 177   removed redundant mov\n"
970 "        mov  %1,%2\n"
971 "}\n"
972 "\n"
973 "replace {\n"
974 "        mov  a,%1\n"
975 "        mov  b,a\n"
976 "        mov  a,%2\n"
977 "} by {\n"
978 "        ; Peephole 178   removed redundant mov\n"
979 "        mov  b,%1\n"
980 "        mov  a,%2\n"
981 "}\n"
982 "\n"
983 "replace {\n"
984 "        mov  b,#0x00\n"
985 "        mov  a,#0x00\n"
986 "} by {\n"
987 "        ; Peephole 179   changed mov to clr\n"
988 "        clr  a\n"
989 "        mov  b,a\n"
990 "}\n"
991 "\n"
992 "replace {\n"
993 "        mov  a,#0x00\n"
994 "} by {\n"
995 "        ; Peephole 180   changed mov to clr\n"
996 "        clr  a\n"
997 "}\n"
998 "\n"
999 "replace {\n"
1000 "        mov  dpl,#0x00\n"
1001 "        mov  dph,#0x00\n"
1002 "} by {\n"
1003 "        ; Peephole 181   used 16 bit load of dptr\n"
1004 "        mov  dptr,#0x0000\n"
1005 "}\n"
1006 "\n"
1007 "replace {\n"
1008 "        mov  dpl,#%1\n"
1009 "        mov  dph,#%2\n"
1010 "} by {\n"
1011 "        ; Peephole 182   used 16 bit load of dptr\n"
1012 "        mov  dptr,#(((%2)<<8) + %1)\n"
1013 "}\n"
1014 "\n"
1015 "replace {\n"
1016 "        anl  %1,#%2\n"
1017 "        anl  %1,#%3\n"
1018 "} by {\n"
1019 "        ; Peephole 183   avoided anl during execution\n"
1020 "        anl  %1,#(%2 & %3)\n"
1021 "}\n"
1022 "\n"
1023 "replace {\n"
1024 "        mov  %1,a\n"
1025 "        cpl  a\n"
1026 "        mov  %1,a\n"
1027 "} by {\n"
1028 "        ; Peephole 184   removed redundant mov\n"
1029 "        cpl  a\n"
1030 "        mov  %1,a\n"
1031 "}\n"
1032 "\n"
1033 "replace {\n"
1034 "        mov  %1,a\n"
1035 "        inc  %1\n"
1036 "} by {\n"
1037 "        ; Peephole 185   changed order of increment (acc incremented also!)\n"
1038 "        inc  a\n"
1039 "        mov  %1,a\n"
1040 "}\n"
1041 "\n"
1042 "replace {\n"
1043 "        add  a,#%1\n"
1044 "        mov  dpl,a\n"
1045 "        clr  a\n"
1046 "        addc a,#(%1 >> 8)\n"
1047 "        mov  dph,a\n"
1048 "        clr  a\n"
1049 "        movc a,@a+dptr\n"
1050 "       mov  %2,a\n"
1051 "       inc  dptr\n"
1052 "       clr  a\n"
1053 "       movc a,@a+dptr\n"
1054 "       mov  %3,a\n"
1055 "       inc  dptr\n"
1056 "       clr  a\n"
1057 "       movc a,@a+dptr\n"
1058 "       mov  %4,a\n"
1059 "       inc  dptr\n"
1060 "       clr  a  \n"
1061 "} by {\n"
1062 "        ; Peephole 186.a   optimized movc sequence\n"
1063 "        mov  dptr,#%1\n"
1064 "       mov  b,acc\n"
1065 "        movc a,@a+dptr\n"
1066 "       mov  %2,a\n"
1067 "       mov  acc,b\n"
1068 "       inc  dptr       \n"
1069 "       movc a,@a+dptr\n"
1070 "       mov  %3,a\n"
1071 "       mov  acc,b\n"
1072 "       inc  dptr\n"
1073 "       mov  %4,a\n"
1074 "       mov  acc,b\n"
1075 "       inc  dptr\n"
1076 "}\n"
1077 "\n"
1078 "replace {\n"
1079 "        add  a,#%1\n"
1080 "        mov  dpl,a\n"
1081 "        clr  a\n"
1082 "        addc a,#(%1 >> 8)\n"
1083 "        mov  dph,a\n"
1084 "        clr  a\n"
1085 "        movc a,@a+dptr\n"
1086 "       mov  %2,a\n"
1087 "       inc  dptr\n"
1088 "       clr  a\n"
1089 "       movc a,@a+dptr\n"
1090 "       mov  %3,a\n"
1091 "       inc  dptr\n"
1092 "       clr  a\n"
1093 "} by {\n"
1094 "        ; Peephole 186.b   optimized movc sequence\n"
1095 "        mov  dptr,#%1\n"
1096 "       mov  b,acc\n"
1097 "        movc a,@a+dptr\n"
1098 "       mov  %2,a\n"
1099 "       mov  acc,b\n"
1100 "       inc  dptr       \n"
1101 "       movc a,@a+dptr\n"
1102 "       mov  %3,a\n"
1103 "       mov  acc,b\n"
1104 "       inc  dptr       \n"
1105 "}\n"
1106 "\n"
1107 "replace {\n"
1108 "        add  a,#%1\n"
1109 "        mov  dpl,a\n"
1110 "        clr  a\n"
1111 "        addc a,#(%1 >> 8)\n"
1112 "        mov  dph,a\n"
1113 "        clr  a\n"
1114 "        movc a,@a+dptr\n"
1115 "       mov  %2,a\n"
1116 "       inc  dptr\n"
1117 "       clr  a\n"
1118 "} by {\n"
1119 "        ; Peephole 186.c   optimized movc sequence\n"
1120 "        mov  dptr,#%1\n"
1121 "       mov  b,acc\n"
1122 "        movc a,@a+dptr\n"
1123 "       mov  %2,a\n"
1124 "       mov  acc,b\n"
1125 "       inc  dptr\n"
1126 "}\n"
1127 "\n"
1128 "replace {\n"
1129 "        add  a,#%1\n"
1130 "        mov  dpl,a\n"
1131 "        clr  a\n"
1132 "        addc a,#(%1 >> 8)\n"
1133 "        mov  dph,a\n"
1134 "        clr  a\n"
1135 "        movc a,@a+dptr\n"
1136 "} by {\n"
1137 "        ; Peephole 186   optimized movc sequence\n"
1138 "        mov  dptr,#%1\n"
1139 "        movc a,@a+dptr\n"
1140 "}\n"
1141 "\n"
1142 "replace {\n"
1143 "        mov  r%1,%2\n"
1144 "        anl  ar%1,#%3\n"
1145 "        mov  a,r%1\n"
1146 "} by {\n"
1147 "        ; Peephole 187   used a instead of ar%1 for anl\n"
1148 "        mov  a,%2\n"
1149 "        anl  a,#%3\n"
1150 "        mov  r%1,a\n"
1151 "}\n"
1152 "\n"
1153 "replace {\n"
1154 "        mov  %1,a\n"
1155 "        mov  dptr,%2\n"
1156 "        movc a,@a+dptr\n"
1157 "        mov  %1,a\n"
1158 "} by {\n"
1159 "        ; Peephole 188   removed redundant mov\n"
1160 "        mov  dptr,%2\n"
1161 "        movc a,@a+dptr\n"
1162 "        mov  %1,a\n"
1163 "}\n"
1164 "\n"
1165 "replace {\n"
1166 "        anl  a,#0x0f\n"
1167 "        mov  %1,a\n"
1168 "        mov  a,#0x0f\n"
1169 "        anl  a,%1\n"
1170 "} by {\n"
1171 "        ; Peephole 189   removed redundant mov and anl\n"
1172 "        anl  a,#0x0f\n"
1173 "        mov  %1,a\n"
1174 "}\n"
1175 "\n"
1176 "replace {\n"
1177 "        mov  a,%1\n"
1178 "        lcall __gptrput\n"
1179 "        mov  a,%1\n"
1180 "} by {\n"
1181 "        ; Peephole 190   removed redundant mov\n"
1182 "        mov  a,%1\n"
1183 "        lcall __gptrput\n"
1184 "}\n"
1185 "\n"
1186 "replace {\n"
1187 "        mov  %1,a\n"
1188 "        mov  dpl,%2\n"
1189 "        mov  dph,%3\n"
1190 "        mov  b,%4\n"
1191 "        mov  a,%1\n"
1192 "} by {\n"
1193 "        ; Peephole 191   removed redundant mov\n"
1194 "        mov  %1,a\n"
1195 "        mov  dpl,%2\n"
1196 "        mov  dph,%3\n"
1197 "        mov  b,%4\n"
1198 "}\n"
1199 "\n"
1200 "replace {\n"
1201 "        mov  r%1,a\n"
1202 "        mov  @r%2,ar%1\n"
1203 "} by {\n"
1204 "        ; Peephole 192   used a instead of ar%1 as source\n"
1205 "        mov  r%1,a\n"
1206 "        mov  @r%2,a\n"
1207 "}\n"
1208 "\n"
1209 "replace {\n"
1210 "        jnz  %3\n"
1211 "        mov  a,%4\n"
1212 "        jnz  %3\n"
1213 "        mov  a,%9\n"
1214 "        jnz  %3\n"
1215 "        mov  a,%12\n"
1216 "        cjne %13,%14,%3\n"
1217 "        sjmp %7\n"
1218 "%3:\n"
1219 "        sjmp %8\n"
1220 "} by {\n"
1221 "        ; Peephole 193.a optimized misc jump sequence\n"
1222 "        jnz  %8\n"
1223 "        mov  a,%4\n"
1224 "        jnz  %8\n"
1225 "        mov  a,%9\n"
1226 "        jnz  %8\n"
1227 "        mov  a,%12\n"
1228 "        cjne %13,%14,%8\n"
1229 "        sjmp %7\n"
1230 "%3:\n"
1231 "}\n"
1232 "\n"
1233 "replace {\n"
1234 "        cjne %1,%2,%3\n"
1235 "        mov  a,%4\n"
1236 "        cjne %5,%6,%3\n"
1237 "        mov  a,%9\n"
1238 "        cjne %10,%11,%3\n"
1239 "        mov  a,%12\n"
1240 "        cjne %13,%14,%3\n"
1241 "        sjmp %7\n"
1242 "%3:\n"
1243 "        sjmp %8\n"
1244 "} by {\n"
1245 "        ; Peephole 193   optimized misc jump sequence\n"
1246 "        cjne %1,%2,%8\n"
1247 "        mov  a,%4\n"
1248 "        cjne %5,%6,%8\n"
1249 "        mov  a,%9\n"
1250 "        cjne %10,%11,%8\n"
1251 "        mov  a,%12\n"
1252 "        cjne %13,%14,%8\n"
1253 "        sjmp %7\n"
1254 "%3:\n"
1255 "}\n"
1256 "\n"
1257 "replace {\n"
1258 "        cjne %1,%2,%3\n"
1259 "        cjne %5,%6,%3\n"
1260 "        cjne %10,%11,%3\n"
1261 "        cjne %13,%14,%3\n"
1262 "        sjmp %7\n"
1263 "%3:\n"
1264 "        sjmp %8\n"
1265 "} by {\n"
1266 "        ; Peephole 194   optimized misc jump sequence\n"
1267 "        cjne %1,%2,%8\n"
1268 "        cjne %5,%6,%8\n"
1269 "        cjne %10,%11,%8\n"
1270 "        cjne %13,%14,%8\n"
1271 "        sjmp %7\n"
1272 "%3:\n"
1273 "}\n"
1274 "\n"
1275 "replace {\n"
1276 "        jnz  %3\n"
1277 "        mov  a,%4\n"
1278 "        jnz  %3\n"
1279 "        mov  a,%9\n"
1280 "        cjne %10,%11,%3\n"
1281 "        sjmp %7\n"
1282 "%3:\n"
1283 "        sjmp %8\n"
1284 "} by {\n"
1285 "        ; Peephole 195.a optimized misc jump sequence\n"
1286 "        jnz  %8\n"
1287 "        mov  a,%4\n"
1288 "        jnz  %8\n"
1289 "        mov  a,%9\n"
1290 "        cjne %10,%11,%8\n"
1291 "        sjmp %7\n"
1292 "%3:\n"
1293 "}\n"
1294 "\n"
1295 "replace {\n"
1296 "        cjne %1,%2,%3\n"
1297 "        mov  a,%4\n"
1298 "        cjne %5,%6,%3\n"
1299 "        mov  a,%9\n"
1300 "        cjne %10,%11,%3\n"
1301 "        sjmp %7\n"
1302 "%3:\n"
1303 "        sjmp %8\n"
1304 "} by {\n"
1305 "        ; Peephole 195   optimized misc jump sequence\n"
1306 "        cjne %1,%2,%8\n"
1307 "        mov  a,%4\n"
1308 "        cjne %5,%6,%8\n"
1309 "        mov  a,%9\n"
1310 "        cjne %10,%11,%8\n"
1311 "        sjmp %7\n"
1312 "%3:\n"
1313 "}\n"
1314 "\n"
1315 "replace {\n"
1316 "        cjne %1,%2,%3\n"
1317 "        cjne %5,%6,%3\n"
1318 "        cjne %10,%11,%3\n"
1319 "        sjmp %7\n"
1320 "%3:\n"
1321 "        sjmp %8\n"
1322 "} by {\n"
1323 "        ; Peephole 196   optimized misc jump sequence\n"
1324 "        cjne %1,%2,%8\n"
1325 "        cjne %5,%6,%8\n"
1326 "        cjne %10,%11,%8\n"
1327 "        sjmp %7\n"
1328 "%3:\n"
1329 "}\n"
1330 "\n"
1331 "replace {\n"
1332 "        jnz  %3\n"
1333 "        mov  a,%4\n"
1334 "        cjne %5,%6,%3\n"
1335 "        sjmp %7\n"
1336 "%3:\n"
1337 "        sjmp %8 \n"
1338 "} by {\n"
1339 "        ; Peephole 197.a optimized misc jump sequence\n"
1340 "        jnz  %8\n"
1341 "        mov  a,%4\n"
1342 "        cjne %5,%6,%8\n"
1343 "        sjmp %7\n"
1344 "%3:     \n"
1345 "}\n"
1346 "\n"
1347 "replace {\n"
1348 "        cjne %1,%2,%3\n"
1349 "        mov  a,%4\n"
1350 "        cjne %5,%6,%3\n"
1351 "        sjmp %7\n"
1352 "%3:\n"
1353 "        sjmp %8\n"
1354 "} by {\n"
1355 "        ; Peephole 197   optimized misc jump sequence\n"
1356 "        cjne %1,%2,%8\n"
1357 "        mov  a,%4\n"
1358 "        cjne %5,%6,%8\n"
1359 "        sjmp %7\n"
1360 "%3:\n"
1361 "}\n"
1362 "\n"
1363 "replace {\n"
1364 "        cjne %1,%2,%3\n"
1365 "        cjne %5,%6,%3\n"
1366 "        sjmp %7\n"
1367 "%3:\n"
1368 "        sjmp %8\n"
1369 "} by {\n"
1370 "        ; Peephole 198   optimized misc jump sequence\n"
1371 "        cjne %1,%2,%8\n"
1372 "        cjne %5,%6,%8\n"
1373 "        sjmp %7\n"
1374 "%3:\n"
1375 "}\n"
1376 "\n"
1377 "replace {\n"
1378 "        cjne %1,%2,%3\n"
1379 "        sjmp %4\n"
1380 "%3:\n"
1381 "        sjmp %5\n"
1382 "} by {\n"
1383 "        ; Peephole 199   optimized misc jump sequence\n"
1384 "        cjne %1,%2,%5\n"
1385 "        sjmp %4\n"
1386 "%3:\n"
1387 "}\n"
1388 "\n"
1389 "replace {\n"
1390 "        sjmp %1\n"
1391 "%1:\n"
1392 "} by {\n"
1393 "        ; Peephole 200   removed redundant sjmp\n"
1394 "%1:\n"
1395 "}\n"
1396 "\n"
1397 "replace {\n"
1398 "        sjmp %1\n"
1399 "%2:\n"
1400 "%1:\n"
1401 "} by {\n"
1402 "        ; Peephole 201   removed redundant sjmp\n"
1403 "%2:\n"
1404 "%1:\n"
1405 "}\n"
1406 "\n"
1407 "replace {\n"
1408 "        push  acc\n"
1409 "        mov   dptr,%1\n"
1410 "        pop   acc\n"
1411 "} by {\n"
1412 "        ; Peephole 202   removed redundant push pop\n"
1413 "        mov   dptr,%1\n"
1414 "}\n"
1415 "\n"
1416 "replace {\n"
1417 "        mov  r%1,_spx\n"
1418 "        lcall %2\n"
1419 "        mov  r%1,_spx\n"
1420 "} by {\n"
1421 "        ; Peephole 203   removed mov  r%1,_spx\n"
1422 "        lcall %2\n"
1423 "}\n"
1424 "\n"
1425 "replace {\n"
1426 "        mov  %1,a\n"
1427 "        add  a,acc\n"
1428 "        mov  %1,a\n"
1429 "} by {\n"
1430 "        ; Peephole 204   removed redundant mov\n"
1431 "        add  a,acc\n"
1432 "        mov  %1,a\n"
1433 "}\n"
1434 "\n"
1435 "replace {\n"
1436 "        djnz %1,%2\n"
1437 "        sjmp  %3\n"
1438 "%2:\n"
1439 "        sjmp  %4\n"
1440 "%3:\n"
1441 "} by {\n"
1442 "        ; Peephole 205   optimized misc jump sequence\n"
1443 "        djnz %1,%4\n"
1444 "%2:\n"
1445 "%3:\n"
1446 "}\n"
1447 "\n"
1448 "replace {\n"
1449 "        mov  %1,%1\n"
1450 "} by {\n"
1451 "        ; Peephole 206   removed redundant mov %1,%1\n"
1452 "}\n"
1453 "\n"
1454 "replace {\n"
1455 "        mov  a,_bp\n"
1456 "        add  a,#0x00\n"
1457 "        mov  %1,a\n"
1458 "} by {\n"
1459 "        ; Peephole 207   removed zero add (acc not set to %1, flags undefined)\n"
1460 "        mov  %1,_bp\n"
1461 "}\n"
1462 "\n"
1463 "replace {\n"
1464 "        push  acc\n"
1465 "        mov   r%1,_bp\n"
1466 "        pop   acc\n"
1467 "} by {\n"
1468 "        ; Peephole 208   removed redundant push pop\n"
1469 "        mov   r%1,_bp\n"
1470 "}\n"
1471 "\n"
1472 "replace {\n"
1473 "        mov  a,_bp\n"
1474 "        add  a,#0x00\n"
1475 "        inc  a\n"
1476 "        mov  %1,a\n"
1477 "} by {\n"
1478 "        ; Peephole 209   optimized increment (acc not set to %1, flags undefined)\n"
1479 "        mov  %1,_bp\n"
1480 "        inc  %1\n"
1481 "}\n"
1482 "\n"
1483 "replace {\n"
1484 "        mov  dptr,#((((%1 >> 8)) <<8) + %1)\n"
1485 "} by {\n"
1486 "        ; Peephole 210   simplified expression\n"
1487 "        mov  dptr,#%1\n"
1488 "}\n"
1489 "\n"
1490 "replace {\n"
1491 "        push %1\n"
1492 "        pop  %1\n"
1493 "} by {\n"
1494 "        ; Peephole 211   removed redundant push %1 pop %1  \n"
1495 "} \n"
1496 "\n"
1497 "replace {\n"
1498 "       mov  a,_bp\n"
1499 "       add  a,#0x01\n"
1500 "       mov  r%1,a\n"
1501 "} by {\n"
1502 "       ; Peephole 212  reduced add sequence to inc\n"
1503 "       mov  r%1,_bp\n"
1504 "       inc  r%1\n"
1505 "}\n"
1506 "\n"
1507 "replace {\n"
1508 "       mov  %1,#(( %2 >> 8 ) ^ 0x80)\n"
1509 "} by { \n"
1510 "       mov  %1,#(%2 >> 8)\n"
1511 "       xrl  %1,#0x80\n"
1512 "}\n"
1513 "\n"
1514 "replace {\n"
1515 "       mov  %1,#(( %2 + %3 >> 8 ) ^ 0x80)\n"
1516 "} by { \n"
1517 "       mov  %1,#((%2 + %3) >> 8)\n"
1518 "       xrl  %1,#0x80\n"
1519 "}\n"
1520 "\n"
1521 "replace  {\n"
1522 "       mov  %1,a\n"
1523 "       mov  a,%2\n"
1524 "       add  a,%1\n"
1525 "} by {\n"
1526 "       ; Peephole 214 reduced some extra movs\n"
1527 "       mov  %1,a\n"
1528 "       add  a,%2       \n"
1529 "} if operandsNotSame\n"
1530 "\n"
1531 "replace {\n"
1532 "       mov  %1,a\n"
1533 "       add  a,%2\n"
1534 "       mov  %1,a\n"
1535 "} by {\n"
1536 "       ; Peephole 215 removed some movs\n"
1537 "       add  a,%2\n"
1538 "       mov  %1,a\n"
1539 "} if operandsNotSame\n"
1540 "\n"
1541 "replace {\n"
1542 "       mov   r%1,%2\n"
1543 "       clr   a\n"
1544 "       inc   r%1\n"
1545 "       mov   @r%1,a\n"
1546 "       dec   r%1\n"
1547 "       mov   @r%1,a\n"
1548 "} by {\n"
1549 "       ; Peephole 216 simplified clear (2bytes)\n"
1550 "       mov   r%1,%2\n"
1551 "       clr   a\n"
1552 "       mov   @r%1,a\n"
1553 "       inc   r%1\n"
1554 "       mov   @r%1,a\n"
1555 "}\n"
1556 "\n"
1557 "replace {\n"
1558 "       mov   r%1,%2\n"
1559 "       clr   a\n"
1560 "       inc   r%1\n"
1561 "       inc   r%1\n"
1562 "       mov   @r%1,a\n"
1563 "       dec   r%1\n"
1564 "       mov   @r%1,a\n"
1565 "       dec   r%1\n"
1566 "       mov   @r%1,a\n"
1567 "} by {\n"
1568 "       ; Peephole 217 simplified clear (3bytes)\n"
1569 "       mov   r%1,%2\n"
1570 "       clr   a\n"
1571 "       mov   @r%1,a\n"
1572 "       inc   r%1\n"
1573 "       mov   @r%1,a\n"
1574 "       inc   r%1\n"
1575 "       mov   @r%1,a\n"
1576 "}\n"
1577 "\n"
1578 "replace {\n"
1579 "       mov   r%1,%2\n"
1580 "       clr   a\n"
1581 "       inc   r%1\n"
1582 "       inc   r%1\n"
1583 "       inc   r%1\n"
1584 "       mov   @r%1,a\n"
1585 "       dec   r%1\n"
1586 "       mov   @r%1,a\n"
1587 "       dec   r%1\n"
1588 "       mov   @r%1,a\n"
1589 "       dec   r%1\n"
1590 "       mov   @r%1,a\n"
1591 "} by {\n"
1592 "       ; Peephole 218 simplified clear (4bytes)\n"
1593 "       mov   r%1,%2\n"
1594 "       clr   a\n"
1595 "       mov   @r%1,a\n"
1596 "       inc   r%1\n"
1597 "       mov   @r%1,a\n"
1598 "       inc   r%1\n"
1599 "       mov   @r%1,a\n"
1600 "       inc   r%1\n"
1601 "       mov   @r%1,a\n"
1602 "}\n"