added peepholes 3.d-g and 177.g,h provided by anonymous in RFE #1067986, thanks
authorfrief <frief@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Fri, 19 Nov 2004 09:06:39 +0000 (09:06 +0000)
committerfrief <frief@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Fri, 19 Nov 2004 09:06:39 +0000 (09:06 +0000)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3577 4a8a32a2-be11-0410-ad9d-d568d2c75423

ChangeLog
src/mcs51/peeph.def

index b61e99b05b675b6497410f36e55b5e24821060fb..c36dcd329a551e93e916fbb51a11f1b7a6d1c7c8 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2004-11-19 Frieder Ferlemann <Frieder.Ferlemann AT web.de>
+
+       * src/mcs51/peeph.def: added peepholes 3.d-g and 177.g,h provided
+         by anonymous in RFE #1067986, thanks
+
 2004-11-18 Maarten Brock <sourceforge.brock AT dse.nl>
 
        * .version: bumped version to 2.4.7
@@ -42,7 +47,7 @@
        * support/regression/ports/ucz80/spec.mk: use include and lib files from
          built version of sdcc instead of installed version
 
-2004-11-11 Maarten Brock <sourceforge.brock AT dse.nl>
+2004-11-14 Maarten Brock <sourceforge.brock AT dse.nl>
 
        * src/mcs51/gen.c (toBoolean): fixed bug 1065458
        * device/lib/Makefile.in: z80 uses printf_large.c, sprintf.c and
index b8f09739c02dc05ec243390e0d46061784f45247..fb786d95a93b6a39025a45d08f85af0db5c973dd 100644 (file)
@@ -57,6 +57,66 @@ replace {
        mov     a,%3
 }
 
+replace {
+       clr     a
+       mov     %1,a
+       mov     %2,a
+       clr     a
+} by {
+       clr     a
+       mov     %1,a
+       mov     %2,a
+       ;       Peephole 3.d    removed redundant clr
+}
+
+replace {
+       clr     a
+       mov     %1,a
+       mov     %2,a
+       mov     %3,a
+       clr     a
+} by {
+       clr     a
+       mov     %1,a
+       mov     %2,a
+       mov     %3,a
+       ;       Peephole 3.e    removed redundant clr
+}
+
+replace {
+       clr     a
+       mov     %1,a
+       mov     %2,a
+       mov     %3,a
+       mov     %4,a
+       clr     a
+} by {
+       clr     a
+       mov     %1,a
+       mov     %2,a
+       mov     %3,a
+       mov     %4,a
+       ;       Peephole 3.f    removed redundant clr
+}
+
+replace {
+       clr     a
+       mov     %1,a
+       mov     %2,a
+       mov     %3,a
+       mov     %4,a
+       mov     %5,a
+       clr     a
+} by {
+       clr     a
+       mov     %1,a
+       mov     %2,a
+       mov     %3,a
+       mov     %4,a
+       mov     %5,a
+       ;       Peephole 3.g    removed redundant clr
+}
+
 replace {
        mov     %1,a
        mov     dptr,#%2
@@ -1050,6 +1110,24 @@ replace {
        mov     r%1,%3
 } if notVolatile %2
 
+replace {
+       mov     %1,%2
+       mov     a,%1
+} by {
+       ;       peephole 177.g  optimized mov sequence
+       mov     a,%2
+       mov     %1,a
+} if notVolatile %1
+
+replace {
+       mov     %1,%2
+       mov     a,%2
+} by {
+       ;       peephole 177.h  optimized mov sequence
+       mov     a,%2
+       mov     %1,a
+} if notVolatile %2
+
 replace {
        mov     a,%1
        mov     b,a