]> git.sur5r.net Git - cc65/commitdiff
Replacement in OptShift3 is even possible, when X is used later.
authoruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sun, 8 Jul 2012 13:05:57 +0000 (13:05 +0000)
committeruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sun, 8 Jul 2012 13:05:57 +0000 (13:05 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@5773 b7a2c559-68d2-44c3-8de9-860c34a00d81

src/cc65/coptshift.c

index 4205783f9fdd965d085c0e6d1538be9709baf05f..7ec8155ea42ce08486e4fad1d2b5dc0d6c386aae 100644 (file)
@@ -381,7 +381,7 @@ unsigned OptShift3 (CodeSeg* S)
  *
  *      ror     a
  *
- * if X is zero on entry and unused later. For shift counts > 1, more
+ * if X is zero on entry. For shift counts > 1, more
  *
  *      shr     a
  *
@@ -413,9 +413,8 @@ unsigned OptShift3 (CodeSeg* S)
             L[2]->OPC == OP65_JSR                               &&
             (Shift = GetShift (L[2]->Arg)) != SHIFT_NONE        &&
             SHIFT_DIR (Shift) == SHIFT_DIR_RIGHT                &&
-            (Count = SHIFT_COUNT (Shift)) > 0                   &&
-           !RegXUsed (S, I+3)) {
-
+            (Count = SHIFT_COUNT (Shift)) > 0) {
+                                                
             /* Add the replacement insn instead */
             CodeEntry* X = NewCodeEntry (OP65_ROR, AM65_ACC, "a", 0, L[2]->LI);
             CS_InsertEntry (S, X, I+3);