+
+replace {
+ mov dps, #%1
+ inc dptr
+ movx a,@dptr
+ mov %2,a
+ mov dps, #%1
+} by {
+ mov dps, #%1
+ inc dptr
+ movx a,@dptr
+ mov %2,a
+; Peephole 223: yet more DPS abuse removed.
+}
+
+replace {
+ mov dps, #0
+ inc dps
+} by {
+ mov dps, #1
+}
+
+replace {
+ mov dps, #%1
+ mov dptr, %2
+ mov dps, #%1
+} by {
+ mov dps, #%1
+ mov dptr, %2
+}
+
+replace {
+ mov dps, #1
+ mov dptr, %1
+ mov dps, #0
+ mov dptr, %2
+ inc dps
+} by {
+ mov dps, #0
+ mov dptr, %2
+ inc dps
+ mov dptr, %1
+; Peephole 224a: DPS usage re-arranged.
+}
+
+replace {
+ mov dps, #%1
+ mov dptr, %2
+ mov dps, #%3
+ mov dptr, %4
+ mov dps, #%1
+} by {
+ mov dps, #%3
+ mov dptr, %4
+ mov dps, #%1
+ mov dptr, %2
+; Peephole 224: DPS usage re-arranged.
+}
+
+replace {
+ mov dps, #1
+ mov dptr, %1
+ mov dps, #0
+} by {
+ mov dps, #1
+ 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, #%1
+} by {
+ mov dps, #%1
+}
+
+replace {
+ dec dps
+ mov dps, #%1
+} by {
+ mov dps, #%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
+}
+
+replace {
+ mov r%1,%2
+ mov ar%1,%3
+} by {
+ ; Peephole 228 redundant move
+ mov ar%1,%3
+}
+
+replace {
+ mov r%1,a
+ dec r%1
+ mov a,r%1
+} by {
+ ; Peephole 229.a redundant move
+ dec a
+ mov r%1,a
+}
+
+replace {
+ mov r%1,a
+ mov r%2,b
+ mov a,r%1
+} by {
+ ; Peephole 229.b redundant move
+ mov r%1,a
+ mov r%2,b
+}
+
+replace {
+ mov r%1,a
+ mov r%2,b
+ add a,#%3
+ mov r%1,a
+ mov a,r%2
+ addc a,#(%3 >> 8)
+ mov r%2,a
+} by {
+ ; Peephole 229.c redundant move
+ add a,#%3
+ mov r%1,a
+ mov a,b
+ addc a,#(%3 >> 8)
+ mov r%2,a
+}
+
+replace {
+ mov a,%1
+ mov b,a
+ movx a,%2
+} by {
+ ; Peephole 229.d redundant move
+ mov b,%1
+ movx a,%2
+}
+
+replace {
+ mov dpl,r%1
+ mov dph,r%2
+ mov dpx,r%3
+ movx a,@dptr
+ mov r%4,a
+ add a,#0x01
+ mov r%5,a
+ mov dpl,r%1
+ mov dph,r%2
+ mov dpx,r%3
+ movx @dptr,a
+} by {
+ ; Peephole 230.a save reload dptr
+ mov dpl,r%1
+ mov dph,r%2
+ mov dpx,r%3
+ movx a,@dptr
+ mov r%4,a
+ add a,#0x01
+ mov r%5,a
+ movx @dptr,a
+}
+
+replace {
+ mov dpl,r%1
+ mov dph,r%2
+ mov dpx,r%3
+ movx a,@dptr
+ mov r%4,a
+ dec r%4
+ mov dpl,r%1
+ mov dph,r%2
+ mov dpx,r%3
+ mov a,r%4
+ movx @dptr,a
+} by {
+ ; Peephole 230.b save reload dptr
+ mov dpl,r%1
+ mov dph,r%2
+ mov dpx,r%3
+ movx a,@dptr
+ dec a
+ mov r%4,a
+ movx @dptr,a
+}
+
+replace {
+ mov dpl,r%1
+ mov dph,r%2
+ mov dpx,r%3
+ movx a,@dptr
+ inc a
+ mov r%4,a
+ mov dpl,r%1
+ mov dph,r%2
+ mov dpx,r%3
+ mov a,r%4
+ movx @dptr,a
+} by {
+ ; Peephole 230.c save reload dptr
+ mov dpl,r%1
+ mov dph,r%2
+ mov dpx,r%3
+ movx a,@dptr
+ inc a
+ mov r%4,a
+ movx @dptr,a
+}
+
+replace {
+ mov r%1,dpl
+ mov r%2,dph
+ mov r%3,dpx
+ mov dpl,r%1
+ mov dph,r%2
+ mov dpx,r%3
+} by {
+ ; Peephole 230.d save reload dptr
+ mov r%1,dpl
+ mov r%2,dph
+ mov r%3,dpx
+}
+
+replace {
+ mov ar%1,r%2
+ mov ar%3,r%1
+ mov r%1,#0x00
+ mov ar%2,r%4
+ mov r3,#0x00
+} by {
+ ; Peephole 231.a simplified moves
+ mov ar%3,r%2
+ mov ar%2,r%4
+ mov r%4,#0
+ mov r%1,#0
+}
+
+replace {
+ mov r%1,#0
+ mov r%2,#0
+ mov a,r%2
+ orl a,r%3
+ mov %4,a
+ mov a,r%5
+ orl a,r%1
+ mov %6,a
+} by {
+ ; Peephole 231.b simplified or
+ mov r%1,#0
+ mov r%2,#0
+ mov a,r%3
+ mov %4,a
+ mov a,r%5
+ mov %6,a
+}
+
+replace {
+ mov a,r%1
+ mov b,r%2
+ mov r%1,b
+ mov r%2,a
+} by {
+ ; Peehole 232.a simplified xch
+ mov a,r%1
+ xch a,r%2
+ mov r%1,a
+}
+
+replace {
+ mov a,#%1
+ mov b,#%2
+ mov r%3,b
+ mov r%4,a
+} by {
+ ; Peehole 232.b simplified xch
+ mov r%3,#%1
+ mov r%4,#%2
+}
\ No newline at end of file