mov r%3,a
}
+// unsigned char i=8; do{ } while(--i != 0);
+// this applies if i is kept in a register
+replace {
+ dec %1
+ cjne %1,#0x00,%2
+} by {
+ ; Peephole 253.a optimized decrement with compare
+ djnz %1,%2
+} if notVolatile(%1)
+
+// unsigned char i=8; do{ } while(--i != 0);
+// this applies if i is kept in data memory
+// must come before 256, see bug 1721024
+replace {
+ dec %1
+ mov a,%1
+ jnz %2
+} by {
+ ; Peephole 253.b optimized decrement with compare
+ djnz %1,%2
+} if notVolatile(%1), operandsNotRelated(%1 '@r0' '@r1')
+
+
// applies to f.e. funptrs.c
// saves one byte if %1 is a register or @register
replace {
} if labelRefCount(%2 0),operandsNotRelated('a' %4 %6 %8)
-// unsigned char i=8; do{ } while(--i != 0);
-// this applies if i is kept in a register
-replace {
- dec %1
- cjne %1,#0x00,%2
-} by {
- ; Peephole 257.a optimized decrement with compare
- djnz %1,%2
-} if notVolatile(%1)
-
-//// unsigned char i=8; do{ } while(--i != 0);
-//// this applies if i is kept in data memory
-// Disabled because together with 256.c it causes bug #1721024
-//replace {
-// dec %1
-// mov a,%1
-// jnz %2
-//} by {
-// ; Peephole 257.b optimized decrement with compare
-// djnz %1,%2
-//} if notVolatile(%1), operandsNotRelated(%1 '@r0' '@r1')
-
-
// in_byte<<=1; if(in_bit) in_byte|=1;
// helps f.e. reading data on a 3-wire (SPI) bus
replace {