]> git.gag.com Git - fw/sdcc/commitdiff
removed 259.a,b. See comment at peephole 259.a
authorfrief <frief@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Mon, 25 Oct 2004 17:55:52 +0000 (17:55 +0000)
committerfrief <frief@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Mon, 25 Oct 2004 17:55:52 +0000 (17:55 +0000)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@3557 4a8a32a2-be11-0410-ad9d-d568d2c75423

src/mcs51/peeph.def

index e6540fcf8df73449c371b1224ae9dc65a3fc06e2..b8f09739c02dc05ec243390e0d46061784f45247 100644 (file)
@@ -3568,24 +3568,32 @@ replace {
        mov     %1,a
 } if notVolatile %1
 
+// Peepholes 259.x are not compatible with peepholex 250.x
+// Peepholes 250.x add jumps to a previously unused label. As the 
+// labelRefCount is not increased, peepholes 259.x are (mistakenly) applied.
+// (Mail on sdcc-devel 2004-10-25)
+// Note: Peepholes 193..199, 251 remove jumps to previously used labels without
+// decreasing labelRefCount (less dangerous - this f.e. leads to 253.c being
+// applied instead of 253.b))
+//
 // applies to f.e. vprintf.c
-replace {
-       sjmp    %1
-%2:    
-       ret
-} by {
-       sjmp    %1
-       ;       Peephole 259.a  removed redundant label %2 and ret
-       ;
-} if labelRefCount %2 0
+//replace {
+//     sjmp    %1
+//%2:  
+//     ret
+//} by {
+//     sjmp    %1
+//     ;       Peephole 259.a  removed redundant label %2 and ret
+//     ;
+//} if labelRefCount %2 0
 
 // applies to f.e. gets.c
-replace {
-       ljmp    %1
-%2:    
-       ret
-} by {
-       ljmp    %1
-       ;       Peephole 259.b  removed redundant label %2 and ret
-       ;
-} if labelRefCount %2 0
+//replace {
+//     ljmp    %1
+//%2:  
+//     ret
+//} by {
+//     ljmp    %1
+//     ;       Peephole 259.b  removed redundant label %2 and ret
+//     ;
+//} if labelRefCount %2 0