replace { ld (hl),(hl) } by { ERROR - peephole - caught (hl),(hl) } replace { 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 restart { ld %1,a ld a,%1 } by { ld %1,a } 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 }