a4c8e75615af7a7eaec507b4d47d330c76c7e1e8
[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 }