d70a5d1ebc48bd98af4e3bb70341e5e23789d6b1
[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         brclr   %3,%2,%1
71         jmp     %5
72 %1:
73 } by {
74         ; Peephole 2e   - eliminated jmp
75         brset   %3,%2,%5
76 %1:
77 } if labelInRange
78
79 replace {
80         brset   %3,%2,%1
81         jmp     %5
82 %1:
83 } by {
84         ; Peephole 2f   - eliminated jmp
85         brclr   %3,%2,%5
86 %1:
87 } if labelInRange
88
89 replace {
90         jmp     %5
91 } by {
92         ; Peephole 3    - shortened jmp to bra
93         bra     %5
94 } if labelInRange
95
96 replace {
97         lda     %1
98         tsta
99 } by {
100         ; Peephole 4a   - eliminated redundant tsta
101         lda     %1
102 }
103
104 replace {
105         lda     %1,s
106         tsta
107 } by {
108         ; Peephole 4b   - eliminated redundant tsta
109         lda     %1,s
110 }
111
112 replace {
113         ldx     %1
114         tstx
115 } by {
116         ; Peephole 4c   - eliminated redundant tstx
117         ldx     %1
118 }
119
120 replace {
121         ldx     %1,s
122         tstx
123 } by {
124         ; Peephole 4d   - eliminated redundant tstx
125         ldx     %1,s
126 }
127
128 replace {
129         clra
130         sta     %1
131         clra
132         sta     %2
133         clra
134         sta     %3
135         clra
136         sta     %4
137 } by {
138         ; Peephole 5a   - eliminated redundant clra
139         clra
140         sta     %1
141         sta     %2
142         sta     %3
143         sta     %4
144 }
145
146 replace {
147         clra
148         sta     %1
149         clra
150         sta     %2
151         clra
152         sta     %3
153 } by {
154         ; Peephole 5b   - eliminated redundant clra
155         clra
156         sta     %1
157         sta     %2
158         sta     %3
159 }
160
161 replace {
162         clra
163         sta     %1
164         clra
165         sta     %2
166 } by {
167         ; Peephole 5c   - eliminated redundant clra
168         clra
169         sta     %1
170         sta     %2
171 }
172
173 replace {
174         lda     #%9
175         sta     %1
176         lda     #%9
177         sta     %2
178         lda     #%9
179         sta     %3
180         lda     #%9
181         sta     %4
182 } by {
183         ; Peephole 5d   - eliminated redundant lda
184         lda     #%9
185         sta     %1
186         sta     %2
187         sta     %3
188         sta     %4
189 }
190
191 replace {
192         lda     #%9
193         sta     %1
194         lda     #%9
195         sta     %2
196         lda     #%9
197         sta     %3
198 } by {
199         ; Peephole 5e   - eliminated redundant lda
200         lda     #%9
201         sta     %1
202         sta     %2
203         sta     %3
204 }
205
206 replace {
207         lda     #%9
208         sta     %1
209         lda     #%9
210         sta     %2
211 } by {
212         ; Peephole 5f   - eliminated redundant lda
213         lda     #%9
214         sta     %1
215         sta     %2
216 }
217
218 replace {
219         jmp     %5
220 } by {
221         ; Peephole 6a  - replaced jmp to rts with rts
222         rts
223 } if labelIsReturnOnly
224
225 replace {
226         bra     %5
227 } by {
228         ; Peephole 6b  - replaced jmp to rts with rts
229         rts
230 } if labelIsReturnOnly