X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Favr%2Fpeeph.rul;h=c40a8781a575408b5f5543ab6881143227d6726c;hb=f0d3e26f7b91a687dbf34c7e3f56be5f371e1a1e;hp=e69de29bb2d1d6434b8b29ae775ad8c2e48c5391;hpb=96b7f1d8d7ac55ee06d7669bf3bf845d8fe29ea6;p=fw%2Fsdcc diff --git a/src/avr/peeph.rul b/src/avr/peeph.rul index e69de29b..c40a8781 100644 --- a/src/avr/peeph.rul +++ b/src/avr/peeph.rul @@ -0,0 +1,1676 @@ +/* Generated file, DO NOT Edit! */ +/* To Make changes to rules edit */ +/* /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"