X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fz80%2Fpeeph.def;h=1ff4aa80724b561c4a236ad278e6d9154edc894d;hb=67a7d48073f066e319f43a8e8e4e827d5c88afd3;hp=9fd073d688f13fdb31038f39d1442acba74e4943;hpb=01ad33a1bb9aec417dab3e45e57cac53b38fdb66;p=fw%2Fsdcc diff --git a/src/z80/peeph.def b/src/z80/peeph.def index 9fd073d6..1ff4aa80 100644 --- a/src/z80/peeph.def +++ b/src/z80/peeph.def @@ -1,5 +1,219 @@ +replace { + ld (hl),(hl) +} by { + ERROR - peephole - caught (hl),(hl) +} replace restart { ld %1,%1 } by { ; Removed redundent load } +replace restart { + xor a,a + or a,%1 + or a,a + jp %2,%3 +} by { + xor a,a + or a,%1 + jp %2,%3 +} +replace restart { + cp a,#0x00 + jp nz,%1 +} by { + or a,a + jp nz,%1 +} +replace restart { + jp nz,%1 + jp %2 +%1: + jp %3 +%2: +} by { + jp z,%2 +%1: + jp %3 +%2: +} +replace restart { + jp nz,%1 + jp %2 +%1: +} by { + jp z,%2 +%1: +} +replace restart { + jp z,%1 + jp %2 +%1: +} by { + jp nz,%2 +%1: +} +replace restart { + or a,%1 + or a,a +} by { + or a,%1 +} +replace restart { + or a,%1) + or a,a +} by { + or a,%1) +} +replace restart { + xor a,a + or a,%1 + jp nz,%2 + xor a,a + or a,%3 + jp z,%2 +} by { + xor a,a + or a,%1 + jp nz,%2 + or a,%3 + jp z,%2 +} +replace restart { + jp nz,%1 + inc %3) +%1: + jp %2 +} by { + jp nz,%2 + inc %3) +%1: + jp %2 +} +replace restart { + xor a,a + ld a,#0x00 +} by { + xor a,a +} +replace { + ld e,#0x00 + ld d,#0x00 +} by { + ld de,#0x0000 +} +replace { + ld l,#0x00 + ld h,#0x00 +} by { + ld hl,#0x0000 +} +replace { + ld c,#0x00 + ld b,#0x00 +} by { + ld bc,#0x0000 +} +replace restart { + ld %1,a + ld a,%1 +} by { + ld %1,a +} if notVolatile %1 +replace restart { + jp %1,%2 + jr %3 +%2: + jp %4 +} by { + jp %1,%4 + jr %3 +%2: + jp %4 +} +replace { + ld l,e + ld h,d + push hl + ld l,c + ld h,b + push hl +} by { + push de + push bc +} +replace { + and a,#%1 + or a,a +} by { + 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 +} +