]> git.sur5r.net Git - cc65/commitdiff
Fixed a problem with a memcpy optimization (source and target have been
authoruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sat, 28 Jul 2012 12:26:57 +0000 (12:26 +0000)
committeruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sat, 28 Jul 2012 12:26:57 +0000 (12:26 +0000)
swapped).

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

src/cc65/stdfunc.c

index 1490d59d0b446c3ec18c46c1706d46468338964d..d1db93b15a8da61eddad0bd4d59b83961a0ec03a 100644 (file)
@@ -477,15 +477,15 @@ static void StdFunc_memcpy (FuncDesc* F attribute ((unused)), ExprDesc* Expr)
         if (Arg3.Expr.IVal <= 127) {
             AddCodeLine ("ldy #$%02X", (unsigned char) (Arg3.Expr.IVal - 1));
             g_defcodelabel (Label);
-            AddCodeLine ("lda (ptr1),y");
-            AddCodeLine ("sta (sp),y");
+            AddCodeLine ("lda (sp),y");
+            AddCodeLine ("sta (ptr1),y");
             AddCodeLine ("dey");
             AddCodeLine ("bpl %s", LocalLabelName (Label));
         } else {
             AddCodeLine ("ldy #$00");
             g_defcodelabel (Label);
-            AddCodeLine ("lda (ptr1),y");
-            AddCodeLine ("sta (sp),y");
+            AddCodeLine ("lda (sp),y");
+            AddCodeLine ("sta (ptr1),y");
             AddCodeLine ("iny");
             AddCodeLine ("cpy #$%02X", (unsigned char) Arg3.Expr.IVal);
             AddCodeLine ("bne %s", LocalLabelName (Label));