* src/z80/peeph.def: updated conditonals, fixed bug 1565908
[fw/sdcc] / src / z80 / peeph.def
index 5090d4b8f45c3d20fd4b3461426eab013995c83c..d94ffdd20092edb75796217c975bf3a8adb29516 100644 (file)
@@ -1,56 +1,56 @@
 replace {
-       ld (hl),(hl)
+       ld      (hl),(hl)
 } by {
        ERROR - peephole - caught (hl),(hl)
 }
-replace {
-       ld %1,%1
+replace restart {
+       ld      %1,%1
 } by {
-        ; Removed redundent load
+       ; Removed redundent load
 }
 replace restart {
-       xor a,a
-       or a,%1
-       or a,a
-       jp %2,%3
+       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
+       cp      a,#0x00
+       jp      NZ,%1
 } by {
        or      a,a
-       jp      nz,%1
+       jp      NZ,%1
 }
 replace restart {
-       jp nz,%1
+       jp      NZ,%1
        jp      %2
 %1:
        jp      %3
 %2:
 } by {
-       jp      z,%2
+       jp      Z,%2
 %1:
        jp      %3
 %2:
 }
 replace restart {
-       jp      nz,%1
+       jp      NZ,%1
        jp      %2
 %1:
 } by {
-       jp      z,%2
+       jp      Z,%2
 %1:
 }
 replace restart {
-       jp      z,%1
+       jp      Z,%1
        jp      %2
 %1:
 } by {
-       jp      nz,%2
+       jp      NZ,%2
 %1:
 }
 replace restart {
@@ -61,31 +61,31 @@ replace restart {
 }
 replace restart {
        or      a,%1)
-        or      a,a
+       or      a,a
 } by {
        or      a,%1)
 }
 replace restart {
        xor     a,a
        or      a,%1
-       jp      nz,%2
+       jp      NZ,%2
        xor     a,a
        or      a,%3
-       jp      z,%2
+       jp      Z,%2
 } by {
        xor     a,a
        or      a,%1
-       jp      nz,%2
+       jp      NZ,%2
        or      a,%3
-       jp      z,%2
+       jp      Z,%2
 }
 replace restart {
-       jp      nz,%1
+       jp      NZ,%1
        inc     %3)
 %1:
        jp      %2
 } by {
-       jp      nz,%2
+       jp      NZ,%2
        inc     %3)
 %1:
        jp      %2
@@ -94,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
+}
+replace {
+       ld      l,#0x00
+       ld      h,#0x00
 } by {
-        ld      de,#0x0000
+       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
 }
+