From 8f57ad1851e5785c147ebbdcf0bd5e845ddf7890 Mon Sep 17 00:00:00 2001 From: frief Date: Sun, 23 Feb 2003 11:31:10 +0000 Subject: [PATCH] added peephole suggested by Gernot Fink, white-space changes, comment changes git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@2294 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- src/mcs51/peeph.def | 2271 ++++++++++++++++++++++--------------------- 1 file changed, 1145 insertions(+), 1126 deletions(-) diff --git a/src/mcs51/peeph.def b/src/mcs51/peeph.def index 6541c488..909d1101 100644 --- a/src/mcs51/peeph.def +++ b/src/mcs51/peeph.def @@ -18,536 +18,534 @@ // added by Jean Louis VERN for // his shift stuff replace restart { - xch a,%1 - xch a,%1 + xch a,%1 + xch a,%1 } by { - ; Peephole 2.a removed redundant xch xch + ; Peephole 2.a removed redundant xch xch } replace restart { // saving 2 byte - mov %1,#0x00 - mov a,#0x00 + mov %1,#0x00 + mov a,#0x00 } by { - ; Peephole 3.a changed mov to clr - clr a - mov %1,a + ; Peephole 3.a changed mov to clr + clr a + mov %1,a } replace restart { // saving 1 byte - mov %1,#0x00 - clr a + mov %1,#0x00 + clr a } by { - ; Peephole 3.b changed mov to clr - clr a - mov %1,a + ; Peephole 3.b changed mov to clr + clr a + mov %1,a } replace restart { // saving 1 byte, loosing 1 cycle but maybe allowing peephole 3.b to start - mov %1,#0x00 - mov %2,#0x00 - mov a,%3 + mov %1,#0x00 + mov %2,#0x00 + mov a,%3 } by { - ; Peephole 3.c changed mov to clr - clr a - mov %1,a - mov %2,a - mov a,%3 + ; Peephole 3.c changed mov to clr + clr a + mov %1,a + mov %2,a + mov a,%3 } - - replace { - mov %1,a - mov dptr,#%2 - mov a,%1 - movx @dptr,a + mov %1,a + mov dptr,#%2 + mov a,%1 + movx @dptr,a } by { - ; Peephole 100 removed redundant mov - mov %1,a - mov dptr,#%2 - movx @dptr,a + ; Peephole 100 removed redundant mov + mov %1,a + mov dptr,#%2 + movx @dptr,a } replace { - mov a,acc + mov a,acc } by { - ; Peephole 100.a removed redundant mov + ; Peephole 100.a removed redundant mov } replace { - mov a,%1 - movx @dptr,a - inc dptr - mov a,%1 - movx @dptr,a + mov a,%1 + movx @dptr,a + inc dptr + mov a,%1 + movx @dptr,a } by { - ; Peephole 101 removed redundant mov - mov a,%1 - movx @dptr,a - inc dptr - movx @dptr,a + ; Peephole 101 removed redundant mov + mov a,%1 + movx @dptr,a + inc dptr + movx @dptr,a } replace { - mov %1,%2 - ljmp %3 + mov %1,%2 + ljmp %3 %4: - mov %1,%5 + mov %1,%5 %3: - mov dpl,%1 + mov dpl,%1 %7: - mov sp,bp - pop bp + mov sp,bp + pop bp } by { - ; Peephole 102 removed redundant mov - mov dpl,%2 - ljmp %3 + ; Peephole 102 removed redundant mov + mov dpl,%2 + ljmp %3 %4: - mov dpl,%5 + mov dpl,%5 %3: %7: - mov sp,bp - pop bp + mov sp,bp + pop bp } replace { - mov %1,%2 - ljmp %3 + mov %1,%2 + ljmp %3 %4: - mov a%1,%5 + mov a%1,%5 %3: - mov dpl,%1 + mov dpl,%1 %7: - mov sp,bp - pop bp + mov sp,bp + pop bp } by { - ; Peephole 103 removed redundant mov - mov dpl,%2 - ljmp %3 + ; Peephole 103 removed redundant mov + mov dpl,%2 + ljmp %3 %4: - mov dpl,%5 + mov dpl,%5 %3: %7: - mov sp,bp - pop bp + mov sp,bp + pop bp } replace { - mov a,bp - clr c - add a,#0x01 - mov r%1,a + mov a,bp + clr c + add a,#0x01 + mov r%1,a } by { - ; Peephole 104 optimized increment (acc not set to r%1, flags undefined) - mov r%1,bp - inc r%1 + ; Peephole 104 optimized increment (acc not set to r%1, flags undefined) + mov r%1,bp + inc r%1 } replace { - mov %1,a - mov a,%1 + mov %1,a + mov a,%1 } by { - ; Peephole 105 removed redundant mov - mov %1,a + ; Peephole 105 removed redundant mov + mov %1,a } replace { - mov %1,a - clr c - mov a,%1 + mov %1,a + clr c + mov a,%1 } by { - ; Peephole 106 removed redundant mov - mov %1,a - clr c + ; Peephole 106 removed redundant mov + mov %1,a + clr c } replace { - ljmp %1 + ljmp %1 %1: } by { - ; Peephole 107 removed redundant ljmp + ; Peephole 107 removed redundant ljmp %1: } replace { - jc %1 - ljmp %5 + jc %1 + ljmp %5 %1: } by { - ; Peephole 108 removed ljmp by inverse jump logic - jnc %5 + ; Peephole 108 removed ljmp by inverse jump logic + jnc %5 %1: } if labelInRange replace { - jz %1 - ljmp %5 + jz %1 + ljmp %5 %1: } by { - ; Peephole 109 removed ljmp by inverse jump logic - jnz %5 + ; Peephole 109 removed ljmp by inverse jump logic + jnz %5 %1: } if labelInRange replace { - jnz %1 - ljmp %5 + jnz %1 + ljmp %5 %1: } by { - ; Peephole 110 removed ljmp by inverse jump logic - jz %5 + ; Peephole 110 removed ljmp by inverse jump logic + jz %5 %1: } if labelInRange replace { - jb %1,%2 - ljmp %5 + jb %1,%2 + ljmp %5 %2: } by { - ; Peephole 111 removed ljmp by inverse jump logic - jnb %1,%5 + ; Peephole 111 removed ljmp by inverse jump logic + jnb %1,%5 %2: } if labelInRange replace { - jnb %1,%2 - ljmp %5 + jnb %1,%2 + ljmp %5 %2: } by { - ; Peephole 112 removed ljmp by inverse jump logic - jb %1,%5 + ; Peephole 112 removed ljmp by inverse jump logic + jb %1,%5 %2: } if labelInRange replace { - ljmp %5 + ljmp %5 %1: } by { - ; Peephole 132 changed ljmp to sjmp - sjmp %5 + ; Peephole 132 changed ljmp to sjmp + sjmp %5 %1: } if labelInRange replace { - clr a - cjne %1,%2,%3 - cpl a + clr a + cjne %1,%2,%3 + cpl a %3: - rrc a - mov %4,c + rrc a + mov %4,c } by { - ; Peephole 113 optimized misc sequence - clr %4 - cjne %1,%2,%3 - setb %4 + ; Peephole 113 optimized misc sequence + clr %4 + cjne %1,%2,%3 + setb %4 %3: } if labelRefCount %3 1 replace { - clr a - cjne %1,%2,%3 - cjne %10,%11,%3 - cpl a + clr a + cjne %1,%2,%3 + cjne %10,%11,%3 + cpl a %3: - rrc a - mov %4,c -} by { - ; Peephole 114 optimized misc sequence - clr %4 - cjne %1,%2,%3 - cjne %10,%11,%3 - setb %4 + rrc a + mov %4,c +} by { + ; Peephole 114 optimized misc sequence + clr %4 + cjne %1,%2,%3 + cjne %10,%11,%3 + setb %4 %3: } if labelRefCount %3 2 replace { - clr a - cjne %1,%2,%3 - cpl a + clr a + cjne %1,%2,%3 + cpl a %3: - jnz %4 + jnz %4 } by { - ; Peephole 115 jump optimization - cjne %1,%2,%3 - sjmp %4 + ; Peephole 115 jump optimization + cjne %1,%2,%3 + sjmp %4 %3: } if labelRefCount %3 1 replace { - clr a - cjne %1,%2,%3 - cjne %9,%10,%3 - cpl a + clr a + cjne %1,%2,%3 + cjne %9,%10,%3 + cpl a %3: - jnz %4 + jnz %4 } by { - ; Peephole 116 jump optimization - cjne %1,%2,%3 - cjne %9,%10,%3 - sjmp %4 + ; Peephole 116 jump optimization + cjne %1,%2,%3 + cjne %9,%10,%3 + sjmp %4 %3: } if labelRefCount %3 2 replace { - clr a - cjne %1,%2,%3 - cjne %9,%10,%3 - cjne %11,%12,%3 - cpl a + clr a + cjne %1,%2,%3 + cjne %9,%10,%3 + cjne %11,%12,%3 + cpl a %3: jnz %4 } by { - ; Peephole 117 jump optimization - cjne %1,%2,%3 - cjne %9,%10,%3 - cjne %11,%12,%3 - sjmp %4 + ; Peephole 117 jump optimization + cjne %1,%2,%3 + cjne %9,%10,%3 + cjne %11,%12,%3 + sjmp %4 %3: } if labelRefCount %3 3 replace { - clr a - cjne %1,%2,%3 - cjne %9,%10,%3 - cjne %11,%12,%3 - cjne %13,%14,%3 - cpl a + clr a + cjne %1,%2,%3 + cjne %9,%10,%3 + cjne %11,%12,%3 + cjne %13,%14,%3 + cpl a %3: - jnz %4 -} by { - ; Peephole 118 jump optimization - cjne %1,%2,%3 - cjne %9,%10,%3 - cjne %11,%12,%3 - cjne %13,%14,%3 - sjmp %4 + jnz %4 +} by { + ; Peephole 118 jump optimization + cjne %1,%2,%3 + cjne %9,%10,%3 + cjne %11,%12,%3 + cjne %13,%14,%3 + sjmp %4 %3: } if labelRefCount %3 4 replace { - mov a,#0x01 - cjne %1,%2,%3 - clr a + mov a,#0x01 + cjne %1,%2,%3 + clr a %3: - jnz %4 + jnz %4 } by { - ; Peephole 119 jump optimization - cjne %1,%2,%4 + ; Peephole 119 jump optimization + cjne %1,%2,%4 %3: } if labelRefCount %3 1 replace { - mov a,#0x01 - cjne %1,%2,%3 - cjne %10,%11,%3 - clr a + mov a,#0x01 + cjne %1,%2,%3 + cjne %10,%11,%3 + clr a %3: - jnz %4 + jnz %4 } by { - ; Peephole 120 jump optimization - cjne %1,%2,%4 - cjne %10,%11,%4 + ; Peephole 120 jump optimization + cjne %1,%2,%4 + cjne %10,%11,%4 %3: } if labelRefCount %3 2 replace { - mov a,#0x01 - cjne %1,%2,%3 - cjne %10,%11,%3 - cjne %12,%13,%3 - clr a + mov a,#0x01 + cjne %1,%2,%3 + cjne %10,%11,%3 + cjne %12,%13,%3 + clr a %3: jnz %4 } by { - ; Peephole 121 jump optimization - cjne %1,%2,%4 - cjne %10,%11,%4 - cjne %12,%13,%4 + ; Peephole 121 jump optimization + cjne %1,%2,%4 + cjne %10,%11,%4 + cjne %12,%13,%4 %3: } if labelRefCount %3 3 replace { - mov a,#0x01 - cjne %1,%2,%3 - cjne %10,%11,%3 - cjne %12,%13,%3 - cjne %14,%15,%3 - clr a + mov a,#0x01 + cjne %1,%2,%3 + cjne %10,%11,%3 + cjne %12,%13,%3 + cjne %14,%15,%3 + clr a %3: - jnz %4 + jnz %4 } by { - ; Peephole 122 jump optimization - cjne %1,%2,%4 - cjne %10,%11,%4 - cjne %12,%13,%4 - cjne %14,%15,%4 + ; Peephole 122 jump optimization + cjne %1,%2,%4 + cjne %10,%11,%4 + cjne %12,%13,%4 + cjne %14,%15,%4 %3: } if labelRefCount %3 4 replace { - mov a,#0x01 - cjne %1,%2,%3 - clr a + mov a,#0x01 + cjne %1,%2,%3 + clr a %3: - jz %4 + jz %4 } by { - ; Peephole 123 jump optimization - cjne %1,%2,%3 - smp %4 + ; Peephole 123 jump optimization + cjne %1,%2,%3 + smp %4 %3: } if labelRefCount %3 1 replace { - mov a,#0x01 - cjne %1,%2,%3 - cjne %10,%11,%3 - clr a + mov a,#0x01 + cjne %1,%2,%3 + cjne %10,%11,%3 + clr a %3: - jz %4 + jz %4 } by { - ; Peephole 124 jump optimization - cjne %1,%2,%3 - cjne %10,%11,%3 - sjmp %4 + ; Peephole 124 jump optimization + cjne %1,%2,%3 + cjne %10,%11,%3 + sjmp %4 %3: } if labelRefCount %3 2 replace { - mov a,#0x01 - cjne %1,%2,%3 - cjne %10,%11,%3 - cjne %12,%13,%3 - clr a + mov a,#0x01 + cjne %1,%2,%3 + cjne %10,%11,%3 + cjne %12,%13,%3 + clr a %3: - jz %4 + jz %4 } by { - ; Peephole 125 jump optimization - cjne %1,%2,%3 - cjne %10,%11,%3 - cjne %12,%13,%3 - sjmp %4 + ; Peephole 125 jump optimization + cjne %1,%2,%3 + cjne %10,%11,%3 + cjne %12,%13,%3 + sjmp %4 %3: } if labelRefCount %3 3 replace { - mov a,#0x01 - cjne %1,%2,%3 - cjne %10,%11,%3 - cjne %12,%13,%3 - cjne %14,%15,%3 - clr a + mov a,#0x01 + cjne %1,%2,%3 + cjne %10,%11,%3 + cjne %12,%13,%3 + cjne %14,%15,%3 + clr a %3: - jz %4 -} by { - ; Peephole 126 jump optimization - cjne %1,%2,%3 - cjne %10,%11,%3 - cjne %12,%13,%3 - cjne %14,%15,%3 - sjmp %4 + jz %4 +} by { + ; Peephole 126 jump optimization + cjne %1,%2,%3 + cjne %10,%11,%3 + cjne %12,%13,%3 + cjne %14,%15,%3 + sjmp %4 %3: } if labelRefCount %3 4 replace { - push psw - mov psw,%1 - push bp - mov bp,%2 + push psw + mov psw,%1 + push bp + mov bp,%2 %3: - mov %2,bp - pop bp - pop psw + mov %2,bp + pop bp + pop psw ret } by { - ; Peephole 127 removed misc sequence + ; Peephole 127 removed misc sequence ret } if labelRefCount %3 0 replace { - clr a - rlc a - jz %1 + clr a + rlc a + jz %1 } by { - ; Peephole 128 jump optimization - jnc %1 + ; Peephole 128 jump optimization + jnc %1 } replace { - clr a - rlc a - jnz %1 + clr a + rlc a + jnz %1 } by { - ; Peephole 129 jump optimization - jc %1 + ; Peephole 129 jump optimization + jc %1 } replace { - mov r%1,@r%2 + mov r%1,@r%2 } by { - ; Peephole 130 changed target address mode r%1 to ar%1 - mov ar%1,@r%2 + ; Peephole 130 changed target address mode r%1 to ar%1 + mov ar%1,@r%2 } replace { - mov a,%1 - subb a,#0x01 - mov %2,a - mov %1,%2 + mov a,%1 + subb a,#0x01 + mov %2,a + mov %1,%2 } by { - ; Peephole 131 optimized decrement (not caring for c) - dec %1 - mov %2,%1 + ; Peephole 131 optimized decrement (not caring for c) + dec %1 + mov %2,%1 } replace { - mov r%1,%2 - mov ar%3,@r%1 - inc r%3 - mov r%4,%2 - mov @r%4,ar%3 + mov r%1,%2 + mov ar%3,@r%1 + inc r%3 + mov r%4,%2 + mov @r%4,ar%3 } by { - ; Peephole 133 removed redundant moves - mov r%1,%2 - inc @r%1 - mov ar%3,@r%1 + ; Peephole 133 removed redundant moves + mov r%1,%2 + inc @r%1 + mov ar%3,@r%1 } replace { - mov r%1,%2 - mov ar%3,@r%1 - dec r%3 - mov r%4,%2 - mov @r%4,ar%3 + mov r%1,%2 + mov ar%3,@r%1 + dec r%3 + mov r%4,%2 + mov @r%4,ar%3 } by { - ; Peephole 134 removed redundant moves - mov r%1,%2 - dec @r%1 - mov ar%3,@r%1 + ; Peephole 134 removed redundant moves + mov r%1,%2 + dec @r%1 + mov ar%3,@r%1 } replace { - mov r%1,a - mov a,r%2 - orl a,r%1 + mov r%1,a + mov a,r%2 + orl a,r%1 } by { - ; Peephole 135 removed redundant mov - mov r%1,a - orl a,r%2 + ; Peephole 135 removed redundant mov + mov r%1,a + orl a,r%2 } replace { - mov %1,a - mov dpl,%2 - mov dph,%3 - mov a,%1 + mov %1,a + mov dpl,%2 + mov dph,%3 + mov a,%1 } by { - ; Peephole 136 removed redundant moves - mov %1,a - mov dpl,%2 - mov dph,%3 + ; Peephole 136 removed redundant moves + mov %1,a + mov dpl,%2 + mov dph,%3 } // WTF? Doesn't look sensible to me... @@ -583,410 +581,421 @@ replace { //} if labelRefCount %4 1 replace { - mov r%1,a - anl ar%1,%2 - mov a,r%1 + mov r%1,a + anl ar%1,%2 + mov a,r%1 } by { - ; Peephole 139 removed redundant mov - anl a,%2 - mov r%1,a + ; Peephole 139 removed redundant mov + anl a,%2 + mov r%1,a } replace { - mov r%1,a - orl ar%1,%2 - mov a,r%1 + mov r%1,a + orl ar%1,%2 + mov a,r%1 } by { - ; Peephole 140 removed redundant mov - orl a,%2 - mov r%1,a } + ; Peephole 140 removed redundant mov + orl a,%2 + mov r%1,a } replace { - mov r%1,a - xrl ar%1,%2 - mov a,r%1 + mov r%1,a + xrl ar%1,%2 + mov a,r%1 } by { - ; Peephole 141 removed redundant mov - xrl a,%2 - mov r%1,a + ; Peephole 141 removed redundant mov + xrl a,%2 + mov r%1,a } replace { - mov r%1,a - mov r%2,ar%1 - mov ar%1,@r%2 + mov r%1,a + mov r%2,ar%1 + mov ar%1,@r%2 } by { - ; Peephole 142 removed redundant moves - mov r%2,a - mov ar%1,@r%2 + ; Peephole 142 removed redundant moves + mov r%2,a + mov ar%1,@r%2 } replace { - rlc a - mov acc.0,c + rlc a + mov acc.0,c } by { - ; Peephole 143 converted rlc to rl - rl a + ; Peephole 143 converted rlc to rl + rl a } replace { - rrc a - mov acc.7,c + rrc a + mov acc.7,c } by { - ; Peephole 144 converted rrc to rc - rr a + ; Peephole 144 converted rrc to rc + rr a } replace { - clr c - addc a,%1 + clr c + addc a,%1 } by { - ; Peephole 145 changed to add without carry - add a,%1 + ; Peephole 145 changed to add without carry + add a,%1 } replace { - clr c - mov a,%1 - addc a,%2 + clr c + mov a,%1 + addc a,%2 } by { - ; Peephole 146 changed to add without carry - mov a,%1 - add a,%2 + ; Peephole 146 changed to add without carry + mov a,%1 + add a,%2 } replace { - orl r%1,a + orl r%1,a } by { - ; Peephole 147 changed target address mode r%1 to ar%1 - orl ar%1,a + ; Peephole 147 changed target address mode r%1 to ar%1 + orl ar%1,a } replace { - anl r%1,a + anl r%1,a } by { - ; Peephole 148 changed target address mode r%1 to ar%1 - anl ar%1,a + ; Peephole 148 changed target address mode r%1 to ar%1 + anl ar%1,a } replace { - xrl r%1,a + xrl r%1,a } by { - ; Peephole 149 changed target address mode r%1 to ar%1 - xrl ar%1,a + ; Peephole 149 changed target address mode r%1 to ar%1 + xrl ar%1,a } replace { - mov %1,dpl - mov dpl,%1 + mov %1,dpl + mov dpl,%1 %9: ret } by { - ; Peephole 150 removed misc moves via dpl before return + ; Peephole 150 removed misc moves via dpl before return %9: ret } replace { - mov %1,dpl - mov %2,dph - mov dpl,%1 - mov dph,%2 + mov %1,dpl + mov %2,dph + mov dpl,%1 + mov dph,%2 %9: ret } by { - ; Peephole 151 removed misc moves via dph, dpl before return + ; Peephole 151 removed misc moves via dph, dpl before return %9: ret } replace { - mov %1,dpl - mov %2,dph - mov dpl,%1 + mov %1,dpl + mov %2,dph + mov dpl,%1 %9: ret } by { - ; Peephole 152 removed misc moves via dph, dpl before return + ; Peephole 152 removed misc moves via dph, dpl before return %9: ret } replace { - mov %1,dpl - mov %2,dph - mov %3,b - mov dpl,%1 - mov dph,%2 - mov b,%3 + mov %1,dpl + mov %2,dph + mov %3,b + mov dpl,%1 + mov dph,%2 + mov b,%3 %9: ret } by { - ; Peephole 153 removed misc moves via dph, dpl, b before return + ; Peephole 153 removed misc moves via dph, dpl, b before return %9: ret } replace { - mov %1,dpl - mov %2,dph - mov %3,b - mov dpl,%1 + mov %1,dpl + mov %2,dph + mov %3,b + mov dpl,%1 %9: ret } by { - ; Peephole 154 removed misc moves via dph, dpl, b before return + ; Peephole 154 removed misc moves via dph, dpl, b before return %9: ret } replace { - mov %1,dpl - mov %2,dph - mov %3,b - mov dpl,%1 - mov dph,%2 + mov %1,dpl + mov %2,dph + mov %3,b + mov dpl,%1 + mov dph,%2 %9: ret } by { - ; Peephole 155 removed misc moves via dph, dpl, b before return + ; Peephole 155 removed misc moves via dph, dpl, b before return %9: ret } replace { - mov %1,dpl - mov %2,dph - mov %3,b - mov %4,a - mov dpl,%1 - mov dph,%2 - mov b,%3 - mov a,%4 + mov %1,dpl + mov %2,dph + mov %3,b + mov %4,a + mov dpl,%1 + mov dph,%2 + mov b,%3 + mov a,%4 %9: ret } by { - ; Peephole 156 removed misc moves via dph, dpl, b, a before return + ; Peephole 156 removed misc moves via dph, dpl, b, a before return %9: ret } replace { - mov %1,dpl - mov %2,dph - mov %3,b - mov %4,a - mov dpl,%1 - mov dph,%2 + mov %1,dpl + mov %2,dph + mov %3,b + mov %4,a + mov dpl,%1 + mov dph,%2 %9: ret } by { - ; Peephole 157 removed misc moves via dph, dpl, b, a before return + ; Peephole 157 removed misc moves via dph, dpl, b, a before return %9: ret } replace { - mov %1,dpl - mov %2,dph - mov %3,b - mov %4,a - mov dpl,%1 + mov %1,dpl + mov %2,dph + mov %3,b + mov %4,a + mov dpl,%1 %9: - ret } by { - ; Peephole 158 removed misc moves via dph, dpl, b, a before return + ret +} by { + ; Peephole 158 removed misc moves via dph, dpl, b, a before return %9: - ret } + ret +} replace { - mov %1,#%2 - xrl %1,#0x80 + mov %1,#%2 + xrl %1,#0x80 } by { - ; Peephole 159 avoided xrl during execution + ; Peephole 159 avoided xrl during execution mov %1,#(%2 ^ 0x80) } replace { - jnc %1 - sjmp %2 + jnc %1 + sjmp %2 %1: } by { - ; Peephole 160 removed sjmp by inverse jump logic - jc %2 -%1:} + ; Peephole 160 removed sjmp by inverse jump logic + jc %2 +%1: +} replace { - jc %1 - sjmp %2 + jc %1 + sjmp %2 %1: } by { - ; Peephole 161 removed sjmp by inverse jump logic - jnc %2 -%1:} + ; Peephole 161 removed sjmp by inverse jump logic + jnc %2 +%1: +} replace { - jnz %1 - sjmp %2 + jnz %1 + sjmp %2 %1: } by { - ; Peephole 162 removed sjmp by inverse jump logic - jz %2 -%1:} + ; Peephole 162 removed sjmp by inverse jump logic + jz %2 +%1: +} replace { - jz %1 - sjmp %2 + jz %1 + sjmp %2 %1: } by { - ; Peephole 163 removed sjmp by inverse jump logic - jnz %2 -%1:} + ; Peephole 163 removed sjmp by inverse jump logic + jnz %2 +%1: +} replace { - jnb %3,%1 - sjmp %2 + jnb %3,%1 + sjmp %2 %1: } by { - ; Peephole 164 removed sjmp by inverse jump logic - jb %3,%2 + ; Peephole 164 removed sjmp by inverse jump logic + jb %3,%2 %1: } replace { - jb %3,%1 - sjmp %2 + jb %3,%1 + sjmp %2 %1: } by { - ; Peephole 165 removed sjmp by inverse jump logic - jnb %3,%2 + ; Peephole 165 removed sjmp by inverse jump logic + jnb %3,%2 %1: } replace { - mov %1,%2 - mov %3,%1 - mov %2,%1 + mov %1,%2 + mov %3,%1 + mov %2,%1 } by { - ; Peephole 166 removed redundant mov - mov %1,%2 - mov %3,%1 } + ; Peephole 166 removed redundant mov + mov %1,%2 + mov %3,%1 +} replace { - mov c,%1 - cpl c - mov %1,c + mov c,%1 + cpl c + mov %1,c } by { - ; Peephole 167 removed redundant bit moves (c not set to %1) - cpl %1 } + ; Peephole 167 removed redundant bit moves (c not set to %1) + cpl %1 +} replace { - jnb %1,%2 - sjmp %3 -%2:} by { - ; Peephole 168 jump optimization - jb %1,%3 -%2:} + jnb %1,%2 + sjmp %3 +%2: +} by { + ; Peephole 168 jump optimization + jb %1,%3 +%2: +} replace { - jb %1,%2 - sjmp %3 -%2:} by { - ; Peephole 169 jump optimization - jnb %1,%3 -%2:} + jb %1,%2 + sjmp %3 +%2: +} by { + ; Peephole 169 jump optimization + jnb %1,%3 +%2: +} replace { - clr a - cjne %1,%2,%3 - cpl a + clr a + cjne %1,%2,%3 + cpl a %3: - jz %4 + jz %4 } by { - ; Peephole 170 jump optimization - cjne %1,%2,%4 + ; Peephole 170 jump optimization + cjne %1,%2,%4 %3: } if labelRefCount %3 1 replace { - clr a - cjne %1,%2,%3 - cjne %9,%10,%3 - cpl a + clr a + cjne %1,%2,%3 + cjne %9,%10,%3 + cpl a %3: - jz %4 + jz %4 } by { - ; Peephole 171 jump optimization - cjne %1,%2,%4 - cjne %9,%10,%4 + ; Peephole 171 jump optimization + cjne %1,%2,%4 + cjne %9,%10,%4 %3: } if labelRefCount %3 2 replace { - clr a - cjne %1,%2,%3 - cjne %9,%10,%3 - cjne %11,%12,%3 - cpl a + clr a + cjne %1,%2,%3 + cjne %9,%10,%3 + cjne %11,%12,%3 + cpl a %3: - jz %4 + jz %4 } by { - ; Peephole 172 jump optimization - cjne %1,%2,%4 - cjne %9,%10,%4 - cjne %11,%12,%4 + ; Peephole 172 jump optimization + cjne %1,%2,%4 + cjne %9,%10,%4 + cjne %11,%12,%4 %3: } if labelRefCount %3 3 replace { - clr a - cjne %1,%2,%3 - cjne %9,%10,%3 - cjne %11,%12,%3 - cjne %13,%14,%3 - cpl a + clr a + cjne %1,%2,%3 + cjne %9,%10,%3 + cjne %11,%12,%3 + cjne %13,%14,%3 + cpl a %3: - jz %4 + jz %4 } by { - ; Peephole 173 jump optimization - cjne %1,%2,%4 - cjne %9,%10,%4 - cjne %11,%12,%4 - cjne %13,%14,%4 + ; Peephole 173 jump optimization + cjne %1,%2,%4 + cjne %9,%10,%4 + cjne %11,%12,%4 + cjne %13,%14,%4 %3: } if labelRefCount %3 4 replace { - mov r%1,%2 - clr c - mov a,r%1 - subb a,#0x01 - mov %2,a + mov r%1,%2 + clr c + mov a,r%1 + subb a,#0x01 + mov %2,a } by { - ; Peephole 174 optimized decrement (acc not set to %2, flags undefined) - mov r%1,%2 - dec %2 + ; Peephole 174 optimized decrement (acc not set to %2, flags undefined) + mov r%1,%2 + dec %2 } - replace { - mov r%1,%2 - mov a,r%1 - add a,#0x01 - mov %2,a + mov r%1,%2 + mov a,r%1 + add a,#0x01 + mov %2,a } by { - ; Peephole 175 optimized increment (acc not set to %2, flags undefined) - mov r%1,%2 - inc %2 + ; Peephole 175 optimized increment (acc not set to %2, flags undefined) + mov r%1,%2 + inc %2 } replace { - mov %1,@r%2 - inc %1 - mov @r%2,%1 + mov %1,@r%2 + inc %1 + mov @r%2,%1 } by { - ; Peephole 176 optimized increment, removed redundant mov - inc @r%2 - mov %1,@r%2 + ; Peephole 176 optimized increment, removed redundant mov + inc @r%2 + mov %1,@r%2 } // this one will screw assignes to volatile/sfr's @@ -999,778 +1008,780 @@ replace { //} replace { - mov a,%1 - mov b,a - mov a,%2 + mov a,%1 + mov b,a + mov a,%2 } by { - ; Peephole 178 removed redundant mov - mov b,%1 - mov a,%2 + ; Peephole 178 removed redundant mov + mov b,%1 + mov a,%2 } // rules 179-182 provided by : Frieder // saving 2 byte, 1 cycle replace { - mov b,#0x00 - mov a,#0x00 + mov b,#0x00 + mov a,#0x00 } by { - ; Peephole 179 changed mov to clr - clr a - mov b,a + ; Peephole 179 changed mov to clr + clr a + mov b,a } // saving 1 byte, 0 cycles replace { - mov a,#0x00 + mov a,#0x00 } by { - ; Peephole 180 changed mov to clr - clr a + ; Peephole 180 changed mov to clr + clr a } // saving 3 byte, 2 cycles, return(NULL) profits here replace { - mov dpl,#0x00 - mov dph,#0x00 + mov dpl,#0x00 + mov dph,#0x00 } by { - ; Peephole 181 used 16 bit load of dptr - mov dptr,#0x0000 + ; Peephole 181 used 16 bit load of dptr + mov dptr,#0x0000 } // saving 3 bytes, 2 cycles // provided by Bernhard Held replace { - mov dpl,#%1 - mov dph,#(%1 >> 8) + mov dpl,#%1 + mov dph,#(%1 >> 8) } by { - ; Peephole 182a use 16 bit load of DPTR - mov dptr,#%1 + ; Peephole 182.a used 16 bit load of DPTR + mov dptr,#%1 } // saving 3 byte, 2 cycles, return(float_constant) profits here replace { - mov dpl,#%1 - mov dph,#%2 + mov dpl,#%1 + mov dph,#%2 } by { - ; Peephole 182 used 16 bit load of dptr - mov dptr,#(((%2)<<8) + %1) + ; Peephole 182 used 16 bit load of dptr + mov dptr,#(((%2)<<8) + %1) } replace { - anl %1,#%2 - anl %1,#%3 + anl %1,#%2 + anl %1,#%3 } by { - ; Peephole 183 avoided anl during execution - anl %1,#(%2 & %3) + ; Peephole 183 avoided anl during execution + anl %1,#(%2 & %3) } replace { - mov %1,a - cpl a - mov %1,a + mov %1,a + cpl a + mov %1,a } by { - ; Peephole 184 removed redundant mov - cpl a - mov %1,a + ; Peephole 184 removed redundant mov + cpl a + mov %1,a } replace { // acc being incremented might cause problems - mov %1,a - inc %1 -} by { - ; Peephole 185 changed order of increment (acc incremented also!) - inc a - mov %1,a -} - -replace { - add a,#%1 - mov dpl,a - clr a - addc a,#(%1 >> 8) - mov dph,a - clr a - movc a,@a+dptr - mov %2,a - inc dptr - clr a - movc a,@a+dptr - mov %3,a - inc dptr - clr a - movc a,@a+dptr - mov %4,a - inc dptr - clr a -} by { - ; Peephole 186.a optimized movc sequence - mov dptr,#%1 - mov b,acc - movc a,@a+dptr - mov %2,a - mov acc,b - inc dptr - movc a,@a+dptr - mov %3,a - mov acc,b - inc dptr - mov %4,a - mov acc,b - inc dptr -} - -replace { - add a,#%1 - mov dpl,a - clr a - addc a,#(%1 >> 8) - mov dph,a - clr a - movc a,@a+dptr - mov %2,a - inc dptr - clr a - movc a,@a+dptr - mov %3,a - inc dptr - clr a -} by { - ; Peephole 186.b optimized movc sequence - mov dptr,#%1 - mov b,acc - movc a,@a+dptr - mov %2,a - mov acc,b - inc dptr - movc a,@a+dptr - mov %3,a - mov acc,b - inc dptr -} - -replace { - add a,#%1 - mov dpl,a - clr a - addc a,#(%1 >> 8) - mov dph,a - clr a - movc a,@a+dptr - mov %2,a - inc dptr - clr a -} by { - ; Peephole 186.c optimized movc sequence - mov dptr,#%1 - mov b,acc - movc a,@a+dptr - mov %2,a - mov acc,b - inc dptr -} - -replace { - add a,#%1 - mov dpl,a - clr a - addc a,#(%1 >> 8) - mov dph,a - clr a - movc a,@a+dptr -} by { - ; Peephole 186 optimized movc sequence - mov dptr,#%1 - movc a,@a+dptr -} - -replace { - mov r%1,%2 - anl ar%1,#%3 - mov a,r%1 -} by { - ; Peephole 187 used a instead of ar%1 for anl - mov a,%2 - anl a,#%3 - mov r%1,a -} - -replace { - mov %1,a - mov dptr,%2 - movc a,@a+dptr - mov %1,a -} by { - ; Peephole 188 removed redundant mov - mov dptr,%2 - movc a,@a+dptr - mov %1,a -} - -replace { - anl a,#0x0f - mov %1,a - mov a,#0x0f - anl a,%1 + mov %1,a + inc %1 +} by { + ; Peephole 185 changed order of increment (acc incremented also!) + inc a + mov %1,a +} + +replace { + add a,#%1 + mov dpl,a + clr a + addc a,#(%1 >> 8) + mov dph,a + clr a + movc a,@a+dptr + mov %2,a + inc dptr + clr a + movc a,@a+dptr + mov %3,a + inc dptr + clr a + movc a,@a+dptr + mov %4,a + inc dptr + clr a } by { - ; Peephole 189 removed redundant mov and anl - anl a,#0x0f - mov %1,a + ; Peephole 186.a optimized movc sequence + mov dptr,#%1 + mov b,acc + movc a,@a+dptr + mov %2,a + mov acc,b + inc dptr + movc a,@a+dptr + mov %3,a + mov acc,b + inc dptr + mov %4,a + mov acc,b + inc dptr +} + +replace { + add a,#%1 + mov dpl,a + clr a + addc a,#(%1 >> 8) + mov dph,a + clr a + movc a,@a+dptr + mov %2,a + inc dptr + clr a + movc a,@a+dptr + mov %3,a + inc dptr + clr a +} by { + ; Peephole 186.b optimized movc sequence + mov dptr,#%1 + mov b,acc + movc a,@a+dptr + mov %2,a + mov acc,b + inc dptr + movc a,@a+dptr + mov %3,a + mov acc,b + inc dptr +} + +replace { + add a,#%1 + mov dpl,a + clr a + addc a,#(%1 >> 8) + mov dph,a + clr a + movc a,@a+dptr + mov %2,a + inc dptr + clr a +} by { + ; Peephole 186.c optimized movc sequence + mov dptr,#%1 + mov b,acc + movc a,@a+dptr + mov %2,a + mov acc,b + inc dptr +} + +replace { + add a,#%1 + mov dpl,a + clr a + addc a,#(%1 >> 8) + mov dph,a + clr a + movc a,@a+dptr +} by { + ; Peephole 186.d optimized movc sequence + mov dptr,#%1 + movc a,@a+dptr +} + +replace { + mov r%1,%2 + anl ar%1,#%3 + mov a,r%1 +} by { + ; Peephole 187 used a instead of ar%1 for anl + mov a,%2 + anl a,#%3 + mov r%1,a +} + +replace { + mov %1,a + mov dptr,%2 + movc a,@a+dptr + mov %1,a +} by { + ; Peephole 188 removed redundant mov + mov dptr,%2 + movc a,@a+dptr + mov %1,a +} + +replace { + anl a,#0x0f + mov %1,a + mov a,#0x0f + anl a,%1 +} by { + ; Peephole 189 removed redundant mov and anl + anl a,#0x0f + mov %1,a } // rules 190 & 191 need to be in order replace { - mov a,%1 - lcall __gptrput - mov a,%1 + mov a,%1 + lcall __gptrput + mov a,%1 } by { - ; Peephole 190 removed redundant mov - mov a,%1 - lcall __gptrput + ; Peephole 190 removed redundant mov + mov a,%1 + lcall __gptrput } replace { - mov %1,a - mov dpl,%2 - mov dph,%3 - mov b,%4 - mov a,%1 + mov %1,a + mov dpl,%2 + mov dph,%3 + mov b,%4 + mov a,%1 } by { - ; Peephole 191 removed redundant mov - mov %1,a - mov dpl,%2 - mov dph,%3 - mov b,%4 + ; Peephole 191 removed redundant mov + mov %1,a + mov dpl,%2 + mov dph,%3 + mov b,%4 } replace { - mov r%1,a - mov @r%2,ar%1 + mov r%1,a + mov @r%2,ar%1 } by { - ; Peephole 192 used a instead of ar%1 as source - mov r%1,a - mov @r%2,a + ; Peephole 192 used a instead of ar%1 as source + mov r%1,a + mov @r%2,a } replace { - jnz %3 - mov a,%4 - jnz %3 - mov a,%9 - jnz %3 - mov a,%12 - cjne %13,%14,%3 - sjmp %7 + jnz %3 + mov a,%4 + jnz %3 + mov a,%9 + jnz %3 + mov a,%12 + cjne %13,%14,%3 + sjmp %7 %3: - sjmp %8 -} by { - ; Peephole 193.a optimized misc jump sequence - jnz %8 - mov a,%4 - jnz %8 - mov a,%9 - jnz %8 - mov a,%12 - cjne %13,%14,%8 - sjmp %7 + sjmp %8 +} by { + ; Peephole 193.a optimized misc jump sequence + jnz %8 + mov a,%4 + jnz %8 + mov a,%9 + jnz %8 + mov a,%12 + cjne %13,%14,%8 + sjmp %7 ;%3: } if labelRefCount %3 4 replace { - cjne %1,%2,%3 - mov a,%4 - cjne %5,%6,%3 - mov a,%9 - cjne %10,%11,%3 - mov a,%12 - cjne %13,%14,%3 - sjmp %7 + cjne %1,%2,%3 + mov a,%4 + cjne %5,%6,%3 + mov a,%9 + cjne %10,%11,%3 + mov a,%12 + cjne %13,%14,%3 + sjmp %7 %3: - sjmp %8 -} by { - ; Peephole 193 optimized misc jump sequence - cjne %1,%2,%8 - mov a,%4 - cjne %5,%6,%8 - mov a,%9 - cjne %10,%11,%8 - mov a,%12 - cjne %13,%14,%8 - sjmp %7 + sjmp %8 +} by { + ; Peephole 193 optimized misc jump sequence + cjne %1,%2,%8 + mov a,%4 + cjne %5,%6,%8 + mov a,%9 + cjne %10,%11,%8 + mov a,%12 + cjne %13,%14,%8 + sjmp %7 ;%3: } if labelRefCount %3 4 replace { - cjne @%1,%2,%3 - inc %1 - cjne @%1,%6,%3 - inc %1 - cjne @%1,%11,%3 - inc %1 - cjne @%1,%14,%3 - sjmp %7 + cjne @%1,%2,%3 + inc %1 + cjne @%1,%6,%3 + inc %1 + cjne @%1,%11,%3 + inc %1 + cjne @%1,%14,%3 + sjmp %7 %3: - sjmp %8 -} by { - ; Peephole 193.a optimized misc jump sequence - cjne @%1,%2,%8 - inc %1 - cjne @%1,%6,%8 - inc %1 - cjne @%1,%11,%8 - inc %1 - cjne @%1,%14,%8 - sjmp %7 + sjmp %8 +} by { + ; Peephole 193.a optimized misc jump sequence + cjne @%1,%2,%8 + inc %1 + cjne @%1,%6,%8 + inc %1 + cjne @%1,%11,%8 + inc %1 + cjne @%1,%14,%8 + sjmp %7 ;%3: } if labelRefCount %3 4 replace { - cjne %1,%2,%3 - cjne %5,%6,%3 - cjne %10,%11,%3 - cjne %13,%14,%3 - sjmp %7 + cjne %1,%2,%3 + cjne %5,%6,%3 + cjne %10,%11,%3 + cjne %13,%14,%3 + sjmp %7 %3: - sjmp %8 -} by { - ; Peephole 194 optimized misc jump sequence - cjne %1,%2,%8 - cjne %5,%6,%8 - cjne %10,%11,%8 - cjne %13,%14,%8 - sjmp %7 + sjmp %8 +} by { + ; Peephole 194 optimized misc jump sequence + cjne %1,%2,%8 + cjne %5,%6,%8 + cjne %10,%11,%8 + cjne %13,%14,%8 + sjmp %7 ;%3: } if labelRefCount %3 4 replace { - jnz %3 - mov a,%4 - jnz %3 - mov a,%9 - cjne %10,%11,%3 - sjmp %7 + jnz %3 + mov a,%4 + jnz %3 + mov a,%9 + cjne %10,%11,%3 + sjmp %7 %3: - sjmp %8 -} by { - ; Peephole 195.a optimized misc jump sequence - jnz %8 - mov a,%4 - jnz %8 - mov a,%9 - cjne %10,%11,%8 - sjmp %7 + sjmp %8 +} by { + ; Peephole 195.a optimized misc jump sequence + jnz %8 + mov a,%4 + jnz %8 + mov a,%9 + cjne %10,%11,%8 + sjmp %7 ;%3: } if labelRefCount %3 3 replace { - cjne %1,%2,%3 - mov a,%4 - cjne %5,%6,%3 - mov a,%9 - cjne %10,%11,%3 - sjmp %7 + cjne %1,%2,%3 + mov a,%4 + cjne %5,%6,%3 + mov a,%9 + cjne %10,%11,%3 + sjmp %7 %3: - sjmp %8 -} by { - ; Peephole 195 optimized misc jump sequence - cjne %1,%2,%8 - mov a,%4 - cjne %5,%6,%8 - mov a,%9 - cjne %10,%11,%8 - sjmp %7 + sjmp %8 +} by { + ; Peephole 195.b optimized misc jump sequence + cjne %1,%2,%8 + mov a,%4 + cjne %5,%6,%8 + mov a,%9 + cjne %10,%11,%8 + sjmp %7 ;%3: } if labelRefCount %3 3 replace { - cjne @%1,%2,%3 - inc %1 - cjne @%1,%6,%3 - inc %1 - cjne @%1,%11,%3 - sjmp %7 + cjne @%1,%2,%3 + inc %1 + cjne @%1,%6,%3 + inc %1 + cjne @%1,%11,%3 + sjmp %7 %3: - sjmp %8 -} by { - ; Peephole 195.a optimized misc jump sequence - cjne @%1,%2,%8 - inc %1 - cjne @%1,%6,%8 - inc %1 - cjne @%1,%11,%8 - sjmp %7 + sjmp %8 +} by { + ; Peephole 195.c optimized misc jump sequence + cjne @%1,%2,%8 + inc %1 + cjne @%1,%6,%8 + inc %1 + cjne @%1,%11,%8 + sjmp %7 ;%3: } if labelRefCount %3 3 replace { - cjne %1,%2,%3 - cjne %5,%6,%3 - cjne %10,%11,%3 - sjmp %7 + cjne %1,%2,%3 + cjne %5,%6,%3 + cjne %10,%11,%3 + sjmp %7 %3: - sjmp %8 + sjmp %8 } by { - ; Peephole 196 optimized misc jump sequence - cjne %1,%2,%8 - cjne %5,%6,%8 - cjne %10,%11,%8 - sjmp %7 + ; Peephole 196 optimized misc jump sequence + cjne %1,%2,%8 + cjne %5,%6,%8 + cjne %10,%11,%8 + sjmp %7 ;%3: } if labelRefCount %3 3 replace { - jnz %3 - mov a,%4 - cjne %5,%6,%3 - sjmp %7 + jnz %3 + mov a,%4 + cjne %5,%6,%3 + sjmp %7 %3: - sjmp %8 + sjmp %8 } by { - ; Peephole 197.a optimized misc jump sequence - jnz %8 - mov a,%4 - cjne %5,%6,%8 - sjmp %7 + ; Peephole 197.a optimized misc jump sequence + jnz %8 + mov a,%4 + cjne %5,%6,%8 + sjmp %7 ;%3: } if labelRefCount %3 2 replace { - cjne %1,%2,%3 - mov a,%4 - cjne %5,%6,%3 - sjmp %7 + cjne %1,%2,%3 + mov a,%4 + cjne %5,%6,%3 + sjmp %7 %3: - sjmp %8 + sjmp %8 } by { - ; Peephole 197 optimized misc jump sequence - cjne %1,%2,%8 - mov a,%4 - cjne %5,%6,%8 - sjmp %7 + ; Peephole 197.b optimized misc jump sequence + cjne %1,%2,%8 + mov a,%4 + cjne %5,%6,%8 + sjmp %7 ;%3: } if labelRefCount %3 2 replace { - cjne @%1,%2,%3 - inc %1 - cjne @%1,%6,%3 - sjmp %7 + cjne @%1,%2,%3 + inc %1 + cjne @%1,%6,%3 + sjmp %7 %3: - sjmp %8 + sjmp %8 } by { - ; Peephole 197.a optimized misc jump sequence - cjne @%1,%2,%8 - inc %1 - cjne @%1,%6,%8 - sjmp %7 + ; Peephole 197.c optimized misc jump sequence + cjne @%1,%2,%8 + inc %1 + cjne @%1,%6,%8 + sjmp %7 ;%3: } if labelRefCount %3 2 replace { - cjne %1,%2,%3 - cjne %5,%6,%3 - sjmp %7 + cjne %1,%2,%3 + cjne %5,%6,%3 + sjmp %7 %3: - sjmp %8 + sjmp %8 } by { - ; Peephole 198 optimized misc jump sequence - cjne %1,%2,%8 - cjne %5,%6,%8 - sjmp %7 + ; Peephole 198 optimized misc jump sequence + cjne %1,%2,%8 + cjne %5,%6,%8 + sjmp %7 ;%3: } if labelRefCount %3 2 replace { - cjne %1,%2,%3 - sjmp %4 + cjne %1,%2,%3 + sjmp %4 %3: - sjmp %5 + sjmp %5 } by { - ; Peephole 199 optimized misc jump sequence - cjne %1,%2,%5 - sjmp %4 + ; Peephole 199 optimized misc jump sequence + cjne %1,%2,%5 + sjmp %4 ;%3: } if labelRefCount %3 1 replace { - sjmp %1 + sjmp %1 %1: } by { - ; Peephole 200 removed redundant sjmp + ; Peephole 200 removed redundant sjmp %1: } replace { - sjmp %1 + sjmp %1 %2: %1: } by { - ; Peephole 201 removed redundant sjmp + ; Peephole 201 removed redundant sjmp %2: %1: } replace { - push acc - mov dptr,%1 - pop acc + push acc + mov dptr,%1 + pop acc } by { - ; Peephole 202 removed redundant push pop - mov dptr,%1 + ; Peephole 202 removed redundant push pop + mov dptr,%1 } replace { - mov r%1,_spx - lcall %2 - mov r%1,_spx + mov r%1,_spx + lcall %2 + mov r%1,_spx } by { - ; Peephole 203 removed mov r%1,_spx - lcall %2 + ; Peephole 203 removed mov r%1,_spx + lcall %2 } replace { - mov %1,a - add a,acc - mov %1,a + mov %1,a + add a,acc + mov %1,a } by { - ; Peephole 204 removed redundant mov - add a,acc - mov %1,a + ; Peephole 204 removed redundant mov + add a,acc + mov %1,a } replace { - djnz %1,%2 - sjmp %3 + djnz %1,%2 + sjmp %3 %2: - sjmp %4 + sjmp %4 %3: } by { - ; Peephole 205 optimized misc jump sequence - djnz %1,%4 + ; Peephole 205 optimized misc jump sequence + djnz %1,%4 %2: %3: } if labelRefCount %2 1 replace { - mov %1,%1 + mov %1,%1 } by { - ; Peephole 206 removed redundant mov %1,%1 + ; Peephole 206 removed redundant mov %1,%1 } replace { - mov a,_bp - add a,#0x00 - mov %1,a + mov a,_bp + add a,#0x00 + mov %1,a } by { - ; Peephole 207 removed zero add (acc not set to %1, flags undefined) - mov %1,_bp + ; Peephole 207 removed zero add (acc not set to %1, flags undefined) + mov %1,_bp } replace { - push acc - mov r%1,_bp - pop acc + push acc + mov r%1,_bp + pop acc } by { - ; Peephole 208 removed redundant push pop - mov r%1,_bp + ; Peephole 208 removed redundant push pop + mov r%1,_bp } replace { - mov a,_bp - add a,#0x00 - inc a - mov %1,a + mov a,_bp + add a,#0x00 + inc a + mov %1,a } by { - ; Peephole 209 optimized increment (acc not set to %1, flags undefined) - mov %1,_bp - inc %1 + ; Peephole 209 optimized increment (acc not set to %1, flags undefined) + mov %1,_bp + inc %1 } replace { - mov dptr,#((((%1 >> 8)) <<8) + %1) + mov dptr,#((((%1 >> 8)) <<8) + %1) } by { - ; Peephole 210 simplified expression - mov dptr,#%1 + ; Peephole 210 simplified expression + mov dptr,#%1 } replace { - push %1 - pop %1 + push %1 + pop %1 } by { - ; Peephole 211 removed redundant push %1 pop %1 + ; Peephole 211 removed redundant push %1 pop %1 } replace { - mov a,_bp - add a,#0x01 - mov r%1,a + mov a,_bp + add a,#0x01 + mov r%1,a } by { - ; Peephole 212 reduced add sequence to inc - mov r%1,_bp - inc r%1 + ; Peephole 212 reduced add sequence to inc + mov r%1,_bp + inc r%1 } replace { - mov %1,#(( %2 >> 8 ) ^ 0x80) -} by { - mov %1,#(%2 >> 8) - xrl %1,#0x80 + mov %1,#(( %2 >> 8 ) ^ 0x80) +} by { + ; Peephole 213.a inserted fix + mov %1,#(%2 >> 8) + xrl %1,#0x80 } replace { - mov %1,#(( %2 + %3 >> 8 ) ^ 0x80) -} by { - mov %1,#((%2 + %3) >> 8) - xrl %1,#0x80 + mov %1,#(( %2 + %3 >> 8 ) ^ 0x80) +} by { + ; Peephole 213.b inserted fix + mov %1,#((%2 + %3) >> 8) + xrl %1,#0x80 } replace { - mov %1,a - mov a,%2 - add a,%1 + mov %1,a + mov a,%2 + add a,%1 } by { - ; Peephole 214 reduced some extra movs - mov %1,a - add a,%2 + ; Peephole 214 reduced some extra moves + mov %1,a + add a,%2 } if operandsNotSame replace { - mov %1,a - add a,%2 - mov %1,a + mov %1,a + add a,%2 + mov %1,a } by { - ; Peephole 215 removed some movs - add a,%2 - mov %1,a + ; Peephole 215 removed some moves + add a,%2 + mov %1,a } if operandsNotSame replace { - mov r%1,%2 - clr a - inc r%1 - mov @r%1,a - dec r%1 - mov @r%1,a + mov r%1,%2 + clr a + inc r%1 + mov @r%1,a + dec r%1 + mov @r%1,a } by { - ; Peephole 216 simplified clear (2bytes) - mov r%1,%2 - clr a - mov @r%1,a - inc r%1 - mov @r%1,a + ; Peephole 216 simplified clear (2bytes) + mov r%1,%2 + clr a + mov @r%1,a + inc r%1 + mov @r%1,a } replace { - mov r%1,%2 - clr a - inc r%1 - inc r%1 - mov @r%1,a - dec r%1 - mov @r%1,a - dec r%1 - mov @r%1,a -} by { - ; Peephole 217 simplified clear (3bytes) - mov r%1,%2 - clr a - mov @r%1,a - inc r%1 - mov @r%1,a - inc r%1 - mov @r%1,a + mov r%1,%2 + clr a + inc r%1 + inc r%1 + mov @r%1,a + dec r%1 + mov @r%1,a + dec r%1 + mov @r%1,a +} by { + ; Peephole 217 simplified clear (3bytes) + mov r%1,%2 + clr a + mov @r%1,a + inc r%1 + mov @r%1,a + inc r%1 + mov @r%1,a } replace { - mov r%1,%2 - clr a - inc r%1 - inc r%1 - inc r%1 - mov @r%1,a - dec r%1 - mov @r%1,a - dec r%1 - mov @r%1,a - dec r%1 - mov @r%1,a -} by { - ; Peephole 218 simplified clear (4bytes) - mov r%1,%2 - clr a - mov @r%1,a - inc r%1 - mov @r%1,a - inc r%1 - mov @r%1,a - inc r%1 - mov @r%1,a + mov r%1,%2 + clr a + inc r%1 + inc r%1 + inc r%1 + mov @r%1,a + dec r%1 + mov @r%1,a + dec r%1 + mov @r%1,a + dec r%1 + mov @r%1,a +} by { + ; Peephole 218 simplified clear (4bytes) + mov r%1,%2 + clr a + mov @r%1,a + inc r%1 + mov @r%1,a + inc r%1 + mov @r%1,a + inc r%1 + mov @r%1,a } replace { - clr a - movx @dptr,a - mov dptr,%1 - clr a - movx @dptr,a + clr a + movx @dptr,a + mov dptr,%1 + clr a + movx @dptr,a } by { - ; Peephole 219 removed redundant clear - clr a - movx @dptr,a - mov dptr,%1 - movx @dptr,a + ; Peephole 219 removed redundant clear + clr a + movx @dptr,a + mov dptr,%1 + movx @dptr,a } replace { - clr a - movx @dptr,a - mov dptr,%1 - movx @dptr,a - mov dptr,%2 - clr a - movx @dptr,a + clr a + movx @dptr,a + mov dptr,%1 + movx @dptr,a + mov dptr,%2 + clr a + movx @dptr,a } by { - ; Peephole 219a removed redundant clear - clr a - movx @dptr,a - mov dptr,%1 - movx @dptr,a - mov dptr,%2 - movx @dptr,a + ; Peephole 219.a removed redundant clear + clr a + movx @dptr,a + mov dptr,%1 + movx @dptr,a + mov dptr,%2 + movx @dptr,a } replace { - mov dps, #0x00 - mov dps, #0x01 + mov dps,#0x00 + mov dps,#0x01 } by { - ; Peephole 220a removed bogus DPS set - mov dps, #0x01 + ; Peephole 220.a removed bogus DPS set + mov dps,#0x01 } replace { - mov dps, #0x01 - mov dps, #0x00 + mov dps,#0x01 + mov dps,#0x00 } by { - ; Peephole 220b removed bogus DPS set - mov dps, #0x00 + ; Peephole 220.b removed bogus DPS set + mov dps,#0x00 } replace { - mov %1 + %2,(%2 + %1) + mov %1 + %2,(%2 + %1) } by { - ; Peephole 221a remove redundant move + ; Peephole 221.a remove redundant move } replace { - mov (%1 + %2 + %3),((%2 + %1) + %3) + mov (%1 + %2 + %3),((%2 + %1) + %3) } by { - ; Peephole 221b remove redundant move + ; Peephole 221.b remove redundant move } replace { - dec r%1 - inc r%1 + dec r%1 + inc r%1 } by { - ; removed dec/inc pair + ; Peephole 222 removed dec/inc pair } replace { @@ -1779,7 +1790,7 @@ replace { mov dpl,%1 mov dph,%2 } by { - ; Peephole 223 removed redundant dph/dpl moves + ; Peephole 223 removed redundant dph/dpl moves mov %1,dpl mov %2,dph } @@ -1790,7 +1801,7 @@ replace { mov dpl,%1 mov dph,(%1 + 1) } by { - ; Peephole 224 removed redundant dph/dpl moves + ; Peephole 224 removed redundant dph/dpl moves mov %1,dpl mov (%1 + 1),dph } @@ -1803,7 +1814,7 @@ replace { mov b,%4 mov a,%1 } by { - ; Peephole 225 removed redundant move to acc + ; Peephole 225 removed redundant move to acc mov a,%1 movx @dptr,a mov dpl,%2 @@ -1812,14 +1823,14 @@ replace { } replace { - clr a - movx @dptr,a - inc dptr - movx @dptr,a + clr a + movx @dptr,a + inc dptr + movx @dptr,a inc dptr - clr a + clr a } by { - ; Peephole 226 removed unnecessary clr + ; Peephole 226 removed unnecessary clr clr a movx @dptr,a inc dptr @@ -1841,7 +1852,7 @@ replace { lcall __decdptr movx @dptr,a } by { - ; Peephole 227 replaced inefficient 32 bit clear + ; Peephole 227 replaced inefficient 32 bit clear mov dptr,#%1 clr a movx @dptr,a @@ -1869,9 +1880,9 @@ replace { mov a,#%2 movx @dptr,a } by { - ; Peephole 228 replaced inefficient 32 constant + ; Peephole 228 replaced inefficient 32 constant mov dptr,#%1 - mov a, #%2 + mov a,#%2 movx @dptr,a inc dptr clr a @@ -1891,7 +1902,7 @@ replace { lcall __decdptr movx @dptr,a } by { - ; Peephole 229 replaced inefficient 16 bit clear + ; Peephole 229 replaced inefficient 16 bit clear mov dptr,#%1 clr a movx @dptr,a @@ -1909,7 +1920,7 @@ replace { mov a,#%2 movx @dptr,a } by { - ; Peephole 230 replaced inefficient 16 constant + ; Peephole 230 replaced inefficient 16 constant mov dptr,#%1 mov a,#%2 movx @dptr,a @@ -1924,14 +1935,14 @@ replace { mov dptr,#%1 mov dptr,#%2 } by { - ; Peephole 231 removed redundant mov to dptr + ; Peephole 231 removed redundant mov to dptr mov dptr,#%2 } replace { movx a,@dptr } by { - ; Peephole 232 using movc to read xdata (--xram-movc) + ; Peephole 232 using movc to read xdata (--xram-movc) clr a movc a,@a+dptr } if xramMovcOption @@ -1939,7 +1950,7 @@ replace { replace { lcall _gptrget } by { - ; Peephole 233 using _gptrgetc instead of _gptrget (--xram-movc) + ; Peephole 233 using _gptrgetc instead of _gptrget (--xram-movc) lcall _gptrgetc } if xramMovcOption @@ -1949,7 +1960,7 @@ replace { %2: ret } by { - ; Peephole 234 loading dpl directly from a(ccumulator) + ; Peephole 234 loading dpl directly from a(ccumulator), r%1 not set mov dpl,a %2: ret @@ -1962,7 +1973,7 @@ replace { %3: ret } by { - ; Peephole 235 loading dph directly from a(ccumulator) + ; Peephole 235 loading dph directly from a(ccumulator), r%1 not set mov dpl,r%2 mov dph,a %3: @@ -1972,101 +1983,101 @@ replace { // 14 rules by Fiorenzo D. Ramaglia replace { - add a,ar%1 + add a,ar%1 } by { - ; Peephole 236a - add a,r%1 + ; Peephole 236.a used r%1 instead of ar%1 + add a,r%1 } replace { - addc a,ar%1 + addc a,ar%1 } by { - ; Peephole 236b - addc a,r%1 + ; Peephole 236.b used r%1 instead of ar%1 + addc a,r%1 } replace { - anl a,ar%1 + anl a,ar%1 } by { - ; Peephole 236c - anl a,r%1 + ; Peephole 236.c used r%1 instead of ar%1 + anl a,r%1 } replace { - dec ar%1 + dec ar%1 } by { - ; Peephole 236d - dec r%1 + ; Peephole 236.d used r%1 instead of ar%1 + dec r%1 } replace { - djnz ar%1,%2 + djnz ar%1,%2 } by { - ; Peephole 236e - djnz r%1,%2 + ; Peephole 236.e used r%1 instead of ar%1 + djnz r%1,%2 } replace { - inc ar%1 + inc ar%1 } by { - ; Peephole 236f - inc r%1 + ; Peephole 236.f used r%1 instead of ar%1 + inc r%1 } replace { - mov a,ar%1 + mov a,ar%1 } by { - ; Peephole 236g - mov a,r%1 + ; Peephole 236.g used r%1 instead of ar%1 + mov a,r%1 } replace { - mov ar%1,#%2 + mov ar%1,#%2 } by { - ; Peephole 236h - mov r%1,#%2 + ; Peephole 236.h used r%1 instead of ar%1 + mov r%1,#%2 } replace { - mov ar%1,a + mov ar%1,a } by { - ; Peephole 236i - mov r%1,a + ; Peephole 236.i used r%1 instead of ar%1 + mov r%1,a } replace { - mov ar%1,ar%2 + mov ar%1,ar%2 } by { - ; Peephole 236j - mov r%1,ar%2 + ; Peephole 236.j used r%1 instead of ar%1 + mov r%1,ar%2 } replace { - orl a,ar%1 + orl a,ar%1 } by { - ; Peephole 236k - orl a,r%1 + ; Peephole 236.k used r%1 instead of ar%1 + orl a,r%1 } replace { - subb a,ar%1 + subb a,ar%1 } by { - ; Peephole 236l - subb a,r%1 + ; Peephole 236.l used r%1 instead of ar%1 + subb a,r%1 } replace { - xch a,ar%1 + xch a,ar%1 } by { - ; Peephole 236m - xch a,r%1 + ; Peephole 236.m used r%1 instead of ar%1 + xch a,r%1 } replace { - xrl a,ar%1 + xrl a,ar%1 } by { - ; Peephole 236n - xrl a,r%1 + ; Peephole 236.n used r%1 instead of ar%1 + xrl a,r%1 } replace { @@ -2076,7 +2087,7 @@ replace { %1: ret } by { - ; Peephole 237a removed sjmp to ret + ; Peephole 237.a removed sjmp to ret ret %2: mov %3,%4 @@ -2093,7 +2104,7 @@ replace { %1: ret } by { - ; Peephole 237b removed sjmp to ret + ; Peephole 237.b removed sjmp to ret ret %2: mov %3,%4 @@ -2114,7 +2125,7 @@ replace { mov %6,%14 mov %7,%15 mov %8,%16 - + mov %9,%1 mov %10,%2 mov %11,%3 @@ -2129,7 +2140,7 @@ replace { mov %6,%14 mov %7,%15 mov %8,%16 - ; Peephole 238a removed 4 redundant moves + ; Peephole 238.a removed 4 redundant moves } if operandsNotSame8 %1 %2 %3 %4 %5 %6 %7 %8 // applies to device/lib/log10f.c @@ -2147,7 +2158,7 @@ replace { mov %2,%6 mov %3,%7 mov %4,%8 - ; Peephole 238b removed 3 redundant moves + ; Peephole 238.b removed 3 redundant moves } if operandsNotSame7 %1 %2 %3 %4 %5 %6 %7 // applies to f.e. device/lib/time.c @@ -2157,7 +2168,7 @@ replace { mov %3,%7 mov %4,%8 - + mov %5,%1 mov %6,%2 } by { @@ -2166,7 +2177,7 @@ replace { mov %3,%7 mov %4,%8 - ; Peephole 238c removed 2 redundant moves + ; Peephole 238.c removed 2 redundant moves } if operandsNotSame4 %1 %2 %3 %4 // applies to f.e. support/regression/tests/bug-524209.c @@ -2174,7 +2185,7 @@ replace { mov %1,%4 mov %2,%5 mov %3,%6 - + mov %4,%1 mov %5,%2 mov %6,%3 @@ -2182,5 +2193,13 @@ replace { mov %1,%4 mov %2,%5 mov %3,%6 - ; Peephole 238d removed 3 redundant moves + ; Peephole 238.d removed 3 redundant moves } if operandsNotSame6 %1 %2 %3 %4 %5 %6 + +// applies to f.e. ser_ir.asm +replace { + mov r%1,acc +} by { + ; Peephole 239 used a instead of acc + mov r%1,a +} -- 2.47.2