]> git.sur5r.net Git - cc65/commitdiff
Fixed optimizer bug in or/xor
authorcuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Wed, 2 Oct 2002 22:21:42 +0000 (22:21 +0000)
committercuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Wed, 2 Oct 2002 22:21:42 +0000 (22:21 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@1425 b7a2c559-68d2-44c3-8de9-860c34a00d81

src/cc65/coptstop.c

index 9466002ff5db1aa3155672d488bf294407ceed9f..697a0b5630433b80f2eff7bd7b2caf6d62559ce2 100644 (file)
@@ -403,7 +403,7 @@ static unsigned Opt_tosorax (CodeSeg* S, unsigned Push, unsigned Or,
     X = NewCodeEntry (OP65_STX, AM65_ZP, ZPHi, 0, PushEntry->LI);
     CS_InsertEntry (S, X, Push+1);
     ++Or;  /* Correct the index */
-    if (DirectOr) {
+    if (!DirectOr) {
        X = NewCodeEntry (OP65_STA, AM65_ZP, ZPLo, 0, PushEntry->LI);
        CS_InsertEntry (S, X, Push+1);
        ++Or;  /* Correct the index */
@@ -471,13 +471,13 @@ static unsigned Opt_tosxorax (CodeSeg* S, unsigned Push, unsigned Xor,
      * value in the zero page location.
      */
     DirectXor = (P->OPC == OP65_LDA &&
-                (P->AM == AM65_IMM || P->AM == AM65_ZP || P->AM == AM65_ABS));
+                (P->AM == AM65_IMM || P->AM == AM65_ZP || P->AM == AM65_ABS));
 
     /* Store the value into the zeropage instead of pushing it */
     X = NewCodeEntry (OP65_STX, AM65_ZP, ZPHi, 0, PushEntry->LI);
     CS_InsertEntry (S, X, Push+1);
     ++Xor;  /* Correct the index */
-    if (DirectXor) {
+    if (!DirectXor) {
        X = NewCodeEntry (OP65_STA, AM65_ZP, ZPLo, 0, PushEntry->LI);
        CS_InsertEntry (S, X, Push+1);
        ++Xor;  /* Correct the index */