Initial import
[fw/sdcc] / src / hc08 / peeph.def
1 replace {
2         pula
3         psha
4         lda     %1
5 } by {
6         ; Peephole 1a   - removed redundant pula/psha
7         lda     %1
8 }
9
10 replace {
11         pula
12         psha
13         lda     %1,s
14 } by {
15         ; Peephole 1b   - removed redundant pula/psha
16         lda     %1,s
17 }
18
19 replace {
20         pula
21         psha
22         clra
23 } by {
24         ; Peephole 1c   - removed redundant pula/psha
25         clra
26 }
27
28
29 replace {
30         bcs     %1
31         jmp     %5
32 %1:
33 } by {
34         ; Peephole 2a   - eliminated jmp
35         bcc     %5
36 %1:
37 } if labelInRange
38
39 replace {
40         bcc     %1
41         jmp     %5
42 %1:
43 } by {
44         ; Peephole 2b   - eliminated jmp
45         bcs     %5
46 %1:
47 } if labelInRange
48
49 replace {
50         beq     %1
51         jmp     %5
52 %1:
53 } by {
54         ; Peephole 2c   - eliminated jmp
55         bne     %5
56 %1:
57 } if labelInRange
58
59 replace {
60         bne     %1
61         jmp     %5
62 %1:
63 } by {
64         ; Peephole 2d   - eliminated jmp
65         beq     %5
66 %1:
67 } if labelInRange
68
69 replace {
70         jmp     %5
71 } by {
72         ; Peephole 3    - shortened jmp to bra
73         bra     %5
74 } if labelInRange
75
76 replace {
77         lda     %1
78         tsta
79 } by {
80         ; Peephole 4a   - eliminated redundant tsta
81         lda     %1
82 }
83
84 replace {
85         lda     %1,s
86         tsta
87 } by {
88         ; Peephole 4b   - eliminated redundant tsta
89         lda     %1,s
90 }
91
92 replace {
93         ldx     %1
94         tstx
95 } by {
96         ; Peephole 4c   - eliminated redundant tstx
97         ldx     %1
98 }
99
100 replace {
101         ldx     %1,s
102         tstx
103 } by {
104         ; Peephole 4d   - eliminated redundant tstx
105         ldx     %1,s
106 }