]> git.sur5r.net Git - cc65/commitdiff
Relax the precondition for OPtStackOps somewhat.
authoruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Fri, 28 Aug 2009 09:29:11 +0000 (09:29 +0000)
committeruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Fri, 28 Aug 2009 09:29:11 +0000 (09:29 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@4060 b7a2c559-68d2-44c3-8de9-860c34a00d81

src/cc65/coptstop.c

index f59d22d1abd3e3c2a27dfd0fa4ceb8679f3b70af..65b2ea4b26b90a17e2a5bbee038b96eb3a06185f 100644 (file)
@@ -1302,9 +1302,6 @@ static int PreCondOk (StackOpData* D)
     } else if ((D->UsedRegs & REG_SREG) == REG_NONE) {
         D->ZPLo = "sreg";
         D->ZPHi = "sreg+1";
-    } else if ((D->UsedRegs & REG_PTR1) == REG_NONE) {
-        D->ZPLo = "ptr1";
-        D->ZPHi = "ptr1+1";
     } else if ((D->UsedRegs & REG_PTR2) == REG_NONE) {
         D->ZPLo = "ptr2";
         D->ZPHi = "ptr2+1";
@@ -1418,7 +1415,7 @@ unsigned OptStackOps (CodeSeg* S)
                         TrackLoads (&Data.Rhs, E, I);
                     }
 
-                } else if (E->Info & OF_STORE) {
+                } else if (E->Info & OF_STORE && (E->Chg & REG_ZP) == 0) {
 
                     /* Too dangerous - there may be a change of a variable
                      * within the sequence.