That wasn't a good idea
[fw/sdcc] / src / ds390 / peeph.def
index 2c44dd3af58c13b0fdcff3a84a08bfd8f0f78759..4f920ca33a1412bef41d812e2fa491de97255468 100644 (file)
@@ -1004,13 +1004,14 @@ replace {
         mov  %1,@r%2
 }
 
-replace {
-        mov  %1,%2
-        mov  %2,%1
-} by {
-        ; Peephole 177   removed redundant mov
-        mov  %1,%2
-}
+// this one will screw assignes to volatile/sfr's
+//replace {
+//        mov  %1,%2
+//        mov  %2,%1
+//} by {
+//        ; Peephole 177   removed redundant mov
+//        mov  %1,%2
+//}
 
 replace {
         mov  a,%1
@@ -1059,6 +1060,15 @@ replace {
         mov  dptr,#0x0000
 }
 
+replace {
+       mov dpl,#%1
+       mov dph,#(%1 >> 8)
+       mov dpx,#(%1 >> 16)
+} by {
+       ; Peephole 182b used 24 bit load of DPTR
+       mov dptr,#%1
+}
+
 // saves 2 bytes, ?? cycles.
 replace {
         mov  dpl,#%1
@@ -1892,3 +1902,33 @@ replace {
        mov     dptr, %1
        dec     dps
 }
+
+replace {
+       xch     a, ap
+       add     a, ap
+} by {
+       add     a, ap
+}
+
+replace {
+       xch     a, ap
+       addc    a, ap
+} by {
+       addc    a, ap
+}
+
+replace {
+       inc     dps
+       mov     dps, #0x%1
+} by {
+       mov     dps, #0x%1
+}
+
+replace {
+       dec     dps
+       mov     dps, #0x%1
+} by {
+       mov     dps, #0x%1
+}
+
+