again: fix cc detection
[fw/sdcc] / src / avr / peeph.rul
1 /* Generated file, DO NOT Edit!  */
2 /* To Make changes to rules edit */
3 /* <port>/peeph.def instead.     */
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  dpx,%4\n"
527 "        mov  a,%1\n"
528 "} by {\n"
529 "        ; Peephole 136a   removed redundant moves\n"
530 "        mov  %1,a\n"
531 "        mov  dpl,%2\n"
532 "        mov  dph,%3\n"
533 "       mov  dpx,%4\n"
534 "} if 24bitMode\n"
535 "\n"
536 "replace {\n"
537 "        mov  %1,a\n"
538 "        mov  dpl,%2\n"
539 "        mov  dph,%3\n"
540 "        mov  a,%1\n"
541 "} by {\n"
542 "        ; Peephole 136   removed redundant moves\n"
543 "        mov  %1,a\n"
544 "        mov  dpl,%2\n"
545 "        mov  dph,%3\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 "        jz   %5\n"
556 "} by {\n"
557 "        ; Peephole 137   optimized misc jump sequence\n"
558 "        mov  a,%1\n"
559 "        cjne %2,%3,%5\n"
560 "%4:\n"
561 "}\n"
562 "\n"
563 "replace {\n"
564 "        mov  b,#0x00\n"
565 "        mov  a,%1\n"
566 "        cjne %2,%3,%4\n"
567 "        mov  b,#0x01\n"
568 "%4:\n"
569 "        mov  a,b\n"
570 "        jnz  %5\n"
571 "} by {\n"
572 "        ; Peephole 138   optimized misc jump sequence\n"
573 "        mov  a,%1\n"
574 "        cjne %2,%3,%4\n"
575 "        sjmp %5\n"
576 "%4:\n"
577 "}\n"
578 "\n"
579 "replace {\n"
580 "        mov  r%1,a\n"
581 "        anl  ar%1,%2\n"
582 "        mov  a,r%1\n"
583 "} by {\n"
584 "        ; Peephole 139   removed redundant mov\n"
585 "        anl  a,%2\n"
586 "        mov  r%1,a\n"
587 "}\n"
588 "\n"
589 "replace {\n"
590 "        mov  r%1,a\n"
591 "        orl  ar%1,%2\n"
592 "        mov  a,r%1\n"
593 "} by {\n"
594 "        ; Peephole 140   removed redundant mov\n"
595 "        orl  a,%2\n"
596 "        mov  r%1,a }\n"
597 "\n"
598 "replace {\n"
599 "        mov  r%1,a\n"
600 "        xrl  ar%1,%2\n"
601 "        mov  a,r%1\n"
602 "} by {\n"
603 "        ; Peephole 141   removed redundant mov\n"
604 "        xrl  a,%2\n"
605 "        mov  r%1,a\n"
606 "}\n"
607 "\n"
608 "replace {\n"
609 "        mov  r%1,a\n"
610 "        mov  r%2,ar%1\n"
611 "        mov  ar%1,@r%2\n"
612 "} by {\n"
613 "        ; Peephole 142   removed redundant moves\n"
614 "        mov  r%2,a\n"
615 "        mov  ar%1,@r%2\n"
616 "}\n"
617 "\n"
618 "replace {\n"
619 "        rlc  a\n"
620 "        mov  acc.0,c\n"
621 "} by {\n"
622 "        ; Peephole 143   converted rlc to rl\n"
623 "        rl   a\n"
624 "}\n"
625 "\n"
626 "replace {\n"
627 "        rrc  a\n"
628 "        mov  acc.7,c\n"
629 "} by {\n"
630 "        ; Peephole 144   converted rrc to rc\n"
631 "        rr   a\n"
632 "}\n"
633 "\n"
634 "replace {\n"
635 "        clr  c\n"
636 "        addc a,%1\n"
637 "} by {\n"
638 "        ; Peephole 145   changed to add without carry  \n"
639 "        add  a,%1\n"
640 "}\n"
641 "\n"
642 "replace {\n"
643 "        clr  c\n"
644 "        mov  a,%1\n"
645 "        addc a,%2\n"
646 "} by {\n"
647 "        ; Peephole 146   changed to add without carry\n"
648 "        mov  a,%1\n"
649 "        add  a,%2\n"
650 "}\n"
651 "\n"
652 "replace {\n"
653 "        orl  r%1,a\n"
654 "} by {\n"
655 "        ; Peephole 147   changed target address mode r%1 to ar%1\n"
656 "        orl  ar%1,a\n"
657 "}\n"
658 "\n"
659 "replace {\n"
660 "        anl  r%1,a\n"
661 "} by {\n"
662 "        ; Peephole 148   changed target address mode r%1 to ar%1\n"
663 "        anl  ar%1,a\n"
664 "}\n"
665 "\n"
666 "replace {\n"
667 "        xrl  r%1,a\n"
668 "} by {\n"
669 "        ; Peephole 149   changed target address mode r%1 to ar%1\n"
670 "        xrl  ar%1,a\n"
671 "}\n"
672 "\n"
673 "replace {\n"
674 "        mov  %1,dpl\n"
675 "        mov  dpl,%1\n"
676 "%9:\n"
677 "        ret\n"
678 "} by {\n"
679 "        ; Peephole 150   removed misc moves via dpl before return\n"
680 "%9:\n"
681 "        ret\n"
682 "}\n"
683 "\n"
684 "replace {\n"
685 "        mov  %1,dpl\n"
686 "        mov  %2,dph\n"
687 "        mov  dpl,%1\n"
688 "        mov  dph,%2\n"
689 "%9:\n"
690 "        ret\n"
691 "} by {\n"
692 "        ; Peephole 151   removed misc moves via dph, dpl before return\n"
693 "%9:\n"
694 "        ret\n"
695 "}\n"
696 "\n"
697 "replace {\n"
698 "        mov  %1,dpl\n"
699 "        mov  %2,dph\n"
700 "        mov  dpl,%1\n"
701 "%9:\n"
702 "        ret\n"
703 "} by {\n"
704 "        ; Peephole 152   removed misc moves via dph, dpl 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 "        mov  dph,%2\n"
715 "        mov  b,%3\n"
716 "%9:\n"
717 "        ret\n"
718 "} by {\n"
719 "        ; Peephole 153   removed misc moves via dph, dpl, b before return\n"
720 "%9:\n"
721 "        ret\n"
722 "}\n"
723 "\n"
724 "replace {\n"
725 "        mov  %1,dpl\n"
726 "        mov  %2,dph\n"
727 "        mov  %3,b\n"
728 "        mov  dpl,%1\n"
729 "%9:\n"
730 "        ret\n"
731 "} by {\n"
732 "        ; Peephole 154   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  dpl,%1\n"
742 "        mov  dph,%2\n"
743 "%9:\n"
744 "        ret\n"
745 "} by {\n"
746 "        ; Peephole 155   removed misc moves via dph, dpl, b before return\n"
747 "%9:\n"
748 "        ret\n"
749 "}\n"
750 "\n"
751 "replace {\n"
752 "        mov  %1,dpl\n"
753 "        mov  %2,dph\n"
754 "        mov  %3,b\n"
755 "        mov  %4,a\n"
756 "        mov  dpl,%1\n"
757 "        mov  dph,%2\n"
758 "        mov  b,%3\n"
759 "        mov  a,%4\n"
760 "%9:\n"
761 "        ret\n"
762 "} by {\n"
763 "        ; Peephole 156   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 "        mov  dph,%2\n"
775 "%9:\n"
776 "        ret\n"
777 "} by {\n"
778 "        ; Peephole 157   removed misc moves via dph, dpl, b, a before return\n"
779 "%9:\n"
780 "        ret\n"
781 "}\n"
782 "\n"
783 "replace {\n"
784 "        mov  %1,dpl\n"
785 "        mov  %2,dph\n"
786 "        mov  %3,b\n"
787 "        mov  %4,a\n"
788 "        mov  dpl,%1\n"
789 "%9:\n"
790 "        ret } by {\n"
791 "        ; Peephole 158   removed misc moves via dph, dpl, b, a before return\n"
792 "%9:\n"
793 "        ret }\n"
794 "\n"
795 "replace {\n"
796 "        mov  %1,#%2\n"
797 "        xrl  %1,#0x80\n"
798 "} by {\n"
799 "        ; Peephole 159   avoided xrl during execution\n"
800 "        mov  %1,#(%2 ^ 0x80)\n"
801 "}\n"
802 "\n"
803 "replace {\n"
804 "        jnc  %1\n"
805 "        sjmp %2\n"
806 "%1:\n"
807 "} by {\n"
808 "        ; Peephole 160   removed sjmp by inverse jump logic\n"
809 "        jc   %2\n"
810 "%1:}\n"
811 "\n"
812 "replace {\n"
813 "        jc   %1\n"
814 "        sjmp %2\n"
815 "%1:\n"
816 "} by {\n"
817 "        ; Peephole 161   removed sjmp by inverse jump logic\n"
818 "        jnc  %2\n"
819 "%1:}\n"
820 "\n"
821 "replace {\n"
822 "        jnz  %1\n"
823 "        sjmp %2\n"
824 "%1:\n"
825 "} by {\n"
826 "        ; Peephole 162   removed sjmp by inverse jump logic\n"
827 "        jz   %2\n"
828 "%1:}\n"
829 "\n"
830 "replace {\n"
831 "        jz   %1\n"
832 "        sjmp %2\n"
833 "%1:\n"
834 "} by {\n"
835 "        ; Peephole 163   removed sjmp by inverse jump logic\n"
836 "        jnz  %2\n"
837 "%1:}\n"
838 "\n"
839 "replace {\n"
840 "        jnb  %3,%1\n"
841 "        sjmp %2\n"
842 "%1:\n"
843 "} by {\n"
844 "        ; Peephole 164   removed sjmp by inverse jump logic\n"
845 "        jb   %3,%2\n"
846 "%1:\n"
847 "}\n"
848 "\n"
849 "replace {\n"
850 "        jb   %3,%1\n"
851 "        sjmp %2\n"
852 "%1:\n"
853 "} by {\n"
854 "        ; Peephole 165   removed sjmp by inverse jump logic\n"
855 "        jnb  %3,%2\n"
856 "%1:\n"
857 "}\n"
858 "\n"
859 "replace {\n"
860 "        mov  %1,%2\n"
861 "        mov  %3,%1\n"
862 "        mov  %2,%1\n"
863 "} by {\n"
864 "        ; Peephole 166   removed redundant mov\n"
865 "        mov  %1,%2\n"
866 "        mov  %3,%1 }\n"
867 "\n"
868 "replace {\n"
869 "        mov  c,%1\n"
870 "        cpl  c\n"
871 "        mov  %1,c\n"
872 "} by {\n"
873 "        ; Peephole 167   removed redundant bit moves (c not set to %1)\n"
874 "        cpl  %1 }\n"
875 "\n"
876 "replace {\n"
877 "        jnb  %1,%2\n"
878 "        sjmp %3\n"
879 "%2:} by {\n"
880 "        ; Peephole 168   jump optimization\n"
881 "        jb   %1,%3\n"
882 "%2:}\n"
883 "\n"
884 "replace {\n"
885 "        jb   %1,%2\n"
886 "        sjmp %3\n"
887 "%2:} by {\n"
888 "        ; Peephole 169   jump optimization\n"
889 "        jnb  %1,%3\n"
890 "%2:}\n"
891 "\n"
892 "replace {\n"
893 "        clr  a\n"
894 "        cjne %1,%2,%3\n"
895 "        cpl  a\n"
896 "%3:\n"
897 "        jz   %4\n"
898 "} by {\n"
899 "        ; Peephole 170   jump optimization\n"
900 "        cjne %1,%2,%4\n"
901 "%3:}\n"
902 "\n"
903 "replace {\n"
904 "        clr  a\n"
905 "        cjne %1,%2,%3\n"
906 "        cjne %9,%10,%3\n"
907 "        cpl  a\n"
908 "%3:\n"
909 "        jz   %4\n"
910 "} by {\n"
911 "        ; Peephole 171   jump optimization\n"
912 "        cjne %1,%2,%4\n"
913 "        cjne %9,%10,%4\n"
914 "%3:}\n"
915 "\n"
916 "replace {\n"
917 "        clr  a\n"
918 "        cjne %1,%2,%3\n"
919 "        cjne %9,%10,%3\n"
920 "        cjne %11,%12,%3\n"
921 "        cpl  a\n"
922 "%3:\n"
923 "        jz   %4\n"
924 "} by {\n"
925 "        ; Peephole 172   jump optimization\n"
926 "        cjne %1,%2,%4\n"
927 "        cjne %9,%10,%4\n"
928 "        cjne %11,%12,%4\n"
929 "%3:}\n"
930 "\n"
931 "replace {\n"
932 "        clr  a\n"
933 "        cjne %1,%2,%3\n"
934 "        cjne %9,%10,%3\n"
935 "        cjne %11,%12,%3\n"
936 "        cjne %13,%14,%3\n"
937 "        cpl  a\n"
938 "%3:\n"
939 "        jz   %4\n"
940 "} by {\n"
941 "        ; Peephole 173   jump optimization\n"
942 "        cjne %1,%2,%4\n"
943 "        cjne %9,%10,%4\n"
944 "        cjne %11,%12,%4\n"
945 "        cjne %13,%14,%4\n"
946 "%3:}\n"
947 "\n"
948 "replace {\n"
949 "        mov  r%1,%2\n"
950 "        clr  c\n"
951 "        mov  a,r%1\n"
952 "        subb a,#0x01\n"
953 "        mov  %2,a\n"
954 "} by {\n"
955 "        ; Peephole 174   optimized decrement (acc not set to %2, flags undefined)\n"
956 "        mov  r%1,%2\n"
957 "        dec  %2\n"
958 "}\n"
959 "\n"
960 "\n"
961 "replace {\n"
962 "        mov  r%1,%2\n"
963 "        mov  a,r%1\n"
964 "        add  a,#0x01\n"
965 "        mov  %2,a\n"
966 "} by {\n"
967 "        ; Peephole 175   optimized increment (acc not set to %2, flags undefined)\n"
968 "        mov  r%1,%2\n"
969 "        inc  %2\n"
970 "}\n"
971 "\n"
972 "replace {\n"
973 "        mov  %1,@r%2\n"
974 "        inc  %1\n"
975 "        mov  @r%2,%1\n"
976 "} by {\n"
977 "        ; Peephole 176   optimized increment, removed redundant mov\n"
978 "        inc  @r%2\n"
979 "        mov  %1,@r%2\n"
980 "}\n"
981 "\n"
982 "replace {\n"
983 "        mov  %1,%2\n"
984 "        mov  %2,%1\n"
985 "} by {\n"
986 "        ; Peephole 177   removed redundant mov\n"
987 "        mov  %1,%2\n"
988 "}\n"
989 "\n"
990 "replace {\n"
991 "        mov  a,%1\n"
992 "        mov  b,a\n"
993 "        mov  a,%2\n"
994 "} by {\n"
995 "        ; Peephole 178   removed redundant mov\n"
996 "        mov  b,%1\n"
997 "        mov  a,%2\n"
998 "}\n"
999 "\n"
1000 "replace {\n"
1001 "        mov  b,#0x00\n"
1002 "        mov  a,#0x00\n"
1003 "} by {\n"
1004 "        ; Peephole 179   changed mov to clr\n"
1005 "        clr  a\n"
1006 "        mov  b,a\n"
1007 "}\n"
1008 "\n"
1009 "replace {\n"
1010 "        mov  a,#0x00\n"
1011 "} by {\n"
1012 "        ; Peephole 180   changed mov to clr\n"
1013 "        clr  a\n"
1014 "}\n"
1015 "\n"
1016 "replace {\n"
1017 "        mov  dpl,#0x00\n"
1018 "        mov  dph,#0x00\n"
1019 "       mov  dpx,#0x00\n"
1020 "} by {\n"
1021 "        ; Peephole 181a   used 24 bit load of dptr\n"
1022 "        mov  dptr,#0x0000\n"
1023 "} if 24bitMode\n"
1024 "\n"
1025 "replace {\n"
1026 "        mov  dpl,#0x00\n"
1027 "        mov  dph,#0x00\n"
1028 "} by {\n"
1029 "        ; Peephole 181   used 16 bit load of dptr\n"
1030 "        mov  dptr,#0x0000\n"
1031 "}\n"
1032 "\n"
1033 "replace {\n"
1034 "        mov  dpl,#%1\n"
1035 "        mov  dph,#(%1 >> 8)\n"
1036 "       mov  dpx,#(%1 >> 16)\n"
1037 "} by {\n"
1038 "        ; Peephole 182a   used 24 bit load of dptr\n"
1039 "        mov  dptr,#%1\n"
1040 "} if 24bitMode\n"
1041 "\n"
1042 "replace {\n"
1043 "        mov  dpl,#%1\n"
1044 "        mov  dph,#%2\n"
1045 "} by {\n"
1046 "        ; Peephole 182   used 16 bit load of dptr\n"
1047 "        mov  dptr,#(((%2)<<8) + %1)\n"
1048 "}\n"
1049 "\n"
1050 "replace {\n"
1051 "        anl  %1,#%2\n"
1052 "        anl  %1,#%3\n"
1053 "} by {\n"
1054 "        ; Peephole 183   avoided anl during execution\n"
1055 "        anl  %1,#(%2 & %3)\n"
1056 "}\n"
1057 "\n"
1058 "replace {\n"
1059 "        mov  %1,a\n"
1060 "        cpl  a\n"
1061 "        mov  %1,a\n"
1062 "} by {\n"
1063 "        ; Peephole 184   removed redundant mov\n"
1064 "        cpl  a\n"
1065 "        mov  %1,a\n"
1066 "}\n"
1067 "\n"
1068 "replace {\n"
1069 "        mov  %1,a\n"
1070 "        inc  %1\n"
1071 "} by {\n"
1072 "        ; Peephole 185   changed order of increment (acc incremented also!)\n"
1073 "        inc  a\n"
1074 "        mov  %1,a\n"
1075 "}\n"
1076 "\n"
1077 "replace {\n"
1078 "        add  a,#%1\n"
1079 "        mov  dpl,a\n"
1080 "        clr  a\n"
1081 "        addc a,#(%1 >> 8)\n"
1082 "        mov  dph,a\n"
1083 "        clr  a\n"
1084 "        movc a,@a+dptr\n"
1085 "       mov  %2,a\n"
1086 "       inc  dptr\n"
1087 "       clr  a\n"
1088 "       movc a,@a+dptr\n"
1089 "       mov  %3,a\n"
1090 "       inc  dptr\n"
1091 "       clr  a\n"
1092 "       movc a,@a+dptr\n"
1093 "       mov  %4,a\n"
1094 "       inc  dptr\n"
1095 "       clr  a  \n"
1096 "} by {\n"
1097 "        ; Peephole 186.a   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 "       mov  %4,a\n"
1109 "       mov  acc,b\n"
1110 "       inc  dptr\n"
1111 "}\n"
1112 "\n"
1113 "replace {\n"
1114 "        add  a,#%1\n"
1115 "        mov  dpl,a\n"
1116 "        clr  a\n"
1117 "        addc a,#(%1 >> 8)\n"
1118 "        mov  dph,a\n"
1119 "        clr  a\n"
1120 "        movc a,@a+dptr\n"
1121 "       mov  %2,a\n"
1122 "       inc  dptr\n"
1123 "       clr  a\n"
1124 "       movc a,@a+dptr\n"
1125 "       mov  %3,a\n"
1126 "       inc  dptr\n"
1127 "       clr  a\n"
1128 "} by {\n"
1129 "        ; Peephole 186.b   optimized movc sequence\n"
1130 "        mov  dptr,#%1\n"
1131 "       mov  b,acc\n"
1132 "        movc a,@a+dptr\n"
1133 "       mov  %2,a\n"
1134 "       mov  acc,b\n"
1135 "       inc  dptr       \n"
1136 "       movc a,@a+dptr\n"
1137 "       mov  %3,a\n"
1138 "       mov  acc,b\n"
1139 "       inc  dptr       \n"
1140 "}\n"
1141 "\n"
1142 "replace {\n"
1143 "        add  a,#%1\n"
1144 "        mov  dpl,a\n"
1145 "        clr  a\n"
1146 "        addc a,#(%1 >> 8)\n"
1147 "        mov  dph,a\n"
1148 "        clr  a\n"
1149 "        movc a,@a+dptr\n"
1150 "       mov  %2,a\n"
1151 "       inc  dptr\n"
1152 "       clr  a\n"
1153 "} by {\n"
1154 "        ; Peephole 186.c   optimized movc sequence\n"
1155 "        mov  dptr,#%1\n"
1156 "       mov  b,acc\n"
1157 "        movc a,@a+dptr\n"
1158 "       mov  %2,a\n"
1159 "       mov  acc,b\n"
1160 "       inc  dptr\n"
1161 "}\n"
1162 "\n"
1163 "replace {\n"
1164 "        add  a,#%1\n"
1165 "        mov  dpl,a\n"
1166 "        clr  a\n"
1167 "        addc a,#(%1 >> 8)\n"
1168 "        mov  dph,a\n"
1169 "        clr  a\n"
1170 "        movc a,@a+dptr\n"
1171 "} by {\n"
1172 "        ; Peephole 186   optimized movc sequence\n"
1173 "        mov  dptr,#%1\n"
1174 "        movc a,@a+dptr\n"
1175 "}\n"
1176 "\n"
1177 "replace {\n"
1178 "        mov  r%1,%2\n"
1179 "        anl  ar%1,#%3\n"
1180 "        mov  a,r%1\n"
1181 "} by {\n"
1182 "        ; Peephole 187   used a instead of ar%1 for anl\n"
1183 "        mov  a,%2\n"
1184 "        anl  a,#%3\n"
1185 "        mov  r%1,a\n"
1186 "}\n"
1187 "\n"
1188 "replace {\n"
1189 "        mov  %1,a\n"
1190 "        mov  dptr,%2\n"
1191 "        movc a,@a+dptr\n"
1192 "        mov  %1,a\n"
1193 "} by {\n"
1194 "        ; Peephole 188   removed redundant mov\n"
1195 "        mov  dptr,%2\n"
1196 "        movc a,@a+dptr\n"
1197 "        mov  %1,a\n"
1198 "}\n"
1199 "\n"
1200 "replace {\n"
1201 "        anl  a,#0x0f\n"
1202 "        mov  %1,a\n"
1203 "        mov  a,#0x0f\n"
1204 "        anl  a,%1\n"
1205 "} by {\n"
1206 "        ; Peephole 189   removed redundant mov and anl\n"
1207 "        anl  a,#0x0f\n"
1208 "        mov  %1,a\n"
1209 "}\n"
1210 "\n"
1211 "replace {\n"
1212 "        mov  a,%1\n"
1213 "        lcall __gptrput\n"
1214 "        mov  a,%1\n"
1215 "} by {\n"
1216 "        ; Peephole 190   removed redundant mov\n"
1217 "        mov  a,%1\n"
1218 "        lcall __gptrput\n"
1219 "}\n"
1220 "\n"
1221 "replace {\n"
1222 "        mov  %1,a\n"
1223 "        mov  dpl,%2\n"
1224 "        mov  dph,%3\n"
1225 "        mov  b,%4\n"
1226 "        mov  a,%1\n"
1227 "} by {\n"
1228 "        ; Peephole 191   removed redundant mov\n"
1229 "        mov  %1,a\n"
1230 "        mov  dpl,%2\n"
1231 "        mov  dph,%3\n"
1232 "        mov  b,%4\n"
1233 "}\n"
1234 "\n"
1235 "replace {\n"
1236 "        mov  r%1,a\n"
1237 "        mov  @r%2,ar%1\n"
1238 "} by {\n"
1239 "        ; Peephole 192   used a instead of ar%1 as source\n"
1240 "        mov  r%1,a\n"
1241 "        mov  @r%2,a\n"
1242 "}\n"
1243 "\n"
1244 "replace {\n"
1245 "        jnz  %3\n"
1246 "        mov  a,%4\n"
1247 "        jnz  %3\n"
1248 "        mov  a,%9\n"
1249 "        jnz  %3\n"
1250 "        mov  a,%12\n"
1251 "        cjne %13,%14,%3\n"
1252 "        sjmp %7\n"
1253 "%3:\n"
1254 "        sjmp %8\n"
1255 "} by {\n"
1256 "        ; Peephole 193.a optimized misc jump sequence\n"
1257 "        jnz  %8\n"
1258 "        mov  a,%4\n"
1259 "        jnz  %8\n"
1260 "        mov  a,%9\n"
1261 "        jnz  %8\n"
1262 "        mov  a,%12\n"
1263 "        cjne %13,%14,%8\n"
1264 "        sjmp %7\n"
1265 "%3:\n"
1266 "}\n"
1267 "\n"
1268 "replace {\n"
1269 "        cjne %1,%2,%3\n"
1270 "        mov  a,%4\n"
1271 "        cjne %5,%6,%3\n"
1272 "        mov  a,%9\n"
1273 "        cjne %10,%11,%3\n"
1274 "        mov  a,%12\n"
1275 "        cjne %13,%14,%3\n"
1276 "        sjmp %7\n"
1277 "%3:\n"
1278 "        sjmp %8\n"
1279 "} by {\n"
1280 "        ; Peephole 193   optimized misc jump sequence\n"
1281 "        cjne %1,%2,%8\n"
1282 "        mov  a,%4\n"
1283 "        cjne %5,%6,%8\n"
1284 "        mov  a,%9\n"
1285 "        cjne %10,%11,%8\n"
1286 "        mov  a,%12\n"
1287 "        cjne %13,%14,%8\n"
1288 "        sjmp %7\n"
1289 "%3:\n"
1290 "}\n"
1291 "\n"
1292 "replace {\n"
1293 "        cjne %1,%2,%3\n"
1294 "        cjne %5,%6,%3\n"
1295 "        cjne %10,%11,%3\n"
1296 "        cjne %13,%14,%3\n"
1297 "        sjmp %7\n"
1298 "%3:\n"
1299 "        sjmp %8\n"
1300 "} by {\n"
1301 "        ; Peephole 194   optimized misc jump sequence\n"
1302 "        cjne %1,%2,%8\n"
1303 "        cjne %5,%6,%8\n"
1304 "        cjne %10,%11,%8\n"
1305 "        cjne %13,%14,%8\n"
1306 "        sjmp %7\n"
1307 "%3:\n"
1308 "}\n"
1309 "\n"
1310 "replace {\n"
1311 "        jnz  %3\n"
1312 "        mov  a,%4\n"
1313 "        jnz  %3\n"
1314 "        mov  a,%9\n"
1315 "        cjne %10,%11,%3\n"
1316 "        sjmp %7\n"
1317 "%3:\n"
1318 "        sjmp %8\n"
1319 "} by {\n"
1320 "        ; Peephole 195.a optimized misc jump sequence\n"
1321 "        jnz  %8\n"
1322 "        mov  a,%4\n"
1323 "        jnz  %8\n"
1324 "        mov  a,%9\n"
1325 "        cjne %10,%11,%8\n"
1326 "        sjmp %7\n"
1327 "%3:\n"
1328 "}\n"
1329 "\n"
1330 "replace {\n"
1331 "        cjne %1,%2,%3\n"
1332 "        mov  a,%4\n"
1333 "        cjne %5,%6,%3\n"
1334 "        mov  a,%9\n"
1335 "        cjne %10,%11,%3\n"
1336 "        sjmp %7\n"
1337 "%3:\n"
1338 "        sjmp %8\n"
1339 "} by {\n"
1340 "        ; Peephole 195   optimized misc jump sequence\n"
1341 "        cjne %1,%2,%8\n"
1342 "        mov  a,%4\n"
1343 "        cjne %5,%6,%8\n"
1344 "        mov  a,%9\n"
1345 "        cjne %10,%11,%8\n"
1346 "        sjmp %7\n"
1347 "%3:\n"
1348 "}\n"
1349 "\n"
1350 "replace {\n"
1351 "        cjne %1,%2,%3\n"
1352 "        cjne %5,%6,%3\n"
1353 "        cjne %10,%11,%3\n"
1354 "        sjmp %7\n"
1355 "%3:\n"
1356 "        sjmp %8\n"
1357 "} by {\n"
1358 "        ; Peephole 196   optimized misc jump sequence\n"
1359 "        cjne %1,%2,%8\n"
1360 "        cjne %5,%6,%8\n"
1361 "        cjne %10,%11,%8\n"
1362 "        sjmp %7\n"
1363 "%3:\n"
1364 "}\n"
1365 "\n"
1366 "replace {\n"
1367 "        jnz  %3\n"
1368 "        mov  a,%4\n"
1369 "        cjne %5,%6,%3\n"
1370 "        sjmp %7\n"
1371 "%3:\n"
1372 "        sjmp %8 \n"
1373 "} by {\n"
1374 "        ; Peephole 197.a optimized misc jump sequence\n"
1375 "        jnz  %8\n"
1376 "        mov  a,%4\n"
1377 "        cjne %5,%6,%8\n"
1378 "        sjmp %7\n"
1379 "%3:     \n"
1380 "}\n"
1381 "\n"
1382 "replace {\n"
1383 "        cjne %1,%2,%3\n"
1384 "        mov  a,%4\n"
1385 "        cjne %5,%6,%3\n"
1386 "        sjmp %7\n"
1387 "%3:\n"
1388 "        sjmp %8\n"
1389 "} by {\n"
1390 "        ; Peephole 197   optimized misc jump sequence\n"
1391 "        cjne %1,%2,%8\n"
1392 "        mov  a,%4\n"
1393 "        cjne %5,%6,%8\n"
1394 "        sjmp %7\n"
1395 "%3:\n"
1396 "}\n"
1397 "\n"
1398 "replace {\n"
1399 "        cjne %1,%2,%3\n"
1400 "        cjne %5,%6,%3\n"
1401 "        sjmp %7\n"
1402 "%3:\n"
1403 "        sjmp %8\n"
1404 "} by {\n"
1405 "        ; Peephole 198   optimized misc jump sequence\n"
1406 "        cjne %1,%2,%8\n"
1407 "        cjne %5,%6,%8\n"
1408 "        sjmp %7\n"
1409 "%3:\n"
1410 "}\n"
1411 "\n"
1412 "replace {\n"
1413 "        cjne %1,%2,%3\n"
1414 "        sjmp %4\n"
1415 "%3:\n"
1416 "        sjmp %5\n"
1417 "} by {\n"
1418 "        ; Peephole 199   optimized misc jump sequence\n"
1419 "        cjne %1,%2,%5\n"
1420 "        sjmp %4\n"
1421 "%3:\n"
1422 "}\n"
1423 "\n"
1424 "replace {\n"
1425 "        sjmp %1\n"
1426 "%1:\n"
1427 "} by {\n"
1428 "        ; Peephole 200   removed redundant sjmp\n"
1429 "%1:\n"
1430 "}\n"
1431 "\n"
1432 "replace {\n"
1433 "        sjmp %1\n"
1434 "%2:\n"
1435 "%1:\n"
1436 "} by {\n"
1437 "        ; Peephole 201   removed redundant sjmp\n"
1438 "%2:\n"
1439 "%1:\n"
1440 "}\n"
1441 "\n"
1442 "replace {\n"
1443 "        push  acc\n"
1444 "        mov   dptr,%1\n"
1445 "        pop   acc\n"
1446 "} by {\n"
1447 "        ; Peephole 202   removed redundant push pop\n"
1448 "        mov   dptr,%1\n"
1449 "}\n"
1450 "\n"
1451 "replace {\n"
1452 "        mov  r%1,_spx\n"
1453 "        lcall %2\n"
1454 "        mov  r%1,_spx\n"
1455 "} by {\n"
1456 "        ; Peephole 203   removed mov  r%1,_spx\n"
1457 "        lcall %2\n"
1458 "}\n"
1459 "\n"
1460 "replace {\n"
1461 "        mov  %1,a\n"
1462 "        add  a,acc\n"
1463 "        mov  %1,a\n"
1464 "} by {\n"
1465 "        ; Peephole 204   removed redundant mov\n"
1466 "        add  a,acc\n"
1467 "        mov  %1,a\n"
1468 "}\n"
1469 "\n"
1470 "replace {\n"
1471 "        djnz %1,%2\n"
1472 "        sjmp  %3\n"
1473 "%2:\n"
1474 "        sjmp  %4\n"
1475 "%3:\n"
1476 "} by {\n"
1477 "        ; Peephole 205   optimized misc jump sequence\n"
1478 "        djnz %1,%4\n"
1479 "%2:\n"
1480 "%3:\n"
1481 "}\n"
1482 "\n"
1483 "replace {\n"
1484 "        mov  %1,%1\n"
1485 "} by {\n"
1486 "        ; Peephole 206   removed redundant mov %1,%1\n"
1487 "}\n"
1488 "\n"
1489 "replace {\n"
1490 "        mov  a,_bp\n"
1491 "        add  a,#0x00\n"
1492 "        mov  %1,a\n"
1493 "} by {\n"
1494 "        ; Peephole 207   removed zero add (acc not set to %1, flags undefined)\n"
1495 "        mov  %1,_bp\n"
1496 "}\n"
1497 "\n"
1498 "replace {\n"
1499 "        push  acc\n"
1500 "        mov   r%1,_bp\n"
1501 "        pop   acc\n"
1502 "} by {\n"
1503 "        ; Peephole 208   removed redundant push pop\n"
1504 "        mov   r%1,_bp\n"
1505 "}\n"
1506 "\n"
1507 "replace {\n"
1508 "        mov  a,_bp\n"
1509 "        add  a,#0x00\n"
1510 "        inc  a\n"
1511 "        mov  %1,a\n"
1512 "} by {\n"
1513 "        ; Peephole 209   optimized increment (acc not set to %1, flags undefined)\n"
1514 "        mov  %1,_bp\n"
1515 "        inc  %1\n"
1516 "}\n"
1517 "\n"
1518 "replace {\n"
1519 "        mov  dptr,#((((%1 >> 16)) <<16) + (((%1 >> 8)) <<8) + %1)\n"
1520 "} by {\n"
1521 "        ; Peephole 210a   simplified expression\n"
1522 "        mov  dptr,#%1\n"
1523 "} if 24bitMode\n"
1524 "\n"
1525 "replace {\n"
1526 "        mov  dptr,#((((%1 >> 8)) <<8) + %1)\n"
1527 "} by {\n"
1528 "        ; Peephole 210   simplified expression\n"
1529 "        mov  dptr,#%1\n"
1530 "}\n"
1531 "\n"
1532 "replace {\n"
1533 "        push %1\n"
1534 "        pop  %1\n"
1535 "} by {\n"
1536 "        ; Peephole 211   removed redundant push %1 pop %1  \n"
1537 "} \n"
1538 "\n"
1539 "replace {\n"
1540 "       mov  a,_bp\n"
1541 "       add  a,#0x01\n"
1542 "       mov  r%1,a\n"
1543 "} by {\n"
1544 "       ; Peephole 212  reduced add sequence to inc\n"
1545 "       mov  r%1,_bp\n"
1546 "       inc  r%1\n"
1547 "}\n"
1548 "\n"
1549 "replace {\n"
1550 "       mov  %1,#(( %2 >> 8 ) ^ 0x80)\n"
1551 "} by { \n"
1552 "       mov  %1,#(%2 >> 8)\n"
1553 "       xrl  %1,#0x80\n"
1554 "}\n"
1555 "\n"
1556 "replace {\n"
1557 "       mov  %1,#(( %2 + %3 >> 8 ) ^ 0x80)\n"
1558 "} by { \n"
1559 "       mov  %1,#((%2 + %3) >> 8)\n"
1560 "       xrl  %1,#0x80\n"
1561 "}\n"
1562 "\n"
1563 "replace  {\n"
1564 "       mov  %1,a\n"
1565 "       mov  a,%2\n"
1566 "       add  a,%1\n"
1567 "} by {\n"
1568 "       ; Peephole 214 reduced some extra movs\n"
1569 "       mov  %1,a\n"
1570 "       add  a,%2       \n"
1571 "} if operandsNotSame\n"
1572 "\n"
1573 "replace {\n"
1574 "       mov  %1,a\n"
1575 "       add  a,%2\n"
1576 "       mov  %1,a\n"
1577 "} by {\n"
1578 "       ; Peephole 215 removed some movs\n"
1579 "       add  a,%2\n"
1580 "       mov  %1,a\n"
1581 "} if operandsNotSame\n"
1582 "\n"
1583 "replace {\n"
1584 "       mov   r%1,%2\n"
1585 "       clr   a\n"
1586 "       inc   r%1\n"
1587 "       mov   @r%1,a\n"
1588 "       dec   r%1\n"
1589 "       mov   @r%1,a\n"
1590 "} by {\n"
1591 "       ; Peephole 216 simplified clear (2bytes)\n"
1592 "       mov   r%1,%2\n"
1593 "       clr   a\n"
1594 "       mov   @r%1,a\n"
1595 "       inc   r%1\n"
1596 "       mov   @r%1,a\n"
1597 "}\n"
1598 "\n"
1599 "replace {\n"
1600 "       mov   r%1,%2\n"
1601 "       clr   a\n"
1602 "       inc   r%1\n"
1603 "       inc   r%1\n"
1604 "       mov   @r%1,a\n"
1605 "       dec   r%1\n"
1606 "       mov   @r%1,a\n"
1607 "       dec   r%1\n"
1608 "       mov   @r%1,a\n"
1609 "} by {\n"
1610 "       ; Peephole 217 simplified clear (3bytes)\n"
1611 "       mov   r%1,%2\n"
1612 "       clr   a\n"
1613 "       mov   @r%1,a\n"
1614 "       inc   r%1\n"
1615 "       mov   @r%1,a\n"
1616 "       inc   r%1\n"
1617 "       mov   @r%1,a\n"
1618 "}\n"
1619 "\n"
1620 "replace {\n"
1621 "       mov   r%1,%2\n"
1622 "       clr   a\n"
1623 "       inc   r%1\n"
1624 "       inc   r%1\n"
1625 "       inc   r%1\n"
1626 "       mov   @r%1,a\n"
1627 "       dec   r%1\n"
1628 "       mov   @r%1,a\n"
1629 "       dec   r%1\n"
1630 "       mov   @r%1,a\n"
1631 "       dec   r%1\n"
1632 "       mov   @r%1,a\n"
1633 "} by {\n"
1634 "       ; Peephole 218 simplified clear (4bytes)\n"
1635 "       mov   r%1,%2\n"
1636 "       clr   a\n"
1637 "       mov   @r%1,a\n"
1638 "       inc   r%1\n"
1639 "       mov   @r%1,a\n"
1640 "       inc   r%1\n"
1641 "       mov   @r%1,a\n"
1642 "       inc   r%1\n"
1643 "       mov   @r%1,a\n"
1644 "}\n"
1645 "\n"
1646 "replace {\n"
1647 "       clr   a\n"
1648 "       movx  @dptr,a\n"
1649 "       mov   dptr,%1\n"
1650 "       clr   a\n"
1651 "       movx  @dptr,a\n"
1652 "} by {\n"
1653 "       ; Peephole 219 removed redundant clear\n"
1654 "       clr   a\n"
1655 "       movx  @dptr,a\n"
1656 "       mov   dptr,%1\n"
1657 "       movx  @dptr,a\n"
1658 "}\n"
1659 "\n"
1660 "replace {\n"
1661 "       clr   a\n"
1662 "       movx  @dptr,a\n"
1663 "       mov   dptr,%1\n"
1664 "       movx  @dptr,a\n"
1665 "       mov   dptr,%2\n"
1666 "       clr   a\n"
1667 "       movx  @dptr,a\n"
1668 "} by {\n"
1669 "       ; Peephole 219a removed redundant clear\n"
1670 "       clr   a\n"
1671 "       movx  @dptr,a\n"
1672 "       mov   dptr,%1\n"
1673 "       movx  @dptr,a\n"
1674 "       mov   dptr,%2\n"
1675 "       movx  @dptr,a\n"
1676 "}\n"