Consolidate generic pointer code
[fw/sdcc] / src / avr / peeph.rul
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..c40a8781a575408b5f5543ab6881143227d6726c 100644 (file)
+/* Generated file, DO NOT Edit!  */
+/* To Make changes to rules edit */
+/* <port>/peeph.def instead.     */
+"\n"
+"\n"
+"replace restart {\n"
+"        xch  a,%1\n"
+"        xch  a,%1\n"
+"} by {\n"
+"        ; Peephole 2.a   removed redundant xch xch\n"
+"}\n"
+"\n"
+"replace restart {\n"
+"        mov  %1,#0x00\n"
+"        mov  a,#0x00\n"
+"} by {\n"
+"        ; Peephole 3.a   changed mov to clr\n"
+"        clr  a\n"
+"        mov  %1,a\n"
+"}\n"
+"\n"
+"replace restart {\n"
+"        mov  %1,#0x00\n"
+"        clr  a\n"
+"} by {\n"
+"        ; Peephole 3.b   changed mov to clr\n"
+"        clr  a\n"
+"        mov  %1,a\n"
+"}\n"
+"\n"
+"replace restart {\n"
+"        mov  %1,#0x00\n"
+"        mov  %2,#0x00\n"
+"        mov  a,%3\n"
+"} by {\n"
+"        ; Peephole 3.c   changed mov to clr\n"
+"        clr  a\n"
+"        mov  %1,a\n"
+"        mov  %2,a\n"
+"        mov  a,%3\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"replace {\n"
+"        mov  %1,a\n"
+"        mov  dptr,#%2\n"
+"        mov  a,%1\n"
+"        movx @dptr,a\n"
+"} by {\n"
+"        ; Peephole 100   removed redundant mov\n"
+"        mov  %1,a\n"
+"        mov  dptr,#%2\n"
+"        movx @dptr,a\n"
+"}\n"
+"\n"
+"replace {\n"
+"      mov  a,acc\n"
+"} by {\n"
+"      ;  Peephole 100.a   removed redundant mov\n"
+"}\n"
+"\n"
+"replace {\n"
+"        mov  a,%1\n"
+"        movx @dptr,a\n"
+"        inc  dptr\n"
+"        mov  a,%1\n"
+"        movx @dptr,a\n"
+"} by {\n"
+"        ; Peephole 101   removed redundant mov\n"
+"        mov  a,%1\n"
+"        movx @dptr,a\n"
+"        inc  dptr\n"
+"        movx @dptr,a\n"
+"}\n"
+"\n"
+"replace {\n"
+"        mov  %1,%2\n"
+"        ljmp %3\n"
+"%4:\n"
+"        mov  %1,%5\n"
+"%3:\n"
+"        mov  dpl,%1\n"
+"%7:\n"
+"        mov  sp,bp\n"
+"        pop  bp\n"
+"} by {\n"
+"        ; Peephole 102   removed redundant mov\n"
+"        mov  dpl,%2\n"
+"        ljmp %3\n"
+"%4:\n"
+"        mov  dpl,%5\n"
+"%3:\n"
+"%7:\n"
+"        mov  sp,bp\n"
+"        pop  bp\n"
+"}\n"
+"\n"
+"replace {\n"
+"        mov  %1,%2\n"
+"        ljmp %3\n"
+"%4:\n"
+"        mov  a%1,%5\n"
+"%3:\n"
+"        mov  dpl,%1\n"
+"%7:\n"
+"        mov  sp,bp\n"
+"        pop  bp\n"
+"} by {\n"
+"        ; Peephole 103   removed redundant mov\n"
+"        mov  dpl,%2\n"
+"        ljmp %3\n"
+"%4:\n"
+"        mov  dpl,%5\n"
+"%3:\n"
+"%7:\n"
+"        mov  sp,bp\n"
+"        pop  bp\n"
+"}\n"
+"\n"
+"replace {\n"
+"        mov  a,bp\n"
+"        clr  c\n"
+"        add  a,#0x01\n"
+"        mov  r%1,a\n"
+"} by {\n"
+"        ; Peephole 104   optimized increment (acc not set to r%1, flags undefined)\n"
+"        mov  r%1,bp\n"
+"        inc  r%1\n"
+"}\n"
+"\n"
+"replace {\n"
+"        mov  %1,a\n"
+"        mov  a,%1\n"
+"} by {\n"
+"        ; Peephole 105   removed redundant mov\n"
+"        mov  %1,a\n"
+"}\n"
+"\n"
+"replace {\n"
+"        mov  %1,a\n"
+"        clr  c\n"
+"        mov  a,%1\n"
+"} by {\n"
+"        ; Peephole 106   removed redundant mov \n"
+"        mov  %1,a\n"
+"        clr  c\n"
+"}\n"
+"\n"
+"replace {\n"
+"        ljmp %1\n"
+"%1:\n"
+"} by {\n"
+"        ; Peephole 107   removed redundant ljmp\n"
+"%1:\n"
+"}\n"
+"\n"
+"replace {\n"
+"        jc   %1\n"
+"        ljmp %5\n"
+"%1:\n"
+"} by {\n"
+"        ; Peephole 108   removed ljmp by inverse jump logic\n"
+"        jnc  %5\n"
+"%1:\n"
+"} if labelInRange\n"
+"\n"
+"replace {\n"
+"        jz   %1\n"
+"        ljmp %5\n"
+"%1:\n"
+"} by {\n"
+"        ; Peephole 109   removed ljmp by inverse jump logic\n"
+"        jnz  %5\n"
+"%1:\n"
+"} if labelInRange\n"
+"\n"
+"replace {\n"
+"        jnz  %1\n"
+"        ljmp %5\n"
+"%1:\n"
+"} by {\n"
+"        ; Peephole 110   removed ljmp by inverse jump logic\n"
+"        jz  %5\n"
+"%1:\n"
+"} if labelInRange\n"
+"\n"
+"replace {\n"
+"        jb   %1,%2\n"
+"        ljmp %5\n"
+"%2:\n"
+"} by {\n"
+"        ; Peephole 111   removed ljmp by inverse jump logic\n"
+"        jnb  %1,%5\n"
+"%2:\n"
+"} if labelInRange\n"
+"\n"
+"replace {\n"
+"        jnb  %1,%2\n"
+"        ljmp %5\n"
+"%2:\n"
+"} by {\n"
+"       ; Peephole 112   removed ljmp by inverse jump logic\n"
+"        jb   %1,%5\n"
+"%2:\n"
+"} if labelInRange\n"
+"\n"
+"replace {\n"
+"        ljmp %5\n"
+"%1:\n"
+"} by {\n"
+"        ; Peephole 132   changed ljmp to sjmp\n"
+"        sjmp %5\n"
+"%1:\n"
+"} if labelInRange\n"
+"\n"
+"\n"
+"replace {\n"
+"        clr  a\n"
+"        cjne %1,%2,%3\n"
+"        cpl  a\n"
+"%3:\n"
+"        rrc  a\n"
+"        mov  %4,c\n"
+"} by {\n"
+"        ; Peephole 113   optimized misc sequence\n"
+"        clr  %4\n"
+"        cjne %1,%2,%3\n"
+"        setb %4\n"
+"%3:\n"
+"}\n"
+"\n"
+"replace {\n"
+"        clr  a\n"
+"        cjne %1,%2,%3\n"
+"        cjne %10,%11,%3\n"
+"        cpl  a\n"
+"%3:\n"
+"        rrc  a\n"
+"        mov  %4,c\n"
+"} by {\n"
+"        ; Peephole 114   optimized misc sequence\n"
+"        clr  %4\n"
+"        cjne %1,%2,%3\n"
+"        cjne %10,%11,%3\n"
+"        setb %4\n"
+"%3:\n"
+"}\n"
+"\n"
+"replace {\n"
+"        clr  a\n"
+"        cjne %1,%2,%3\n"
+"        cpl  a\n"
+"%3:\n"
+"        jnz  %4\n"
+"} by {\n"
+"        ; Peephole 115   jump optimization \n"
+"        cjne %1,%2,%3\n"
+"        sjmp %4\n"
+"%3:\n"
+"}\n"
+"\n"
+"replace {\n"
+"        clr  a\n"
+"        cjne %1,%2,%3\n"
+"        cjne %9,%10,%3\n"
+"        cpl  a\n"
+"%3:\n"
+"        jnz  %4\n"
+"} by {\n"
+"        ; Peephole 116   jump optimization\n"
+"        cjne %1,%2,%3\n"
+"        cjne %9,%10,%3\n"
+"        sjmp %4\n"
+"%3:\n"
+"}\n"
+"\n"
+"replace {\n"
+"        clr  a\n"
+"        cjne %1,%2,%3\n"
+"        cjne %9,%10,%3\n"
+"        cjne %11,%12,%3\n"
+"        cpl  a\n"
+"%3:\n"
+"        jnz %4\n"
+"} by {\n"
+"        ; Peephole 117   jump optimization\n"
+"        cjne %1,%2,%3\n"
+"        cjne %9,%10,%3\n"
+"        cjne %11,%12,%3\n"
+"        sjmp %4\n"
+"%3:\n"
+"}\n"
+"\n"
+"replace {\n"
+"        clr  a\n"
+"        cjne %1,%2,%3\n"
+"        cjne %9,%10,%3\n"
+"        cjne %11,%12,%3\n"
+"        cjne %13,%14,%3\n"
+"        cpl  a\n"
+"%3:\n"
+"        jnz %4\n"
+"} by {\n"
+"        ; Peephole 118   jump optimization\n"
+"        cjne %1,%2,%3\n"
+"        cjne %9,%10,%3\n"
+"        cjne %11,%12,%3\n"
+"        cjne %13,%14,%3\n"
+"        sjmp %4\n"
+"%3:\n"
+"}\n"
+"replace {\n"
+"        mov  a,#0x01\n"
+"        cjne %1,%2,%3\n"
+"        clr  a\n"
+"%3:\n"
+"        jnz  %4\n"
+"} by {\n"
+"        ; Peephole 119   jump optimization\n"
+"        cjne %1,%2,%4\n"
+"%3:\n"
+"}\n"
+"\n"
+"replace {\n"
+"        mov  a,#0x01\n"
+"        cjne %1,%2,%3\n"
+"        cjne %10,%11,%3\n"
+"        clr  a\n"
+"%3:\n"
+"        jnz  %4\n"
+"} by {\n"
+"        ; Peephole 120   jump optimization\n"
+"        cjne %1,%2,%4\n"
+"        cjne %10,%11,%4\n"
+"%3:\n"
+"}\n"
+"replace {\n"
+"        mov  a,#0x01\n"
+"        cjne %1,%2,%3\n"
+"        cjne %10,%11,%3\n"
+"        cjne %12,%13,%3\n"
+"        clr  a\n"
+"%3:\n"
+"        jnz  %4\n"
+"} by {\n"
+"        ; Peephole 121   jump optimization\n"
+"        cjne %1,%2,%4\n"
+"        cjne %10,%11,%4\n"
+"        cjne %12,%13,%4\n"
+"%3:\n"
+"}\n"
+"\n"
+"replace {\n"
+"        mov  a,#0x01\n"
+"        cjne %1,%2,%3\n"
+"        cjne %10,%11,%3\n"
+"        cjne %12,%13,%3\n"
+"        cjne %14,%15,%3\n"
+"        clr  a\n"
+"%3:\n"
+"        jnz  %4\n"
+"} by {\n"
+"        ; Peephole 122   jump optimization\n"
+"        cjne %1,%2,%4\n"
+"        cjne %10,%11,%4\n"
+"        cjne %12,%13,%4\n"
+"        cjne %14,%15,%4\n"
+"%3:\n"
+"}\n"
+"\n"
+"replace {\n"
+"        mov  a,#0x01\n"
+"        cjne %1,%2,%3\n"
+"        clr  a\n"
+"%3:\n"
+"        jz   %4\n"
+"} by {\n"
+"        ; Peephole 123   jump optimization\n"
+"        cjne %1,%2,%3\n"
+"        smp  %4\n"
+"%3:\n"
+"}\n"
+"replace {\n"
+"        mov  a,#0x01\n"
+"        cjne %1,%2,%3\n"
+"        cjne %10,%11,%3\n"
+"        clr  a\n"
+"%3:\n"
+"        jz   %4\n"
+"} by {\n"
+"        ; Peephole 124   jump optimization\n"
+"        cjne %1,%2,%3\n"
+"        cjne %10,%11,%3\n"
+"        smp  %4\n"
+"%3:\n"
+"}\n"
+"\n"
+"replace {\n"
+"        mov  a,#0x01\n"
+"        cjne %1,%2,%3\n"
+"        cjne %10,%11,%3\n"
+"        cjne %12,%13,%3\n"
+"        clr  a\n"
+"%3:\n"
+"        jz   %4\n"
+"} by {\n"
+"        ; Peephole 125   jump optimization\n"
+"        cjne %1,%2,%3\n"
+"        cjne %10,%11,%3\n"
+"        cjne %12,%13,%3\n"
+"        sjmp %4\n"
+"%3:\n"
+"}\n"
+"\n"
+"replace {\n"
+"        mov  a,#0x01\n"
+"        cjne %1,%2,%3\n"
+"        cjne %10,%11,%3\n"
+"        cjne %12,%13,%3\n"
+"        cjne %14,%15,%3\n"
+"        clr  a\n"
+"%3:\n"
+"        jz   %4\n"
+"} by {\n"
+"        ; Peephole 126   jump optimization\n"
+"        cjne %1,%2,%3\n"
+"        cjne %10,%11,%3\n"
+"        cjne %12,%13,%3\n"
+"        cjne %14,%15,%3\n"
+"        sjmp %4\n"
+"%3:\n"
+"}\n"
+"\n"
+"replace {\n"
+"        push psw\n"
+"        mov  psw,%1\n"
+"        push bp\n"
+"        mov  bp,%2\n"
+"%3:\n"
+"        mov  %2,bp\n"
+"        pop  bp\n"
+"        pop  psw\n"
+"        ret\n"
+"} by {\n"
+"        ; Peephole 127   removed misc sequence\n"
+"        ret\n"
+"}\n"
+"\n"
+"replace {\n"
+"        clr  a\n"
+"        rlc  a\n"
+"        jz   %1\n"
+"} by {\n"
+"        ; Peephole 128   jump optimization\n"
+"        jnc  %1\n"
+"}\n"
+"\n"
+"replace {\n"
+"        clr  a\n"
+"        rlc  a\n"
+"        jnz  %1\n"
+"} by {\n"
+"        ; Peephole 129   jump optimization\n"
+"        jc   %1\n"
+"}\n"
+"\n"
+"replace { \n"
+"        mov  r%1,@r%2\n"
+"} by {\n"
+"        ; Peephole 130   changed target address mode r%1 to ar%1\n"
+"        mov  ar%1,@r%2\n"
+"}\n"
+"\n"
+"replace { \n"
+"        mov  a,%1\n"
+"        subb a,#0x01\n"
+"        mov  %2,a\n"
+"        mov  %1,%2\n"
+"} by {\n"
+"        ; Peephole 131   optimized decrement (not caring for c)\n"
+"        dec  %1         \n"
+"        mov  %2,%1      \n"
+"}\n"
+"\n"
+"replace {\n"
+"        mov  r%1,%2\n"
+"        mov  ar%3,@r%1\n"
+"        inc  r%3\n"
+"        mov  r%4,%2\n"
+"        mov  @r%4,ar%3\n"
+"} by {\n"
+"        ; Peephole 133   removed redundant moves\n"
+"        mov  r%1,%2\n"
+"        inc  @r%1\n"
+"        mov  ar%3,@r%1\n"
+"}\n"
+"\n"
+"replace {\n"
+"        mov  r%1,%2\n"
+"        mov  ar%3,@r%1\n"
+"        dec  r%3\n"
+"        mov  r%4,%2\n"
+"        mov  @r%4,ar%3\n"
+"} by {\n"
+"        ; Peephole 134   removed redundant moves\n"
+"        mov  r%1,%2\n"
+"        dec  @r%1\n"
+"        mov  ar%3,@r%1\n"
+"}\n"
+"\n"
+"replace {\n"
+"        mov  r%1,a\n"
+"        mov  a,r%2\n"
+"        orl  a,r%1\n"
+"} by {\n"
+"        ; Peephole 135   removed redundant mov\n"
+"        mov  r%1,a\n"
+"        orl  a,r%2\n"
+"}\n"
+"\n"
+"replace {\n"
+"        mov  %1,a\n"
+"        mov  dpl,%2\n"
+"        mov  dph,%3\n"
+"      mov  dpx,%4\n"
+"        mov  a,%1\n"
+"} by {\n"
+"        ; Peephole 136a   removed redundant moves\n"
+"        mov  %1,a\n"
+"        mov  dpl,%2\n"
+"        mov  dph,%3\n"
+"      mov  dpx,%4\n"
+"} if 24bitMode\n"
+"\n"
+"replace {\n"
+"        mov  %1,a\n"
+"        mov  dpl,%2\n"
+"        mov  dph,%3\n"
+"        mov  a,%1\n"
+"} by {\n"
+"        ; Peephole 136   removed redundant moves\n"
+"        mov  %1,a\n"
+"        mov  dpl,%2\n"
+"        mov  dph,%3\n"
+"}\n"
+"\n"
+"replace {\n"
+"        mov  b,#0x00\n"
+"        mov  a,%1\n"
+"        cjne %2,%3,%4\n"
+"        mov  b,#0x01\n"
+"%4:\n"
+"        mov  a,b\n"
+"        jz   %5\n"
+"} by {\n"
+"        ; Peephole 137   optimized misc jump sequence\n"
+"        mov  a,%1\n"
+"        cjne %2,%3,%5\n"
+"%4:\n"
+"}\n"
+"\n"
+"replace {\n"
+"        mov  b,#0x00\n"
+"        mov  a,%1\n"
+"        cjne %2,%3,%4\n"
+"        mov  b,#0x01\n"
+"%4:\n"
+"        mov  a,b\n"
+"        jnz  %5\n"
+"} by {\n"
+"        ; Peephole 138   optimized misc jump sequence\n"
+"        mov  a,%1\n"
+"        cjne %2,%3,%4\n"
+"        sjmp %5\n"
+"%4:\n"
+"}\n"
+"\n"
+"replace {\n"
+"        mov  r%1,a\n"
+"        anl  ar%1,%2\n"
+"        mov  a,r%1\n"
+"} by {\n"
+"        ; Peephole 139   removed redundant mov\n"
+"        anl  a,%2\n"
+"        mov  r%1,a\n"
+"}\n"
+"\n"
+"replace {\n"
+"        mov  r%1,a\n"
+"        orl  ar%1,%2\n"
+"        mov  a,r%1\n"
+"} by {\n"
+"        ; Peephole 140   removed redundant mov\n"
+"        orl  a,%2\n"
+"        mov  r%1,a }\n"
+"\n"
+"replace {\n"
+"        mov  r%1,a\n"
+"        xrl  ar%1,%2\n"
+"        mov  a,r%1\n"
+"} by {\n"
+"        ; Peephole 141   removed redundant mov\n"
+"        xrl  a,%2\n"
+"        mov  r%1,a\n"
+"}\n"
+"\n"
+"replace {\n"
+"        mov  r%1,a\n"
+"        mov  r%2,ar%1\n"
+"        mov  ar%1,@r%2\n"
+"} by {\n"
+"        ; Peephole 142   removed redundant moves\n"
+"        mov  r%2,a\n"
+"        mov  ar%1,@r%2\n"
+"}\n"
+"\n"
+"replace {\n"
+"        rlc  a\n"
+"        mov  acc.0,c\n"
+"} by {\n"
+"        ; Peephole 143   converted rlc to rl\n"
+"        rl   a\n"
+"}\n"
+"\n"
+"replace {\n"
+"        rrc  a\n"
+"        mov  acc.7,c\n"
+"} by {\n"
+"        ; Peephole 144   converted rrc to rc\n"
+"        rr   a\n"
+"}\n"
+"\n"
+"replace {\n"
+"        clr  c\n"
+"        addc a,%1\n"
+"} by {\n"
+"        ; Peephole 145   changed to add without carry  \n"
+"        add  a,%1\n"
+"}\n"
+"\n"
+"replace {\n"
+"        clr  c\n"
+"        mov  a,%1\n"
+"        addc a,%2\n"
+"} by {\n"
+"        ; Peephole 146   changed to add without carry\n"
+"        mov  a,%1\n"
+"        add  a,%2\n"
+"}\n"
+"\n"
+"replace {\n"
+"        orl  r%1,a\n"
+"} by {\n"
+"        ; Peephole 147   changed target address mode r%1 to ar%1\n"
+"        orl  ar%1,a\n"
+"}\n"
+"\n"
+"replace {\n"
+"        anl  r%1,a\n"
+"} by {\n"
+"        ; Peephole 148   changed target address mode r%1 to ar%1\n"
+"        anl  ar%1,a\n"
+"}\n"
+"\n"
+"replace {\n"
+"        xrl  r%1,a\n"
+"} by {\n"
+"        ; Peephole 149   changed target address mode r%1 to ar%1\n"
+"        xrl  ar%1,a\n"
+"}\n"
+"\n"
+"replace {\n"
+"        mov  %1,dpl\n"
+"        mov  dpl,%1\n"
+"%9:\n"
+"        ret\n"
+"} by {\n"
+"        ; Peephole 150   removed misc moves via dpl before return\n"
+"%9:\n"
+"        ret\n"
+"}\n"
+"\n"
+"replace {\n"
+"        mov  %1,dpl\n"
+"        mov  %2,dph\n"
+"        mov  dpl,%1\n"
+"        mov  dph,%2\n"
+"%9:\n"
+"        ret\n"
+"} by {\n"
+"        ; Peephole 151   removed misc moves via dph, dpl before return\n"
+"%9:\n"
+"        ret\n"
+"}\n"
+"\n"
+"replace {\n"
+"        mov  %1,dpl\n"
+"        mov  %2,dph\n"
+"        mov  dpl,%1\n"
+"%9:\n"
+"        ret\n"
+"} by {\n"
+"        ; Peephole 152   removed misc moves via dph, dpl before return\n"
+"%9:\n"
+"        ret\n"
+"}\n"
+"\n"
+"replace {\n"
+"        mov  %1,dpl\n"
+"        mov  %2,dph\n"
+"        mov  %3,b\n"
+"        mov  dpl,%1\n"
+"        mov  dph,%2\n"
+"        mov  b,%3\n"
+"%9:\n"
+"        ret\n"
+"} by {\n"
+"        ; Peephole 153   removed misc moves via dph, dpl, b before return\n"
+"%9:\n"
+"        ret\n"
+"}\n"
+"\n"
+"replace {\n"
+"        mov  %1,dpl\n"
+"        mov  %2,dph\n"
+"        mov  %3,b\n"
+"        mov  dpl,%1\n"
+"%9:\n"
+"        ret\n"
+"} by {\n"
+"        ; Peephole 154   removed misc moves via dph, dpl, b before return\n"
+"%9:\n"
+"        ret\n"
+"}\n"
+"\n"
+"replace {\n"
+"        mov  %1,dpl\n"
+"        mov  %2,dph\n"
+"        mov  %3,b\n"
+"        mov  dpl,%1\n"
+"        mov  dph,%2\n"
+"%9:\n"
+"        ret\n"
+"} by {\n"
+"        ; Peephole 155   removed misc moves via dph, dpl, b before return\n"
+"%9:\n"
+"        ret\n"
+"}\n"
+"\n"
+"replace {\n"
+"        mov  %1,dpl\n"
+"        mov  %2,dph\n"
+"        mov  %3,b\n"
+"        mov  %4,a\n"
+"        mov  dpl,%1\n"
+"        mov  dph,%2\n"
+"        mov  b,%3\n"
+"        mov  a,%4\n"
+"%9:\n"
+"        ret\n"
+"} by {\n"
+"        ; Peephole 156   removed misc moves via dph, dpl, b, a before return\n"
+"%9:\n"
+"        ret\n"
+"}\n"
+"\n"
+"replace {\n"
+"        mov  %1,dpl\n"
+"        mov  %2,dph\n"
+"        mov  %3,b\n"
+"        mov  %4,a\n"
+"        mov  dpl,%1\n"
+"        mov  dph,%2\n"
+"%9:\n"
+"        ret\n"
+"} by {\n"
+"        ; Peephole 157   removed misc moves via dph, dpl, b, a before return\n"
+"%9:\n"
+"        ret\n"
+"}\n"
+"\n"
+"replace {\n"
+"        mov  %1,dpl\n"
+"        mov  %2,dph\n"
+"        mov  %3,b\n"
+"        mov  %4,a\n"
+"        mov  dpl,%1\n"
+"%9:\n"
+"        ret } by {\n"
+"        ; Peephole 158   removed misc moves via dph, dpl, b, a before return\n"
+"%9:\n"
+"        ret }\n"
+"\n"
+"replace {\n"
+"        mov  %1,#%2\n"
+"        xrl  %1,#0x80\n"
+"} by {\n"
+"        ; Peephole 159   avoided xrl during execution\n"
+"        mov  %1,#(%2 ^ 0x80)\n"
+"}\n"
+"\n"
+"replace {\n"
+"        jnc  %1\n"
+"        sjmp %2\n"
+"%1:\n"
+"} by {\n"
+"        ; Peephole 160   removed sjmp by inverse jump logic\n"
+"        jc   %2\n"
+"%1:}\n"
+"\n"
+"replace {\n"
+"        jc   %1\n"
+"        sjmp %2\n"
+"%1:\n"
+"} by {\n"
+"        ; Peephole 161   removed sjmp by inverse jump logic\n"
+"        jnc  %2\n"
+"%1:}\n"
+"\n"
+"replace {\n"
+"        jnz  %1\n"
+"        sjmp %2\n"
+"%1:\n"
+"} by {\n"
+"        ; Peephole 162   removed sjmp by inverse jump logic\n"
+"        jz   %2\n"
+"%1:}\n"
+"\n"
+"replace {\n"
+"        jz   %1\n"
+"        sjmp %2\n"
+"%1:\n"
+"} by {\n"
+"        ; Peephole 163   removed sjmp by inverse jump logic\n"
+"        jnz  %2\n"
+"%1:}\n"
+"\n"
+"replace {\n"
+"        jnb  %3,%1\n"
+"        sjmp %2\n"
+"%1:\n"
+"} by {\n"
+"        ; Peephole 164   removed sjmp by inverse jump logic\n"
+"        jb   %3,%2\n"
+"%1:\n"
+"}\n"
+"\n"
+"replace {\n"
+"        jb   %3,%1\n"
+"        sjmp %2\n"
+"%1:\n"
+"} by {\n"
+"        ; Peephole 165   removed sjmp by inverse jump logic\n"
+"        jnb  %3,%2\n"
+"%1:\n"
+"}\n"
+"\n"
+"replace {\n"
+"        mov  %1,%2\n"
+"        mov  %3,%1\n"
+"        mov  %2,%1\n"
+"} by {\n"
+"        ; Peephole 166   removed redundant mov\n"
+"        mov  %1,%2\n"
+"        mov  %3,%1 }\n"
+"\n"
+"replace {\n"
+"        mov  c,%1\n"
+"        cpl  c\n"
+"        mov  %1,c\n"
+"} by {\n"
+"        ; Peephole 167   removed redundant bit moves (c not set to %1)\n"
+"        cpl  %1 }\n"
+"\n"
+"replace {\n"
+"        jnb  %1,%2\n"
+"        sjmp %3\n"
+"%2:} by {\n"
+"        ; Peephole 168   jump optimization\n"
+"        jb   %1,%3\n"
+"%2:}\n"
+"\n"
+"replace {\n"
+"        jb   %1,%2\n"
+"        sjmp %3\n"
+"%2:} by {\n"
+"        ; Peephole 169   jump optimization\n"
+"        jnb  %1,%3\n"
+"%2:}\n"
+"\n"
+"replace {\n"
+"        clr  a\n"
+"        cjne %1,%2,%3\n"
+"        cpl  a\n"
+"%3:\n"
+"        jz   %4\n"
+"} by {\n"
+"        ; Peephole 170   jump optimization\n"
+"        cjne %1,%2,%4\n"
+"%3:}\n"
+"\n"
+"replace {\n"
+"        clr  a\n"
+"        cjne %1,%2,%3\n"
+"        cjne %9,%10,%3\n"
+"        cpl  a\n"
+"%3:\n"
+"        jz   %4\n"
+"} by {\n"
+"        ; Peephole 171   jump optimization\n"
+"        cjne %1,%2,%4\n"
+"        cjne %9,%10,%4\n"
+"%3:}\n"
+"\n"
+"replace {\n"
+"        clr  a\n"
+"        cjne %1,%2,%3\n"
+"        cjne %9,%10,%3\n"
+"        cjne %11,%12,%3\n"
+"        cpl  a\n"
+"%3:\n"
+"        jz   %4\n"
+"} by {\n"
+"        ; Peephole 172   jump optimization\n"
+"        cjne %1,%2,%4\n"
+"        cjne %9,%10,%4\n"
+"        cjne %11,%12,%4\n"
+"%3:}\n"
+"\n"
+"replace {\n"
+"        clr  a\n"
+"        cjne %1,%2,%3\n"
+"        cjne %9,%10,%3\n"
+"        cjne %11,%12,%3\n"
+"        cjne %13,%14,%3\n"
+"        cpl  a\n"
+"%3:\n"
+"        jz   %4\n"
+"} by {\n"
+"        ; Peephole 173   jump optimization\n"
+"        cjne %1,%2,%4\n"
+"        cjne %9,%10,%4\n"
+"        cjne %11,%12,%4\n"
+"        cjne %13,%14,%4\n"
+"%3:}\n"
+"\n"
+"replace {\n"
+"        mov  r%1,%2\n"
+"        clr  c\n"
+"        mov  a,r%1\n"
+"        subb a,#0x01\n"
+"        mov  %2,a\n"
+"} by {\n"
+"        ; Peephole 174   optimized decrement (acc not set to %2, flags undefined)\n"
+"        mov  r%1,%2\n"
+"        dec  %2\n"
+"}\n"
+"\n"
+"\n"
+"replace {\n"
+"        mov  r%1,%2\n"
+"        mov  a,r%1\n"
+"        add  a,#0x01\n"
+"        mov  %2,a\n"
+"} by {\n"
+"        ; Peephole 175   optimized increment (acc not set to %2, flags undefined)\n"
+"        mov  r%1,%2\n"
+"        inc  %2\n"
+"}\n"
+"\n"
+"replace {\n"
+"        mov  %1,@r%2\n"
+"        inc  %1\n"
+"        mov  @r%2,%1\n"
+"} by {\n"
+"        ; Peephole 176   optimized increment, removed redundant mov\n"
+"        inc  @r%2\n"
+"        mov  %1,@r%2\n"
+"}\n"
+"\n"
+"replace {\n"
+"        mov  %1,%2\n"
+"        mov  %2,%1\n"
+"} by {\n"
+"        ; Peephole 177   removed redundant mov\n"
+"        mov  %1,%2\n"
+"}\n"
+"\n"
+"replace {\n"
+"        mov  a,%1\n"
+"        mov  b,a\n"
+"        mov  a,%2\n"
+"} by {\n"
+"        ; Peephole 178   removed redundant mov\n"
+"        mov  b,%1\n"
+"        mov  a,%2\n"
+"}\n"
+"\n"
+"replace {\n"
+"        mov  b,#0x00\n"
+"        mov  a,#0x00\n"
+"} by {\n"
+"        ; Peephole 179   changed mov to clr\n"
+"        clr  a\n"
+"        mov  b,a\n"
+"}\n"
+"\n"
+"replace {\n"
+"        mov  a,#0x00\n"
+"} by {\n"
+"        ; Peephole 180   changed mov to clr\n"
+"        clr  a\n"
+"}\n"
+"\n"
+"replace {\n"
+"        mov  dpl,#0x00\n"
+"        mov  dph,#0x00\n"
+"      mov  dpx,#0x00\n"
+"} by {\n"
+"        ; Peephole 181a   used 24 bit load of dptr\n"
+"        mov  dptr,#0x0000\n"
+"} if 24bitMode\n"
+"\n"
+"replace {\n"
+"        mov  dpl,#0x00\n"
+"        mov  dph,#0x00\n"
+"} by {\n"
+"        ; Peephole 181   used 16 bit load of dptr\n"
+"        mov  dptr,#0x0000\n"
+"}\n"
+"\n"
+"replace {\n"
+"        mov  dpl,#%1\n"
+"        mov  dph,#(%1 >> 8)\n"
+"      mov  dpx,#(%1 >> 16)\n"
+"} by {\n"
+"        ; Peephole 182a   used 24 bit load of dptr\n"
+"        mov  dptr,#%1\n"
+"} if 24bitMode\n"
+"\n"
+"replace {\n"
+"        mov  dpl,#%1\n"
+"        mov  dph,#%2\n"
+"} by {\n"
+"        ; Peephole 182   used 16 bit load of dptr\n"
+"        mov  dptr,#(((%2)<<8) + %1)\n"
+"}\n"
+"\n"
+"replace {\n"
+"        anl  %1,#%2\n"
+"        anl  %1,#%3\n"
+"} by {\n"
+"        ; Peephole 183   avoided anl during execution\n"
+"        anl  %1,#(%2 & %3)\n"
+"}\n"
+"\n"
+"replace {\n"
+"        mov  %1,a\n"
+"        cpl  a\n"
+"        mov  %1,a\n"
+"} by {\n"
+"        ; Peephole 184   removed redundant mov\n"
+"        cpl  a\n"
+"        mov  %1,a\n"
+"}\n"
+"\n"
+"replace {\n"
+"        mov  %1,a\n"
+"        inc  %1\n"
+"} by {\n"
+"        ; Peephole 185   changed order of increment (acc incremented also!)\n"
+"        inc  a\n"
+"        mov  %1,a\n"
+"}\n"
+"\n"
+"replace {\n"
+"        add  a,#%1\n"
+"        mov  dpl,a\n"
+"        clr  a\n"
+"        addc a,#(%1 >> 8)\n"
+"        mov  dph,a\n"
+"        clr  a\n"
+"        movc a,@a+dptr\n"
+"      mov  %2,a\n"
+"      inc  dptr\n"
+"      clr  a\n"
+"      movc a,@a+dptr\n"
+"      mov  %3,a\n"
+"      inc  dptr\n"
+"      clr  a\n"
+"      movc a,@a+dptr\n"
+"      mov  %4,a\n"
+"      inc  dptr\n"
+"      clr  a  \n"
+"} by {\n"
+"        ; Peephole 186.a   optimized movc sequence\n"
+"        mov  dptr,#%1\n"
+"      mov  b,acc\n"
+"        movc a,@a+dptr\n"
+"      mov  %2,a\n"
+"      mov  acc,b\n"
+"      inc  dptr       \n"
+"      movc a,@a+dptr\n"
+"      mov  %3,a\n"
+"      mov  acc,b\n"
+"      inc  dptr\n"
+"      mov  %4,a\n"
+"      mov  acc,b\n"
+"      inc  dptr\n"
+"}\n"
+"\n"
+"replace {\n"
+"        add  a,#%1\n"
+"        mov  dpl,a\n"
+"        clr  a\n"
+"        addc a,#(%1 >> 8)\n"
+"        mov  dph,a\n"
+"        clr  a\n"
+"        movc a,@a+dptr\n"
+"      mov  %2,a\n"
+"      inc  dptr\n"
+"      clr  a\n"
+"      movc a,@a+dptr\n"
+"      mov  %3,a\n"
+"      inc  dptr\n"
+"      clr  a\n"
+"} by {\n"
+"        ; Peephole 186.b   optimized movc sequence\n"
+"        mov  dptr,#%1\n"
+"      mov  b,acc\n"
+"        movc a,@a+dptr\n"
+"      mov  %2,a\n"
+"      mov  acc,b\n"
+"      inc  dptr       \n"
+"      movc a,@a+dptr\n"
+"      mov  %3,a\n"
+"      mov  acc,b\n"
+"      inc  dptr       \n"
+"}\n"
+"\n"
+"replace {\n"
+"        add  a,#%1\n"
+"        mov  dpl,a\n"
+"        clr  a\n"
+"        addc a,#(%1 >> 8)\n"
+"        mov  dph,a\n"
+"        clr  a\n"
+"        movc a,@a+dptr\n"
+"      mov  %2,a\n"
+"      inc  dptr\n"
+"      clr  a\n"
+"} by {\n"
+"        ; Peephole 186.c   optimized movc sequence\n"
+"        mov  dptr,#%1\n"
+"      mov  b,acc\n"
+"        movc a,@a+dptr\n"
+"      mov  %2,a\n"
+"      mov  acc,b\n"
+"      inc  dptr\n"
+"}\n"
+"\n"
+"replace {\n"
+"        add  a,#%1\n"
+"        mov  dpl,a\n"
+"        clr  a\n"
+"        addc a,#(%1 >> 8)\n"
+"        mov  dph,a\n"
+"        clr  a\n"
+"        movc a,@a+dptr\n"
+"} by {\n"
+"        ; Peephole 186   optimized movc sequence\n"
+"        mov  dptr,#%1\n"
+"        movc a,@a+dptr\n"
+"}\n"
+"\n"
+"replace {\n"
+"        mov  r%1,%2\n"
+"        anl  ar%1,#%3\n"
+"        mov  a,r%1\n"
+"} by {\n"
+"        ; Peephole 187   used a instead of ar%1 for anl\n"
+"        mov  a,%2\n"
+"        anl  a,#%3\n"
+"        mov  r%1,a\n"
+"}\n"
+"\n"
+"replace {\n"
+"        mov  %1,a\n"
+"        mov  dptr,%2\n"
+"        movc a,@a+dptr\n"
+"        mov  %1,a\n"
+"} by {\n"
+"        ; Peephole 188   removed redundant mov\n"
+"        mov  dptr,%2\n"
+"        movc a,@a+dptr\n"
+"        mov  %1,a\n"
+"}\n"
+"\n"
+"replace {\n"
+"        anl  a,#0x0f\n"
+"        mov  %1,a\n"
+"        mov  a,#0x0f\n"
+"        anl  a,%1\n"
+"} by {\n"
+"        ; Peephole 189   removed redundant mov and anl\n"
+"        anl  a,#0x0f\n"
+"        mov  %1,a\n"
+"}\n"
+"\n"
+"replace {\n"
+"        mov  a,%1\n"
+"        lcall __gptrput\n"
+"        mov  a,%1\n"
+"} by {\n"
+"        ; Peephole 190   removed redundant mov\n"
+"        mov  a,%1\n"
+"        lcall __gptrput\n"
+"}\n"
+"\n"
+"replace {\n"
+"        mov  %1,a\n"
+"        mov  dpl,%2\n"
+"        mov  dph,%3\n"
+"        mov  b,%4\n"
+"        mov  a,%1\n"
+"} by {\n"
+"        ; Peephole 191   removed redundant mov\n"
+"        mov  %1,a\n"
+"        mov  dpl,%2\n"
+"        mov  dph,%3\n"
+"        mov  b,%4\n"
+"}\n"
+"\n"
+"replace {\n"
+"        mov  r%1,a\n"
+"        mov  @r%2,ar%1\n"
+"} by {\n"
+"        ; Peephole 192   used a instead of ar%1 as source\n"
+"        mov  r%1,a\n"
+"        mov  @r%2,a\n"
+"}\n"
+"\n"
+"replace {\n"
+"        jnz  %3\n"
+"        mov  a,%4\n"
+"        jnz  %3\n"
+"        mov  a,%9\n"
+"        jnz  %3\n"
+"        mov  a,%12\n"
+"        cjne %13,%14,%3\n"
+"        sjmp %7\n"
+"%3:\n"
+"        sjmp %8\n"
+"} by {\n"
+"        ; Peephole 193.a optimized misc jump sequence\n"
+"        jnz  %8\n"
+"        mov  a,%4\n"
+"        jnz  %8\n"
+"        mov  a,%9\n"
+"        jnz  %8\n"
+"        mov  a,%12\n"
+"        cjne %13,%14,%8\n"
+"        sjmp %7\n"
+"%3:\n"
+"}\n"
+"\n"
+"replace {\n"
+"        cjne %1,%2,%3\n"
+"        mov  a,%4\n"
+"        cjne %5,%6,%3\n"
+"        mov  a,%9\n"
+"        cjne %10,%11,%3\n"
+"        mov  a,%12\n"
+"        cjne %13,%14,%3\n"
+"        sjmp %7\n"
+"%3:\n"
+"        sjmp %8\n"
+"} by {\n"
+"        ; Peephole 193   optimized misc jump sequence\n"
+"        cjne %1,%2,%8\n"
+"        mov  a,%4\n"
+"        cjne %5,%6,%8\n"
+"        mov  a,%9\n"
+"        cjne %10,%11,%8\n"
+"        mov  a,%12\n"
+"        cjne %13,%14,%8\n"
+"        sjmp %7\n"
+"%3:\n"
+"}\n"
+"\n"
+"replace {\n"
+"        cjne %1,%2,%3\n"
+"        cjne %5,%6,%3\n"
+"        cjne %10,%11,%3\n"
+"        cjne %13,%14,%3\n"
+"        sjmp %7\n"
+"%3:\n"
+"        sjmp %8\n"
+"} by {\n"
+"        ; Peephole 194   optimized misc jump sequence\n"
+"        cjne %1,%2,%8\n"
+"        cjne %5,%6,%8\n"
+"        cjne %10,%11,%8\n"
+"        cjne %13,%14,%8\n"
+"        sjmp %7\n"
+"%3:\n"
+"}\n"
+"\n"
+"replace {\n"
+"        jnz  %3\n"
+"        mov  a,%4\n"
+"        jnz  %3\n"
+"        mov  a,%9\n"
+"        cjne %10,%11,%3\n"
+"        sjmp %7\n"
+"%3:\n"
+"        sjmp %8\n"
+"} by {\n"
+"        ; Peephole 195.a optimized misc jump sequence\n"
+"        jnz  %8\n"
+"        mov  a,%4\n"
+"        jnz  %8\n"
+"        mov  a,%9\n"
+"        cjne %10,%11,%8\n"
+"        sjmp %7\n"
+"%3:\n"
+"}\n"
+"\n"
+"replace {\n"
+"        cjne %1,%2,%3\n"
+"        mov  a,%4\n"
+"        cjne %5,%6,%3\n"
+"        mov  a,%9\n"
+"        cjne %10,%11,%3\n"
+"        sjmp %7\n"
+"%3:\n"
+"        sjmp %8\n"
+"} by {\n"
+"        ; Peephole 195   optimized misc jump sequence\n"
+"        cjne %1,%2,%8\n"
+"        mov  a,%4\n"
+"        cjne %5,%6,%8\n"
+"        mov  a,%9\n"
+"        cjne %10,%11,%8\n"
+"        sjmp %7\n"
+"%3:\n"
+"}\n"
+"\n"
+"replace {\n"
+"        cjne %1,%2,%3\n"
+"        cjne %5,%6,%3\n"
+"        cjne %10,%11,%3\n"
+"        sjmp %7\n"
+"%3:\n"
+"        sjmp %8\n"
+"} by {\n"
+"        ; Peephole 196   optimized misc jump sequence\n"
+"        cjne %1,%2,%8\n"
+"        cjne %5,%6,%8\n"
+"        cjne %10,%11,%8\n"
+"        sjmp %7\n"
+"%3:\n"
+"}\n"
+"\n"
+"replace {\n"
+"        jnz  %3\n"
+"        mov  a,%4\n"
+"        cjne %5,%6,%3\n"
+"        sjmp %7\n"
+"%3:\n"
+"        sjmp %8 \n"
+"} by {\n"
+"        ; Peephole 197.a optimized misc jump sequence\n"
+"        jnz  %8\n"
+"        mov  a,%4\n"
+"        cjne %5,%6,%8\n"
+"        sjmp %7\n"
+"%3:     \n"
+"}\n"
+"\n"
+"replace {\n"
+"        cjne %1,%2,%3\n"
+"        mov  a,%4\n"
+"        cjne %5,%6,%3\n"
+"        sjmp %7\n"
+"%3:\n"
+"        sjmp %8\n"
+"} by {\n"
+"        ; Peephole 197   optimized misc jump sequence\n"
+"        cjne %1,%2,%8\n"
+"        mov  a,%4\n"
+"        cjne %5,%6,%8\n"
+"        sjmp %7\n"
+"%3:\n"
+"}\n"
+"\n"
+"replace {\n"
+"        cjne %1,%2,%3\n"
+"        cjne %5,%6,%3\n"
+"        sjmp %7\n"
+"%3:\n"
+"        sjmp %8\n"
+"} by {\n"
+"        ; Peephole 198   optimized misc jump sequence\n"
+"        cjne %1,%2,%8\n"
+"        cjne %5,%6,%8\n"
+"        sjmp %7\n"
+"%3:\n"
+"}\n"
+"\n"
+"replace {\n"
+"        cjne %1,%2,%3\n"
+"        sjmp %4\n"
+"%3:\n"
+"        sjmp %5\n"
+"} by {\n"
+"        ; Peephole 199   optimized misc jump sequence\n"
+"        cjne %1,%2,%5\n"
+"        sjmp %4\n"
+"%3:\n"
+"}\n"
+"\n"
+"replace {\n"
+"        sjmp %1\n"
+"%1:\n"
+"} by {\n"
+"        ; Peephole 200   removed redundant sjmp\n"
+"%1:\n"
+"}\n"
+"\n"
+"replace {\n"
+"        sjmp %1\n"
+"%2:\n"
+"%1:\n"
+"} by {\n"
+"        ; Peephole 201   removed redundant sjmp\n"
+"%2:\n"
+"%1:\n"
+"}\n"
+"\n"
+"replace {\n"
+"        push  acc\n"
+"        mov   dptr,%1\n"
+"        pop   acc\n"
+"} by {\n"
+"        ; Peephole 202   removed redundant push pop\n"
+"        mov   dptr,%1\n"
+"}\n"
+"\n"
+"replace {\n"
+"        mov  r%1,_spx\n"
+"        lcall %2\n"
+"        mov  r%1,_spx\n"
+"} by {\n"
+"        ; Peephole 203   removed mov  r%1,_spx\n"
+"        lcall %2\n"
+"}\n"
+"\n"
+"replace {\n"
+"        mov  %1,a\n"
+"        add  a,acc\n"
+"        mov  %1,a\n"
+"} by {\n"
+"        ; Peephole 204   removed redundant mov\n"
+"        add  a,acc\n"
+"        mov  %1,a\n"
+"}\n"
+"\n"
+"replace {\n"
+"        djnz %1,%2\n"
+"        sjmp  %3\n"
+"%2:\n"
+"        sjmp  %4\n"
+"%3:\n"
+"} by {\n"
+"        ; Peephole 205   optimized misc jump sequence\n"
+"        djnz %1,%4\n"
+"%2:\n"
+"%3:\n"
+"}\n"
+"\n"
+"replace {\n"
+"        mov  %1,%1\n"
+"} by {\n"
+"        ; Peephole 206   removed redundant mov %1,%1\n"
+"}\n"
+"\n"
+"replace {\n"
+"        mov  a,_bp\n"
+"        add  a,#0x00\n"
+"        mov  %1,a\n"
+"} by {\n"
+"        ; Peephole 207   removed zero add (acc not set to %1, flags undefined)\n"
+"        mov  %1,_bp\n"
+"}\n"
+"\n"
+"replace {\n"
+"        push  acc\n"
+"        mov   r%1,_bp\n"
+"        pop   acc\n"
+"} by {\n"
+"        ; Peephole 208   removed redundant push pop\n"
+"        mov   r%1,_bp\n"
+"}\n"
+"\n"
+"replace {\n"
+"        mov  a,_bp\n"
+"        add  a,#0x00\n"
+"        inc  a\n"
+"        mov  %1,a\n"
+"} by {\n"
+"        ; Peephole 209   optimized increment (acc not set to %1, flags undefined)\n"
+"        mov  %1,_bp\n"
+"        inc  %1\n"
+"}\n"
+"\n"
+"replace {\n"
+"        mov  dptr,#((((%1 >> 16)) <<16) + (((%1 >> 8)) <<8) + %1)\n"
+"} by {\n"
+"        ; Peephole 210a   simplified expression\n"
+"        mov  dptr,#%1\n"
+"} if 24bitMode\n"
+"\n"
+"replace {\n"
+"        mov  dptr,#((((%1 >> 8)) <<8) + %1)\n"
+"} by {\n"
+"        ; Peephole 210   simplified expression\n"
+"        mov  dptr,#%1\n"
+"}\n"
+"\n"
+"replace {\n"
+"        push %1\n"
+"        pop  %1\n"
+"} by {\n"
+"        ; Peephole 211   removed redundant push %1 pop %1  \n"
+"} \n"
+"\n"
+"replace {\n"
+"      mov  a,_bp\n"
+"      add  a,#0x01\n"
+"      mov  r%1,a\n"
+"} by {\n"
+"      ; Peephole 212  reduced add sequence to inc\n"
+"      mov  r%1,_bp\n"
+"      inc  r%1\n"
+"}\n"
+"\n"
+"replace {\n"
+"      mov  %1,#(( %2 >> 8 ) ^ 0x80)\n"
+"} by {        \n"
+"      mov  %1,#(%2 >> 8)\n"
+"      xrl  %1,#0x80\n"
+"}\n"
+"\n"
+"replace {\n"
+"      mov  %1,#(( %2 + %3 >> 8 ) ^ 0x80)\n"
+"} by {        \n"
+"      mov  %1,#((%2 + %3) >> 8)\n"
+"      xrl  %1,#0x80\n"
+"}\n"
+"\n"
+"replace  {\n"
+"      mov  %1,a\n"
+"      mov  a,%2\n"
+"      add  a,%1\n"
+"} by {\n"
+"      ; Peephole 214 reduced some extra movs\n"
+"      mov  %1,a\n"
+"      add  a,%2       \n"
+"} if operandsNotSame\n"
+"\n"
+"replace {\n"
+"      mov  %1,a\n"
+"      add  a,%2\n"
+"      mov  %1,a\n"
+"} by {\n"
+"      ; Peephole 215 removed some movs\n"
+"      add  a,%2\n"
+"      mov  %1,a\n"
+"} if operandsNotSame\n"
+"\n"
+"replace {\n"
+"      mov   r%1,%2\n"
+"      clr   a\n"
+"      inc   r%1\n"
+"      mov   @r%1,a\n"
+"      dec   r%1\n"
+"      mov   @r%1,a\n"
+"} by {\n"
+"      ; Peephole 216 simplified clear (2bytes)\n"
+"      mov   r%1,%2\n"
+"      clr   a\n"
+"      mov   @r%1,a\n"
+"      inc   r%1\n"
+"      mov   @r%1,a\n"
+"}\n"
+"\n"
+"replace {\n"
+"      mov   r%1,%2\n"
+"      clr   a\n"
+"      inc   r%1\n"
+"      inc   r%1\n"
+"      mov   @r%1,a\n"
+"      dec   r%1\n"
+"      mov   @r%1,a\n"
+"      dec   r%1\n"
+"      mov   @r%1,a\n"
+"} by {\n"
+"      ; Peephole 217 simplified clear (3bytes)\n"
+"      mov   r%1,%2\n"
+"      clr   a\n"
+"      mov   @r%1,a\n"
+"      inc   r%1\n"
+"      mov   @r%1,a\n"
+"      inc   r%1\n"
+"      mov   @r%1,a\n"
+"}\n"
+"\n"
+"replace {\n"
+"      mov   r%1,%2\n"
+"      clr   a\n"
+"      inc   r%1\n"
+"      inc   r%1\n"
+"      inc   r%1\n"
+"      mov   @r%1,a\n"
+"      dec   r%1\n"
+"      mov   @r%1,a\n"
+"      dec   r%1\n"
+"      mov   @r%1,a\n"
+"      dec   r%1\n"
+"      mov   @r%1,a\n"
+"} by {\n"
+"      ; Peephole 218 simplified clear (4bytes)\n"
+"      mov   r%1,%2\n"
+"      clr   a\n"
+"      mov   @r%1,a\n"
+"      inc   r%1\n"
+"      mov   @r%1,a\n"
+"      inc   r%1\n"
+"      mov   @r%1,a\n"
+"      inc   r%1\n"
+"      mov   @r%1,a\n"
+"}\n"
+"\n"
+"replace {\n"
+"      clr   a\n"
+"      movx  @dptr,a\n"
+"      mov   dptr,%1\n"
+"      clr   a\n"
+"      movx  @dptr,a\n"
+"} by {\n"
+"      ; Peephole 219 removed redundant clear\n"
+"      clr   a\n"
+"      movx  @dptr,a\n"
+"      mov   dptr,%1\n"
+"      movx  @dptr,a\n"
+"}\n"
+"\n"
+"replace {\n"
+"      clr   a\n"
+"      movx  @dptr,a\n"
+"      mov   dptr,%1\n"
+"      movx  @dptr,a\n"
+"      mov   dptr,%2\n"
+"      clr   a\n"
+"      movx  @dptr,a\n"
+"} by {\n"
+"      ; Peephole 219a removed redundant clear\n"
+"      clr   a\n"
+"      movx  @dptr,a\n"
+"      mov   dptr,%1\n"
+"      movx  @dptr,a\n"
+"      mov   dptr,%2\n"
+"      movx  @dptr,a\n"
+"}\n"