X-Git-Url: https://git.gag.com/?a=blobdiff_plain;ds=sidebyside;f=src%2Fz80%2Fpeeph.def;h=1ff4aa80724b561c4a236ad278e6d9154edc894d;hb=44db9114471a9e1458b22ce3899bbba0549b9c88;hp=a743e5576ecd8a6bc90134d40554583f673c272b;hpb=faf36532f8fe1cff757958cb6a222c141f1eeaa4;p=fw%2Fsdcc diff --git a/src/z80/peeph.def b/src/z80/peeph.def index a743e557..1ff4aa80 100644 --- a/src/z80/peeph.def +++ b/src/z80/peeph.def @@ -1,4 +1,4 @@ -replace restart { +replace { ld (hl),(hl) } by { ERROR - peephole - caught (hl),(hl) @@ -6,7 +6,7 @@ replace restart { replace restart { ld %1,%1 } by { - ; Rule 1: Removed redundent load + ; Removed redundent load } replace restart { xor a,a @@ -22,7 +22,6 @@ replace restart { cp a,#0x00 jp nz,%1 } by { - ; Rule 3: Changed cp #0 to or or a,a jp nz,%1 } @@ -33,7 +32,6 @@ replace restart { jp %3 %2: } by { - ; Rule 4: Changed jp order jp z,%2 %1: jp %3 @@ -44,7 +42,6 @@ replace restart { jp %2 %1: } by { - ; Rule 5: Changed jump logic jp z,%2 %1: } @@ -53,7 +50,6 @@ replace restart { jp %2 %1: } by { - ; Rule 6: Changed jump logic jp nz,%2 %1: } @@ -61,14 +57,12 @@ replace restart { or a,%1 or a,a } by { - ; Rule 7: Removed redundent or or a,%1 } replace restart { or a,%1) or a,a } by { - ; Rule 8: Removed redundent or for (ix) or a,%1) } replace restart { @@ -100,17 +94,126 @@ replace restart { xor a,a ld a,#0x00 } by { - xor a,a + xor a,a } -replace restart { - ld e,#0x00 - ld d,#0x00 +replace { + ld e,#0x00 + ld d,#0x00 } by { - ld de,#0x0000 + 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 + 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 } +