projects
/
fw
/
sdcc
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
* src/SDCCast.c (processParms): fixed bug #920866; decorateType() can return an optim...
[fw/sdcc]
/
src
/
z80
/
peeph.def
diff --git
a/src/z80/peeph.def
b/src/z80/peeph.def
index a00fd659c13633cb4d20a6532b012532a47ff28c..1ff4aa80724b561c4a236ad278e6d9154edc894d 100644
(file)
--- a/
src/z80/peeph.def
+++ b/
src/z80/peeph.def
@@
-3,10
+3,10
@@
replace {
} by {
ERROR - peephole - caught (hl),(hl)
}
} by {
ERROR - peephole - caught (hl),(hl)
}
-replace {
+replace
restart
{
ld %1,%1
} by {
ld %1,%1
} by {
-
; Removed redundent load
+ ; Removed redundent load
}
replace restart {
xor a,a
}
replace restart {
xor a,a
@@
-94,26
+94,32
@@
replace restart {
xor a,a
ld a,#0x00
} by {
xor a,a
ld a,#0x00
} by {
-
xor a,a
+ xor a,a
}
replace {
}
replace {
-
ld e,#0x00
-
ld d,#0x00
+ ld e,#0x00
+ ld d,#0x00
} by {
} by {
-
ld de,#0x0000
+ ld de,#0x0000
}
replace {
ld l,#0x00
ld h,#0x00
} by {
}
replace {
ld l,#0x00
ld h,#0x00
} by {
- ld hl,#0x0000
+ ld hl,#0x0000
+}
+replace {
+ ld c,#0x00
+ ld b,#0x00
+} by {
+ ld bc,#0x0000
}
replace restart {
ld %1,a
ld a,%1
} by {
}
replace restart {
ld %1,a
ld a,%1
} by {
-
ld
%1,a
-}
+
ld
%1,a
+}
if notVolatile %1
replace restart {
jp %1,%2
jr %3
replace restart {
jp %1,%2
jr %3
@@
-133,12
+139,81
@@
replace {
ld h,b
push hl
} by {
ld h,b
push hl
} by {
-
push
de
-
push bc
+
push
de
+ push bc
}
replace {
and a,#%1
or a,a
} by {
}
replace {
and a,#%1
or a,a
} by {
- and a,#%1
+ and a,#%1
+}
+replace {
+ ld b,l
+ ld a,b
+ pop bc
+ ld b,a
+} by {
+ ld a,l
+ pop bc
+ ld b,a
+}
+replace {
+ ld d,l
+ ld a,d
+ pop de
+ ld d,a
+} by {
+ ld a,l
+ pop de
+ ld d,a
+}
+replace {
+ ld a,b
+ push af
+ inc sp
+} by {
+ push bc
+ inc sp
+}
+replace {
+ ld a,d
+ push af
+ inc sp
+} by {
+ push de
+ inc sp
+}
+replace {
+ ld a,%1
+ sub a,#%2
+ jp m,%3
+ ld a,%1
+ sub a,#%4
+ jp p,%5
+} by {
+ ld a,%1
+ cp a,#%2
+ jp m,%3
+ cp a,#%4
+ jp p,%5
+}
+replace {
+ ld e,l
+ ld d,h
+ ld l,e
+ ld h,d
+} by {
+ ld e,l
+ ld d,h
+}
+replace {
+ ld %1,%2
+ ld %3,%4
+ ld %2,%1
+ ld %4,%3
+} by {
+ ld %1,%2
+ ld %3,%4
}
}
+