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