]> git.sur5r.net Git - cc65/commitdiff
Generate LDY instead of INY whenever possible because this allows better
authorcuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sat, 5 Jun 2004 16:18:30 +0000 (16:18 +0000)
committercuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sat, 5 Jun 2004 16:18:30 +0000 (16:18 +0000)
detection of known patterns and is replaced by INY in a later step anyway.

git-svn-id: svn://svn.cc65.org/cc65/trunk@3098 b7a2c559-68d2-44c3-8de9-860c34a00d81

src/cc65/coptstop.c

index 57aa51b785ba6c39f67ef1d2b6910d2334974871..6eab4affe489094eeba79f7065799d242d7b96e0 100644 (file)
@@ -481,7 +481,13 @@ static unsigned Opt_staxspidx (StackOpData* D)
     /* Inline the store */
     X = NewCodeEntry (OP65_STA, AM65_ZP_INDY, D->ZPLo, 0, D->OpEntry->LI);
     InsertEntry (D, X, D->OpIndex+1);
-    X = NewCodeEntry (OP65_INY, AM65_IMP, 0, 0, D->OpEntry->LI);
+    if (RegValIsKnown (D->OpEntry->RI->In.RegY)) {
+        /* Value of Y is known */
+       const char* Arg = MakeHexArg (D->OpEntry->RI->In.RegY + 1);
+               X = NewCodeEntry (OP65_LDY, AM65_IMM, Arg, 0, D->OpEntry->LI);
+    } else {
+        X = NewCodeEntry (OP65_INY, AM65_IMP, 0, 0, D->OpEntry->LI);
+    }
     InsertEntry (D, X, D->OpIndex+2);
     if (RegValIsKnown (D->OpEntry->RI->In.RegX)) {
        /* Value of X is known */