]> git.gag.com Git - fw/sdcc/blobdiff - src/mcs51/peeph.def
* src/mcs51/peeph.def: renamed rule 400 to 500, moved rule 253.x to 400.x for better...
[fw/sdcc] / src / mcs51 / peeph.def
index 8369811dd5f9a9e481bfc4543e798ea09de5020a..146a39f02d6189364d00fa0e545f81d0ff81c273 100644 (file)
@@ -3712,39 +3712,6 @@ replace {
        mov     r%3,a
 }
 
-// applies to: void test( char c ) { if( c ) func1(); else func2(); }
-replace {
-       lcall   %1
-       ret
-} by {
-       ;       Peephole 253.a  replaced lcall/ret with ljmp
-       ljmp    %1
-}
-
-// applies to: void test( char c ) { if( c ) func1(); else func2(); }
-replace {
-       lcall   %1
-%2:
-       ret
-} by {
-       ;       Peephole 253.b  replaced lcall/ret with ljmp
-       ljmp    %1
-       ;
-} if labelRefCount %2 0
-
-// applies to f.e. scott-bool1.c
-replace {
-       lcall   %1
-%2:
-       ret
-} by {
-       ;       Peephole 253.c  replaced lcall with ljmp
-       ljmp    %1
-%2:
-       ret
-}
-
-
 // applies to f.e. funptrs.c
 // saves one byte if %1 is a register or @register
 replace {
@@ -4591,15 +4558,56 @@ replace {
 %3:
 } if labelRefCount(%3 1), labelRefCountChange(%3 -1)
 
+
 replace restart {
        pop     ar%1
 } by {
        ;       Peephole 300    pop ar%1 removed
 } if deadMove %1
 
+replace {
+       mov     r%1,%2
+} by {
+       ;       Peephole 301    mov r%1,%2 removed
+} if notVolatile(%2), deadMove(%1)
+
+
+// applies to: void test( char c ) { if( c ) func1(); else func2(); }
+replace {
+       lcall   %1
+       ret
+} by {
+       ;       Peephole 400.a  replaced lcall/ret with ljmp
+       ljmp    %1
+}
+
+// applies to: void test( char c ) { if( c ) func1(); else func2(); }
+replace {
+       lcall   %1
+%2:
+       ret
+} by {
+       ;       Peephole 400.b  replaced lcall/ret with ljmp
+       ljmp    %1
+       ;
+} if labelRefCount %2 0
+
+// applies to f.e. scott-bool1.c
+replace {
+       lcall   %1
+%2:
+       ret
+} by {
+       ;       Peephole 400.c  replaced lcall with ljmp
+       ljmp    %1
+%2:
+       ret
+}
+
+
 // should be one of the last peepholes
 replace{
 %1:
 } by {
-       ;       Peephole 400    removed redundant label %1
+       ;       Peephole 500    removed redundant label %1
 } if labelRefCount(%1 0)