* src/mcs51/peeph.def: added new rules 265 - 270
authorMaartenBrock <MaartenBrock@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Fri, 26 Oct 2007 20:07:53 +0000 (20:07 +0000)
committerMaartenBrock <MaartenBrock@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Fri, 26 Oct 2007 20:07:53 +0000 (20:07 +0000)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@4942 4a8a32a2-be11-0410-ad9d-d568d2c75423

ChangeLog
src/mcs51/peeph.def

index 285bc22ae56031a59061fb143839e6a5237c7612..b128a2293860a3aa2331901439fd8afcf8aaf9e5 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,7 @@
 2007-10-26 Maarten Brock <sourceforge.brock AT dse.nl>
 
-       * src/mcs51/peeph.def: moved rules 257.x to 253.x and re-enabled 253.b
+       * src/mcs51/peeph.def: moved rules 257.x to 253.x and re-enabled 253.b,
+         added new rules 265 - 270
        * support/regression/tests/bug1721024.c:new, added
 
 2007-10-25 Maarten Brock <sourceforge.brock AT dse.nl>
index 66909c942e035907b483ddba5cb0ab5e041416dd..92570a59380be45d2a569558e2412a5f701fa8e6 100644 (file)
@@ -4582,6 +4582,85 @@ replace {
 } if labelRefCount(%3 1), labelRefCountChange(%3 -1)
 
 
+replace {
+       mov     %1,c
+       cpl     %1
+} by {
+       ;       Peephole 265    optimized mov/cpl sequence (carry differs)
+       cpl     c
+       mov     %1,c
+} if notVolatile(%1)
+
+replace {
+       mov     %1,c
+       jb      %1,%2
+} by {
+       ;       Peephole 266.a  optimized mov/jump sequence
+       mov     %1,c
+        jc     %2
+} if notVolatile(%1)
+
+replace {
+       mov     %1,c
+       jnb     %1,%2
+} by {
+       ;       Peephole 266.b  optimized mov/jump sequence
+       mov     %1,c
+        jnc    %2
+} if notVolatile(%1)
+
+replace {
+       jnc     %1
+       setb    %2
+       sjmp    %3
+%1:
+       clr     %2
+%3:
+} by {
+       ;       Peephole 267.a  optimized mov bit sequence
+       mov     %2,c
+%1:
+%3:
+} if labelRefCount(%1 1), labelRefCountChange(%1 -1), labelRefCountChange(%3 -1)
+
+replace {
+       jc      %1
+       clr     %2
+       sjmp    %3
+%1:
+       setb    %2
+%3:
+} by {
+       ;       Peephole 267.b  optimized mov bit sequence
+       mov     %2,c
+%1:
+%3:
+} if labelRefCount(%1 1), labelRefCountChange(%1 -1), labelRefCountChange(%3 -1)
+
+replace {
+       mov     %1,c
+       mov     %1,c
+} by {
+       ;       Peephole 268    removed redundant mov
+       mov     %1,c
+} if notVolatile(%1)
+
+replace {
+       mov     %1,c
+       mov     c,%1
+} by {
+       ;       Peephole 269    removed redundant mov
+       mov     %1,c
+} if notVolatile(%1)
+
+//accessing struct/array on stack
+replace {
+       add     a,#%1
+       add     a,#%2
+} by {
+       ;       Peephole 270    removed redundant add
+       add     a,#%1+%2
+}
 replace restart {
        pop     ar%1
 } by {