-// ; Peephole 2 removed pop %1 push %1 (not push pop)
-// mov %2,%3
-//}
+//bogus test for pcode
+replace restart {
+ movf %1,w ;comment at end
+%4: movf %1,w
+ RETURN
+ clrf INDF
+ movlw 0xa5
+ movf fsr,w
+ incf indf,f
+ %2
+} by {
+ ; peep test remove redundant move
+%4: movf %1,w ;another comment
+ %2
+} if AYBABTU %3
+
// peep 1
replace restart {
- skpz
- goto %1
- incf %2,f
-%1:
+ movf %1,w
+ movwf %2
+ movf %2,w
} by {
- ;peep 1
- skpnz
- incf %2,f
-%1:
+ ; peep 1 - Removed redundant move
+ movf %1,w
+ movwf %2
}
-// like peep1
+// peep 2
replace restart {
- skpz
- goto %1
-%2:
- incf %3,f
-%1:
+ decf %1,f
+ movf %1,w
+ btfss status,z
+ goto %2
} by {
- ;peep 2
- skpnz
-%2:
- incf %3,f
-%1:
+ ; peep 2 - decf/mov/skpz to decfsz
+ decfsz %1,f
+ goto %2
}
+// peep 3
replace restart {
- skpnz
- goto %1
- incf %2,f
-%1:
+ movwf %1
+ movf %1,w
+ xorlw %2
} by {
- ;peep 3
- skpz
- incf %2,f
-%1:
+ ; peep 3 - redundant move
+ movwf %1
+ xorlw %2
}
+// peep 4
replace restart {
- skpnz
- goto %1
-%2:
- incf %3,f
-%1:
+ btfsc %1,%2
+ goto %3
+ incf %4,f
+%3:
} by {
- ;peep 4
- skpz
-%2:
- incf %3,f
-%1:
+ ;peep 4 - test/jump to test/skip
+ btfss %1,%2
+ incf %4,f
+%3:
}
+
// peep 5
replace restart {
- skpc
- goto %1
- incf %2,f
-%1:
+ btfss %1,%2
+ goto %3
+ incf %4,f
+%3:
} by {
- ;peep 5
- skpnc
- incf %2,f
-%1:
+ ;peep 5 - test/jump to test/skip
+ btfsc %1,%2
+ incf %4,f
+%3:
}
// peep 6
replace restart {
- skpnc
- goto %1
- incf %2,f
-%1:
+ btfss %1,%2
+ goto %3
+%4:
+ incf %5,f
+%3:
} by {
- ;peep 6
- skpc
- incf %2,f
-%1:
+ ;peep 6 - test/jump to test/skip
+ btfsc %1,%2
+%4:
+ incf %5,f
+%3:
}
+
+// peep 7
+replace restart {
+ btfsc %1,%2
+ goto %3
+%4:
+ incf %5,f
+%3:
+} by {
+ ;peep 6 - test/jump to test/skip
+ btfss %1,%2
+%4:
+ incf %5,f
+%3:
+}
+
+replace restart {
+ movf %1,w
+ movf %1,w
+} by {
+ ; peep 8 - Removed redundant move
+ movf %1,w
+}
+
+replace restart {
+ movwf %1
+ movf %1,w
+} by {
+ ; peep 9 - Removed redundant move
+ movwf %1
+}
+
+replace restart {
+ movlw %1
+ movwf %2
+ movlw %1
+} by {
+ ; peep 10 - Removed redundant move
+ movlw %1
+ movwf %2
+}
+
+replace restart {
+ movwf %1
+ movwf %1
+} by {
+ ; peep 11 - Removed redundant move
+ movwf %1
+}
+