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