projects
/
fw
/
sdcc
/ blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
history
|
raw
|
HEAD
sdcc-build:
[fw/sdcc]
/
src
/
z80
/
peeph-z80.def
1
replace restart {
2
ld a,%1(%2)
3
bit %3,a
4
jp %4,%5
5
} by {
6
bit %3,%1(%2)
7
jp %4,%5
8
}
9
replace {
10
ld %1,%2
11
ld a,%2
12
} by {
13
ld %1,%2
14
ld a,%1
15
}
16
replace {
17
ld %1,a
18
xor a,a
19
or a,%1
20
jp z,%2
21
} by {
22
ld %1,a
23
or a,a
24
jp z,%2
25
}
26
replace {
27
rlca
28
ld a,#0x00
29
rla
30
} by {
31
rlca
32
and a,#0x01
33
}
34
replace {
35
ld %3,a
36
ld l,%1
37
ld h,%2
38
ld l,(hl)
39
ld a,%3
40
} by {
41
ld %3,a
42
ld l,%1
43
ld h,%2
44
ld l,(hl)
45
} if notVolatile %3
46
47
;
48
;--------------------------
49
;
50
replace restart {
51
pop %1
52
push %1
53
ld %1,%2
54
} by {
55
; z80 removed redundant pop/push
56
ld %1,%2
57
}
58
59
replace restart {
60
ld l,a
61
ld c,%1
62
ld a,l
63
} by {
64
ld l,a
65
ld c,%1
66
}
67
68
replace restart {
69
ld c,l
70
ld a,c
71
and a,#%1
72
ld c,a
73
or a,a
74
} by {
75
; z80 stream lining 'and' logic
76
ld a,#%1
77
and a,l
78
ld c,a
79
}
80
81
replace restart {
82
ld a,c
83
and a,#%1
84
ld c,a
85
or a,a
86
} by {
87
; z80 stream lining 'and' logic
88
ld a,#%1
89
and a,c
90
ld c,a
91
}
92
93
replace restart {
94
ld a,c
95
or a,#%1
96
ld c,a
97
} by {
98
; z80 stream lining 'or' logic
99
ld a,#%1
100
or a,c
101
ld c,a
102
}
103
104
105
replace {
106
%1:
107
in0 a,(%2)
108
and a,#%3
109
jp z,%4
110
%5:
111
jp %6
112
%4:
113
call %7
114
jp %1
115
%6:
116
ret
117
} by {
118
%1:
119
in0 a,(%2)
120
and a,#%3
121
jp nz,%5
122
%4:
123
call %7
124
jp %1
125
%5:
126
%6:
127
ret
128
}
129
130