1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-08-02 09:29:35 +00:00

Improved fragment generation further. Rules need clean-up soon to improve efficiency.

This commit is contained in:
Jesper Gravgaard 2018-01-18 23:21:31 +01:00
parent c7b6989c6c
commit eadf85a048
23 changed files with 24795 additions and 28677 deletions

View File

@ -31,7 +31,7 @@ public class Compiler {
}
final CharStream fileStream = CharStreams.fromPath(file.toPath());
imported.add(file.getAbsolutePath());
program.getLog().append("PARSING " + file.getPath());
program.getLog().append("PARSING " + file.getPath().replace("\\","/"));
program.getLog().append(fileStream.toString());
KickCLexer lexer = new KickCLexer(fileStream);
KickCParser parser = new KickCParser(new CommonTokenStream(lexer));

View File

@ -1,7 +1,5 @@
package dk.camelot64.kickc.fragment;
import dk.camelot64.kickc.CompileLog;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@ -214,118 +212,149 @@ class AsmFragmentTemplateSynthesisRule {
mapSToU.put("vwsc2", "vwuc2");
mapSToU.put("vwsc3", "vwuc3");
// AA/XX/YY/Z1 is an RValue
String rvalAa = ".*=.*aa.*|.*_.*aa.*|...aa_(lt|gt|le|ge|eq|neq)_.*";
String rvalXx = ".*=.*xx.*|.*_.*xx.*|...xx_(lt|gt|le|ge|eq|neq)_.*";
String rvalYy = ".*=.*yy.*|.*_.*yy.*|...yy_(lt|gt|le|ge|eq|neq)_.*";
String rvalZ1 = ".*=.*z1.*|.*_.*z1.*|...z1_(lt|gt|le|ge|eq|neq)_.*";
String rvalZ2 = ".*=.*z2.*|.*_.*z2.*|...z2_(lt|gt|le|ge|eq|neq)_.*";
String lvalDerefZ1 = ".*_deref_...z1=.*";
String lvalDerefIdxAa = ".*_derefidx_...aa=.*";
String lvalDerefIdxZ1 = ".*_derefidx_...z1=.*";
String lvalDerefIdxZ2 = ".*_derefidx_...z2=.*";
// AA/XX/YY/Z1 is an LValue
String lvalAa = "...aa=.*";
String lvalXx = "...xx=.*";
String lvalYy = "...yy=.*";
String lvalZ1 = "...z1=.*";
String lvalZ2 = "...z2=.*";
String lvalZ3 = "...z3=.*";
// Multiple occurences of Z1/...
String twoZ1 = ".*z1.*z1.*";
String twoZ2 = ".*z2.*z2.*";
String twoZ3 = ".*z3.*z3.*";
String twoC1 = ".*c1.*c1.*";
String twoC2 = ".*c2.*c2.*";
String threeZ1 = ".*z1.*z1.*z1.*";
String threeZ2 = ".*z2.*z2.*z2.*";
String threeAa = ".*aa.*aa.*aa.*";
// Presence of unwanted single symbols
String oneZ2 = ".*z2.*";
String derefC1 = ".*c1_deref.*";
List<AsmFragmentTemplateSynthesisRule> synths = new ArrayList<>();
// NEW STYLE REWRITES - Utilizes that all combinations are tried
// Replace first AA with XX
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)aa(.*)", "...aa=.*|.*xx.*", "tax", "$1xx$2", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)aa(.*)", lvalAa+"|"+rvalXx, "tax", "$1xx$2", null, null));
// Replace two AAs with XX
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)aa(.*vb.)aa(.*)", "...aa=.*|.*xx.*", "tax", "$1xx$2xx$3", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)aa(.*vb.)aa(.*)", lvalAa+"|"+rvalXx, "tax", "$1xx$2xx$3", null, null));
// Replace second (not first) AA with XX
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)aa(.*vb.)aa(.*)", "...aa=.*|.*xx.*", "tax", "$1aa$2xx$3", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)aa(.*vb.)aa(.*)", lvalAa+"|"+rvalXx, "tax", "$1aa$2xx$3", null, null));
// Replace two AAs with XX (not assigned)
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*vb.)aa(.*vb.)aa(.*)", ".*xx.*", "tax", "$1=$2xx$3xx$4", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*vb.)aa(.*vb.)aa(.*)", rvalXx, "tax", "$1=$2xx$3xx$4", null, null));
// Replace first AA with YY
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)aa(.*)", "...aa=.*|.*yy.*", "tay", "$1yy$2", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)aa(.*)", lvalAa+"|"+rvalYy, "tay", "$1yy$2", null, null));
// Replace second (not first) AA with YY
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)aa(.*vb.)aa(.*)", "...aa=.*|.*yy.*", "tay", "$1aa$2yy$3", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)aa(.*vb.)aa(.*)", lvalAa+"|"+rvalYy, "tay", "$1aa$2yy$3", null, null));
// Replace two AAs with YY
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)aa(.*vb.)aa(.*)", "...aa=.*|.*yy.*", "tay", "$1yy$2yy$3", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)aa(.*vb.)aa(.*)", lvalAa+"|"+rvalYy, "tay", "$1yy$2yy$3", null, null));
// Replace two AAs with YY (not assigned)
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*vb.)aa(.*vb.)aa(.*)", ".*yy.*", "tay", "$1=$2yy$3yy$4", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*vb.)aa(.*vb.)aa(.*)", rvalYy, "tay", "$1=$2yy$3yy$4", null, null));
// Replace first XX with AA
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)xx(.*)", "...xx=.*|.*aa.*", "txa", "$1aa$2", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)xx(.*)", lvalXx+"|"+rvalAa, "txa", "$1aa$2", null, null));
// Replace two XXs with AA
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)xx(.*vb.)xx(.*)", "...xx=.*|.*aa.*", "txa", "$1aa$2aa$3", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)xx(.*vb.)xx(.*)", lvalXx+"|"+rvalAa, "txa", "$1aa$2aa$3", null, null));
// Replace second (not first) XX with AA
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)xx(.*vb.)xx(.*)", "...xx=.*|.*aa.*", "txa", "$1xx$2aa$3", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)xx(.*vb.)xx(.*)", lvalXx+"|"+rvalAa, "txa", "$1xx$2aa$3", null, null));
// Replace two XXs with AA (not assigned)
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*vb.)xx(.*vb.)xx(.*)", ".*aa.*", "txa", "$1=$2aa$3aa$4", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*vb.)xx(.*vb.)xx(.*)", rvalAa, "txa", "$1=$2aa$3aa$4", null, null));
// Replace first YY with AA
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)yy(.*)", "...yy=.*|.*aa.*", "tya", "$1aa$2", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)yy(.*)", lvalYy+"|"+rvalAa, "tya", "$1aa$2", null, null));
// Replace two YYs with AA
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)yy(.*vb.)yy(.*)", "...yy=.*|.*aa.*", "tya", "$1aa$2aa$3", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)yy(.*vb.)yy(.*)", lvalYy+"|"+rvalAa, "tya", "$1aa$2aa$3", null, null));
// Replace second (not first) YY with AA
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)yy(.*vb.)yy(.*)", "...yy=.*|.*aa.*", "tya", "$1yy$2aa$3", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)yy(.*vb.)yy(.*)", lvalYy+"|"+rvalAa, "tya", "$1yy$2aa$3", null, null));
// Replace two YYs with AA (not assigned)
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*vb.)yy(.*vb.)yy(.*)", ".*aa.*", "tya", "$1=$2aa$3aa$4", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*vb.)yy(.*vb.)yy(.*)", rvalAa, "tya", "$1=$2aa$3aa$4", null, null));
// Replace Z1 with AA (only one)
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)z1(.*)", "...z1=.*|.*z1.*z1.*|.*aa.*", "lda {z1}", "$1aa$2", null, mapZ));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)z1(.*)", lvalZ1+"|"+rvalAa+"|"+ twoZ1, "lda {z1}", "$1aa$2", null, mapZ));
// Replace two Z1s with AA
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)z1(.*vb.)z1(.*)", "...z1=.*|.*z1.*z1.*z1.*|.*aa.*", "lda {z1}", "$1aa$2aa$3", null, mapZ));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)z1(.*vb.)z1(.*)", lvalZ1+"|"+rvalAa+"|"+ threeZ1, "lda {z1}", "$1aa$2aa$3", null, mapZ));
// Replace first (not second) Z1 with AA
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)z1(.*)z1(.*)", "...z1=.*|.*aa.*", "lda {z1}", "$1aa$2z1$3", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)z1(.*)z1(.*)", lvalZ1+"|"+rvalAa, "lda {z1}", "$1aa$2z1$3", null, null));
// Replace second (not first) Z1 with AA
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)z1(.*vb.)z1(.*)", "...z1=.*|.*aa.*", "lda {z1}", "$1z1$2aa$3", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)z1(.*vb.)z1(.*)", lvalZ1+"|"+rvalAa, "lda {z1}", "$1z1$2aa$3", null, null));
// Replace non-assigned Z1 with AA
synths.add(new AsmFragmentTemplateSynthesisRule("(...aa)=(.*vb.)z1(.*)", ".*z1.*z1.*|.*=.*aa.*", "lda {z1}", "$1=$2aa$3", null, mapZ));
synths.add(new AsmFragmentTemplateSynthesisRule("(...aa)=(.*vb.)z1(.*)", rvalAa+"|"+ twoZ1, "lda {z1}", "$1=$2aa$3", null, mapZ));
// Replace assigned Z1 with AA
synths.add(new AsmFragmentTemplateSynthesisRule("(vb.)z1=(.*)", ".*z1.*z1.*", null, "$1aa=$2", "sta {z1}", mapZ));
synths.add(new AsmFragmentTemplateSynthesisRule("(vb.)z1=(.*)", twoZ1, null, "$1aa=$2", "sta {z1}", mapZ));
// Replace Z1 with YY (only one)
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)z1(.*)", "...z1=.*|.*z1.*z1.*|.*yy.*", "ldy {z1}", "$1yy$2", null, mapZ));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)z1(.*)", lvalZ1+"|"+rvalYy+"|"+twoZ1, "ldy {z1}", "$1yy$2", null, mapZ));
// Replace two Z1s with YY
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)z1(.*vb.)z1(.*)", "...z1=.*|.*z1.*z1.*z1.*|.*yy.*", "ldy {z1}", "$1yy$2yy$3", null, mapZ));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)z1(.*vb.)z1(.*)", lvalZ1+"|"+rvalYy+"|"+threeZ1, "ldy {z1}", "$1yy$2yy$3", null, mapZ));
// Replace first (not second) Z1 with YY
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)z1(.*)z1(.*)", "...z1=.*|.*yy.*", "ldy {z1}", "$1yy$2z1$3", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)z1(.*)z1(.*)", lvalZ1+"|"+rvalYy, "ldy {z1}", "$1yy$2z1$3", null, null));
// Replace second (not first) Z1 with YY
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)z1(.*vb.)z1(.*)", "...z1=.*|.*yy.*", "ldy {z1}", "$1z1$2yy$3", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)z1(.*vb.)z1(.*)", lvalZ1+"|"+rvalYy, "ldy {z1}", "$1z1$2yy$3", null, null));
// Replace non-assigned Z1 with YY
synths.add(new AsmFragmentTemplateSynthesisRule("(...yy)=(.*vb.)z1(.*)", ".*z1.*z1.*|.*=.*yy.*", "ldy {z1}", "$1=$2yy$3", null, mapZ));
synths.add(new AsmFragmentTemplateSynthesisRule("(...yy)=(.*vb.)z1(.*)", twoZ1+"|"+rvalYy, "ldy {z1}", "$1=$2yy$3", null, mapZ));
// Replace assigned Z1 with YY
synths.add(new AsmFragmentTemplateSynthesisRule("(vb.)z1=(.*)", ".*z1.*z1.*", null, "$1yy=$2", "sty {z1}", mapZ));
synths.add(new AsmFragmentTemplateSynthesisRule("(vb.)z1=(.*)", twoZ1, null, "$1yy=$2", "sty {z1}", mapZ));
// Replace Z1 with XX (only one)
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)z1(.*)", "...z1=.*|.*z1.*z1.*|.*xx.*", "ldx {z1}", "$1xx$2", null, mapZ));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)z1(.*)", lvalZ1+"|"+rvalXx+"|"+twoZ1, "ldx {z1}", "$1xx$2", null, mapZ));
// Replace two Z1s with XX
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)z1(.*vb.)z1(.*)", "...z1=.*|.*z1.*z1.*z1.*|.*xx.*", "ldx {z1}", "$1xx$2xx$3", null, mapZ));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)z1(.*vb.)z1(.*)", lvalZ1+"|"+rvalXx+"|"+threeZ1, "ldx {z1}", "$1xx$2xx$3", null, mapZ));
// Replace first (not second) Z1 with XX
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)z1(.*)z1(.*)", "...z1=.*|.*xx.*", "ldx {z1}", "$1xx$2z1$3", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)z1(.*)z1(.*)", lvalZ1+"|"+rvalXx, "ldx {z1}", "$1xx$2z1$3", null, null));
// Replace second (not first) Z1 with XX
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)z1(.*vb.)z1(.*)", "...z1=.*|.*xx.*", "ldx {z1}", "$1z1$2xx$3", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)z1(.*vb.)z1(.*)", lvalZ1+"|"+rvalXx, "ldx {z1}", "$1z1$2xx$3", null, null));
// Replace non-assigned Z1 with XX
synths.add(new AsmFragmentTemplateSynthesisRule("(...xx)=(.*vb.)z1(.*)", ".*z1.*z1.*|.*=.*xx.*", "ldx {z1}", "$1=$2xx$3", null, mapZ));
synths.add(new AsmFragmentTemplateSynthesisRule("(...xx)=(.*vb.)z1(.*)", twoZ1+"|"+rvalXx, "ldx {z1}", "$1=$2xx$3", null, mapZ));
// Replace assigned Z1 with XX
synths.add(new AsmFragmentTemplateSynthesisRule("(vb.)z1=(.*)", ".*z1.*z1.*", null, "$1xx=$2", "stx {z1}", mapZ));
synths.add(new AsmFragmentTemplateSynthesisRule("(vb.)z1=(.*)", twoZ1, null, "$1xx=$2", "stx {z1}", mapZ));
// Replace Z2 with AA (only one)
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)z2(.*)", "...z2=.*|.*z2.*z2.*|.*aa.*", "lda {z2}", "$1aa$2", null, mapZ3));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)z2(.*)", lvalZ2+"|"+rvalAa+"|"+twoZ2, "lda {z2}", "$1aa$2", null, mapZ3));
// Replace two Z2s with AA
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)z2(.*vb.)z2(.*)", "...z2=.*|.*z2.*z2.*z2.*|.*aa.*", "lda {z2}", "$1aa$2aa$3", null, mapZ3));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)z2(.*vb.)z2(.*)", lvalZ2+"|"+rvalAa+"|"+threeZ2, "lda {z2}", "$1aa$2aa$3", null, mapZ3));
// Replace first (of 2) Z2 with AA
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)z2(.*)z2(.*)", "...z2=.*|.*aa.*", "lda {z2}", "$1aa$2z2$3", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)z2(.*)z2(.*)", lvalZ2+"|"+rvalAa, "lda {z2}", "$1aa$2z2$3", null, null));
// Replace second (of 2) Z2 with AA
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)z2(.*vb.)z2(.*)", "...z2=.*|.*aa.*", "lda {z2}", "$1z2$2aa$3", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)z2(.*vb.)z2(.*)", lvalZ2+"|"+rvalAa, "lda {z2}", "$1z2$2aa$3", null, null));
// Replace Z2 with YY (only one)
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)z2(.*)", "...z2=.*|.*z2.*z2.*|.*yy.*", "ldy {z2}", "$1yy$2", null, mapZ3));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)z2(.*)", lvalZ2+"|"+rvalYy+"|"+twoZ2, "ldy {z2}", "$1yy$2", null, mapZ3));
// Replace two Z2s with YY
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)z2(.*vb.)z2(.*)", "...z2=.*|.*z2.*z2.*z2.*|.*yy.*", "ldy {z2}", "$1yy$2yy$3", null, mapZ3));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)z2(.*vb.)z2(.*)", lvalZ2+"|"+rvalYy+"|"+threeZ2, "ldy {z2}", "$1yy$2yy$3", null, mapZ3));
// Replace first (of 2) Z2 with YY
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)z2(.*)z2(.*)", "...z2=.*|.*yy.*", "ldy {z2}", "$1yy$2z2$3", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)z2(.*)z2(.*)", lvalZ2+"|"+rvalYy, "ldy {z2}", "$1yy$2z2$3", null, null));
// Replace second (of 2) Z2 with YY
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)z2(.*vb.)z2(.*)", "...z2=.*|.*yy.*", "ldy {z2}", "$1z2$2yy$3", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)z2(.*vb.)z2(.*)", lvalZ2+"|"+rvalYy, "ldy {z2}", "$1z2$2yy$3", null, null));
// Replace Z2 with XX(only one)
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)z2(.*)", "...z2=.*|.*z2.*z2.*|.*xx.*", "ldx {z2}", "$1xx$2", null, mapZ3));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)z2(.*)", lvalZ2+"|"+rvalXx+"|"+twoZ2, "ldx {z2}", "$1xx$2", null, mapZ3));
// Replace two Z2s with XX
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)z2(.*vb.)z2(.*)", "...z2=.*|.*z2.*z2.*z2.*|.*xx.*", "ldx {z2}", "$1xx$2xx$3", null, mapZ3));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)z2(.*vb.)z2(.*)", lvalZ2+"|"+rvalXx+"|"+threeZ2, "ldx {z2}", "$1xx$2xx$3", null, mapZ3));
// Replace first (of 2) Z2 with XX
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)z2(.*)z2(.*)", "...z2=.*|.*xx.*", "ldx {z2}", "$1xx$2z2$3", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)z2(.*)z2(.*)", lvalZ2+"|"+rvalXx, "ldx {z2}", "$1xx$2z2$3", null, null));
// Replace second (of 2) Z2 with XX
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)z2(.*vb.)z2(.*)", "...z2=.*|.*xx.*", "ldx {z2}", "$1z2$2xx$3", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)z2(.*vb.)z2(.*)", lvalZ2+"|"+rvalXx, "ldx {z2}", "$1z2$2xx$3", null, null));
// Replace Z3 with AA (only one)
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)z3(.*)", "...z3=.*|.*z3.*z3.*|.*aa.*", "lda {z3}", "$1aa$2", null, mapZ4));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)z3(.*)", lvalZ3+"|"+twoZ3+"|"+rvalAa, "lda {z3}", "$1aa$2", null, mapZ4));
// Replace Z3 with YY (only one)
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)z3(.*)", "...z3=.*|.*z3.*z3.*|.*yy.*", "ldy {z3}", "$1yy$2", null, mapZ4));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)z3(.*)", lvalZ3+"|"+twoZ3+"|"+rvalYy, "ldy {z3}", "$1yy$2", null, mapZ4));
// Replace Z3 with XX (only one)
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)z3(.*)", "...z3=.*|.*z3.*z3.*|.*xx.*", "ldx {z3}", "$1xx$2", null, mapZ4));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*vb.)z3(.*)", lvalZ3+"|"+twoZ3+"|"+rvalXx, "ldx {z3}", "$1xx$2", null, mapZ4));
// Rewrite comparisons < to >
@ -351,21 +380,46 @@ class AsmFragmentTemplateSynthesisRule {
// Rewrite Assignments to Y from A
synths.add(new AsmFragmentTemplateSynthesisRule("vb(.)yy=(.*)", null, null, "vb$1aa=$2", "tay", null));
// Rewrite Assignments to Z1 from A
synths.add(new AsmFragmentTemplateSynthesisRule("vb(.)z1=(.*)", ".*z1.*z1.*", null, "vb$1aa=$2", "sta {z1}", mapZ));
synths.add(new AsmFragmentTemplateSynthesisRule("vb(.)z1=(.*)", twoZ1, null, "vb$1aa=$2", "sta {z1}", mapZ));
// Rewrite Assignments to Z1 from A
synths.add(new AsmFragmentTemplateSynthesisRule("vb(.)z1=(.*z1.*)", null, null, "vb$1aa=$2", "sta {z1}", null));
// Rewrite Assignments to *C1 from A
synths.add(new AsmFragmentTemplateSynthesisRule("_deref_pb(.)c1=(.*)", ".*c1.*c1.*", null, "vb$1aa=$2", "sta {c1}", mapC));
synths.add(new AsmFragmentTemplateSynthesisRule("_deref_pb(.)c1=(.*)", twoC1, null, "vb$1aa=$2", "sta {c1}", mapC));
// Rewrite Assignments to *C1 from A
synths.add(new AsmFragmentTemplateSynthesisRule("_deref_pb(.)c1=(.*c1.*)", null, null, "vb$1aa=$2", "sta {c1}", null));
// Rewrite Assignments to *Z1 from A
synths.add(new AsmFragmentTemplateSynthesisRule("_deref_pbuz1=(.*)", ".*z1.*z1.*", null, "vbuaa=$1", "ldy #0\n" + "sta ({z1}),y", mapZ));
synths.add(new AsmFragmentTemplateSynthesisRule("_deref_pbuz1=(.*)", twoZ1, null, "vbuaa=$1", "ldy #0\n" + "sta ({z1}),y", mapZ));
// Rewrite Assignments to *Z1 from A
synths.add(new AsmFragmentTemplateSynthesisRule("_deref_pbuz1=(.*z1.*)", null, null, "vbuaa=$1", "ldy #0\n" + "sta ({z1}),y", null));
// Rewrite _deref_pb.z1_ to _vb.aa_ (if no other Z1s)
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)_deref_pb(.)z1_(.*)", ".*z1.*z1.*|.*z1.*=.*|.*yy.*", "ldy #0\n"+"lda ({z1}),y", "$1vb$2aa_$3", null, mapZ));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)_deref_pb(.)z1(.*)", twoZ1+"|"+rvalAa+"|"+rvalYy+"|"+ lvalDerefZ1, "ldy #0\n"+"lda ({z1}),y", "$1vb$2aa$3", null, mapZ));
// Rewrite _deref_pb.z1_ to _vb.aa_ (if other Z1)
synths.add(new AsmFragmentTemplateSynthesisRule("(.*z1.*)_deref_pb(.)z1(.*)", lvalDerefZ1+"|"+rvalAa+"|"+rvalYy, "ldy #0\n"+"lda ({z1}),y", "$1vb$2aa$3", null, null));
// Rewrite _deref_pb.z1_ to _vb.aa_ (if other Z1)
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)_deref_pb(.)z1(.*z1.*)", ".*z1.*=.*"+"|"+rvalAa+"|"+rvalYy, "ldy #0\n"+"lda ({z1}),y", "$1vb$2aa$3", null, null));
// Rewrite *C1 to AA (if no other C1s)
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)_deref_pb(.)c1(.*)", rvalAa+"|"+twoC1, "lda {c1}", "$1_vb$2aa$3", null, mapC));
// Rewrite *C1 to AA (if other C1s)
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)_deref_pb(.)c1(.*c1.*)", rvalAa, "lda {c1}", "$1_vb$2aa$3", null, null));
// Rewrite *C1 to AA (if other C1s)
synths.add(new AsmFragmentTemplateSynthesisRule("(.*c1.*)_deref_pb(.)c1(.*)", rvalAa, "lda {c1}", "$1_vb$2aa$3", null, null));
// Rewrite *C1 to XX (if no other C1s)
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)_deref_pb(.)c1(.*)", rvalXx+"|"+twoC1, "ldx {c1}", "$1_vb$2xx$3", null, mapC));
// Rewrite *C1 to XX (if other C1s)
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)_deref_pb(.)c1(.*c1.*)", rvalXx, "ldx {c1}", "$1_vb$2xx$3", null, null));
// Rewrite *C1 to XX (if other C1s)
synths.add(new AsmFragmentTemplateSynthesisRule("(.*c1.*)_deref_pb(.)c1(.*)", rvalXx, "ldx {c1}", "$1_vb$2xx$3", null, null));
// Rewrite *C1 to YY (if no other C1s)
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)_deref_pb(.)c1(.*)", rvalYy+"|"+twoC1, "ldy {c1}", "$1_vb$2yy$3", null, mapC));
// Rewrite *C1 to YY (if other C1s)
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)_deref_pb(.)c1(.*c1.*)", rvalYy, "ldy {c1}", "$1_vb$2yy$3", null, null));
// Rewrite *C1 to YY (if other C1s)
synths.add(new AsmFragmentTemplateSynthesisRule("(.*c1.*)_deref_pb(.)c1(.*)", rvalYy, "ldy {c1}", "$1_vb$2yy$3", null, null));
//synths.add(new AsmFragmentTemplateSynthesisRule("_deref_pb(.)c1_(lt|gt|le|ge|eq|neq)_(.*)", ".*vb.aa.*", "lda {c1}", "vb$1aa_$2_$3", null, mapC));
//synths.add(new AsmFragmentTemplateSynthesisRule("_deref_pb(.)z1_(lt|gt|le|ge|eq|neq)_(.*)", ".*vb.aa.*|.*vb.yy.*|.*z1.*z1.*", "ldy #0\n" + "lda ({z1}),y", "vb$1aa_$2_$3", null, mapZ));
// OLD STYLE REWRITES - written when only one rule could be taken
@ -378,47 +432,48 @@ class AsmFragmentTemplateSynthesisRule {
//synths.add(new AsmFragmentTemplateSynthesisRule("vbsyy=(.*)", null, null, "vbsaa=$1", "tay\n", null));
//synths.add(new AsmFragmentTemplateSynthesisRule("vbsz1=(.*)", ".*=.*vb.z1.*", null, "vbsaa=$1", "sta {z1}\n", mapZ));
synths.add(new AsmFragmentTemplateSynthesisRule("pb(.)c1_derefidx_vbuz1=(.*)", ".*z1.*z1.*|.*c1.*c1.*", null, "vb$1aa=$2", "ldx {z1}\n" + "sta {c1},x", mapZC));
synths.add(new AsmFragmentTemplateSynthesisRule("pb(.)c1_derefidx_vbuyy=(.*)", ".*c1.*c1.*", null, "vb$1aa=$2", "sta {c1},y", mapC, "yy"));
synths.add(new AsmFragmentTemplateSynthesisRule("pb(.)c1_derefidx_vbuxx=(.*)", ".*c1.*c1.*", null, "vb$1aa=$2", "sta {c1},x", mapC, "xx"));
synths.add(new AsmFragmentTemplateSynthesisRule("pb(.)z1_derefidx_vbuz2=(.*)", ".*z1.*z1.*|.*z2.*z2.*", null, "vb$1aa=$2", "ldy {z2}\n" + "sta ({z1}),y", mapZ2));
synths.add(new AsmFragmentTemplateSynthesisRule("pb(.)c1_derefidx_vbuz1=(.*)", twoZ1+"|"+twoC1, null, "vb$1aa=$2", "ldx {z1}\n" + "sta {c1},x", mapZC));
synths.add(new AsmFragmentTemplateSynthesisRule("pb(.)c1_derefidx_vbuyy=(.*)", twoC1, null, "vb$1aa=$2", "sta {c1},y", mapC, "yy"));
synths.add(new AsmFragmentTemplateSynthesisRule("pb(.)c1_derefidx_vbuxx=(.*)", twoC1, null, "vb$1aa=$2", "sta {c1},x", mapC, "xx"));
synths.add(new AsmFragmentTemplateSynthesisRule("pb(.)z1_derefidx_vbuz2=(.*)", twoZ1+"|"+twoZ2, null, "vb$1aa=$2", "ldy {z2}\n" + "sta ({z1}),y", mapZ2));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=_deref_pb(.)c1(.*)", ".*=.*aa.*|.*c1.*c1.*", "lda {c1}", "$1=vb$2aa$3", null, mapC));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=_deref_pb(.)z1(.*)", ".*z1.*z1.*|.*=.*aa.*|.*yy.*", "ldy #0\n" + "lda ({z1}),y", "$1=vb$2aa$3", null, mapZ));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=_deref_pb(.)c1(.*)", rvalAa+"|"+twoC1, "lda {c1}", "$1=vb$2aa$3", null, mapC));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=_deref_pb(.)z1(.*)", rvalAa+"|"+rvalYy+"|"+twoZ1, "ldy #0\n" + "lda ({z1}),y", "$1=vb$2aa$3", null, mapZ));
// Convert array indexing with A register to X/Y register by prefixing tax/tay (..._derefidx_vbuaa... -> ..._derefidx_vbuxx... /... _derefidx_vbuyy... )
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)_derefidx_vbuaa(.*)", ".*xx.*", "tax", "$1=$2_derefidx_vbuxx$3", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)_derefidx_vbuaa(.*)", ".*yy.*", "tay", "$1=$2_derefidx_vbuyy$3", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)_derefidx_vbuaa(.*)", rvalXx, "tax", "$1=$2_derefidx_vbuxx$3", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)_derefidx_vbuaa(.*)", rvalYy, "tay", "$1=$2_derefidx_vbuyy$3", null, null));
// Convert array indexing with zero page to x/y register by prefixing ldx z1 / ldy z1 ( ..._derefidx_vbuzn... -> ..._derefidx_vbuxx... / ..._derefidx_vbuyy... )
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)_derefidx_vbuz1(.*)", ".*xx.*|.*z1.*z1.*", "ldx {z1}", "$1=$2_derefidx_vbuxx$3", null, mapZ));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)_derefidx_vbuz1(.*)", ".*yy.*|.*z1.*z1.*", "ldy {z1}", "$1=$2_derefidx_vbuyy$3", null, mapZ));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)_derefidx_vbuz2(.*)", ".*xx.*|.*z2.*z2.*", "ldx {z2}", "$1=$2_derefidx_vbuxx$3", null, mapZ3));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)_derefidx_vbuz2(.*)", ".*yy.*|.*z2.*z2.*", "ldy {z2}", "$1=$2_derefidx_vbuyy$3", null, mapZ3));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)_derefidx_vbuz3(.*)", ".*yy.*", "ldy {z3}", "$1=$2_derefidx_vbuyy$3", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)_derefidx_vbuz3(.*)", ".*xx.*", "ldx {z3}", "$1=$2_derefidx_vbuxx$3", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)_derefidx_vbuz1(.*)", rvalXx+"|"+twoZ1, "ldx {z1}", "$1=$2_derefidx_vbuxx$3", null, mapZ));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)_derefidx_vbuz1(.*)", rvalYy+"|"+twoZ1, "ldy {z1}", "$1=$2_derefidx_vbuyy$3", null, mapZ));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)_derefidx_vbuz2(.*)", rvalXx+"|"+twoZ2, "ldx {z2}", "$1=$2_derefidx_vbuxx$3", null, mapZ3));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)_derefidx_vbuz2(.*)", rvalYy+"|"+twoZ2, "ldy {z2}", "$1=$2_derefidx_vbuyy$3", null, mapZ3));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)_derefidx_vbuz3(.*)", rvalYy, "ldy {z3}", "$1=$2_derefidx_vbuyy$3", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)_derefidx_vbuz3(.*)", rvalXx, "ldx {z3}", "$1=$2_derefidx_vbuxx$3", null, null));
// Convert array indexing twice with A/zp1/zp2 to X/Y register with a ldx/ldy prefix ( ..._derefidx_vbunn..._derefidx_vbunn... -> ..._derefidx_vbuxx..._derefidx_vbuxx... )
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)_derefidx_vbuaa(.*)_derefidx_vbuaa(.*)", ".*aa.*aa.*aa.*|.*xx.*", null, "$1_derefidx_vbuxx$2_derefidx_vbuxx$3", "tax", null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)_derefidx_vbuaa(.*)_derefidx_vbuaa(.*)", ".*aa.*aa.*aa.*|.*yy.*", null, "$1_derefidx_vbuyy$2_derefidx_vbuyy$3", "tay", null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)_derefidx_vbuz1(.*)_derefidx_vbuz1(.*)", ".*z1.*z1.*z1.*|.*xx.*", null, "$1_derefidx_vbuxx$2_derefidx_vbuxx$3", "ldx {z1}", mapZ));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)_derefidx_vbuz1(.*)_derefidx_vbuz1(.*)", ".*z1.*z1.*z1.*|.*yy.*", null, "$1_derefidx_vbuyy$2_derefidx_vbuyy$3", "ldy {z1}", mapZ));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)_derefidx_vbuz2(.*)_derefidx_vbuz2(.*)", ".*z2.*z2.*z2.*|.*xx.*", null, "$1_derefidx_vbuxx$2_derefidx_vbuxx$3", "ldx {z2}", mapZ));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)_derefidx_vbuz2(.*)_derefidx_vbuz2(.*)", ".*z2.*z2.*z2.*|.*yy.*", null, "$1_derefidx_vbuyy$2_derefidx_vbuyy$3", "ldy {z2}", mapZ));
synths.add(new AsmFragmentTemplateSynthesisRule("pb(.)c1_derefidx_vbuz1=(.*c1.*)", ".*z1.*z1.*", null, "vb$1aa=$2", "ldx {z1}\n" + "sta {c1},x", mapZ));
synths.add(new AsmFragmentTemplateSynthesisRule("pb(.)c1_derefidx_vbuz1=(.*z1.*)", ".*c1.*c1.*", null, "vb$1aa=$2", "ldx {z1}\n" + "sta {c1},x", mapC));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)_derefidx_vbuaa(.*)_derefidx_vbuaa(.*)", threeAa+"|"+rvalXx+"|"+lvalDerefIdxAa, "tax", "$1_derefidx_vbuxx$2_derefidx_vbuxx$3", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)_derefidx_vbuaa(.*)_derefidx_vbuaa(.*)", threeAa+"|"+rvalYy+"|"+lvalDerefIdxAa, "tay", "$1_derefidx_vbuyy$2_derefidx_vbuyy$3", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)_derefidx_vbuz1(.*)_derefidx_vbuz1(.*)", threeZ1+"|"+rvalXx+"|"+lvalDerefIdxZ1, "ldx {z1}", "$1_derefidx_vbuxx$2_derefidx_vbuxx$3", null, mapZ));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)_derefidx_vbuz1(.*)_derefidx_vbuz1(.*)", threeZ1+"|"+rvalYy+"|"+lvalDerefIdxZ1, "ldy {z1}", "$1_derefidx_vbuyy$2_derefidx_vbuyy$3", null, mapZ));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)_derefidx_vbuz2(.*)_derefidx_vbuz2(.*)", threeZ2+"|"+rvalXx+"|"+lvalDerefIdxZ2, "ldx {z2}", "$1_derefidx_vbuxx$2_derefidx_vbuxx$3", null, mapZ));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)_derefidx_vbuz2(.*)_derefidx_vbuz2(.*)", threeZ2+"|"+rvalYy+"|"+lvalDerefIdxZ2, "ldy {z2}", "$1_derefidx_vbuyy$2_derefidx_vbuyy$3", null, mapZ));
synths.add(new AsmFragmentTemplateSynthesisRule("pb(.)c1_derefidx_vbuz1=(.*c1.*)", twoZ1, null, "vb$1aa=$2", "ldx {z1}\n" + "sta {c1},x", mapZ));
synths.add(new AsmFragmentTemplateSynthesisRule("pb(.)c1_derefidx_vbuz1=(.*z1.*)", twoC1, null, "vb$1aa=$2", "ldx {z1}\n" + "sta {c1},x", mapC));
// Convert X/Y-based array indexing of a constant pointer into A-register by prefixing lda cn,x / lda cn,y ( ...pb.c1_derefidx_vbuxx... / ...pb.c1_derefidx_vbuyy... -> ...vb.aa... )
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)pb(.)c1_derefidx_vbuxx(.*)", ".*=.*aa.*|.*c1.*c1.*", "lda {c1},x", "$1=$2vb$3aa$4", null, mapC));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*c1.*)pb(.)c1_derefidx_vbuxx(.*)", ".*=.*aa.*", "lda {c1},x", "$1=$2vb$3aa$4", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)pb(.)c1_derefidx_vbuxx(.*c1.*)", ".*=.*aa.*", "lda {c1},x", "$1=$2vb$3aa$4", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)pb(.)c1_derefidx_vbuyy(.*)", ".*=.*aa.*|.*c1.*c1.*", "lda {c1},y", "$1=$2vb$3aa$4", null, mapC));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*c1.*)pb(.)c1_derefidx_vbuyy(.*)", ".*=.*aa.*", "lda {c1},y", "$1=$2vb$3aa$4", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)pb(.)c1_derefidx_vbuyy(.*c1.*)", ".*=.*aa.*", "lda {c1},y", "$1=$2vb$3aa$4", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)pb(.)c2_derefidx_vbuxx(.*)", ".*=.*aa.*|.*c2.*c2.*", "lda {c2},x", "$1=$2vb$3aa$4", null, mapC3));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*c2.*)pb(.)c2_derefidx_vbuxx(.*)", ".*=.*aa.*", "lda {c2},x", "$1=$2vb$3aa$4", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)pb(.)c2_derefidx_vbuxx(.*c2.*)", ".*=.*aa.*", "lda {c2},x", "$1=$2vb$3aa$4", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)pb(.)c2_derefidx_vbuyy(.*)", ".*=.*aa.*|.*c2.*c2.*", "lda {c2},y", "$1=$2vb$3aa$4", null, mapC3));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*c2.*)pb(.)c2_derefidx_vbuyy(.*)", ".*=.*aa.*", "lda {c2},y", "$1=$2vb$3aa$4", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)pb(.)c2_derefidx_vbuyy(.*c2.*)", ".*=.*aa.*", "lda {c2},y", "$1=$2vb$3aa$4", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)pb(.)c1_derefidx_vbuxx(.*)", rvalAa+"|"+twoC1, "lda {c1},x", "$1=$2vb$3aa$4", null, mapC));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*c1.*)pb(.)c1_derefidx_vbuxx(.*)", rvalAa, "lda {c1},x", "$1=$2vb$3aa$4", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)pb(.)c1_derefidx_vbuxx(.*c1.*)", rvalAa, "lda {c1},x", "$1=$2vb$3aa$4", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)pb(.)c1_derefidx_vbuyy(.*)", rvalAa+"|"+twoC1, "lda {c1},y", "$1=$2vb$3aa$4", null, mapC));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*c1.*)pb(.)c1_derefidx_vbuyy(.*)", rvalAa, "lda {c1},y", "$1=$2vb$3aa$4", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)pb(.)c1_derefidx_vbuyy(.*c1.*)", rvalAa, "lda {c1},y", "$1=$2vb$3aa$4", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)pb(.)c2_derefidx_vbuxx(.*)", rvalAa+"|"+twoC2, "lda {c2},x", "$1=$2vb$3aa$4", null, mapC3));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*c2.*)pb(.)c2_derefidx_vbuxx(.*)", rvalAa, "lda {c2},x", "$1=$2vb$3aa$4", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)pb(.)c2_derefidx_vbuxx(.*c2.*)", rvalAa, "lda {c2},x", "$1=$2vb$3aa$4", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)pb(.)c2_derefidx_vbuyy(.*)", rvalAa+"|"+twoC2, "lda {c2},y", "$1=$2vb$3aa$4", null, mapC3));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*c2.*)pb(.)c2_derefidx_vbuyy(.*)", rvalAa, "lda {c2},y", "$1=$2vb$3aa$4", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)pb(.)c2_derefidx_vbuyy(.*c2.*)", rvalAa, "lda {c2},y", "$1=$2vb$3aa$4", null, null));
// Convert zeropage/constants/X/Y in assignments to A-register using LDA/TXA/TYA prefix
//synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)vbuz1(.*)", ".*z1.*=.*|.*=.*aa.*|.*z1.*z1.*", "lda {z1}", "$1=$2vbuaa$3", null, mapZ));
@ -432,26 +487,26 @@ class AsmFragmentTemplateSynthesisRule {
//synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)_vbsxx", ".*=.*[ax][ax].*xx|.*derefidx_vb.xx", "txa", "$1=$2_vbsaa", null, null));
//synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)_vbuyy", ".*=.*[ay][ay].*yy|.*derefidx_vb.yy", "tya", "$1=$2_vbuaa", null, null));
//synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)_vbsyy", ".*=-*[ay][ay].*yy|.*derefidx_vb.yy", "tya", "$1=$2_vbsaa", null, null));
//synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)_vbuz1", ".*=.*aa.*|.*z1.*z1.*", "lda {z1}", "$1=$2_vbuaa", null, mapZ));
//synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)_vbsz1", ".*=.*aa.*|.*z1.*z1.*", "lda {z1}", "$1=$2_vbsaa", null, mapZ));
//synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)_vbuz2", ".*=.*aa.*|.*z2.*z2.*", "lda {z2}", "$1=$2_vbuaa", null, null));
//synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)_vbuz3", ".*=.*aa.*|.*z3.*z3.*", "lda {z3}", "$1=$2_vbuaa", null, null));
//synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)_vbuz1", rvalAa+"|"+".*z1.*z1.*", "lda {z1}", "$1=$2_vbuaa", null, mapZ));
//synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)_vbsz1", rvalAa+"|"+".*z1.*z1.*", "lda {z1}", "$1=$2_vbsaa", null, mapZ));
//synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)_vbuz2", rvalAa+"|"+".*z2.*z2.*", "lda {z2}", "$1=$2_vbuaa", null, null));
//synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)_vbuz3", rvalAa+"|"+".*z3.*z3.*", "lda {z3}", "$1=$2_vbuaa", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("vbuz1=vbuz1(.*)", ".*=.*vb.aa.*|.*z1.*z1.*z1.*", "lda {z1}", "vbuaa=vbuaa$1", "sta {z1}", mapZ));
synths.add(new AsmFragmentTemplateSynthesisRule("vbsz1=vbsz1(.*)", ".*=.*vb.aa.*|.*z1.*z1.*z1.*", "lda {z1}", "vbsaa=vbsaa$1", "sta {z1}", mapZ));
synths.add(new AsmFragmentTemplateSynthesisRule("vbuz1=vbuz1(.*)", rvalAa+"|"+threeZ1, "lda {z1}", "vbuaa=vbuaa$1", "sta {z1}", mapZ));
synths.add(new AsmFragmentTemplateSynthesisRule("vbsz1=vbsz1(.*)", rvalAa+"|"+threeZ1, "lda {z1}", "vbsaa=vbsaa$1", "sta {z1}", mapZ));
//synths.add(new AsmFragmentTemplateSynthesisRule("vbuz1_(lt|gt|le|ge|eq|neq)_(.*)", ".*vb.aa.*|.*z1.*z1.*", "lda {z1}", "vbuaa_$1_$2", null, mapZ));
//synths.add(new AsmFragmentTemplateSynthesisRule("vbsz1_(lt|gt|le|ge|eq|neq)_(.*)", ".*vb.aa.*|.*z1.*z1.*", "lda {z1}", "vbsaa_$1_$2", null, mapZ));
synths.add(new AsmFragmentTemplateSynthesisRule("_deref_pb(.)c1_(lt|gt|le|ge|eq|neq)_(.*)", ".*vb.aa.*", "lda {c1}", "vb$1aa_$2_$3", null, mapC));
synths.add(new AsmFragmentTemplateSynthesisRule("_deref_pb(.)z1_(lt|gt|le|ge|eq|neq)_(.*)", ".*vb.aa.*|.*vb.yy.*|.*z1.*z1.*", "ldy #0\n" + "lda ({z1}),y", "vb$1aa_$2_$3", null, mapZ));
synths.add(new AsmFragmentTemplateSynthesisRule("_deref_pb(.)c1_(lt|gt|le|ge|eq|neq)_(.*)", rvalAa, "lda {c1}", "vb$1aa_$2_$3", null, mapC));
synths.add(new AsmFragmentTemplateSynthesisRule("_deref_pb(.)z1_(lt|gt|le|ge|eq|neq)_(.*)", rvalAa+"|"+rvalYy+"|"+twoZ1, "ldy #0\n" + "lda ({z1}),y", "vb$1aa_$2_$3", null, mapZ));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)_derefidx_vbuz1_(.*)", ".*z1.*z1.*|.*.yy.*", "ldy {z1}", "$1_derefidx_vbuyy_$2", null, mapZ));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)_derefidx_vbuz1_(.*)", rvalYy+"|"+twoZ1, "ldy {z1}", "$1_derefidx_vbuyy_$2", null, mapZ));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)_derefidx_vbuz1_(lt|gt|le|ge|eq|neq)_(.*)", ".*z1.*z1.*|.*vb.xx.*", "ldx {z1}", "$1_derefidx_vbuxx_$2_$3", null, mapZ));
synths.add(new AsmFragmentTemplateSynthesisRule("pb(.)c1_derefidx_vbuyy_(lt|gt|le|ge|eq|neq)_(.*)", ".*c1.*c1.*|.*aa.*", "lda {c1},y", "vb$1aa_$2_$3", null, mapC));
synths.add(new AsmFragmentTemplateSynthesisRule("pb(.)c1_derefidx_vbuyy_(lt|gt|le|ge|eq|neq)_(.*c1.*)", ".*aa.*", "lda {c1},y", "vb$1aa_$2_$3", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("pb(.)c1_derefidx_vbuxx_(lt|gt|le|ge|eq|neq)_(.*)", ".*c1.*c1.*|.*aa.*", "lda {c1},x", "vb$1aa_$2_$3", null, mapC));
synths.add(new AsmFragmentTemplateSynthesisRule("pb(.)c1_derefidx_vbuxx_(lt|gt|le|ge|eq|neq)_(.*c1.*)", ".*aa.*", "lda {c1},x", "vb$1aa_$2_$3", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)_derefidx_vbuz1_(lt|gt|le|ge|eq|neq)_(.*)", rvalXx+"|"+twoZ1, "ldx {z1}", "$1_derefidx_vbuxx_$2_$3", null, mapZ));
synths.add(new AsmFragmentTemplateSynthesisRule("pb(.)c1_derefidx_vbuyy_(lt|gt|le|ge|eq|neq)_(.*)", rvalAa+"|"+twoC1, "lda {c1},y", "vb$1aa_$2_$3", null, mapC));
synths.add(new AsmFragmentTemplateSynthesisRule("pb(.)c1_derefidx_vbuyy_(lt|gt|le|ge|eq|neq)_(.*c1.*)", rvalAa, "lda {c1},y", "vb$1aa_$2_$3", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("pb(.)c1_derefidx_vbuxx_(lt|gt|le|ge|eq|neq)_(.*)", rvalAa+"|"+twoC1, "lda {c1},x", "vb$1aa_$2_$3", null, mapC));
synths.add(new AsmFragmentTemplateSynthesisRule("pb(.)c1_derefidx_vbuxx_(lt|gt|le|ge|eq|neq)_(.*c1.*)", rvalAa, "lda {c1},x", "vb$1aa_$2_$3", null, null));
//synths.add(new AsmFragmentTemplateSynthesisRule("(.*)_ge_(vb.aa)_then_(.*)", ".*vb.aa.*_ge.*", null, "$2_le_$1_then_$3", null, null));
//synths.add(new AsmFragmentTemplateSynthesisRule("(.*)_ge_(vb.xx)_then_(.*)", ".*vb.[ax][ax].*_ge.*", null, "$2_le_$1_then_$3", null, null));
@ -493,9 +548,9 @@ class AsmFragmentTemplateSynthesisRule {
//synths.add(new AsmFragmentTemplateSynthesisRule("(vwsz.)=(vwsc.)_(plus|band|bxor|bor)_(vwsz.)", null, null, "$1=$4_$3_$2", null, null));
// Use Z1/Z2 ASM to synthesize Z1-only code ( ...z1...z1... -> ...z1...z2... )
synths.add(new AsmFragmentTemplateSynthesisRule("(v..)z1=(v..)z1_(plus|minus|band|bxor|bor)_(.*)", ".*z2.*", null, "$1z1=$2z2_$3_$4", null, mapZ, false));
synths.add(new AsmFragmentTemplateSynthesisRule("(v..)z1=(.*)_(plus|minus|band|bxor|bor)_(v..)z1", ".*z2.*", null, "$1z1=$2_$3_$4z2", null, mapZ, false));
synths.add(new AsmFragmentTemplateSynthesisRule("(v..)z1=_(neg|lo|hi)_(v..)z1", ".*z2.*", null, "$1z1=_$2_$3z2", null, mapZ, false));
synths.add(new AsmFragmentTemplateSynthesisRule("(v..)z1=(v..)z1_(plus|minus|band|bxor|bor)_(.*)", oneZ2, null, "$1z1=$2z2_$3_$4", null, mapZ, false));
synths.add(new AsmFragmentTemplateSynthesisRule("(v..)z1=(.*)_(plus|minus|band|bxor|bor)_(v..)z1", oneZ2, null, "$1z1=$2_$3_$4z2", null, mapZ, false));
synths.add(new AsmFragmentTemplateSynthesisRule("(v..)z1=_(neg|lo|hi)_(v..)z1", oneZ2, null, "$1z1=_$2_$3z2", null, mapZ, false));
// Convert INC/DEC to +1/-1 ( ..._inc_xxx... -> ...xxx_plus_1_... / ..._dec_xxx... -> ...xxx_minus_1_... )
synths.add(new AsmFragmentTemplateSynthesisRule("vb(.)aa=_inc_(.*)", null, null, "vb$1aa=$2_plus_1", null, null));
@ -503,14 +558,14 @@ class AsmFragmentTemplateSynthesisRule {
synths.add(new AsmFragmentTemplateSynthesisRule("vw(.)z1=_inc_vw(.z.)", null, null, "vw$1z1=vw$2_plus_1", null, null));
// Synthesize XX/YY using AA
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)vbuxx(.*)", ".*=.*aa.*|.*derefidx_vb.xx.*", "txa", "$1=$2vbuaa$3", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)vbsxx(.*)", ".*=.*aa.*|.*derefidx_vb.xx.*", "txa", "$1=$2vbsaa$3", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)vbuyy(.*)", ".*=.*aa.*|.*derefidx_vb.yy.*", "tya", "$1=$2vbuaa$3", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)vbsyy(.*)", ".*=.*aa.*|.*derefidx_vb.yy.*", "tya", "$1=$2vbsaa$3", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)vbuxx(.*)", rvalAa, "txa", "$1=$2vbuaa$3", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)vbsxx(.*)", rvalAa, "txa", "$1=$2vbsaa$3", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)vbuyy(.*)", rvalAa, "tya", "$1=$2vbuaa$3", null, null));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)vbsyy(.*)", rvalAa, "tya", "$1=$2vbsaa$3", null, null));
// Synthesize constants using AA
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)vbuc1(.*)", ".*=.*aa.*|.*c1.*c1.*|.*c1_deref.*", "lda #{c1}", "$1=$2vbuaa$3", null, mapC));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)vbsc1(.*)", ".*=.*aa.*|.*c1.*c1.*|.*c1_deref.*", "lda #{c1}", "$1=$2vbsaa$3", null, mapC));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)vbuc1(.*)", rvalAa+"|"+twoC1+"|"+ derefC1, "lda #{c1}", "$1=$2vbuaa$3", null, mapC));
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)=(.*)vbsc1(.*)", rvalAa+"|"+twoC1+"|"+ derefC1, "lda #{c1}", "$1=$2vbsaa$3", null, mapC));
// Synthesize some constant pointers as constant words
synths.add(new AsmFragmentTemplateSynthesisRule("(.*)_(lt|gt|le|ge|eq|neq)_p..([cz].)_then_(.*)", null, null, "$1_$2_vwu$3_then_$4", null, null));

View File

@ -0,0 +1,2 @@
ldy #0
and ({z1}),y

View File

@ -0,0 +1,2 @@
ldy #0
eor ({z1}),y

View File

@ -0,0 +1,2 @@
sec
sbc {c1}

View File

@ -0,0 +1,3 @@
sec
ldy #0
sbc ({z1}),y

View File

@ -0,0 +1,2 @@
clc
adc {c1}

View File

@ -0,0 +1,3 @@
clc
ldy #0
adc ({z1}),y

View File

@ -10,9 +10,9 @@ main: {
sta fibs+1
ldx #0
b1:
lda fibs,x
lda fibs+1,x
clc
adc fibs+1,x
adc fibs,x
sta fibs+2,x
inx
cpx #$f

View File

@ -276,9 +276,9 @@ main: {
b1:
//SEG16 [7] (byte/word~) main::$2 ← *((const byte*) fibs#0 + (byte) main::i#2) + *((const byte*) fibs#0+(byte/signed byte/word/signed word) 1 + (byte) main::i#2) [ main::i#2 main::$2 ] ( main:2 [ main::i#2 main::$2 ] ) -- vbuz1=pbuc1_derefidx_vbuz2_plus_pbuc2_derefidx_vbuz2
ldy i
lda fibs,y
lda fibs+1,y
clc
adc fibs+1,y
adc fibs,y
sta _2
//SEG17 [8] *((const byte*) fibs#0+(byte/signed byte/word/signed word) 2 + (byte) main::i#2) ← (byte/word~) main::$2 [ main::i#2 ] ( main:2 [ main::i#2 ] ) -- pbuc1_derefidx_vbuz1=vbuz2
ldy i
@ -356,9 +356,9 @@ main: {
//SEG15 main::@1
b1:
//SEG16 [7] (byte/word~) main::$2 ← *((const byte*) fibs#0 + (byte) main::i#2) + *((const byte*) fibs#0+(byte/signed byte/word/signed word) 1 + (byte) main::i#2) [ main::i#2 main::$2 ] ( main:2 [ main::i#2 main::$2 ] ) -- vbuaa=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbuxx
lda fibs,x
lda fibs+1,x
clc
adc fibs+1,x
adc fibs,x
//SEG17 [8] *((const byte*) fibs#0+(byte/signed byte/word/signed word) 2 + (byte) main::i#2) ← (byte/word~) main::$2 [ main::i#2 ] ( main:2 [ main::i#2 ] ) -- pbuc1_derefidx_vbuxx=vbuaa
sta fibs+2,x
//SEG18 [9] (byte) main::i#1 ← ++ (byte) main::i#2 [ main::i#1 ] ( main:2 [ main::i#1 ] ) -- vbuxx=_inc_vbuxx
@ -443,9 +443,9 @@ main: {
//SEG15 main::@1
b1:
//SEG16 [7] (byte/word~) main::$2 ← *((const byte*) fibs#0 + (byte) main::i#2) + *((const byte*) fibs#0+(byte/signed byte/word/signed word) 1 + (byte) main::i#2) [ main::i#2 main::$2 ] ( main:2 [ main::i#2 main::$2 ] ) -- vbuaa=pbuc1_derefidx_vbuxx_plus_pbuc2_derefidx_vbuxx
lda fibs,x
lda fibs+1,x
clc
adc fibs+1,x
adc fibs,x
//SEG17 [8] *((const byte*) fibs#0+(byte/signed byte/word/signed word) 2 + (byte) main::i#2) ← (byte/word~) main::$2 [ main::i#2 ] ( main:2 [ main::i#2 ] ) -- pbuc1_derefidx_vbuxx=vbuaa
sta fibs+2,x
//SEG18 [9] (byte) main::i#1 ← ++ (byte) main::i#2 [ main::i#1 ] ( main:2 [ main::i#1 ] ) -- vbuxx=_inc_vbuxx

View File

@ -19,9 +19,9 @@ vbuaa=pbuz1_derefidx_vbuaa < vbuaa=pbuz1_derefidx_vbuyy - clobber:A Y cycles:7.
tay
lda ({z1}),y
*vbuaa=pbuz1_derefidx_vbuxx - clobber:A Y cycles:11.5
stx $ff
ldy $ff
vbuaa=pbuz1_derefidx_vbuxx < vbuaa=pbuz1_derefidx_vbuaa < vbuaa=pbuz1_derefidx_vbuyy - clobber:A Y cycles:9.5
txa
tay
lda ({z1}),y
*vbuaa=pbuz1_derefidx_vbuyy - clobber:A cycles:5.5
@ -91,9 +91,9 @@ vbuxx=pbuz1_derefidx_vbuaa < vbuxx=pbuz1_derefidx_vbuyy < vbuaa=pbuz1_derefidx_v
tay
lda ({z1}),y
tax
vbuxx=pbuz1_derefidx_vbuxx < vbuaa=pbuz1_derefidx_vbuxx - clobber:A X Y cycles:13.5
stx $ff
ldy $ff
vbuxx=pbuz1_derefidx_vbuxx < vbuaa=pbuz1_derefidx_vbuxx < vbuaa=pbuz1_derefidx_vbuaa < vbuaa=pbuz1_derefidx_vbuyy - clobber:A X Y cycles:11.5
txa
tay
lda ({z1}),y
tax
vbuxx=pbuz1_derefidx_vbuyy < vbuaa=pbuz1_derefidx_vbuyy - clobber:A X cycles:7.5
@ -112,7 +112,7 @@ vbuxx=pbuz1_derefidx_vbuc1 < vbuaa=pbuz1_derefidx_vbuc1 < vbuaa=pbuz1_derefidx_v
tay
lda ({z1}),y
tax
vbuxx=pbuc1_derefidx_vbuaa < vbuaa=pbuc1_derefidx_vbuaa < vbuaa=pbuc1_derefidx_vbuxx - clobber:A X cycles:8.5
vbuxx=pbuc1_derefidx_vbuaa < vbuxx=pbuc1_derefidx_vbuxx < vbuaa=pbuc1_derefidx_vbuxx - clobber:A X cycles:8.5
tax
lda {c1},x
tax
@ -151,11 +151,11 @@ vbuyy=_deref_pbuz1 < vbuaa=_deref_pbuz1 - clobber:A Y cycles:9.5
*vbuyy=_deref_pbuc1 - clobber:Y cycles:4.0
ldy {c1}
vbuyy=pbuz1_derefidx_vbuaa < vbuaa=pbuz1_derefidx_vbuaa < vbuaa=pbuz1_derefidx_vbuyy - clobber:A Y cycles:9.5
vbuyy=pbuz1_derefidx_vbuaa < vbuyy=pbuz1_derefidx_vbuyy < vbuaa=pbuz1_derefidx_vbuyy - clobber:A Y cycles:9.5
tay
lda ({z1}),y
tay
vbuyy=pbuz1_derefidx_vbuxx < vbuyy=pbuz1_derefidx_vbuaa < vbuaa=pbuz1_derefidx_vbuaa < vbuaa=pbuz1_derefidx_vbuyy - clobber:A Y cycles:11.5
vbuyy=pbuz1_derefidx_vbuxx < vbuaa=pbuz1_derefidx_vbuxx < vbuaa=pbuz1_derefidx_vbuaa < vbuaa=pbuz1_derefidx_vbuyy - clobber:A Y cycles:11.5
txa
tay
lda ({z1}),y
@ -163,11 +163,11 @@ vbuyy=pbuz1_derefidx_vbuxx < vbuyy=pbuz1_derefidx_vbuaa < vbuaa=pbuz1_derefidx_v
vbuyy=pbuz1_derefidx_vbuyy < vbuaa=pbuz1_derefidx_vbuyy - clobber:A Y cycles:7.5
lda ({z1}),y
tay
vbuyy=pbuz1_derefidx_vbuz1 < vbuaa=pbuz1_derefidx_vbuz1 < vbuaa=pbuz1_derefidx_vbuyy - clobber:A Y cycles:10.5
vbuyy=pbuz1_derefidx_vbuz1 < vbuyy=pbuz1_derefidx_vbuyy < vbuaa=pbuz1_derefidx_vbuyy - clobber:A Y cycles:10.5
ldy {z1}
lda ({z1}),y
tay
vbuyy=pbuz1_derefidx_vbuz2 < vbuaa=pbuz1_derefidx_vbuz2 < vbuaa=pbuz1_derefidx_vbuyy - clobber:A Y cycles:10.5
vbuyy=pbuz1_derefidx_vbuz2 < vbuyy=pbuz1_derefidx_vbuyy < vbuaa=pbuz1_derefidx_vbuyy - clobber:A Y cycles:10.5
ldy {z2}
lda ({z1}),y
tay
@ -180,7 +180,7 @@ vbuyy=pbuc1_derefidx_vbuaa < vbuyy=pbuc1_derefidx_vbuxx - clobber:X Y cycles:6.
tax
ldy {c1},x
vbuyy=pbuc1_derefidx_vbuaa < vbuaa=pbuc1_derefidx_vbuaa < vbuaa=pbuc1_derefidx_vbuyy - clobber:A Y cycles:8.5
vbuyy=pbuc1_derefidx_vbuaa < vbuyy=pbuc1_derefidx_vbuyy < vbuaa=pbuc1_derefidx_vbuyy - clobber:A Y cycles:8.5
tay
lda {c1},y
tay
@ -245,7 +245,7 @@ vbuz1=pbuz1_derefidx_vbuaa < vbuz1=pbuz1_derefidx_vbuyy < vbuaa=pbuz1_derefidx_v
tay
lda ({z1}),y
sta {z1}
vbuz1=pbuz1_derefidx_vbuxx < vbuz1=pbuz1_derefidx_vbuaa < vbuz1=pbuz1_derefidx_vbuyy < vbuaa=pbuz1_derefidx_vbuyy - clobber:A Y cycles:12.5
vbuz1=pbuz1_derefidx_vbuxx < vbuaa=pbuz1_derefidx_vbuxx < vbuaa=pbuz1_derefidx_vbuaa < vbuaa=pbuz1_derefidx_vbuyy - clobber:A Y cycles:12.5
txa
tay
lda ({z1}),y
@ -270,7 +270,7 @@ vbuz1=pbuz2_derefidx_vbuaa < vbuz1=pbuz2_derefidx_vbuyy < vbuaa=pbuz1_derefidx_v
tay
lda ({z2}),y
sta {z1}
vbuz1=pbuz2_derefidx_vbuxx < vbuz1=pbuz2_derefidx_vbuaa < vbuz1=pbuz2_derefidx_vbuyy < vbuaa=pbuz1_derefidx_vbuyy - clobber:A Y cycles:12.5
vbuz1=pbuz2_derefidx_vbuxx < vbuaa=pbuz1_derefidx_vbuxx < vbuaa=pbuz1_derefidx_vbuaa < vbuaa=pbuz1_derefidx_vbuyy - clobber:A Y cycles:12.5
txa
tay
lda ({z2}),y
@ -388,7 +388,7 @@ _deref_pbuz1=pbuz1_derefidx_vbuaa < _deref_pbuz1=pbuz1_derefidx_vbuyy < vbuaa=pb
lda ({z1}),y
ldy #0
sta ({z1}),y
_deref_pbuz1=pbuz1_derefidx_vbuxx < _deref_pbuz1=pbuz1_derefidx_vbuaa < _deref_pbuz1=pbuz1_derefidx_vbuyy < vbuaa=pbuz1_derefidx_vbuyy - clobber:A Y cycles:17.5
_deref_pbuz1=pbuz1_derefidx_vbuxx < vbuaa=pbuz1_derefidx_vbuxx < vbuaa=pbuz1_derefidx_vbuaa < vbuaa=pbuz1_derefidx_vbuyy - clobber:A Y cycles:17.5
txa
tay
lda ({z1}),y
@ -419,7 +419,7 @@ _deref_pbuz1=pbuz2_derefidx_vbuaa < _deref_pbuz1=pbuz2_derefidx_vbuyy < vbuaa=pb
lda ({z2}),y
ldy #0
sta ({z1}),y
_deref_pbuz1=pbuz2_derefidx_vbuxx < _deref_pbuz1=pbuz2_derefidx_vbuaa < _deref_pbuz1=pbuz2_derefidx_vbuyy < vbuaa=pbuz1_derefidx_vbuyy - clobber:A Y cycles:17.5
_deref_pbuz1=pbuz2_derefidx_vbuxx < vbuaa=pbuz1_derefidx_vbuxx < vbuaa=pbuz1_derefidx_vbuaa < vbuaa=pbuz1_derefidx_vbuyy - clobber:A Y cycles:17.5
txa
tay
lda ({z2}),y
@ -514,7 +514,7 @@ _deref_pbuc1=pbuz1_derefidx_vbuaa < _deref_pbuc1=pbuz1_derefidx_vbuyy < vbuaa=pb
tay
lda ({z1}),y
sta {c1}
_deref_pbuc1=pbuz1_derefidx_vbuxx < _deref_pbuc1=pbuz1_derefidx_vbuaa < _deref_pbuc1=pbuz1_derefidx_vbuyy < vbuaa=pbuz1_derefidx_vbuyy - clobber:A Y cycles:13.5
_deref_pbuc1=pbuz1_derefidx_vbuxx < vbuaa=pbuz1_derefidx_vbuxx < vbuaa=pbuz1_derefidx_vbuaa < vbuaa=pbuz1_derefidx_vbuyy - clobber:A Y cycles:13.5
txa
tay
lda ({z1}),y
@ -613,9 +613,11 @@ pbuz1_derefidx_vbuaa=vbuxx < pbuz1_derefidx_vbuyy=vbuxx < pbuz1_derefidx_vbuyy=v
txa
sta ({z1}),y
pbuz1_derefidx_vbuaa=vbuyy < pbuz1_derefidx_vbuaa=vbuaa - clobber:A Y cycles:10.0
pbuz1_derefidx_vbuaa=vbuyy < pbuz1_derefidx_vbuxx=vbuyy < pbuz1_derefidx_vbuxx=vbuaa - clobber:A X Y cycles:16.0
tax
tya
tay
stx $ff
ldy $ff
sta ({z1}),y
pbuz1_derefidx_vbuaa=vbuz1 < pbuz1_derefidx_vbuyy=vbuz1 < pbuz1_derefidx_vbuyy=vbuaa - clobber:A Y cycles:11.0
@ -628,7 +630,14 @@ pbuz1_derefidx_vbuaa=vbuz2 < pbuz1_derefidx_vbuyy=vbuz2 < pbuz1_derefidx_vbuyy=v
lda {z2}
sta ({z1}),y
CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_deref_pbuz1
pbuz1_derefidx_vbuaa=_deref_pbuz1 < pbuz1_derefidx_vbuxx=_deref_pbuz1 < pbuz1_derefidx_vbuxx=vbuaa - clobber:A X Y cycles:21.5
tax
ldy #0
lda ({z1}),y
stx $ff
ldy $ff
sta ({z1}),y
CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=_deref_pbuz2
pbuz1_derefidx_vbuaa=_deref_pbuc1 < pbuz1_derefidx_vbuyy=_deref_pbuc1 < pbuz1_derefidx_vbuyy=vbuaa - clobber:A Y cycles:12.0
tay
@ -658,21 +667,23 @@ pbuz1_derefidx_vbuaa=pbuc1_derefidx_vbuxx < pbuz1_derefidx_vbuyy=pbuc1_derefidx_
lda {c1},x
sta ({z1}),y
pbuz1_derefidx_vbuaa=pbuc1_derefidx_vbuyy < pbuz1_derefidx_vbuaa=vbuaa - clobber:A Y cycles:12.5
pbuz1_derefidx_vbuaa=pbuc1_derefidx_vbuyy < pbuz1_derefidx_vbuxx=pbuc1_derefidx_vbuyy < pbuz1_derefidx_vbuxx=vbuaa - clobber:A X Y cycles:18.5
tax
lda {c1},y
tay
stx $ff
ldy $ff
sta ({z1}),y
pbuz1_derefidx_vbuaa=pbuc1_derefidx_vbuz1 < pbuz1_derefidx_vbuaa=pbuc1_derefidx_vbuyy < pbuz1_derefidx_vbuaa=vbuaa - clobber:A Y cycles:15.5
ldy {z1}
lda {c1},y
pbuz1_derefidx_vbuaa=pbuc1_derefidx_vbuz1 < pbuz1_derefidx_vbuyy=pbuc1_derefidx_vbuz1 < pbuz1_derefidx_vbuyy=pbuc1_derefidx_vbuxx < pbuz1_derefidx_vbuyy=vbuaa - clobber:A X Y cycles:15.5
tay
ldx {z1}
lda {c1},x
sta ({z1}),y
pbuz1_derefidx_vbuaa=pbuc1_derefidx_vbuz2 < pbuz1_derefidx_vbuaa=pbuc1_derefidx_vbuyy < pbuz1_derefidx_vbuaa=vbuaa - clobber:A Y cycles:15.5
ldy {z2}
lda {c1},y
pbuz1_derefidx_vbuaa=pbuc1_derefidx_vbuz2 < pbuz1_derefidx_vbuyy=pbuc1_derefidx_vbuz2 < pbuz1_derefidx_vbuyy=pbuc1_derefidx_vbuxx < pbuz1_derefidx_vbuyy=vbuaa - clobber:A X Y cycles:15.5
tay
ldx {z2}
lda {c1},x
sta ({z1}),y
CANNOT SYNTHESIZE pbuz1_derefidx_vbuaa=pbuc1_derefidx_vbuc1
@ -692,10 +703,10 @@ pbuz1_derefidx_vbuaa=vbuc1 < pbuz1_derefidx_vbuyy=vbuc1 < pbuz1_derefidx_vbuyy=v
tay
sta ({z1}),y
pbuz1_derefidx_vbuxx=vbuyy < pbuz1_derefidx_vbuaa=vbuyy < pbuz1_derefidx_vbuaa=vbuaa - clobber:A Y cycles:12.0
txa
pbuz1_derefidx_vbuxx=vbuyy < pbuz1_derefidx_vbuxx=vbuaa - clobber:A Y cycles:14.0
tya
tay
stx $ff
ldy $ff
sta ({z1}),y
pbuz1_derefidx_vbuxx=vbuz1 < pbuz1_derefidx_vbuaa=vbuz1 < pbuz1_derefidx_vbuyy=vbuz1 < pbuz1_derefidx_vbuyy=vbuaa - clobber:A Y cycles:13.0
@ -710,7 +721,13 @@ pbuz1_derefidx_vbuxx=vbuz1 < pbuz1_derefidx_vbuaa=vbuz1 < pbuz1_derefidx_vbuyy=v
lda {z2}
sta ({z1}),y
CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_deref_pbuz1
pbuz1_derefidx_vbuxx=_deref_pbuz1 < pbuz1_derefidx_vbuxx=vbuaa - clobber:A Y cycles:19.5
ldy #0
lda ({z1}),y
stx $ff
ldy $ff
sta ({z1}),y
CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=_deref_pbuz2
pbuz1_derefidx_vbuxx=_deref_pbuc1 < pbuz1_derefidx_vbuaa=_deref_pbuc1 < pbuz1_derefidx_vbuyy=_deref_pbuc1 < pbuz1_derefidx_vbuyy=vbuaa - clobber:A Y cycles:14.0
txa
@ -731,11 +748,11 @@ CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=pbuz2_derefidx_vbuz1
CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=pbuz2_derefidx_vbuz2
CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=pbuz2_derefidx_vbuz3
CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=pbuz2_derefidx_vbuc1
pbuz1_derefidx_vbuxx=pbuc1_derefidx_vbuaa < pbuz1_derefidx_vbuxx=pbuc1_derefidx_vbuyy < pbuz1_derefidx_vbuaa=pbuc1_derefidx_vbuyy < pbuz1_derefidx_vbuaa=vbuaa - clobber:A Y cycles:16.5
pbuz1_derefidx_vbuxx=pbuc1_derefidx_vbuaa < pbuz1_derefidx_vbuxx=pbuc1_derefidx_vbuyy < pbuz1_derefidx_vbuxx=vbuaa - clobber:A Y cycles:18.5
tay
txa
lda {c1},y
tay
stx $ff
ldy $ff
sta ({z1}),y
pbuz1_derefidx_vbuxx=pbuc1_derefidx_vbuxx < pbuz1_derefidx_vbuaa=pbuc1_derefidx_vbuaa < pbuz1_derefidx_vbuyy=pbuc1_derefidx_vbuyy < pbuz1_derefidx_vbuyy=vbuaa - clobber:A Y cycles:14.5
@ -744,24 +761,38 @@ pbuz1_derefidx_vbuxx=pbuc1_derefidx_vbuxx < pbuz1_derefidx_vbuaa=pbuc1_derefidx_
lda {c1},y
sta ({z1}),y
pbuz1_derefidx_vbuxx=pbuc1_derefidx_vbuyy < pbuz1_derefidx_vbuaa=pbuc1_derefidx_vbuyy < pbuz1_derefidx_vbuaa=vbuaa - clobber:A Y cycles:14.5
txa
pbuz1_derefidx_vbuxx=pbuc1_derefidx_vbuyy < pbuz1_derefidx_vbuxx=vbuaa - clobber:A Y cycles:16.5
lda {c1},y
tay
stx $ff
ldy $ff
sta ({z1}),y
pbuz1_derefidx_vbuxx=pbuc1_derefidx_vbuz1 < pbuz1_derefidx_vbuxx=pbuc1_derefidx_vbuyy < pbuz1_derefidx_vbuaa=pbuc1_derefidx_vbuyy < pbuz1_derefidx_vbuaa=vbuaa - clobber:A Y cycles:17.5
pbuz1_derefidx_vbuxx=pbuc1_derefidx_vbuz1 < pbuz1_derefidx_vbuxx=pbuc1_derefidx_vbuyy < pbuz1_derefidx_vbuxx=vbuaa - clobber:A Y cycles:19.5
ldy {z1}
txa
lda {c1},y
tay
stx $ff
ldy $ff
sta ({z1}),y
pbuz1_derefidx_vbuxx=pbuc1_derefidx_vbuz2 < pbuz1_derefidx_vbuxx=pbuc1_derefidx_vbuyy < pbuz1_derefidx_vbuaa=pbuc1_derefidx_vbuyy < pbuz1_derefidx_vbuaa=vbuaa - clobber:A Y cycles:17.5
ldy {z2}
pbuz1_derefidx_vbuxx=pbuc1_derefidx_vbuz1 < pbuz1_derefidx_vbuaa=pbuc1_derefidx_vbuz1 < pbuz1_derefidx_vbuyy=pbuc1_derefidx_vbuz1 < pbuz1_derefidx_vbuyy=pbuc1_derefidx_vbuxx < pbuz1_derefidx_vbuyy=vbuaa - clobber:A X Y cycles:17.5
txa
lda {c1},y
tay
ldx {z1}
lda {c1},x
sta ({z1}),y
pbuz1_derefidx_vbuxx=pbuc1_derefidx_vbuz2 < pbuz1_derefidx_vbuxx=pbuc1_derefidx_vbuyy < pbuz1_derefidx_vbuxx=vbuaa - clobber:A Y cycles:19.5
ldy {z2}
lda {c1},y
stx $ff
ldy $ff
sta ({z1}),y
pbuz1_derefidx_vbuxx=pbuc1_derefidx_vbuz2 < pbuz1_derefidx_vbuaa=pbuc1_derefidx_vbuz2 < pbuz1_derefidx_vbuyy=pbuc1_derefidx_vbuz2 < pbuz1_derefidx_vbuyy=pbuc1_derefidx_vbuxx < pbuz1_derefidx_vbuyy=vbuaa - clobber:A X Y cycles:17.5
txa
tay
ldx {z2}
lda {c1},x
sta ({z1}),y
CANNOT SYNTHESIZE pbuz1_derefidx_vbuxx=pbuc1_derefidx_vbuc1
@ -791,7 +822,15 @@ pbuz1_derefidx_vbuyy=vbuz2 < pbuz1_derefidx_vbuyy=vbuaa - clobber:A cycles:9.0
lda {z2}
sta ({z1}),y
CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_deref_pbuz1
pbuz1_derefidx_vbuyy=_deref_pbuz1 < pbuz1_derefidx_vbuaa=_deref_pbuz1 < pbuz1_derefidx_vbuxx=_deref_pbuz1 < pbuz1_derefidx_vbuxx=vbuaa - clobber:A X Y cycles:23.5
tya
tax
ldy #0
lda ({z1}),y
stx $ff
ldy $ff
sta ({z1}),y
CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=_deref_pbuz2
pbuz1_derefidx_vbuyy=_deref_pbuc1 < pbuz1_derefidx_vbuyy=vbuaa - clobber:A cycles:10.0
lda {c1}
@ -828,25 +867,11 @@ pbuz1_derefidx_vbuyy=pbuc1_derefidx_vbuz1 < pbuz1_derefidx_vbuyy=pbuc1_derefidx_
lda {c1},x
sta ({z1}),y
pbuz1_derefidx_vbuyy=pbuc1_derefidx_vbuz1 < pbuz1_derefidx_vbuaa=pbuc1_derefidx_vbuz1 < pbuz1_derefidx_vbuaa=pbuc1_derefidx_vbuyy < pbuz1_derefidx_vbuaa=vbuaa - clobber:A Y cycles:17.5
tya
ldy {z1}
lda {c1},y
tay
sta ({z1}),y
pbuz1_derefidx_vbuyy=pbuc1_derefidx_vbuz2 < pbuz1_derefidx_vbuyy=pbuc1_derefidx_vbuxx < pbuz1_derefidx_vbuyy=vbuaa - clobber:A X cycles:13.5
ldx {z2}
lda {c1},x
sta ({z1}),y
pbuz1_derefidx_vbuyy=pbuc1_derefidx_vbuz2 < pbuz1_derefidx_vbuaa=pbuc1_derefidx_vbuz2 < pbuz1_derefidx_vbuaa=pbuc1_derefidx_vbuyy < pbuz1_derefidx_vbuaa=vbuaa - clobber:A Y cycles:17.5
tya
ldy {z2}
lda {c1},y
tay
sta ({z1}),y
CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=pbuc1_derefidx_vbuc1
CANNOT SYNTHESIZE pbuz1_derefidx_vbuyy=pbuc1_derefidx_vbuc2
pbuz1_derefidx_vbuyy=vbuc1 < pbuz1_derefidx_vbuyy=vbuaa - clobber:A cycles:8.0
@ -877,7 +902,12 @@ pbuz1_derefidx_vbuz1=vbuz2 < pbuz1_derefidx_vbuyy=vbuz2 < pbuz1_derefidx_vbuyy=v
lda {z2}
sta ({z1}),y
CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_deref_pbuz1
pbuz1_derefidx_vbuz1=_deref_pbuz1 < pbuz1_derefidx_vbuz1=vbuaa < pbuz1_derefidx_vbuyy=vbuaa - clobber:A Y cycles:16.5
ldy #0
lda ({z1}),y
ldy {z1}
sta ({z1}),y
CANNOT SYNTHESIZE pbuz1_derefidx_vbuz1=_deref_pbuz2
pbuz1_derefidx_vbuz1=_deref_pbuc1 < pbuz1_derefidx_vbuyy=_deref_pbuc1 < pbuz1_derefidx_vbuyy=vbuaa - clobber:A Y cycles:13.0
ldy {z1}
@ -960,7 +990,12 @@ pbuz1_derefidx_vbuz2=vbuz3 < pbuz1_derefidx_vbuyy=vbuz2 < pbuz1_derefidx_vbuyy=v
lda {z3}
sta ({z1}),y
CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_deref_pbuz1
pbuz1_derefidx_vbuz2=_deref_pbuz1 < pbuz1_derefidx_vbuz2=vbuaa - clobber:A Y cycles:16.5
ldy #0
lda ({z1}),y
ldy {z2}
sta ({z1}),y
CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_deref_pbuz2
pbuz1_derefidx_vbuz2=_deref_pbuz3 < vbuaa=_deref_pbuz1 - clobber:A Y cycles:16.5
ldy #0
@ -991,7 +1026,7 @@ pbuz1_derefidx_vbuz2=pbuz3_derefidx_vbuaa < pbuz1_derefidx_vbuz2=pbuz3_derefidx_
lda ({z3}),y
ldy {z2}
sta ({z1}),y
pbuz1_derefidx_vbuz2=pbuz3_derefidx_vbuxx < pbuz1_derefidx_vbuz2=pbuz3_derefidx_vbuaa < pbuz1_derefidx_vbuz2=pbuz3_derefidx_vbuyy < vbuaa=pbuz1_derefidx_vbuyy - clobber:A Y cycles:18.5
pbuz1_derefidx_vbuz2=pbuz3_derefidx_vbuxx < vbuaa=pbuz1_derefidx_vbuxx < vbuaa=pbuz1_derefidx_vbuaa < vbuaa=pbuz1_derefidx_vbuyy - clobber:A Y cycles:18.5
txa
tay
lda ({z3}),y
@ -1083,7 +1118,12 @@ pbuz1_derefidx_vbuc1=vbuz2 < pbuz1_derefidx_vbuc1=vbuaa - clobber:A Y cycles:11
ldy #{c1}
sta ({z1}),y
CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_deref_pbuz1
pbuz1_derefidx_vbuc1=_deref_pbuz1 < pbuz1_derefidx_vbuc1=vbuaa - clobber:A Y cycles:15.5
ldy #0
lda ({z1}),y
ldy #{c1}
sta ({z1}),y
CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_deref_pbuz2
CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_deref_pbuc1
CANNOT SYNTHESIZE pbuz1_derefidx_vbuc1=_deref_pbuc2
@ -1155,20 +1195,10 @@ pbuc1_derefidx_vbuaa=vbuxx < pbuc1_derefidx_vbuyy=vbuxx < pbuc1_derefidx_vbuyy=v
txa
sta {c1},y
pbuc1_derefidx_vbuaa=vbuxx < pbuc1_derefidx_vbuaa=vbuaa - clobber:A X cycles:9.0
txa
tax
sta {c1},x
pbuc1_derefidx_vbuaa=vbuyy < pbuc1_derefidx_vbuxx=vbuyy < vbuaa=vbuyy - clobber:A X cycles:9.0
tax
tya
sta {c1},x
pbuc1_derefidx_vbuaa=vbuyy < pbuc1_derefidx_vbuaa=vbuaa < pbuc1_derefidx_vbuyy=vbuyy < vbuaa=vbuyy - clobber:A Y cycles:11.0
tya
tay
tya
sta {c1},y
pbuc1_derefidx_vbuaa=vbuz1 < pbuc1_derefidx_vbuxx=vbuz1 < pbuc1_derefidx_vbuxx=vbuaa - clobber:A X cycles:10.0
tax
lda {z1}
@ -1179,17 +1209,12 @@ pbuc1_derefidx_vbuaa=vbuz1 < pbuc1_derefidx_vbuyy=vbuz1 < pbuc1_derefidx_vbuyy=v
lda {z1}
sta {c1},y
pbuc1_derefidx_vbuaa=_deref_pbuz1 < pbuc1_derefidx_vbuxx=_deref_pbuz1 < vbuaa=_deref_pbuz1 - clobber:A X Y cycles:14.5
pbuc1_derefidx_vbuaa=_deref_pbuz1 < pbuc1_derefidx_vbuxx=_deref_pbuz1 < pbuc1_derefidx_vbuxx=vbuaa - clobber:A X Y cycles:14.5
tax
ldy #0
lda ({z1}),y
sta {c1},x
pbuc1_derefidx_vbuaa=_deref_pbuz1 < pbuc1_derefidx_vbuaa=vbuaa < pbuc1_derefidx_vbuyy=vbuyy < vbuaa=vbuyy - clobber:A Y cycles:16.5
ldy #0
lda ({z1}),y
tay
tya
sta {c1},y
CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_deref_pbuc1
pbuc1_derefidx_vbuaa=_deref_pbuc2 < pbuc1_derefidx_vbuxx=_deref_pbuc2 < vbuaa=_deref_pbuc1 - clobber:A X cycles:11.0
tax
@ -1243,33 +1268,15 @@ pbuc1_derefidx_vbuaa=pbuc2_derefidx_vbuxx < pbuc1_derefidx_vbuyy=pbuc2_derefidx_
tay
lda {c2},x
sta {c1},y
pbuc1_derefidx_vbuaa=pbuc2_derefidx_vbuxx < pbuc1_derefidx_vbuaa=vbuaa - clobber:A X cycles:11.5
lda {c2},x
pbuc1_derefidx_vbuaa=pbuc2_derefidx_vbuyy < pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuyy < vbuaa=pbuc1_derefidx_vbuyy - clobber:A X cycles:11.5
tax
sta {c1},x
pbuc1_derefidx_vbuaa=pbuc2_derefidx_vbuyy < pbuc1_derefidx_vbuaa=vbuaa - clobber:A X cycles:11.5
lda {c2},y
sta {c1},x
pbuc1_derefidx_vbuaa=pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuyy < vbuaa=pbuc1_derefidx_vbuyy - clobber:A X Y cycles:14.5
tax
sta {c1},x
pbuc1_derefidx_vbuaa=pbuc2_derefidx_vbuyy < pbuc1_derefidx_vbuaa=vbuaa < pbuc1_derefidx_vbuyy=vbuyy < vbuaa=vbuyy - clobber:A Y cycles:13.5
lda {c2},y
tay
tya
sta {c1},y
pbuc1_derefidx_vbuaa=pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuaa=pbuc2_derefidx_vbuyy < pbuc1_derefidx_vbuaa=vbuaa < pbuc1_derefidx_vbuyy=vbuyy < vbuaa=vbuyy - clobber:A Y cycles:16.5
ldy {z1}
lda {c2},y
tay
tya
sta {c1},y
pbuc1_derefidx_vbuaa=pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuaa=pbuc2_derefidx_vbuxx < pbuc1_derefidx_vbuaa=vbuaa - clobber:A X cycles:14.5
ldx {z1}
lda {c2},x
tax
sta {c1},x
CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=pbuc2_derefidx_vbuc1
CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=pbuc2_derefidx_vbuc2
CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=pbuc2_derefidx_vbuc3
@ -1296,10 +1303,11 @@ pbuc1_derefidx_vbuxx=vbuz1 < pbuc1_derefidx_vbuxx=vbuaa - clobber:A cycles:8.0
lda {z1}
sta {c1},x
pbuc1_derefidx_vbuxx=_deref_pbuz1 < vbuaa=_deref_pbuz1 - clobber:A Y cycles:12.5
pbuc1_derefidx_vbuxx=_deref_pbuz1 < pbuc1_derefidx_vbuxx=vbuaa - clobber:A Y cycles:12.5
ldy #0
lda ({z1}),y
sta {c1},x
CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_deref_pbuc1
pbuc1_derefidx_vbuxx=_deref_pbuc2 < vbuaa=_deref_pbuc1 - clobber:A cycles:9.0
lda {c2}
@ -1350,13 +1358,6 @@ pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuxx=pbuc2_derefidx_
ldy {z1}
lda {c2},y
sta {c1},x
pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuaa=pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuaa=pbuc2_derefidx_vbuxx < pbuc1_derefidx_vbuaa=vbuaa - clobber:A X cycles:16.5
txa
ldx {z1}
lda {c2},x
tax
sta {c1},x
CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuc1
CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuc2
CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=pbuc2_derefidx_vbuc3
@ -1378,19 +1379,13 @@ pbuc1_derefidx_vbuyy=vbuz1 < pbuc1_derefidx_vbuyy=vbuaa - clobber:A cycles:8.0
lda {z1}
sta {c1},y
pbuc1_derefidx_vbuyy=_deref_pbuz1 < pbuc1_derefidx_vbuaa=_deref_pbuz1 < pbuc1_derefidx_vbuxx=_deref_pbuz1 < vbuaa=_deref_pbuz1 - clobber:A X Y cycles:16.5
pbuc1_derefidx_vbuyy=_deref_pbuz1 < pbuc1_derefidx_vbuaa=_deref_pbuz1 < pbuc1_derefidx_vbuxx=_deref_pbuz1 < pbuc1_derefidx_vbuxx=vbuaa - clobber:A X Y cycles:16.5
tya
tax
ldy #0
lda ({z1}),y
sta {c1},x
pbuc1_derefidx_vbuyy=_deref_pbuz1 < pbuc1_derefidx_vbuaa=_deref_pbuz1 < pbuc1_derefidx_vbuaa=vbuaa < pbuc1_derefidx_vbuyy=vbuyy < vbuaa=vbuyy - clobber:A Y cycles:18.5
tya
ldy #0
lda ({z1}),y
tay
tya
sta {c1},y
CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_deref_pbuc1
pbuc1_derefidx_vbuyy=_deref_pbuc2 < vbuaa=_deref_pbuc1 - clobber:A cycles:9.0
lda {c2}
@ -1440,13 +1435,6 @@ pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuyy=pbuc2_derefidx_
ldx {z1}
lda {c2},x
sta {c1},y
pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuaa=pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuaa=pbuc2_derefidx_vbuyy < pbuc1_derefidx_vbuaa=vbuaa < pbuc1_derefidx_vbuyy=vbuyy < vbuaa=vbuyy - clobber:A Y cycles:18.5
tya
ldy {z1}
lda {c2},y
tay
tya
sta {c1},y
CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuc1
CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuc2
CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=pbuc2_derefidx_vbuc3
@ -1499,30 +1487,18 @@ pbuc1_derefidx_vbuz1=vbuz2 < pbuc1_derefidx_vbuxx=vbuz1 < pbuc1_derefidx_vbuxx=v
lda {z2}
sta {c1},x
pbuc1_derefidx_vbuz1=_deref_pbuz1 < pbuc1_derefidx_vbuaa=_deref_pbuz1 < pbuc1_derefidx_vbuaa=vbuaa < pbuc1_derefidx_vbuyy=vbuyy < vbuaa=vbuyy - clobber:A Y cycles:19.5
lda {z1}
pbuc1_derefidx_vbuz1=_deref_pbuz1 < pbuc1_derefidx_vbuz1=vbuaa < pbuc1_derefidx_vbuyy=vbuaa - clobber:A Y cycles:15.5
ldy #0
lda ({z1}),y
tay
tya
ldy {z1}
sta {c1},y
pbuc1_derefidx_vbuz1=_deref_pbuz1 < pbuc1_derefidx_vbuxx=_deref_pbuz1 < vbuaa=_deref_pbuz1 - clobber:A X Y cycles:15.5
ldx {z1}
ldy #0
lda ({z1}),y
sta {c1},x
pbuc1_derefidx_vbuz1=_deref_pbuz2 < pbuc1_derefidx_vbuaa=_deref_pbuz1 < pbuc1_derefidx_vbuaa=vbuaa < pbuc1_derefidx_vbuyy=vbuyy < vbuaa=vbuyy - clobber:A Y cycles:19.5
lda {z1}
ldy #0
lda ({z2}),y
tay
tya
sta {c1},y
pbuc1_derefidx_vbuz1=_deref_pbuz2 < pbuc1_derefidx_vbuxx=_deref_pbuz1 < vbuaa=_deref_pbuz1 - clobber:A X Y cycles:15.5
pbuc1_derefidx_vbuz1=_deref_pbuz2 < pbuc1_derefidx_vbuxx=_deref_pbuz1 < pbuc1_derefidx_vbuxx=vbuaa - clobber:A X Y cycles:15.5
ldx {z1}
ldy #0
lda ({z2}),y
sta {c1},x
pbuc1_derefidx_vbuz1=_deref_pbuc1 < vbuaa=_deref_pbuc1 - clobber:A X cycles:12.0
lda {c1}
ldx {z1}
@ -1540,11 +1516,11 @@ pbuc1_derefidx_vbuz1=pbuz1_derefidx_vbuaa < pbuc1_derefidx_vbuz1=pbuz1_derefidx_
ldx {z1}
lda ({z1}),y
sta {c1},x
pbuc1_derefidx_vbuz1=pbuz1_derefidx_vbuxx < pbuc1_derefidx_vbuz1=pbuz1_derefidx_vbuaa < pbuc1_derefidx_vbuz1=pbuz1_derefidx_vbuyy < pbuc1_derefidx_vbuxx=pbuz1_derefidx_vbuyy < vbuaa=pbuz1_derefidx_vbuyy - clobber:A X Y cycles:17.5
pbuc1_derefidx_vbuz1=pbuz1_derefidx_vbuxx < vbuaa=pbuz1_derefidx_vbuxx < vbuaa=pbuz1_derefidx_vbuaa < vbuaa=pbuz1_derefidx_vbuyy - clobber:A X Y cycles:17.5
txa
tay
ldx {z1}
lda ({z1}),y
ldx {z1}
sta {c1},x
pbuc1_derefidx_vbuz1=pbuz1_derefidx_vbuyy < pbuc1_derefidx_vbuxx=pbuz1_derefidx_vbuyy < vbuaa=pbuz1_derefidx_vbuyy - clobber:A X cycles:13.5
ldx {z1}
@ -1572,11 +1548,11 @@ pbuc1_derefidx_vbuz1=pbuz2_derefidx_vbuaa < pbuc1_derefidx_vbuz1=pbuz2_derefidx_
ldx {z1}
lda ({z2}),y
sta {c1},x
pbuc1_derefidx_vbuz1=pbuz2_derefidx_vbuxx < pbuc1_derefidx_vbuz1=pbuz2_derefidx_vbuaa < pbuc1_derefidx_vbuz1=pbuz2_derefidx_vbuyy < pbuc1_derefidx_vbuxx=pbuz1_derefidx_vbuyy < vbuaa=pbuz1_derefidx_vbuyy - clobber:A X Y cycles:17.5
pbuc1_derefidx_vbuz1=pbuz2_derefidx_vbuxx < vbuaa=pbuz1_derefidx_vbuxx < vbuaa=pbuz1_derefidx_vbuaa < vbuaa=pbuz1_derefidx_vbuyy - clobber:A X Y cycles:17.5
txa
tay
ldx {z1}
lda ({z2}),y
ldx {z1}
sta {c1},x
pbuc1_derefidx_vbuz1=pbuz2_derefidx_vbuyy < pbuc1_derefidx_vbuxx=pbuz1_derefidx_vbuyy < vbuaa=pbuz1_derefidx_vbuyy - clobber:A X cycles:13.5
ldx {z1}

View File

@ -8,22 +8,22 @@ vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A cycles:4.0
CANNOT SYNTHESIZE vbuaa=_neg_vbuaa
CANNOT SYNTHESIZE vbuaa=_pos_vbuaa
CANNOT SYNTHESIZE vbuaa=_not_vbuxx
vbuaa=_dec_vbuxx < vbuaa=vbuxx_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A cycles:6.0
vbuaa=_dec_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A cycles:6.0
txa
sec
sbc #1
vbuaa=_inc_vbuxx < vbuaa=vbuxx_plus_1 < vbuaa=1_plus_vbuxx < vbuaa=1_plus_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A cycles:6.0
vbuaa=_inc_vbuxx < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A cycles:6.0
txa
clc
adc #1
CANNOT SYNTHESIZE vbuaa=_neg_vbuxx
CANNOT SYNTHESIZE vbuaa=_pos_vbuxx
CANNOT SYNTHESIZE vbuaa=_not_vbuyy
vbuaa=_dec_vbuyy < vbuaa=vbuyy_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A cycles:6.0
vbuaa=_dec_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A cycles:6.0
tya
sec
sbc #1
vbuaa=_inc_vbuyy < vbuaa=vbuyy_plus_1 < vbuaa=1_plus_vbuyy < vbuaa=1_plus_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A cycles:6.0
vbuaa=_inc_vbuyy < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A cycles:6.0
tya
clc
adc #1
@ -41,12 +41,12 @@ vbuaa=_inc_vbuz1 < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A cycles:7.
CANNOT SYNTHESIZE vbuaa=_neg_vbuz1
CANNOT SYNTHESIZE vbuaa=_pos_vbuz1
CANNOT SYNTHESIZE vbuaa=_not__deref_pbuz1
vbuaa=_dec__deref_pbuz1 < vbuaa=_deref_pbuz1_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:11.5
vbuaa=_dec__deref_pbuz1 < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:11.5
ldy #0
lda ({z1}),y
sec
sbc #1
vbuaa=_inc__deref_pbuz1 < vbuaa=_deref_pbuz1_plus_1 < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:11.5
vbuaa=_inc__deref_pbuz1 < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:11.5
ldy #0
lda ({z1}),y
clc
@ -184,14 +184,12 @@ vbuaa=_inc_vbuc1 < vbuaa=vbuc1_plus_1 < vbuaa=1_plus_vbuc1 < vbuaa=1_plus_vbuaa
CANNOT SYNTHESIZE vbuaa=_neg_vbuc1
CANNOT SYNTHESIZE vbuaa=_pos_vbuc1
CANNOT SYNTHESIZE vbuxx=_not_vbuaa
vbuxx=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:6.0
sec
sbc #1
vbuxx=_dec_vbuaa < vbuxx=_dec_vbuxx - clobber:X cycles:4.0
tax
vbuxx=_inc_vbuaa < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A X cycles:6.0
clc
adc #1
dex
vbuxx=_inc_vbuaa < vbuxx=_inc_vbuxx - clobber:X cycles:4.0
tax
inx
CANNOT SYNTHESIZE vbuxx=_neg_vbuaa
CANNOT SYNTHESIZE vbuxx=_pos_vbuaa
CANNOT SYNTHESIZE vbuxx=_not_vbuxx
@ -202,16 +200,14 @@ CANNOT SYNTHESIZE vbuxx=_not_vbuxx
CANNOT SYNTHESIZE vbuxx=_neg_vbuxx
CANNOT SYNTHESIZE vbuxx=_pos_vbuxx
CANNOT SYNTHESIZE vbuxx=_not_vbuyy
vbuxx=_dec_vbuyy < vbuaa=_dec_vbuyy < vbuaa=vbuyy_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A X cycles:8.0
vbuxx=_dec_vbuyy < vbuxx=_dec_vbuaa < vbuxx=_dec_vbuxx - clobber:A X cycles:6.0
tya
sec
sbc #1
tax
vbuxx=_inc_vbuyy < vbuaa=_inc_vbuyy < vbuaa=vbuyy_plus_1 < vbuaa=1_plus_vbuyy < vbuaa=1_plus_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A X cycles:8.0
dex
vbuxx=_inc_vbuyy < vbuxx=_inc_vbuaa < vbuxx=_inc_vbuxx - clobber:A X cycles:6.0
tya
clc
adc #1
tax
inx
CANNOT SYNTHESIZE vbuxx=_neg_vbuyy
CANNOT SYNTHESIZE vbuxx=_pos_vbuyy
CANNOT SYNTHESIZE vbuxx=_not_vbuz1
@ -224,18 +220,16 @@ vbuxx=_inc_vbuz1 < vbuxx=_inc_vbuxx - clobber:X cycles:5.0
CANNOT SYNTHESIZE vbuxx=_neg_vbuz1
CANNOT SYNTHESIZE vbuxx=_pos_vbuz1
CANNOT SYNTHESIZE vbuxx=_not__deref_pbuz1
vbuxx=_dec__deref_pbuz1 < vbuaa=_dec__deref_pbuz1 < vbuaa=_deref_pbuz1_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A X Y cycles:13.5
vbuxx=_dec__deref_pbuz1 < vbuxx=_dec_vbuaa < vbuxx=_dec_vbuxx - clobber:A X Y cycles:11.5
ldy #0
lda ({z1}),y
sec
sbc #1
tax
vbuxx=_inc__deref_pbuz1 < vbuaa=_inc__deref_pbuz1 < vbuaa=_deref_pbuz1_plus_1 < vbuaa=vbuaa_plus_1 - clobber:A X Y cycles:13.5
dex
vbuxx=_inc__deref_pbuz1 < vbuxx=_inc_vbuaa < vbuxx=_inc_vbuxx - clobber:A X Y cycles:11.5
ldy #0
lda ({z1}),y
clc
adc #1
tax
inx
CANNOT SYNTHESIZE vbuxx=_neg__deref_pbuz1
CANNOT SYNTHESIZE vbuxx=_pos__deref_pbuz1
CANNOT SYNTHESIZE vbuxx=_not__deref_pbuc1
@ -282,59 +276,51 @@ CANNOT SYNTHESIZE vbuxx=_inc_pbuz1_derefidx_vbuc1
CANNOT SYNTHESIZE vbuxx=_neg_pbuz1_derefidx_vbuc1
CANNOT SYNTHESIZE vbuxx=_pos_pbuz1_derefidx_vbuc1
CANNOT SYNTHESIZE vbuxx=_not_pbuc1_derefidx_vbuaa
vbuxx=_dec_pbuc1_derefidx_vbuaa < vbuaa=_dec_pbuc1_derefidx_vbuaa < vbuaa=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:12.5
vbuxx=_dec_pbuc1_derefidx_vbuaa < vbuxx=_dec_pbuc1_derefidx_vbuxx < vbuxx=_dec_vbuaa < vbuxx=_dec_vbuxx - clobber:A X cycles:10.5
tax
lda {c1},x
sec
sbc #1
tax
vbuxx=_inc_pbuc1_derefidx_vbuaa < vbuaa=_inc_pbuc1_derefidx_vbuaa < vbuaa=_inc_pbuc1_derefidx_vbuxx < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A X cycles:12.5
dex
vbuxx=_inc_pbuc1_derefidx_vbuaa < vbuxx=_inc_pbuc1_derefidx_vbuxx < vbuxx=_inc_vbuaa < vbuxx=_inc_vbuxx - clobber:A X cycles:10.5
tax
lda {c1},x
clc
adc #1
tax
inx
CANNOT SYNTHESIZE vbuxx=_neg_pbuc1_derefidx_vbuaa
CANNOT SYNTHESIZE vbuxx=_pos_pbuc1_derefidx_vbuaa
CANNOT SYNTHESIZE vbuxx=_not_pbuc1_derefidx_vbuxx
vbuxx=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:10.5
vbuxx=_dec_pbuc1_derefidx_vbuxx < vbuxx=_dec_vbuaa < vbuxx=_dec_vbuxx - clobber:A X cycles:8.5
lda {c1},x
sec
sbc #1
tax
vbuxx=_inc_pbuc1_derefidx_vbuxx < vbuaa=_inc_pbuc1_derefidx_vbuxx < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A X cycles:10.5
dex
vbuxx=_inc_pbuc1_derefidx_vbuxx < vbuxx=_inc_vbuaa < vbuxx=_inc_vbuxx - clobber:A X cycles:8.5
lda {c1},x
clc
adc #1
tax
inx
CANNOT SYNTHESIZE vbuxx=_neg_pbuc1_derefidx_vbuxx
CANNOT SYNTHESIZE vbuxx=_pos_pbuc1_derefidx_vbuxx
CANNOT SYNTHESIZE vbuxx=_not_pbuc1_derefidx_vbuyy
vbuxx=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:10.5
vbuxx=_dec_pbuc1_derefidx_vbuyy < vbuxx=_dec_vbuaa < vbuxx=_dec_vbuxx - clobber:A X cycles:8.5
lda {c1},y
sec
sbc #1
tax
vbuxx=_inc_pbuc1_derefidx_vbuyy < vbuaa=_inc_pbuc1_derefidx_vbuyy < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A X cycles:10.5
dex
vbuxx=_inc_pbuc1_derefidx_vbuyy < vbuxx=_inc_vbuaa < vbuxx=_inc_vbuxx - clobber:A X cycles:8.5
lda {c1},y
clc
adc #1
tax
inx
CANNOT SYNTHESIZE vbuxx=_neg_pbuc1_derefidx_vbuyy
CANNOT SYNTHESIZE vbuxx=_pos_pbuc1_derefidx_vbuyy
CANNOT SYNTHESIZE vbuxx=_not_pbuc1_derefidx_vbuz1
vbuxx=_dec_pbuc1_derefidx_vbuz1 < vbuxx=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:13.5
vbuxx=_dec_pbuc1_derefidx_vbuz1 < vbuxx=_dec_pbuc1_derefidx_vbuxx < vbuxx=_dec_vbuaa < vbuxx=_dec_vbuxx - clobber:A X cycles:11.5
ldx {z1}
lda {c1},x
sec
sbc #1
tax
vbuxx=_inc_pbuc1_derefidx_vbuz1 < vbuxx=_inc_pbuc1_derefidx_vbuxx < vbuaa=_inc_pbuc1_derefidx_vbuxx < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A X cycles:13.5
dex
vbuxx=_inc_pbuc1_derefidx_vbuz1 < vbuxx=_inc_pbuc1_derefidx_vbuxx < vbuxx=_inc_vbuaa < vbuxx=_inc_vbuxx - clobber:A X cycles:11.5
ldx {z1}
lda {c1},x
clc
adc #1
tax
inx
CANNOT SYNTHESIZE vbuxx=_neg_pbuc1_derefidx_vbuz1
CANNOT SYNTHESIZE vbuxx=_pos_pbuc1_derefidx_vbuz1
CANNOT SYNTHESIZE vbuxx=_not_pbuc1_derefidx_vbuc1
@ -348,40 +334,34 @@ CANNOT SYNTHESIZE vbuxx=_inc_pbuc1_derefidx_vbuc2
CANNOT SYNTHESIZE vbuxx=_neg_pbuc1_derefidx_vbuc2
CANNOT SYNTHESIZE vbuxx=_pos_pbuc1_derefidx_vbuc2
CANNOT SYNTHESIZE vbuxx=_not_vbuc1
vbuxx=_dec_vbuc1 < vbuaa=_dec_vbuc1 < vbuaa=vbuc1_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A X cycles:8.0
vbuxx=_dec_vbuc1 < vbuxx=_dec_vbuaa < vbuxx=_dec_vbuxx - clobber:A X cycles:6.0
lda #{c1}
sec
sbc #1
tax
vbuxx=_inc_vbuc1 < vbuaa=_inc_vbuc1 < vbuaa=vbuc1_plus_1 < vbuaa=1_plus_vbuc1 < vbuaa=1_plus_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A X cycles:8.0
dex
vbuxx=_inc_vbuc1 < vbuxx=_inc_vbuaa < vbuxx=_inc_vbuxx - clobber:A X cycles:6.0
lda #{c1}
clc
adc #1
tax
inx
CANNOT SYNTHESIZE vbuxx=_neg_vbuc1
CANNOT SYNTHESIZE vbuxx=_pos_vbuc1
CANNOT SYNTHESIZE vbuyy=_not_vbuaa
vbuyy=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:6.0
sec
sbc #1
vbuyy=_dec_vbuaa < vbuyy=_dec_vbuyy - clobber:Y cycles:4.0
tay
vbuyy=_inc_vbuaa < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:6.0
clc
adc #1
dey
vbuyy=_inc_vbuaa < vbuyy=_inc_vbuyy - clobber:Y cycles:4.0
tay
iny
CANNOT SYNTHESIZE vbuyy=_neg_vbuaa
CANNOT SYNTHESIZE vbuyy=_pos_vbuaa
CANNOT SYNTHESIZE vbuyy=_not_vbuxx
vbuyy=_dec_vbuxx < vbuaa=_dec_vbuxx < vbuaa=vbuxx_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:8.0
vbuyy=_dec_vbuxx < vbuyy=_dec_vbuaa < vbuyy=_dec_vbuyy - clobber:A Y cycles:6.0
txa
sec
sbc #1
tay
vbuyy=_inc_vbuxx < vbuaa=_inc_vbuxx < vbuaa=vbuxx_plus_1 < vbuaa=1_plus_vbuxx < vbuaa=1_plus_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:8.0
dey
vbuyy=_inc_vbuxx < vbuyy=_inc_vbuaa < vbuyy=_inc_vbuyy - clobber:A Y cycles:6.0
txa
clc
adc #1
tay
iny
CANNOT SYNTHESIZE vbuyy=_neg_vbuxx
CANNOT SYNTHESIZE vbuyy=_pos_vbuxx
CANNOT SYNTHESIZE vbuyy=_not_vbuyy
@ -401,18 +381,16 @@ vbuyy=_inc_vbuz1 < vbuyy=_inc_vbuyy - clobber:Y cycles:5.0
CANNOT SYNTHESIZE vbuyy=_neg_vbuz1
CANNOT SYNTHESIZE vbuyy=_pos_vbuz1
CANNOT SYNTHESIZE vbuyy=_not__deref_pbuz1
vbuyy=_dec__deref_pbuz1 < vbuaa=_dec__deref_pbuz1 < vbuaa=_deref_pbuz1_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:13.5
vbuyy=_dec__deref_pbuz1 < vbuyy=_dec_vbuaa < vbuyy=_dec_vbuyy - clobber:A Y cycles:11.5
ldy #0
lda ({z1}),y
sec
sbc #1
tay
vbuyy=_inc__deref_pbuz1 < vbuaa=_inc__deref_pbuz1 < vbuaa=_deref_pbuz1_plus_1 < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:13.5
dey
vbuyy=_inc__deref_pbuz1 < vbuyy=_inc_vbuaa < vbuyy=_inc_vbuyy - clobber:A Y cycles:11.5
ldy #0
lda ({z1}),y
clc
adc #1
tay
iny
CANNOT SYNTHESIZE vbuyy=_neg__deref_pbuz1
CANNOT SYNTHESIZE vbuyy=_pos__deref_pbuz1
CANNOT SYNTHESIZE vbuyy=_not__deref_pbuc1
@ -459,59 +437,51 @@ CANNOT SYNTHESIZE vbuyy=_inc_pbuz1_derefidx_vbuc1
CANNOT SYNTHESIZE vbuyy=_neg_pbuz1_derefidx_vbuc1
CANNOT SYNTHESIZE vbuyy=_pos_pbuz1_derefidx_vbuc1
CANNOT SYNTHESIZE vbuyy=_not_pbuc1_derefidx_vbuaa
vbuyy=_dec_pbuc1_derefidx_vbuaa < vbuaa=_dec_pbuc1_derefidx_vbuaa < vbuaa=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:12.5
vbuyy=_dec_pbuc1_derefidx_vbuaa < vbuyy=_dec_pbuc1_derefidx_vbuyy < vbuyy=_dec_vbuaa < vbuyy=_dec_vbuyy - clobber:A Y cycles:10.5
tay
lda {c1},y
sec
sbc #1
tay
vbuyy=_inc_pbuc1_derefidx_vbuaa < vbuaa=_inc_pbuc1_derefidx_vbuaa < vbuaa=_inc_pbuc1_derefidx_vbuyy < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:12.5
dey
vbuyy=_inc_pbuc1_derefidx_vbuaa < vbuyy=_inc_pbuc1_derefidx_vbuyy < vbuyy=_inc_vbuaa < vbuyy=_inc_vbuyy - clobber:A Y cycles:10.5
tay
lda {c1},y
clc
adc #1
tay
iny
CANNOT SYNTHESIZE vbuyy=_neg_pbuc1_derefidx_vbuaa
CANNOT SYNTHESIZE vbuyy=_pos_pbuc1_derefidx_vbuaa
CANNOT SYNTHESIZE vbuyy=_not_pbuc1_derefidx_vbuxx
vbuyy=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_pbuc1_derefidx_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:10.5
vbuyy=_dec_pbuc1_derefidx_vbuxx < vbuyy=_dec_vbuaa < vbuyy=_dec_vbuyy - clobber:A Y cycles:8.5
lda {c1},x
sec
sbc #1
tay
vbuyy=_inc_pbuc1_derefidx_vbuxx < vbuaa=_inc_pbuc1_derefidx_vbuxx < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:10.5
dey
vbuyy=_inc_pbuc1_derefidx_vbuxx < vbuyy=_inc_vbuaa < vbuyy=_inc_vbuyy - clobber:A Y cycles:8.5
lda {c1},x
clc
adc #1
tay
iny
CANNOT SYNTHESIZE vbuyy=_neg_pbuc1_derefidx_vbuxx
CANNOT SYNTHESIZE vbuyy=_pos_pbuc1_derefidx_vbuxx
CANNOT SYNTHESIZE vbuyy=_not_pbuc1_derefidx_vbuyy
vbuyy=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:10.5
vbuyy=_dec_pbuc1_derefidx_vbuyy < vbuyy=_dec_vbuaa < vbuyy=_dec_vbuyy - clobber:A Y cycles:8.5
lda {c1},y
sec
sbc #1
tay
vbuyy=_inc_pbuc1_derefidx_vbuyy < vbuaa=_inc_pbuc1_derefidx_vbuyy < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:10.5
dey
vbuyy=_inc_pbuc1_derefidx_vbuyy < vbuyy=_inc_vbuaa < vbuyy=_inc_vbuyy - clobber:A Y cycles:8.5
lda {c1},y
clc
adc #1
tay
iny
CANNOT SYNTHESIZE vbuyy=_neg_pbuc1_derefidx_vbuyy
CANNOT SYNTHESIZE vbuyy=_pos_pbuc1_derefidx_vbuyy
CANNOT SYNTHESIZE vbuyy=_not_pbuc1_derefidx_vbuz1
vbuyy=_dec_pbuc1_derefidx_vbuz1 < vbuyy=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:13.5
vbuyy=_dec_pbuc1_derefidx_vbuz1 < vbuyy=_dec_pbuc1_derefidx_vbuyy < vbuyy=_dec_vbuaa < vbuyy=_dec_vbuyy - clobber:A Y cycles:11.5
ldy {z1}
lda {c1},y
sec
sbc #1
tay
vbuyy=_inc_pbuc1_derefidx_vbuz1 < vbuyy=_inc_pbuc1_derefidx_vbuyy < vbuaa=_inc_pbuc1_derefidx_vbuyy < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:13.5
dey
vbuyy=_inc_pbuc1_derefidx_vbuz1 < vbuyy=_inc_pbuc1_derefidx_vbuyy < vbuyy=_inc_vbuaa < vbuyy=_inc_vbuyy - clobber:A Y cycles:11.5
ldy {z1}
lda {c1},y
clc
adc #1
tay
iny
CANNOT SYNTHESIZE vbuyy=_neg_pbuc1_derefidx_vbuz1
CANNOT SYNTHESIZE vbuyy=_pos_pbuc1_derefidx_vbuz1
CANNOT SYNTHESIZE vbuyy=_not_pbuc1_derefidx_vbuc1
@ -525,16 +495,14 @@ CANNOT SYNTHESIZE vbuyy=_inc_pbuc1_derefidx_vbuc2
CANNOT SYNTHESIZE vbuyy=_neg_pbuc1_derefidx_vbuc2
CANNOT SYNTHESIZE vbuyy=_pos_pbuc1_derefidx_vbuc2
CANNOT SYNTHESIZE vbuyy=_not_vbuc1
vbuyy=_dec_vbuc1 < vbuaa=_dec_vbuc1 < vbuaa=vbuc1_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:8.0
vbuyy=_dec_vbuc1 < vbuyy=_dec_vbuaa < vbuyy=_dec_vbuyy - clobber:A Y cycles:6.0
lda #{c1}
sec
sbc #1
tay
vbuyy=_inc_vbuc1 < vbuaa=_inc_vbuc1 < vbuaa=vbuc1_plus_1 < vbuaa=1_plus_vbuc1 < vbuaa=1_plus_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:8.0
dey
vbuyy=_inc_vbuc1 < vbuyy=_inc_vbuaa < vbuyy=_inc_vbuyy - clobber:A Y cycles:6.0
lda #{c1}
clc
adc #1
tay
iny
CANNOT SYNTHESIZE vbuyy=_neg_vbuc1
CANNOT SYNTHESIZE vbuyy=_pos_vbuc1
CANNOT SYNTHESIZE vbuz1=_not_vbuaa
@ -565,7 +533,7 @@ vbuz1=_inc_vbuaa < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A cycles:7.
CANNOT SYNTHESIZE vbuz1=_neg_vbuaa
CANNOT SYNTHESIZE vbuz1=_pos_vbuaa
CANNOT SYNTHESIZE vbuz1=_not_vbuxx
vbuz1=_dec_vbuxx < vbuaa=_dec_vbuxx < vbuaa=vbuxx_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A cycles:9.0
vbuz1=_dec_vbuxx < vbuaa=_dec_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A cycles:9.0
txa
sec
sbc #1
@ -583,7 +551,7 @@ vbuz1=_inc_vbuxx < vbuxx=_inc_vbuxx - clobber:X cycles:5.0
CANNOT SYNTHESIZE vbuz1=_neg_vbuxx
CANNOT SYNTHESIZE vbuz1=_pos_vbuxx
CANNOT SYNTHESIZE vbuz1=_not_vbuyy
vbuz1=_dec_vbuyy < vbuaa=_dec_vbuyy < vbuaa=vbuyy_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A cycles:9.0
vbuz1=_dec_vbuyy < vbuaa=_dec_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A cycles:9.0
tya
sec
sbc #1
@ -639,13 +607,13 @@ vbuz1=_inc_vbuz2 < vbuxx=_inc_vbuz1 < vbuxx=_inc_vbuxx - clobber:X cycles:8.0
CANNOT SYNTHESIZE vbuz1=_neg_vbuz2
CANNOT SYNTHESIZE vbuz1=_pos_vbuz2
CANNOT SYNTHESIZE vbuz1=_not__deref_pbuz1
vbuz1=_dec__deref_pbuz1 < vbuaa=_dec__deref_pbuz1 < vbuaa=_deref_pbuz1_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:14.5
vbuz1=_dec__deref_pbuz1 < vbuaa=_dec__deref_pbuz1 < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:14.5
ldy #0
lda ({z1}),y
sec
sbc #1
sta {z1}
vbuz1=_inc__deref_pbuz1 < vbuaa=_inc__deref_pbuz1 < vbuaa=_deref_pbuz1_plus_1 < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:14.5
vbuz1=_inc__deref_pbuz1 < vbuaa=_inc__deref_pbuz1 < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:14.5
ldy #0
lda ({z1}),y
clc
@ -654,13 +622,13 @@ vbuz1=_inc__deref_pbuz1 < vbuaa=_inc__deref_pbuz1 < vbuaa=_deref_pbuz1_plus_1 <
CANNOT SYNTHESIZE vbuz1=_neg__deref_pbuz1
CANNOT SYNTHESIZE vbuz1=_pos__deref_pbuz1
CANNOT SYNTHESIZE vbuz1=_not__deref_pbuz2
vbuz1=_dec__deref_pbuz2 < vbuaa=_dec__deref_pbuz1 < vbuaa=_deref_pbuz1_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:14.5
vbuz1=_dec__deref_pbuz2 < vbuaa=_dec__deref_pbuz1 < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:14.5
ldy #0
lda ({z2}),y
sec
sbc #1
sta {z1}
vbuz1=_inc__deref_pbuz2 < vbuaa=_inc__deref_pbuz1 < vbuaa=_deref_pbuz1_plus_1 < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:14.5
vbuz1=_inc__deref_pbuz2 < vbuaa=_inc__deref_pbuz1 < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:14.5
ldy #0
lda ({z2}),y
clc
@ -890,13 +858,13 @@ _deref_pbuz1=_inc_vbuaa < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y c
CANNOT SYNTHESIZE _deref_pbuz1=_neg_vbuaa
CANNOT SYNTHESIZE _deref_pbuz1=_pos_vbuaa
CANNOT SYNTHESIZE _deref_pbuz1=_not_vbuxx
_deref_pbuz1=_dec_vbuxx < vbuaa=_dec_vbuxx < vbuaa=vbuxx_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:14.0
_deref_pbuz1=_dec_vbuxx < vbuaa=_dec_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:14.0
txa
sec
sbc #1
ldy #0
sta ({z1}),y
_deref_pbuz1=_inc_vbuxx < vbuaa=_inc_vbuxx < vbuaa=vbuxx_plus_1 < vbuaa=1_plus_vbuxx < vbuaa=1_plus_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:14.0
_deref_pbuz1=_inc_vbuxx < vbuaa=_inc_vbuxx < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:14.0
txa
clc
adc #1
@ -905,13 +873,13 @@ _deref_pbuz1=_inc_vbuxx < vbuaa=_inc_vbuxx < vbuaa=vbuxx_plus_1 < vbuaa=1_plus_v
CANNOT SYNTHESIZE _deref_pbuz1=_neg_vbuxx
CANNOT SYNTHESIZE _deref_pbuz1=_pos_vbuxx
CANNOT SYNTHESIZE _deref_pbuz1=_not_vbuyy
_deref_pbuz1=_dec_vbuyy < vbuaa=_dec_vbuyy < vbuaa=vbuyy_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:14.0
_deref_pbuz1=_dec_vbuyy < vbuaa=_dec_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:14.0
tya
sec
sbc #1
ldy #0
sta ({z1}),y
_deref_pbuz1=_inc_vbuyy < vbuaa=_inc_vbuyy < vbuaa=vbuyy_plus_1 < vbuaa=1_plus_vbuyy < vbuaa=1_plus_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:14.0
_deref_pbuz1=_inc_vbuyy < vbuaa=_inc_vbuyy < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:14.0
tya
clc
adc #1
@ -950,14 +918,14 @@ _deref_pbuz1=_inc_vbuz2 < _deref_pbuz1=_inc_vbuaa < vbuaa=_inc_vbuaa < vbuaa=vbu
CANNOT SYNTHESIZE _deref_pbuz1=_neg_vbuz2
CANNOT SYNTHESIZE _deref_pbuz1=_pos_vbuz2
CANNOT SYNTHESIZE _deref_pbuz1=_not__deref_pbuz1
_deref_pbuz1=_dec__deref_pbuz1 < vbuaa=_dec__deref_pbuz1 < vbuaa=_deref_pbuz1_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:19.5
_deref_pbuz1=_dec__deref_pbuz1 < vbuaa=_dec__deref_pbuz1 < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:19.5
ldy #0
lda ({z1}),y
sec
sbc #1
ldy #0
sta ({z1}),y
_deref_pbuz1=_inc__deref_pbuz1 < vbuaa=_inc__deref_pbuz1 < vbuaa=_deref_pbuz1_plus_1 < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:19.5
_deref_pbuz1=_inc__deref_pbuz1 < vbuaa=_inc__deref_pbuz1 < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:19.5
ldy #0
lda ({z1}),y
clc
@ -967,14 +935,14 @@ _deref_pbuz1=_inc__deref_pbuz1 < vbuaa=_inc__deref_pbuz1 < vbuaa=_deref_pbuz1_pl
CANNOT SYNTHESIZE _deref_pbuz1=_neg__deref_pbuz1
CANNOT SYNTHESIZE _deref_pbuz1=_pos__deref_pbuz1
CANNOT SYNTHESIZE _deref_pbuz1=_not__deref_pbuz2
_deref_pbuz1=_dec__deref_pbuz2 < vbuaa=_dec__deref_pbuz1 < vbuaa=_deref_pbuz1_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:19.5
_deref_pbuz1=_dec__deref_pbuz2 < vbuaa=_dec__deref_pbuz1 < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:19.5
ldy #0
lda ({z2}),y
sec
sbc #1
ldy #0
sta ({z1}),y
_deref_pbuz1=_inc__deref_pbuz2 < vbuaa=_inc__deref_pbuz1 < vbuaa=_deref_pbuz1_plus_1 < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:19.5
_deref_pbuz1=_inc__deref_pbuz2 < vbuaa=_inc__deref_pbuz1 < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:19.5
ldy #0
lda ({z2}),y
clc
@ -1181,12 +1149,12 @@ _deref_pbuc1=_inc_vbuaa < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A cy
CANNOT SYNTHESIZE _deref_pbuc1=_neg_vbuaa
CANNOT SYNTHESIZE _deref_pbuc1=_pos_vbuaa
CANNOT SYNTHESIZE _deref_pbuc1=_not_vbuxx
_deref_pbuc1=_dec_vbuxx < vbuaa=_dec_vbuxx < vbuaa=vbuxx_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A cycles:10.0
_deref_pbuc1=_dec_vbuxx < vbuaa=_dec_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A cycles:10.0
txa
sec
sbc #1
sta {c1}
_deref_pbuc1=_inc_vbuxx < vbuaa=_inc_vbuxx < vbuaa=vbuxx_plus_1 < vbuaa=1_plus_vbuxx < vbuaa=1_plus_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A cycles:10.0
_deref_pbuc1=_inc_vbuxx < vbuaa=_inc_vbuxx < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A cycles:10.0
txa
clc
adc #1
@ -1194,12 +1162,12 @@ _deref_pbuc1=_inc_vbuxx < vbuaa=_inc_vbuxx < vbuaa=vbuxx_plus_1 < vbuaa=1_plus_v
CANNOT SYNTHESIZE _deref_pbuc1=_neg_vbuxx
CANNOT SYNTHESIZE _deref_pbuc1=_pos_vbuxx
CANNOT SYNTHESIZE _deref_pbuc1=_not_vbuyy
_deref_pbuc1=_dec_vbuyy < vbuaa=_dec_vbuyy < vbuaa=vbuyy_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A cycles:10.0
_deref_pbuc1=_dec_vbuyy < vbuaa=_dec_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A cycles:10.0
tya
sec
sbc #1
sta {c1}
_deref_pbuc1=_inc_vbuyy < vbuaa=_inc_vbuyy < vbuaa=vbuyy_plus_1 < vbuaa=1_plus_vbuyy < vbuaa=1_plus_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A cycles:10.0
_deref_pbuc1=_inc_vbuyy < vbuaa=_inc_vbuyy < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A cycles:10.0
tya
clc
adc #1
@ -1220,13 +1188,13 @@ _deref_pbuc1=_inc_vbuz1 < _deref_pbuc1=_inc_vbuaa < vbuaa=_inc_vbuaa < vbuaa=vbu
CANNOT SYNTHESIZE _deref_pbuc1=_neg_vbuz1
CANNOT SYNTHESIZE _deref_pbuc1=_pos_vbuz1
CANNOT SYNTHESIZE _deref_pbuc1=_not__deref_pbuz1
_deref_pbuc1=_dec__deref_pbuz1 < vbuaa=_dec__deref_pbuz1 < vbuaa=_deref_pbuz1_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:15.5
_deref_pbuc1=_dec__deref_pbuz1 < vbuaa=_dec__deref_pbuz1 < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:15.5
ldy #0
lda ({z1}),y
sec
sbc #1
sta {c1}
_deref_pbuc1=_inc__deref_pbuz1 < vbuaa=_inc__deref_pbuz1 < vbuaa=_deref_pbuz1_plus_1 < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:15.5
_deref_pbuc1=_inc__deref_pbuz1 < vbuaa=_inc__deref_pbuz1 < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:15.5
ldy #0
lda ({z1}),y
clc
@ -1476,13 +1444,6 @@ _deref_pbuc1=_dec_pbuc2_derefidx_vbuc1 < vbuaa=_dec_pbuc2_derefidx_vbuc1 < vbuaa
sec
sbc #1
sta {c1}
_deref_pbuc1=_inc_pbuc2_derefidx_vbuc1 < vbuaa=_inc_pbuc2_derefidx_vbuc1 < vbuaa=pbuc2_derefidx_vbuc1_plus_1 < vbuaa=1_plus_pbuc2_derefidx_vbuc1 < vbuaa=1_plus_pbuc1_derefidx_vbuaa < vbuaa=1_plus_pbuc1_derefidx_vbuyy < vbuaa=1_plus_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:16.5
lda #{c1}
tay
lda {c2},y
clc
adc #1
sta {c1}
_deref_pbuc1=_inc_pbuc2_derefidx_vbuc1 < vbuaa=_inc_pbuc2_derefidx_vbuc1 < vbuaa=pbuc2_derefidx_vbuc1_plus_1 < vbuaa=1_plus_pbuc2_derefidx_vbuc1 < vbuaa=1_plus_pbuc1_derefidx_vbuaa < vbuaa=1_plus_pbuc1_derefidx_vbuxx < vbuaa=1_plus_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A X cycles:16.5
lda #{c1}
tax
@ -1490,6 +1451,13 @@ _deref_pbuc1=_inc_pbuc2_derefidx_vbuc1 < vbuaa=_inc_pbuc2_derefidx_vbuc1 < vbuaa
clc
adc #1
sta {c1}
_deref_pbuc1=_inc_pbuc2_derefidx_vbuc1 < vbuaa=_inc_pbuc2_derefidx_vbuc1 < vbuaa=pbuc2_derefidx_vbuc1_plus_1 < vbuaa=1_plus_pbuc2_derefidx_vbuc1 < vbuaa=1_plus_pbuc1_derefidx_vbuaa < vbuaa=1_plus_pbuc1_derefidx_vbuyy < vbuaa=pbuc1_derefidx_vbuyy_plus_1 < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:16.5
lda #{c1}
tay
lda {c2},y
clc
adc #1
sta {c1}
CANNOT SYNTHESIZE _deref_pbuc1=_neg_pbuc2_derefidx_vbuc1
CANNOT SYNTHESIZE _deref_pbuc1=_pos_pbuc2_derefidx_vbuc1
CANNOT SYNTHESIZE _deref_pbuc1=_not_pbuc2_derefidx_vbuc2
@ -2122,13 +2090,13 @@ pbuz1_derefidx_vbuz2=_inc_vbuaa < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobbe
CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_neg_vbuaa
CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_pos_vbuaa
CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_not_vbuxx
pbuz1_derefidx_vbuz2=_dec_vbuxx < vbuaa=_dec_vbuxx < vbuaa=vbuxx_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:15.0
pbuz1_derefidx_vbuz2=_dec_vbuxx < vbuaa=_dec_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:15.0
txa
sec
sbc #1
ldy {z2}
sta ({z1}),y
pbuz1_derefidx_vbuz2=_inc_vbuxx < vbuaa=_inc_vbuxx < vbuaa=vbuxx_plus_1 < vbuaa=1_plus_vbuxx < vbuaa=1_plus_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:15.0
pbuz1_derefidx_vbuz2=_inc_vbuxx < vbuaa=_inc_vbuxx < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:15.0
txa
clc
adc #1
@ -2137,13 +2105,13 @@ pbuz1_derefidx_vbuz2=_inc_vbuxx < vbuaa=_inc_vbuxx < vbuaa=vbuxx_plus_1 < vbuaa=
CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_neg_vbuxx
CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_pos_vbuxx
CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_not_vbuyy
pbuz1_derefidx_vbuz2=_dec_vbuyy < vbuaa=_dec_vbuyy < vbuaa=vbuyy_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:15.0
pbuz1_derefidx_vbuz2=_dec_vbuyy < vbuaa=_dec_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:15.0
tya
sec
sbc #1
ldy {z2}
sta ({z1}),y
pbuz1_derefidx_vbuz2=_inc_vbuyy < vbuaa=_inc_vbuyy < vbuaa=vbuyy_plus_1 < vbuaa=1_plus_vbuyy < vbuaa=1_plus_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:15.0
pbuz1_derefidx_vbuz2=_inc_vbuyy < vbuaa=_inc_vbuyy < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:15.0
tya
clc
adc #1
@ -2197,8 +2165,20 @@ pbuz1_derefidx_vbuz2=_inc_vbuz3 < pbuz1_derefidx_vbuz2=_inc_vbuaa < vbuaa=_inc_v
CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_neg_vbuz3
CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_pos_vbuz3
CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_not__deref_pbuz1
CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_dec__deref_pbuz1
CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_inc__deref_pbuz1
pbuz1_derefidx_vbuz2=_dec__deref_pbuz1 < pbuz1_derefidx_vbuz2=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:20.5
ldy #0
lda ({z1}),y
sec
sbc #1
ldy {z2}
sta ({z1}),y
pbuz1_derefidx_vbuz2=_inc__deref_pbuz1 < pbuz1_derefidx_vbuz2=_inc_vbuaa < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:20.5
ldy #0
lda ({z1}),y
clc
adc #1
ldy {z2}
sta ({z1}),y
CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_neg__deref_pbuz1
CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_pos__deref_pbuz1
CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_not__deref_pbuz2
@ -2207,14 +2187,14 @@ CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_inc__deref_pbuz2
CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_neg__deref_pbuz2
CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_pos__deref_pbuz2
CANNOT SYNTHESIZE pbuz1_derefidx_vbuz2=_not__deref_pbuz3
pbuz1_derefidx_vbuz2=_dec__deref_pbuz3 < vbuaa=_dec__deref_pbuz1 < vbuaa=_deref_pbuz1_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:20.5
pbuz1_derefidx_vbuz2=_dec__deref_pbuz3 < vbuaa=_dec__deref_pbuz1 < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:20.5
ldy #0
lda ({z3}),y
sec
sbc #1
ldy {z2}
sta ({z1}),y
pbuz1_derefidx_vbuz2=_inc__deref_pbuz3 < vbuaa=_inc__deref_pbuz1 < vbuaa=_deref_pbuz1_plus_1 < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:20.5
pbuz1_derefidx_vbuz2=_inc__deref_pbuz3 < vbuaa=_inc__deref_pbuz1 < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:20.5
ldy #0
lda ({z3}),y
clc
@ -2683,7 +2663,7 @@ pbuc1_derefidx_vbuaa=_dec_vbuaa < pbuc1_derefidx_vbuxx=_dec_vbuxx < pbuc1_derefi
sec
sbc #1
sta {c1},x
pbuc1_derefidx_vbuaa=_dec_vbuaa < pbuc1_derefidx_vbuyy=_dec_vbuyy < vbuaa=_dec_vbuyy < vbuaa=vbuyy_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:13.0
pbuc1_derefidx_vbuaa=_dec_vbuaa < pbuc1_derefidx_vbuyy=_dec_vbuyy < vbuaa=_dec_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:13.0
tay
tya
sec
@ -2695,7 +2675,7 @@ pbuc1_derefidx_vbuaa=_inc_vbuaa < pbuc1_derefidx_vbuxx=_inc_vbuxx < pbuc1_derefi
clc
adc #1
sta {c1},x
pbuc1_derefidx_vbuaa=_inc_vbuaa < pbuc1_derefidx_vbuyy=_inc_vbuyy < vbuaa=_inc_vbuyy < vbuaa=vbuyy_plus_1 < vbuaa=1_plus_vbuyy < vbuaa=1_plus_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:13.0
pbuc1_derefidx_vbuaa=_inc_vbuaa < pbuc1_derefidx_vbuyy=_inc_vbuyy < vbuaa=_inc_vbuyy < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:13.0
tay
tya
clc
@ -2710,55 +2690,27 @@ pbuc1_derefidx_vbuaa=_dec_vbuxx < pbuc1_derefidx_vbuyy=_dec_vbuxx < pbuc1_derefi
sec
sbc #1
sta {c1},y
pbuc1_derefidx_vbuaa=_dec_vbuxx < pbuc1_derefidx_vbuaa=_dec_vbuaa < pbuc1_derefidx_vbuxx=_dec_vbuxx < pbuc1_derefidx_vbuxx=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:15.0
txa
tax
txa
sec
sbc #1
sta {c1},x
pbuc1_derefidx_vbuaa=_inc_vbuxx < pbuc1_derefidx_vbuyy=_inc_vbuxx < pbuc1_derefidx_vbuyy=_inc_vbuaa < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:13.0
tay
txa
clc
adc #1
sta {c1},y
pbuc1_derefidx_vbuaa=_inc_vbuxx < pbuc1_derefidx_vbuaa=_inc_vbuaa < pbuc1_derefidx_vbuxx=_inc_vbuxx < pbuc1_derefidx_vbuxx=_inc_vbuaa < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A X cycles:15.0
txa
tax
txa
clc
adc #1
sta {c1},x
CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_neg_vbuxx
CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_pos_vbuxx
CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_not_vbuyy
pbuc1_derefidx_vbuaa=_dec_vbuyy < pbuc1_derefidx_vbuxx=_dec_vbuyy < vbuaa=_dec_vbuyy < vbuaa=vbuyy_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A X cycles:13.0
pbuc1_derefidx_vbuaa=_dec_vbuyy < pbuc1_derefidx_vbuxx=_dec_vbuyy < vbuaa=_dec_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:13.0
tax
tya
sec
sbc #1
sta {c1},x
pbuc1_derefidx_vbuaa=_dec_vbuyy < pbuc1_derefidx_vbuaa=_dec_vbuaa < pbuc1_derefidx_vbuyy=_dec_vbuyy < vbuaa=_dec_vbuyy < vbuaa=vbuyy_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:15.0
tya
tay
tya
sec
sbc #1
sta {c1},y
pbuc1_derefidx_vbuaa=_inc_vbuyy < pbuc1_derefidx_vbuxx=_inc_vbuyy < vbuaa=_inc_vbuyy < vbuaa=vbuyy_plus_1 < vbuaa=1_plus_vbuyy < vbuaa=1_plus_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A X cycles:13.0
pbuc1_derefidx_vbuaa=_inc_vbuyy < pbuc1_derefidx_vbuxx=_inc_vbuyy < vbuaa=_inc_vbuyy < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A X cycles:13.0
tax
tya
clc
adc #1
sta {c1},x
pbuc1_derefidx_vbuaa=_inc_vbuyy < pbuc1_derefidx_vbuaa=_inc_vbuaa < pbuc1_derefidx_vbuyy=_inc_vbuyy < vbuaa=_inc_vbuyy < vbuaa=vbuyy_plus_1 < vbuaa=1_plus_vbuyy < vbuaa=1_plus_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:15.0
tya
tay
tya
clc
adc #1
sta {c1},y
CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_neg_vbuyy
CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_pos_vbuyy
CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_not_vbuz1
@ -2789,14 +2741,14 @@ pbuc1_derefidx_vbuaa=_inc_vbuz1 < pbuc1_derefidx_vbuyy=_inc_vbuz1 < pbuc1_derefi
CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_neg_vbuz1
CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_pos_vbuz1
CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_not__deref_pbuz1
pbuc1_derefidx_vbuaa=_dec__deref_pbuz1 < pbuc1_derefidx_vbuxx=_dec__deref_pbuz1 < vbuaa=_dec__deref_pbuz1 < vbuaa=_deref_pbuz1_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A X Y cycles:18.5
pbuc1_derefidx_vbuaa=_dec__deref_pbuz1 < pbuc1_derefidx_vbuxx=_dec__deref_pbuz1 < pbuc1_derefidx_vbuxx=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X Y cycles:18.5
tax
ldy #0
lda ({z1}),y
sec
sbc #1
sta {c1},x
pbuc1_derefidx_vbuaa=_inc__deref_pbuz1 < pbuc1_derefidx_vbuxx=_inc__deref_pbuz1 < vbuaa=_inc__deref_pbuz1 < vbuaa=_deref_pbuz1_plus_1 < vbuaa=vbuaa_plus_1 - clobber:A X Y cycles:18.5
pbuc1_derefidx_vbuaa=_inc__deref_pbuz1 < pbuc1_derefidx_vbuxx=_inc__deref_pbuz1 < pbuc1_derefidx_vbuxx=_inc_vbuaa < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A X Y cycles:18.5
tax
ldy #0
lda ({z1}),y
@ -2936,49 +2888,21 @@ pbuc1_derefidx_vbuaa=_dec_pbuc2_derefidx_vbuxx < pbuc1_derefidx_vbuyy=_dec_pbuc2
sec
sbc #1
sta {c1},y
pbuc1_derefidx_vbuaa=_dec_pbuc2_derefidx_vbuxx < pbuc1_derefidx_vbuaa=_dec_vbuaa < pbuc1_derefidx_vbuxx=_dec_vbuxx < pbuc1_derefidx_vbuxx=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:17.5
lda {c2},x
tax
txa
sec
sbc #1
sta {c1},x
pbuc1_derefidx_vbuaa=_inc_pbuc2_derefidx_vbuxx < pbuc1_derefidx_vbuyy=_inc_pbuc2_derefidx_vbuxx < vbuaa=_inc_pbuc1_derefidx_vbuxx < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:15.5
tay
lda {c2},x
clc
adc #1
sta {c1},y
pbuc1_derefidx_vbuaa=_inc_pbuc2_derefidx_vbuxx < pbuc1_derefidx_vbuaa=_inc_vbuaa < pbuc1_derefidx_vbuxx=_inc_vbuxx < pbuc1_derefidx_vbuxx=_inc_vbuaa < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A X cycles:17.5
lda {c2},x
tax
txa
clc
adc #1
sta {c1},x
CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_neg_pbuc2_derefidx_vbuxx
CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_pos_pbuc2_derefidx_vbuxx
CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_not_pbuc2_derefidx_vbuyy
pbuc1_derefidx_vbuaa=_dec_pbuc2_derefidx_vbuyy < pbuc1_derefidx_vbuaa=_dec_vbuaa < pbuc1_derefidx_vbuyy=_dec_vbuyy < vbuaa=_dec_vbuyy < vbuaa=vbuyy_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:17.5
lda {c2},y
tay
tya
sec
sbc #1
sta {c1},y
pbuc1_derefidx_vbuaa=_dec_pbuc2_derefidx_vbuyy < pbuc1_derefidx_vbuxx=_dec_pbuc2_derefidx_vbuyy < vbuaa=_dec_pbuc1_derefidx_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:15.5
tax
lda {c2},y
sec
sbc #1
sta {c1},x
pbuc1_derefidx_vbuaa=_inc_pbuc2_derefidx_vbuyy < pbuc1_derefidx_vbuaa=_inc_vbuaa < pbuc1_derefidx_vbuyy=_inc_vbuyy < vbuaa=_inc_vbuyy < vbuaa=vbuyy_plus_1 < vbuaa=1_plus_vbuyy < vbuaa=1_plus_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:17.5
lda {c2},y
tay
tya
clc
adc #1
sta {c1},y
pbuc1_derefidx_vbuaa=_inc_pbuc2_derefidx_vbuyy < pbuc1_derefidx_vbuxx=_inc_pbuc2_derefidx_vbuyy < vbuaa=_inc_pbuc1_derefidx_vbuyy < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A X cycles:15.5
tax
lda {c2},y
@ -2995,22 +2919,6 @@ pbuc1_derefidx_vbuaa=_dec_pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuxx=_dec_pbuc2
sec
sbc #1
sta {c1},x
pbuc1_derefidx_vbuaa=_dec_pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuaa=_dec_pbuc2_derefidx_vbuyy < pbuc1_derefidx_vbuaa=_dec_vbuaa < pbuc1_derefidx_vbuyy=_dec_vbuyy < vbuaa=_dec_vbuyy < vbuaa=vbuyy_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:20.5
ldy {z1}
lda {c2},y
tay
tya
sec
sbc #1
sta {c1},y
pbuc1_derefidx_vbuaa=_dec_pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuaa=_dec_pbuc2_derefidx_vbuxx < pbuc1_derefidx_vbuaa=_dec_vbuaa < pbuc1_derefidx_vbuxx=_dec_vbuxx < pbuc1_derefidx_vbuxx=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:20.5
ldx {z1}
lda {c2},x
tax
txa
sec
sbc #1
sta {c1},x
pbuc1_derefidx_vbuaa=_inc_pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuxx=_inc_pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuxx=_inc_pbuc2_derefidx_vbuyy < vbuaa=_inc_pbuc1_derefidx_vbuyy < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A X Y cycles:18.5
tax
ldy {z1}
@ -3018,22 +2926,6 @@ pbuc1_derefidx_vbuaa=_inc_pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuxx=_inc_pbuc2
clc
adc #1
sta {c1},x
pbuc1_derefidx_vbuaa=_inc_pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuaa=_inc_pbuc2_derefidx_vbuyy < pbuc1_derefidx_vbuaa=_inc_vbuaa < pbuc1_derefidx_vbuyy=_inc_vbuyy < vbuaa=_inc_vbuyy < vbuaa=vbuyy_plus_1 < vbuaa=1_plus_vbuyy < vbuaa=1_plus_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:20.5
ldy {z1}
lda {c2},y
tay
tya
clc
adc #1
sta {c1},y
pbuc1_derefidx_vbuaa=_inc_pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuaa=_inc_pbuc2_derefidx_vbuxx < pbuc1_derefidx_vbuaa=_inc_vbuaa < pbuc1_derefidx_vbuxx=_inc_vbuxx < pbuc1_derefidx_vbuxx=_inc_vbuaa < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A X cycles:20.5
ldx {z1}
lda {c2},x
tax
txa
clc
adc #1
sta {c1},x
CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_neg_pbuc2_derefidx_vbuz1
CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_pos_pbuc2_derefidx_vbuz1
CANNOT SYNTHESIZE pbuc1_derefidx_vbuaa=_not_pbuc2_derefidx_vbuc1
@ -3108,12 +3000,12 @@ pbuc1_derefidx_vbuxx=_inc_vbuxx < pbuc1_derefidx_vbuxx=_inc_vbuaa < vbuaa=_inc_v
CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_neg_vbuxx
CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_pos_vbuxx
CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_not_vbuyy
pbuc1_derefidx_vbuxx=_dec_vbuyy < vbuaa=_dec_vbuyy < vbuaa=vbuyy_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A cycles:11.0
pbuc1_derefidx_vbuxx=_dec_vbuyy < vbuaa=_dec_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A cycles:11.0
tya
sec
sbc #1
sta {c1},x
pbuc1_derefidx_vbuxx=_inc_vbuyy < vbuaa=_inc_vbuyy < vbuaa=vbuyy_plus_1 < vbuaa=1_plus_vbuyy < vbuaa=1_plus_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A cycles:11.0
pbuc1_derefidx_vbuxx=_inc_vbuyy < vbuaa=_inc_vbuyy < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A cycles:11.0
tya
clc
adc #1
@ -3134,13 +3026,13 @@ pbuc1_derefidx_vbuxx=_inc_vbuz1 < pbuc1_derefidx_vbuxx=_inc_vbuaa < vbuaa=_inc_v
CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_neg_vbuz1
CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_pos_vbuz1
CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_not__deref_pbuz1
pbuc1_derefidx_vbuxx=_dec__deref_pbuz1 < vbuaa=_dec__deref_pbuz1 < vbuaa=_deref_pbuz1_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:16.5
pbuc1_derefidx_vbuxx=_dec__deref_pbuz1 < pbuc1_derefidx_vbuxx=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:16.5
ldy #0
lda ({z1}),y
sec
sbc #1
sta {c1},x
pbuc1_derefidx_vbuxx=_inc__deref_pbuz1 < vbuaa=_inc__deref_pbuz1 < vbuaa=_deref_pbuz1_plus_1 < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:16.5
pbuc1_derefidx_vbuxx=_inc__deref_pbuz1 < pbuc1_derefidx_vbuxx=_inc_vbuaa < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:16.5
ldy #0
lda ({z1}),y
clc
@ -3279,30 +3171,12 @@ pbuc1_derefidx_vbuxx=_dec_pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuxx=_dec_pbuc2
sec
sbc #1
sta {c1},x
pbuc1_derefidx_vbuxx=_dec_pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuaa=_dec_pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuaa=_dec_pbuc2_derefidx_vbuxx < pbuc1_derefidx_vbuaa=_dec_vbuaa < pbuc1_derefidx_vbuxx=_dec_vbuxx < pbuc1_derefidx_vbuxx=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:22.5
txa
ldx {z1}
lda {c2},x
tax
txa
sec
sbc #1
sta {c1},x
pbuc1_derefidx_vbuxx=_inc_pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuxx=_inc_pbuc2_derefidx_vbuyy < vbuaa=_inc_pbuc1_derefidx_vbuyy < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:16.5
ldy {z1}
lda {c2},y
clc
adc #1
sta {c1},x
pbuc1_derefidx_vbuxx=_inc_pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuaa=_inc_pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuaa=_inc_pbuc2_derefidx_vbuxx < pbuc1_derefidx_vbuaa=_inc_vbuaa < pbuc1_derefidx_vbuxx=_inc_vbuxx < pbuc1_derefidx_vbuxx=_inc_vbuaa < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A X cycles:22.5
txa
ldx {z1}
lda {c2},x
tax
txa
clc
adc #1
sta {c1},x
CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_neg_pbuc2_derefidx_vbuz1
CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_pos_pbuc2_derefidx_vbuz1
CANNOT SYNTHESIZE pbuc1_derefidx_vbuxx=_not_pbuc2_derefidx_vbuc1
@ -3363,12 +3237,12 @@ pbuc1_derefidx_vbuyy=_inc_vbuxx < pbuc1_derefidx_vbuyy=_inc_vbuaa < vbuaa=_inc_v
CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_neg_vbuxx
CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_pos_vbuxx
CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_not_vbuyy
pbuc1_derefidx_vbuyy=_dec_vbuyy < vbuaa=_dec_vbuyy < vbuaa=vbuyy_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A cycles:11.0
pbuc1_derefidx_vbuyy=_dec_vbuyy < vbuaa=_dec_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A cycles:11.0
tya
sec
sbc #1
sta {c1},y
pbuc1_derefidx_vbuyy=_inc_vbuyy < vbuaa=_inc_vbuyy < vbuaa=vbuyy_plus_1 < vbuaa=1_plus_vbuyy < vbuaa=1_plus_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A cycles:11.0
pbuc1_derefidx_vbuyy=_inc_vbuyy < vbuaa=_inc_vbuyy < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A cycles:11.0
tya
clc
adc #1
@ -3389,7 +3263,7 @@ pbuc1_derefidx_vbuyy=_inc_vbuz1 < pbuc1_derefidx_vbuyy=_inc_vbuaa < vbuaa=_inc_v
CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_neg_vbuz1
CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_pos_vbuz1
CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_not__deref_pbuz1
pbuc1_derefidx_vbuyy=_dec__deref_pbuz1 < pbuc1_derefidx_vbuaa=_dec__deref_pbuz1 < pbuc1_derefidx_vbuxx=_dec__deref_pbuz1 < vbuaa=_dec__deref_pbuz1 < vbuaa=_deref_pbuz1_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A X Y cycles:20.5
pbuc1_derefidx_vbuyy=_dec__deref_pbuz1 < pbuc1_derefidx_vbuaa=_dec__deref_pbuz1 < pbuc1_derefidx_vbuxx=_dec__deref_pbuz1 < pbuc1_derefidx_vbuxx=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X Y cycles:20.5
tya
tax
ldy #0
@ -3397,7 +3271,7 @@ pbuc1_derefidx_vbuyy=_dec__deref_pbuz1 < pbuc1_derefidx_vbuaa=_dec__deref_pbuz1
sec
sbc #1
sta {c1},x
pbuc1_derefidx_vbuyy=_inc__deref_pbuz1 < pbuc1_derefidx_vbuaa=_inc__deref_pbuz1 < pbuc1_derefidx_vbuxx=_inc__deref_pbuz1 < vbuaa=_inc__deref_pbuz1 < vbuaa=_deref_pbuz1_plus_1 < vbuaa=vbuaa_plus_1 - clobber:A X Y cycles:20.5
pbuc1_derefidx_vbuyy=_inc__deref_pbuz1 < pbuc1_derefidx_vbuaa=_inc__deref_pbuz1 < pbuc1_derefidx_vbuxx=_inc__deref_pbuz1 < pbuc1_derefidx_vbuxx=_inc_vbuaa < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A X Y cycles:20.5
tya
tax
ldy #0
@ -3538,30 +3412,12 @@ pbuc1_derefidx_vbuyy=_dec_pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuyy=_dec_pbuc2
sec
sbc #1
sta {c1},y
pbuc1_derefidx_vbuyy=_dec_pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuaa=_dec_pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuaa=_dec_pbuc2_derefidx_vbuyy < pbuc1_derefidx_vbuaa=_dec_vbuaa < pbuc1_derefidx_vbuyy=_dec_vbuyy < vbuaa=_dec_vbuyy < vbuaa=vbuyy_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:22.5
tya
ldy {z1}
lda {c2},y
tay
tya
sec
sbc #1
sta {c1},y
pbuc1_derefidx_vbuyy=_inc_pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuyy=_inc_pbuc2_derefidx_vbuxx < vbuaa=_inc_pbuc1_derefidx_vbuxx < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A X cycles:16.5
ldx {z1}
lda {c2},x
clc
adc #1
sta {c1},y
pbuc1_derefidx_vbuyy=_inc_pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuaa=_inc_pbuc2_derefidx_vbuz1 < pbuc1_derefidx_vbuaa=_inc_pbuc2_derefidx_vbuyy < pbuc1_derefidx_vbuaa=_inc_vbuaa < pbuc1_derefidx_vbuyy=_inc_vbuyy < vbuaa=_inc_vbuyy < vbuaa=vbuyy_plus_1 < vbuaa=1_plus_vbuyy < vbuaa=1_plus_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:22.5
tya
ldy {z1}
lda {c2},y
tay
tya
clc
adc #1
sta {c1},y
CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_neg_pbuc2_derefidx_vbuz1
CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_pos_pbuc2_derefidx_vbuz1
CANNOT SYNTHESIZE pbuc1_derefidx_vbuyy=_not_pbuc2_derefidx_vbuc1
@ -3627,7 +3483,7 @@ pbuc1_derefidx_vbuz1=_dec_vbuxx < pbuc1_derefidx_vbuyy=_dec_vbuxx < pbuc1_derefi
sec
sbc #1
sta {c1},y
pbuc1_derefidx_vbuz1=_dec_vbuxx < vbuaa=_dec_vbuxx < vbuaa=vbuxx_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A X cycles:14.0
pbuc1_derefidx_vbuz1=_dec_vbuxx < vbuaa=_dec_vbuxx < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:14.0
txa
sec
sbc #1
@ -3639,7 +3495,7 @@ pbuc1_derefidx_vbuz1=_inc_vbuxx < pbuc1_derefidx_vbuyy=_inc_vbuxx < pbuc1_derefi
clc
adc #1
sta {c1},y
pbuc1_derefidx_vbuz1=_inc_vbuxx < vbuaa=_inc_vbuxx < vbuaa=vbuxx_plus_1 < vbuaa=1_plus_vbuxx < vbuaa=1_plus_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A X cycles:14.0
pbuc1_derefidx_vbuz1=_inc_vbuxx < vbuaa=_inc_vbuxx < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A X cycles:14.0
txa
clc
adc #1
@ -3648,7 +3504,7 @@ pbuc1_derefidx_vbuz1=_inc_vbuxx < vbuaa=_inc_vbuxx < vbuaa=vbuxx_plus_1 < vbuaa=
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_vbuxx
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_vbuxx
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not_vbuyy
pbuc1_derefidx_vbuz1=_dec_vbuyy < pbuc1_derefidx_vbuxx=_dec_vbuyy < vbuaa=_dec_vbuyy < vbuaa=vbuyy_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A X cycles:14.0
pbuc1_derefidx_vbuz1=_dec_vbuyy < pbuc1_derefidx_vbuxx=_dec_vbuyy < vbuaa=_dec_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X cycles:14.0
ldx {z1}
tya
sec
@ -3660,7 +3516,7 @@ pbuc1_derefidx_vbuz1=_dec_vbuyy < pbuc1_derefidx_vbuz1=_dec_vbuaa < pbuc1_derefi
sec
sbc #1
sta {c1},y
pbuc1_derefidx_vbuz1=_inc_vbuyy < pbuc1_derefidx_vbuxx=_inc_vbuyy < vbuaa=_inc_vbuyy < vbuaa=vbuyy_plus_1 < vbuaa=1_plus_vbuyy < vbuaa=1_plus_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A X cycles:14.0
pbuc1_derefidx_vbuz1=_inc_vbuyy < pbuc1_derefidx_vbuxx=_inc_vbuyy < vbuaa=_inc_vbuyy < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A X cycles:14.0
ldx {z1}
tya
clc
@ -3675,7 +3531,7 @@ pbuc1_derefidx_vbuz1=_inc_vbuyy < pbuc1_derefidx_vbuz1=_inc_vbuaa < pbuc1_derefi
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_vbuyy
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_vbuyy
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not_vbuz1
pbuc1_derefidx_vbuz1=_dec_vbuz1 < pbuc1_derefidx_vbuyy=_dec_vbuyy < vbuaa=_dec_vbuyy < vbuaa=vbuyy_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:14.0
pbuc1_derefidx_vbuz1=_dec_vbuz1 < pbuc1_derefidx_vbuyy=_dec_vbuyy < vbuaa=_dec_vbuyy < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:14.0
ldy {z1}
tya
sec
@ -3687,7 +3543,7 @@ pbuc1_derefidx_vbuz1=_dec_vbuz1 < pbuc1_derefidx_vbuxx=_dec_vbuxx < pbuc1_derefi
sec
sbc #1
sta {c1},x
pbuc1_derefidx_vbuz1=_inc_vbuz1 < pbuc1_derefidx_vbuyy=_inc_vbuyy < vbuaa=_inc_vbuyy < vbuaa=vbuyy_plus_1 < vbuaa=1_plus_vbuyy < vbuaa=1_plus_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:14.0
pbuc1_derefidx_vbuz1=_inc_vbuz1 < pbuc1_derefidx_vbuyy=_inc_vbuyy < vbuaa=_inc_vbuyy < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:14.0
ldy {z1}
tya
clc
@ -3729,31 +3585,31 @@ pbuc1_derefidx_vbuz1=_inc_vbuz2 < pbuc1_derefidx_vbuxx=_inc_vbuz1 < pbuc1_derefi
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg_vbuz2
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos_vbuz2
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not__deref_pbuz1
pbuc1_derefidx_vbuz1=_dec__deref_pbuz1 < pbuc1_derefidx_vbuxx=_dec__deref_pbuz1 < vbuaa=_dec__deref_pbuz1 < vbuaa=_deref_pbuz1_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A X Y cycles:19.5
ldx {z1}
pbuc1_derefidx_vbuz1=_dec__deref_pbuz1 < pbuc1_derefidx_vbuz1=_dec_vbuaa < pbuc1_derefidx_vbuyy=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A Y cycles:19.5
ldy #0
lda ({z1}),y
ldy {z1}
sec
sbc #1
sta {c1},x
pbuc1_derefidx_vbuz1=_inc__deref_pbuz1 < pbuc1_derefidx_vbuxx=_inc__deref_pbuz1 < vbuaa=_inc__deref_pbuz1 < vbuaa=_deref_pbuz1_plus_1 < vbuaa=vbuaa_plus_1 - clobber:A X Y cycles:19.5
ldx {z1}
sta {c1},y
pbuc1_derefidx_vbuz1=_inc__deref_pbuz1 < pbuc1_derefidx_vbuz1=_inc_vbuaa < pbuc1_derefidx_vbuyy=_inc_vbuaa < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A Y cycles:19.5
ldy #0
lda ({z1}),y
ldy {z1}
clc
adc #1
sta {c1},x
sta {c1},y
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_neg__deref_pbuz1
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_pos__deref_pbuz1
CANNOT SYNTHESIZE pbuc1_derefidx_vbuz1=_not__deref_pbuz2
pbuc1_derefidx_vbuz1=_dec__deref_pbuz2 < pbuc1_derefidx_vbuxx=_dec__deref_pbuz1 < vbuaa=_dec__deref_pbuz1 < vbuaa=_deref_pbuz1_minus_1 < vbuaa=vbuaa_minus_1 - clobber:A X Y cycles:19.5
pbuc1_derefidx_vbuz1=_dec__deref_pbuz2 < pbuc1_derefidx_vbuxx=_dec__deref_pbuz1 < pbuc1_derefidx_vbuxx=_dec_vbuaa < vbuaa=_dec_vbuaa < vbuaa=vbuaa_minus_1 - clobber:A X Y cycles:19.5
ldx {z1}
ldy #0
lda ({z2}),y
sec
sbc #1
sta {c1},x
pbuc1_derefidx_vbuz1=_inc__deref_pbuz2 < pbuc1_derefidx_vbuxx=_inc__deref_pbuz1 < vbuaa=_inc__deref_pbuz1 < vbuaa=_deref_pbuz1_plus_1 < vbuaa=vbuaa_plus_1 - clobber:A X Y cycles:19.5
pbuc1_derefidx_vbuz1=_inc__deref_pbuz2 < pbuc1_derefidx_vbuxx=_inc__deref_pbuz1 < pbuc1_derefidx_vbuxx=_inc_vbuaa < vbuaa=_inc_vbuaa < vbuaa=vbuaa_plus_1 - clobber:A X Y cycles:19.5
ldx {z1}
ldy #0
lda ({z2}),y

File diff suppressed because it is too large Load Diff

View File

@ -84,8 +84,8 @@ scroll_bit: {
sta sc+1
ldx #0
b2:
stx $ff
ldy $ff
txa
tay
lda (current_chargen),y
and current_bit
cmp #0

View File

@ -3122,15 +3122,15 @@ Uplift Scope [next_char] 8.5: zp ZP_BYTE:13 [ next_char::return#1 next_char::c#0
Uplift Scope [main]
Uplift Scope [scroll_soft]
Uplifting [scroll_bit] best 28508 combination reg byte a [ scroll_bit::bits#0 ] reg byte a [ scroll_bit::$9 ] reg byte x [ scroll_bit::r#2 scroll_bit::r#1 ] zp ZP_WORD:7 [ scroll_bit::sc#2 scroll_bit::sc#1 ] reg byte a [ scroll_bit::b#2 ] reg byte a [ scroll_bit::$3 ] zp ZP_WORD:18 [ scroll_bit::c#0 ] zp ZP_WORD:20 [ scroll_bit::$4 ]
Uplifting [scroll_hard] best 25208 combination reg byte x [ scroll_hard::i#2 scroll_hard::i#1 ]
Uplifting [] best 24896 combination zp ZP_WORD:4 [ current_chargen#27 current_chargen#11 current_chargen#19 current_chargen#5 ] zp ZP_BYTE:3 [ current_bit#29 current_bit#12 current_bit#21 current_bit#5 ] zp ZP_WORD:11 [ nxt#18 nxt#31 nxt#14 nxt#36 nxt#19 ] reg byte x [ scroll#18 scroll#10 scroll#3 ]
Uplifting [fillscreen] best 24896 combination zp ZP_WORD:14 [ fillscreen::cursor#2 fillscreen::cursor#1 ]
Uplifting [next_char] best 24878 combination reg byte a [ next_char::return#1 next_char::c#0 next_char::c#1 ] reg byte a [ next_char::return#0 ]
Uplifting [main] best 24878 combination
Uplifting [scroll_soft] best 24878 combination
Uplifting [scroll_bit] best 28308 combination reg byte a [ scroll_bit::bits#0 ] reg byte a [ scroll_bit::$9 ] reg byte x [ scroll_bit::r#2 scroll_bit::r#1 ] zp ZP_WORD:7 [ scroll_bit::sc#2 scroll_bit::sc#1 ] reg byte a [ scroll_bit::b#2 ] reg byte a [ scroll_bit::$3 ] zp ZP_WORD:18 [ scroll_bit::c#0 ] zp ZP_WORD:20 [ scroll_bit::$4 ]
Uplifting [scroll_hard] best 25008 combination reg byte x [ scroll_hard::i#2 scroll_hard::i#1 ]
Uplifting [] best 24696 combination zp ZP_WORD:4 [ current_chargen#27 current_chargen#11 current_chargen#19 current_chargen#5 ] zp ZP_BYTE:3 [ current_bit#29 current_bit#12 current_bit#21 current_bit#5 ] zp ZP_WORD:11 [ nxt#18 nxt#31 nxt#14 nxt#36 nxt#19 ] reg byte x [ scroll#18 scroll#10 scroll#3 ]
Uplifting [fillscreen] best 24696 combination zp ZP_WORD:14 [ fillscreen::cursor#2 fillscreen::cursor#1 ]
Uplifting [next_char] best 24678 combination reg byte a [ next_char::return#1 next_char::c#0 next_char::c#1 ] reg byte a [ next_char::return#0 ]
Uplifting [main] best 24678 combination
Uplifting [scroll_soft] best 24678 combination
Attempting to uplift remaining variables inzp ZP_BYTE:3 [ current_bit#29 current_bit#12 current_bit#21 current_bit#5 ]
Uplifting [] best 24878 combination zp ZP_BYTE:3 [ current_bit#29 current_bit#12 current_bit#21 current_bit#5 ]
Uplifting [] best 24678 combination zp ZP_BYTE:3 [ current_bit#29 current_bit#12 current_bit#21 current_bit#5 ]
Coalescing zero page register [ zp ZP_WORD:4 [ current_chargen#27 current_chargen#11 current_chargen#19 current_chargen#5 ] ] with [ zp ZP_WORD:14 [ fillscreen::cursor#2 fillscreen::cursor#1 ] ]
Coalescing zero page register [ zp ZP_WORD:4 [ current_chargen#27 current_chargen#11 current_chargen#19 current_chargen#5 fillscreen::cursor#2 fillscreen::cursor#1 ] ] with [ zp ZP_WORD:18 [ scroll_bit::c#0 ] ]
Coalescing zero page register [ zp ZP_WORD:4 [ current_chargen#27 current_chargen#11 current_chargen#19 current_chargen#5 fillscreen::cursor#2 fillscreen::cursor#1 scroll_bit::c#0 ] ] with [ zp ZP_WORD:20 [ scroll_bit::$4 ] ]
@ -3365,8 +3365,8 @@ scroll_bit: {
//SEG87 scroll_bit::@2
b2:
//SEG88 [35] (byte) scroll_bit::bits#0 ← *((byte*) current_chargen#19 + (byte) scroll_bit::r#2) [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 scroll_bit::bits#0 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 scroll_bit::bits#0 ] ) -- vbuaa=pbuz1_derefidx_vbuxx
stx $ff
ldy $ff
txa
tay
lda (current_chargen),y
//SEG89 [36] (byte~) scroll_bit::$9 ← (byte) scroll_bit::bits#0 & (byte) current_bit#21 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 scroll_bit::$9 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 scroll_bit::$9 ] ) -- vbuaa=vbuaa_band_vbuz1
and current_bit
@ -3790,7 +3790,7 @@ reg byte a [ scroll_bit::$9 ]
FINAL ASSEMBLER
Score: 20756
Score: 20556
//SEG0 Basic Upstart
.pc = $801 "Basic"
@ -3969,8 +3969,8 @@ scroll_bit: {
//SEG87 scroll_bit::@2
b2:
//SEG88 [35] (byte) scroll_bit::bits#0 ← *((byte*) current_chargen#19 + (byte) scroll_bit::r#2) [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 scroll_bit::bits#0 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 scroll_bit::bits#0 ] ) -- vbuaa=pbuz1_derefidx_vbuxx
stx $ff
ldy $ff
txa
tay
lda (current_chargen),y
//SEG89 [36] (byte~) scroll_bit::$9 ← (byte) scroll_bit::bits#0 & (byte) current_bit#21 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 scroll_bit::$9 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 scroll_bit::$9 ] ) -- vbuaa=vbuaa_band_vbuz1
and current_bit

View File

@ -96,9 +96,22 @@ const byte* SPRITES_COLS = $d027;
const byte* COLS = $d800;
const byte BLACK = 0;
const byte WHITE = 1;
const byte RED = 2;
const byte BLACK = $0;
const byte WHITE = $1;
const byte RED = $2;
const byte CYAN = $3;
const byte PURPLE = $4;
const byte GREEN = $5;
const byte BLUE = $6;
const byte YELLOW = $7;
const byte ORANGE = $8;
const byte BROWN = $9;
const byte PINK = $a;
const byte DARK_GREY= $b;
const byte GREY = $c;
const byte LIGHT_GREEN = $d;
const byte LIGHT_BLUE = $e;
const byte LIGHT_GREY = $f;
Adding pre/post-modifier (byte*) init::sc ← ++ (byte*) init::sc
@ -123,6 +136,19 @@ STATEMENTS
(byte) BLACK ← (byte/signed byte/word/signed word) 0
(byte) WHITE ← (byte/signed byte/word/signed word) 1
(byte) RED ← (byte/signed byte/word/signed word) 2
(byte) CYAN ← (byte/signed byte/word/signed word) 3
(byte) PURPLE ← (byte/signed byte/word/signed word) 4
(byte) GREEN ← (byte/signed byte/word/signed word) 5
(byte) BLUE ← (byte/signed byte/word/signed word) 6
(byte) YELLOW ← (byte/signed byte/word/signed word) 7
(byte) ORANGE ← (byte/signed byte/word/signed word) 8
(byte) BROWN ← (byte/signed byte/word/signed word) 9
(byte) PINK ← (byte/signed byte/word/signed word) 10
(byte) DARK_GREY ← (byte/signed byte/word/signed word) 11
(byte) GREY ← (byte/signed byte/word/signed word) 12
(byte) LIGHT_GREEN ← (byte/signed byte/word/signed word) 13
(byte) LIGHT_BLUE ← (byte/signed byte/word/signed word) 14
(byte) LIGHT_GREY ← (byte/signed byte/word/signed word) 15
(byte*) SCREEN ← (word/signed word) 1024
(byte*~) $0 ← (byte*) SCREEN + (word/signed word) 1016
(byte*) SPRITES_PTR ← (byte*~) $0
@ -217,10 +243,22 @@ SYMBOLS
(signed byte/signed word~) $1
(byte*) BGCOL
(byte) BLACK
(byte) BLUE
(byte*) BORDERCOL
(byte) BROWN
(byte*) CHARGEN
(byte*) COLS
(byte) CYAN
(byte) DARK_GREY
(byte) GREEN
(byte) GREY
(byte) LIGHT_BLUE
(byte) LIGHT_GREEN
(byte) LIGHT_GREY
(byte) ORANGE
(byte) PINK
(byte*) PROCPORT
(byte) PURPLE
(byte*) RASTER
(byte) RED
(byte*) SCREEN
@ -238,6 +276,7 @@ SYMBOLS
(byte*) SPRITES_XPOS
(byte*) SPRITES_YPOS
(byte) WHITE
(byte) YELLOW
(void()) anim()
(boolean~) anim::$0
(boolean~) anim::$1
@ -327,6 +366,19 @@ INITIAL CONTROL FLOW GRAPH
(byte) BLACK ← (byte/signed byte/word/signed word) 0
(byte) WHITE ← (byte/signed byte/word/signed word) 1
(byte) RED ← (byte/signed byte/word/signed word) 2
(byte) CYAN ← (byte/signed byte/word/signed word) 3
(byte) PURPLE ← (byte/signed byte/word/signed word) 4
(byte) GREEN ← (byte/signed byte/word/signed word) 5
(byte) BLUE ← (byte/signed byte/word/signed word) 6
(byte) YELLOW ← (byte/signed byte/word/signed word) 7
(byte) ORANGE ← (byte/signed byte/word/signed word) 8
(byte) BROWN ← (byte/signed byte/word/signed word) 9
(byte) PINK ← (byte/signed byte/word/signed word) 10
(byte) DARK_GREY ← (byte/signed byte/word/signed word) 11
(byte) GREY ← (byte/signed byte/word/signed word) 12
(byte) LIGHT_GREEN ← (byte/signed byte/word/signed word) 13
(byte) LIGHT_BLUE ← (byte/signed byte/word/signed word) 14
(byte) LIGHT_GREY ← (byte/signed byte/word/signed word) 15
(byte*) SCREEN ← ((byte*)) (word/signed word) 1024
(byte*~) $0 ← (byte*) SCREEN + (word/signed word) 1016
(byte*) SPRITES_PTR ← (byte*~) $0
@ -456,6 +508,19 @@ Eliminating unused variable (byte*) SPRITES_MC2 and assignment [14] (byte*) SPRI
Eliminating unused variable (byte*) COLS and assignment [16] (byte*) COLS ← ((byte*)) (word) 55296
Eliminating unused variable (byte) BLACK and assignment [17] (byte) BLACK ← (byte/signed byte/word/signed word) 0
Eliminating unused variable (byte) RED and assignment [19] (byte) RED ← (byte/signed byte/word/signed word) 2
Eliminating unused variable (byte) CYAN and assignment [20] (byte) CYAN ← (byte/signed byte/word/signed word) 3
Eliminating unused variable (byte) PURPLE and assignment [21] (byte) PURPLE ← (byte/signed byte/word/signed word) 4
Eliminating unused variable (byte) GREEN and assignment [22] (byte) GREEN ← (byte/signed byte/word/signed word) 5
Eliminating unused variable (byte) BLUE and assignment [23] (byte) BLUE ← (byte/signed byte/word/signed word) 6
Eliminating unused variable (byte) YELLOW and assignment [24] (byte) YELLOW ← (byte/signed byte/word/signed word) 7
Eliminating unused variable (byte) ORANGE and assignment [25] (byte) ORANGE ← (byte/signed byte/word/signed word) 8
Eliminating unused variable (byte) BROWN and assignment [26] (byte) BROWN ← (byte/signed byte/word/signed word) 9
Eliminating unused variable (byte) PINK and assignment [27] (byte) PINK ← (byte/signed byte/word/signed word) 10
Eliminating unused variable (byte) DARK_GREY and assignment [28] (byte) DARK_GREY ← (byte/signed byte/word/signed word) 11
Eliminating unused variable (byte) GREY and assignment [29] (byte) GREY ← (byte/signed byte/word/signed word) 12
Eliminating unused variable (byte) LIGHT_GREEN and assignment [30] (byte) LIGHT_GREEN ← (byte/signed byte/word/signed word) 13
Eliminating unused variable (byte) LIGHT_BLUE and assignment [31] (byte) LIGHT_BLUE ← (byte/signed byte/word/signed word) 14
Eliminating unused variable (byte) LIGHT_GREY and assignment [32] (byte) LIGHT_GREY ← (byte/signed byte/word/signed word) 15
Eliminating unused variable - keeping the call (void~) main::$0
Eliminating unused variable - keeping the call (void~) main::$2
Removing empty block main::@4

View File

@ -239,9 +239,22 @@ const byte* SPRITES_COLS = $d027;
const byte* COLS = $d800;
const byte BLACK = 0;
const byte WHITE = 1;
const byte RED = 2;
const byte BLACK = $0;
const byte WHITE = $1;
const byte RED = $2;
const byte CYAN = $3;
const byte PURPLE = $4;
const byte GREEN = $5;
const byte BLUE = $6;
const byte YELLOW = $7;
const byte ORANGE = $8;
const byte BROWN = $9;
const byte PINK = $a;
const byte DARK_GREY= $b;
const byte GREY = $c;
const byte LIGHT_GREEN = $d;
const byte LIGHT_BLUE = $e;
const byte LIGHT_GREY = $f;
Importing basic-floats
PARSING src/test/java/dk/camelot64/kickc/test/kc/basic-floats.kc
@ -628,6 +641,19 @@ STATEMENTS
(byte) BLACK ← (byte/signed byte/word/signed word) 0
(byte) WHITE ← (byte/signed byte/word/signed word) 1
(byte) RED ← (byte/signed byte/word/signed word) 2
(byte) CYAN ← (byte/signed byte/word/signed word) 3
(byte) PURPLE ← (byte/signed byte/word/signed word) 4
(byte) GREEN ← (byte/signed byte/word/signed word) 5
(byte) BLUE ← (byte/signed byte/word/signed word) 6
(byte) YELLOW ← (byte/signed byte/word/signed word) 7
(byte) ORANGE ← (byte/signed byte/word/signed word) 8
(byte) BROWN ← (byte/signed byte/word/signed word) 9
(byte) PINK ← (byte/signed byte/word/signed word) 10
(byte) DARK_GREY ← (byte/signed byte/word/signed word) 11
(byte) GREY ← (byte/signed byte/word/signed word) 12
(byte) LIGHT_GREEN ← (byte/signed byte/word/signed word) 13
(byte) LIGHT_BLUE ← (byte/signed byte/word/signed word) 14
(byte) LIGHT_GREY ← (byte/signed byte/word/signed word) 15
(byte*) memLo ← (byte/word/signed word) 254
(byte*) memHi ← (byte/word/signed word) 255
proc (void()) prepareMEM((byte*) prepareMEM::mem)
@ -1144,10 +1170,22 @@ endproc // gen_sintab()
SYMBOLS
(byte*) BGCOL
(byte) BLACK
(byte) BLUE
(byte*) BORDERCOL
(byte) BROWN
(byte*) CHARGEN
(byte*) COLS
(byte) CYAN
(byte) DARK_GREY
(byte) GREEN
(byte) GREY
(byte) LIGHT_BLUE
(byte) LIGHT_GREEN
(byte) LIGHT_GREY
(byte) ORANGE
(byte) PINK
(byte*) PROCPORT
(byte) PURPLE
(byte*) RASTER
(byte) RED
(byte*) SCREEN
@ -1163,6 +1201,7 @@ SYMBOLS
(byte*) SPRITES_XPOS
(byte*) SPRITES_YPOS
(byte) WHITE
(byte) YELLOW
(void()) addARGtoFAC()
(label) addARGtoFAC::@return
(void()) addMEMtoFAC((byte*) addMEMtoFAC::mem)
@ -1523,6 +1562,19 @@ INITIAL CONTROL FLOW GRAPH
(byte) BLACK ← (byte/signed byte/word/signed word) 0
(byte) WHITE ← (byte/signed byte/word/signed word) 1
(byte) RED ← (byte/signed byte/word/signed word) 2
(byte) CYAN ← (byte/signed byte/word/signed word) 3
(byte) PURPLE ← (byte/signed byte/word/signed word) 4
(byte) GREEN ← (byte/signed byte/word/signed word) 5
(byte) BLUE ← (byte/signed byte/word/signed word) 6
(byte) YELLOW ← (byte/signed byte/word/signed word) 7
(byte) ORANGE ← (byte/signed byte/word/signed word) 8
(byte) BROWN ← (byte/signed byte/word/signed word) 9
(byte) PINK ← (byte/signed byte/word/signed word) 10
(byte) DARK_GREY ← (byte/signed byte/word/signed word) 11
(byte) GREY ← (byte/signed byte/word/signed word) 12
(byte) LIGHT_GREEN ← (byte/signed byte/word/signed word) 13
(byte) LIGHT_BLUE ← (byte/signed byte/word/signed word) 14
(byte) LIGHT_GREY ← (byte/signed byte/word/signed word) 15
(byte*) memLo ← ((byte*)) (byte/word/signed word) 254
(byte*) memHi ← ((byte*)) (byte/word/signed word) 255
to:@1
@ -2280,12 +2332,25 @@ Eliminating unused variable (byte*) SPRITES_MC2 and assignment [14] (byte*) SPRI
Eliminating unused variable (byte) BLACK and assignment [17] (byte) BLACK ← (byte/signed byte/word/signed word) 0
Eliminating unused variable (byte) WHITE and assignment [18] (byte) WHITE ← (byte/signed byte/word/signed word) 1
Eliminating unused variable (byte) RED and assignment [19] (byte) RED ← (byte/signed byte/word/signed word) 2
Eliminating unused variable (byte) CYAN and assignment [20] (byte) CYAN ← (byte/signed byte/word/signed word) 3
Eliminating unused variable (byte) PURPLE and assignment [21] (byte) PURPLE ← (byte/signed byte/word/signed word) 4
Eliminating unused variable (byte) GREEN and assignment [22] (byte) GREEN ← (byte/signed byte/word/signed word) 5
Eliminating unused variable (byte) BLUE and assignment [23] (byte) BLUE ← (byte/signed byte/word/signed word) 6
Eliminating unused variable (byte) YELLOW and assignment [24] (byte) YELLOW ← (byte/signed byte/word/signed word) 7
Eliminating unused variable (byte) ORANGE and assignment [25] (byte) ORANGE ← (byte/signed byte/word/signed word) 8
Eliminating unused variable (byte) BROWN and assignment [26] (byte) BROWN ← (byte/signed byte/word/signed word) 9
Eliminating unused variable (byte) PINK and assignment [27] (byte) PINK ← (byte/signed byte/word/signed word) 10
Eliminating unused variable (byte) DARK_GREY and assignment [28] (byte) DARK_GREY ← (byte/signed byte/word/signed word) 11
Eliminating unused variable (byte) GREY and assignment [29] (byte) GREY ← (byte/signed byte/word/signed word) 12
Eliminating unused variable (byte) LIGHT_GREEN and assignment [30] (byte) LIGHT_GREEN ← (byte/signed byte/word/signed word) 13
Eliminating unused variable (byte) LIGHT_BLUE and assignment [31] (byte) LIGHT_BLUE ← (byte/signed byte/word/signed word) 14
Eliminating unused variable (byte) LIGHT_GREY and assignment [32] (byte) LIGHT_GREY ← (byte/signed byte/word/signed word) 15
Eliminating unused variable - keeping the call (void~) setFAC::$1
Eliminating unused variable - keeping the call (void~) setMEMtoFAC::$0
Eliminating unused variable - keeping the call (void~) addMEMtoFAC::$0
Eliminating unused variable - keeping the call (void~) divMEMbyFAC::$0
Eliminating unused variable - keeping the call (void~) mulFACbyMEM::$0
Eliminating unused variable (byte*) char_cursor and assignment [55] (byte*) char_cursor ← (byte*) line_cursor
Eliminating unused variable (byte*) char_cursor and assignment [68] (byte*) char_cursor ← (byte*) line_cursor
Eliminating unused variable - keeping the call (void~) main::$0
Eliminating unused variable - keeping the call (void~) main::$2
Eliminating unused variable - keeping the call (void~) init::$0