|
@@ -65,6 +65,15 @@ move.l DREG,A : ANY A,X
|
|
|
{reg_subs_allowed(ANY) &&
|
|
|
!is_dreg(A) } -> move.l DREG,A : ANY DREG,X ;
|
|
|
|
|
|
+cmp.b A,A : beq LAB -> bra LAB ;
|
|
|
+cmp.w A,A : beq LAB -> bra LAB ;
|
|
|
+cmp.l A,A : beq LAB -> bra LAB ;
|
|
|
+
|
|
|
+/* cannot delete cmp's because they affect condition codes (obvious, but ... )*/
|
|
|
+cmp.b A,A : bne LAB -> cmp.b A,A ;
|
|
|
+cmp.w A,A : bne LAB -> cmp.w A,A ;
|
|
|
+cmp.l A,A : bne LAB -> cmp.l A,A ;
|
|
|
+
|
|
|
/* change some compares to tests */
|
|
|
cmp.w #0,X : beq LAB -> tst.w X : beq LAB ;
|
|
|
cmp.w #0,X : bne LAB -> tst.w X : bne LAB ;
|