Port decides whether to handle a GPOINTER unqualified pointers will be treated as...
[fw/sdcc] / src / ds390 / peeph.def
index 29133de740be8c7f53fcfea37e34706229a141f6..c9175e3984de372f6668120e5afd599f504d7ec7 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
@@ -1915,3 +1916,35 @@ replace {
 } 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
+}
+
+
+replace {
+       add     a,#%2
+       mov     dpl,a
+       clr  a
+       addc    a,#(%2 >> 8)
+       mov     dph,a
+       clr  a
+       addc    a,#(%2 >> 16)
+       mov     dpx,a
+       clr     a
+       movc    a,@a+dptr
+} by {
+       ; Peephole 227.a movc optimize
+       mov     dptr,#%2
+       movc    a,@a+dptr
+}