* src/SDCCpeeph.c (callFuncByName): support combined peephole rule
[fw/sdcc] / src / mcs51 / peeph.def
index eae66f0a00f35203722891c1229e3a2e890d9dfc..3af2821a7e6194da7f1cdedbc29654d43ce2219b 100644 (file)
@@ -1082,20 +1082,15 @@ replace {
 
 // applies to f.e. bug-408972.c
 // not before peephole 177.c
-// Bug #1076940, this rule erroneously applies to:
-//     mov     a,r2
-//     mov     acc.0,c
-//     mov     r2,a
-//
-//replace restart {
-//     mov     %1,%2
-//     mov     %3,%4
-//     mov     %2,%1
-//} by {
-//     ;       Peephole 177.d  removed redundant move
-//     mov     %1,%2
-//     mov     %3,%4
-//} if notVolatile %1 %2
+replace restart {
+       mov     %1,%2
+       mov     %3,%4
+       mov     %2,%1
+} by {
+       ;       Peephole 177.d  removed redundant move
+       mov     %1,%2
+       mov     %3,%4
+} if notVolatile(%1 %2),operandsNotRelated(%1 %3)
 
 // applies to f.e. bug-607243.c
 // also check notVolatile %3, as it will return FALSE if it's @r%1