1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-12-26 03:32:23 +00:00

Improved static ASM analysis to recognize & remove several LDA/LDX/LDY of the same value.

This commit is contained in:
jespergravgaard 2017-12-05 22:01:32 +01:00
parent c1b2b8ab7d
commit a79853a4ec
7 changed files with 38 additions and 4034 deletions

View File

@ -71,7 +71,21 @@ public class AsmProgramStaticRegisterValues {
if (clobber.isClobberZ()) {
current.setZ(null);
}
if (instructionType.getMnemnonic().equals("lda") && instructionType.getAddressingMode().equals(AsmAddressingMode.IMM)) {
String mnemnonic = instructionType.getMnemnonic();
AsmAddressingMode addressingMode = instructionType.getAddressingMode();
if ((mnemnonic.equals("inc") || mnemnonic.equals("dec") || mnemnonic.equals("ror") || mnemnonic.equals("rol") || mnemnonic.equals("lsr") || mnemnonic.equals("asl")) && (addressingMode.equals(AsmAddressingMode.ZP) || addressingMode.equals(AsmAddressingMode.ABS))) {
String modParam = instruction.getParameter();
if(current.getaMem()!=null && current.getaMem().equals(modParam)) {
current.setaMem(null);
}
if(current.getxMem()!=null && current.getxMem().equals(modParam)) {
current.setxMem(null);
}
if(current.getyMem()!=null && current.getyMem().equals(modParam)) {
current.setyMem(null);
}
}
if (mnemnonic.equals("lda") && addressingMode.equals(AsmAddressingMode.IMM)) {
current.setA(instruction.getParameter());
current.setaMem(null);
Integer immValue = getImmValue(instruction.getParameter());
@ -80,15 +94,14 @@ public class AsmProgramStaticRegisterValues {
current.setN(immValue > 127);
}
}
if (instructionType.getMnemnonic().equals("lda") && (instructionType.getAddressingMode().equals(AsmAddressingMode.ZP) || instructionType.getAddressingMode().equals(AsmAddressingMode.ABS))) {
if (mnemnonic.equals("lda") && (addressingMode.equals(AsmAddressingMode.ZP) || addressingMode.equals(AsmAddressingMode.ABS))) {
current.setaMem(instruction.getParameter());
current.setA(null);
}
if (instructionType.getMnemnonic().equals("sta") && (instructionType.getAddressingMode().equals(AsmAddressingMode.ZP) || instructionType.getAddressingMode().equals(AsmAddressingMode.ABS))) {
if (mnemnonic.equals("sta") && (addressingMode.equals(AsmAddressingMode.ZP) || addressingMode.equals(AsmAddressingMode.ABS))) {
current.setaMem(instruction.getParameter());
current.setA(null);
}
if (instructionType.getMnemnonic().equals("ldx") && instructionType.getAddressingMode().equals(AsmAddressingMode.IMM)) {
if (mnemnonic.equals("ldx") && addressingMode.equals(AsmAddressingMode.IMM)) {
current.setX(instruction.getParameter());
current.setxMem(null);
Integer immValue = getImmValue(instruction.getParameter());
@ -97,15 +110,14 @@ public class AsmProgramStaticRegisterValues {
current.setN(immValue > 127);
}
}
if (instructionType.getMnemnonic().equals("ldx") && (instructionType.getAddressingMode().equals(AsmAddressingMode.ZP) || instructionType.getAddressingMode().equals(AsmAddressingMode.ABS))) {
if (mnemnonic.equals("ldx") && (addressingMode.equals(AsmAddressingMode.ZP) || addressingMode.equals(AsmAddressingMode.ABS))) {
current.setxMem(instruction.getParameter());
current.setX(null);
}
if (instructionType.getMnemnonic().equals("stx") && (instructionType.getAddressingMode().equals(AsmAddressingMode.ZP) || instructionType.getAddressingMode().equals(AsmAddressingMode.ABS))) {
if (mnemnonic.equals("stx") && (addressingMode.equals(AsmAddressingMode.ZP) || addressingMode.equals(AsmAddressingMode.ABS))) {
current.setxMem(instruction.getParameter());
current.setX(null);
}
if (instructionType.getMnemnonic().equals("ldy") && instructionType.getAddressingMode().equals(AsmAddressingMode.IMM)) {
if (mnemnonic.equals("ldy") && addressingMode.equals(AsmAddressingMode.IMM)) {
current.setY(instruction.getParameter());
current.setyMem(null);
Integer immValue = getImmValue(instruction.getParameter());
@ -114,34 +126,33 @@ public class AsmProgramStaticRegisterValues {
current.setN(immValue > 127);
}
}
if (instructionType.getMnemnonic().equals("ldy") && (instructionType.getAddressingMode().equals(AsmAddressingMode.ZP) || instructionType.getAddressingMode().equals(AsmAddressingMode.ABS))) {
if (mnemnonic.equals("ldy") && (addressingMode.equals(AsmAddressingMode.ZP) || addressingMode.equals(AsmAddressingMode.ABS))) {
current.setyMem(instruction.getParameter());
}
if (mnemnonic.equals("sty") && (addressingMode.equals(AsmAddressingMode.ZP) || addressingMode.equals(AsmAddressingMode.ABS))) {
current.setyMem(instruction.getParameter());
current.setY(null);
}
if (instructionType.getMnemnonic().equals("sty") && (instructionType.getAddressingMode().equals(AsmAddressingMode.ZP) || instructionType.getAddressingMode().equals(AsmAddressingMode.ABS))) {
current.setyMem(instruction.getParameter());
current.setY(null);
}
if (instructionType.getMnemnonic().equals("txa")) {
if (mnemnonic.equals("txa")) {
current.setA(current.getX());
current.setaMem(current.getxMem());
}
if (instructionType.getMnemnonic().equals("tax")) {
if (mnemnonic.equals("tax")) {
current.setX(current.getA());
current.setxMem(current.getaMem());
}
if (instructionType.getMnemnonic().equals("tya")) {
if (mnemnonic.equals("tya")) {
current.setA(current.getY());
current.setaMem(current.getyMem());
}
if (instructionType.getMnemnonic().equals("tay")) {
if (mnemnonic.equals("tay")) {
current.setY(current.getA());
current.setyMem(current.getaMem());
}
if (instructionType.getMnemnonic().equals("sec")) {
if (mnemnonic.equals("sec")) {
current.setC(Boolean.TRUE);
}
if (instructionType.getMnemnonic().equals("clc")) {
if (mnemnonic.equals("clc")) {
current.setC(Boolean.FALSE);
}
}

View File

@ -43,13 +43,10 @@ lines: {
ldx l
lda lines_x,x
tay
ldx l
lda lines_x+1,x
sta _2
ldx l
lda lines_y,x
sta _3
ldx l
lda lines_y+1,x
tax
sty line.x0

View File

@ -16906,6 +16906,9 @@ init_screen: {
}
Removing instruction lda #0
Removing instruction ldx l
Removing instruction ldx l
Removing instruction ldx l
Removing instruction lda yd
Removing instruction lda yd
Removing instruction lda yd
@ -17014,15 +17017,12 @@ lines: {
lda lines_x,x
tay
//SEG34 [18] (byte~) lines::$2 ← (const byte[]) lines_x#0+(byte/signed byte/word/signed word) 1 *idx (byte) lines::l#2 [ lines::l#2 lines::$0 lines::$2 ] ( main:2::lines:12 [ lines::l#2 lines::$0 lines::$2 ] ) -- zpby1=cowo1_derefidx_zpby2
ldx l
lda lines_x+1,x
sta _2
//SEG35 [19] (byte~) lines::$3 ← (const byte[]) lines_y#0 *idx (byte) lines::l#2 [ lines::l#2 lines::$0 lines::$2 lines::$3 ] ( main:2::lines:12 [ lines::l#2 lines::$0 lines::$2 lines::$3 ] ) -- zpby1=cowo1_derefidx_zpby2
ldx l
lda lines_y,x
sta _3
//SEG36 [20] (byte~) lines::$5 ← (const byte[]) lines_y#0+(byte/signed byte/word/signed word) 1 *idx (byte) lines::l#2 [ lines::l#2 lines::$0 lines::$2 lines::$3 lines::$5 ] ( main:2::lines:12 [ lines::l#2 lines::$0 lines::$2 lines::$3 lines::$5 ] ) -- xby=cowo1_derefidx_zpby1
ldx l
lda lines_y+1,x
tax
//SEG37 [21] (byte) line::x0#0 ← (byte~) lines::$0 [ lines::l#2 lines::$2 lines::$3 lines::$5 line::x0#0 ] ( main:2::lines:12 [ lines::l#2 lines::$2 lines::$3 lines::$5 line::x0#0 ] ) -- zpby1=yby
@ -17979,15 +17979,12 @@ lines: {
lda lines_x,x
tay
//SEG34 [18] (byte~) lines::$2 ← (const byte[]) lines_x#0+(byte/signed byte/word/signed word) 1 *idx (byte) lines::l#2 [ lines::l#2 lines::$0 lines::$2 ] ( main:2::lines:12 [ lines::l#2 lines::$0 lines::$2 ] ) -- zpby1=cowo1_derefidx_zpby2
ldx l
lda lines_x+1,x
sta _2
//SEG35 [19] (byte~) lines::$3 ← (const byte[]) lines_y#0 *idx (byte) lines::l#2 [ lines::l#2 lines::$0 lines::$2 lines::$3 ] ( main:2::lines:12 [ lines::l#2 lines::$0 lines::$2 lines::$3 ] ) -- zpby1=cowo1_derefidx_zpby2
ldx l
lda lines_y,x
sta _3
//SEG36 [20] (byte~) lines::$5 ← (const byte[]) lines_y#0+(byte/signed byte/word/signed word) 1 *idx (byte) lines::l#2 [ lines::l#2 lines::$0 lines::$2 lines::$3 lines::$5 ] ( main:2::lines:12 [ lines::l#2 lines::$0 lines::$2 lines::$3 lines::$5 ] ) -- xby=cowo1_derefidx_zpby1
ldx l
lda lines_y+1,x
tax
//SEG37 [21] (byte) line::x0#0 ← (byte~) lines::$0 [ lines::l#2 lines::$2 lines::$3 lines::$5 line::x0#0 ] ( main:2::lines:12 [ lines::l#2 lines::$2 lines::$3 lines::$5 line::x0#0 ] ) -- zpby1=yby
@ -18911,15 +18908,12 @@ lines: {
lda lines_x,x
tay
//SEG34 [18] (byte~) lines::$2 ← (const byte[]) lines_x#0+(byte/signed byte/word/signed word) 1 *idx (byte) lines::l#2 [ lines::l#2 lines::$0 lines::$2 ] ( main:2::lines:12 [ lines::l#2 lines::$0 lines::$2 ] ) -- zpby1=cowo1_derefidx_zpby2
ldx l
lda lines_x+1,x
sta _2
//SEG35 [19] (byte~) lines::$3 ← (const byte[]) lines_y#0 *idx (byte) lines::l#2 [ lines::l#2 lines::$0 lines::$2 lines::$3 ] ( main:2::lines:12 [ lines::l#2 lines::$0 lines::$2 lines::$3 ] ) -- zpby1=cowo1_derefidx_zpby2
ldx l
lda lines_y,x
sta _3
//SEG36 [20] (byte~) lines::$5 ← (const byte[]) lines_y#0+(byte/signed byte/word/signed word) 1 *idx (byte) lines::l#2 [ lines::l#2 lines::$0 lines::$2 lines::$3 lines::$5 ] ( main:2::lines:12 [ lines::l#2 lines::$0 lines::$2 lines::$3 lines::$5 ] ) -- xby=cowo1_derefidx_zpby1
ldx l
lda lines_y+1,x
tax
//SEG37 [21] (byte) line::x0#0 ← (byte~) lines::$0 [ lines::l#2 lines::$2 lines::$3 lines::$5 line::x0#0 ] ( main:2::lines:12 [ lines::l#2 lines::$2 lines::$3 lines::$5 line::x0#0 ] ) -- zpby1=yby
@ -19753,15 +19747,12 @@ lines: {
lda lines_x,x
tay
//SEG34 [18] (byte~) lines::$2 ← (const byte[]) lines_x#0+(byte/signed byte/word/signed word) 1 *idx (byte) lines::l#2 [ lines::l#2 lines::$0 lines::$2 ] ( main:2::lines:12 [ lines::l#2 lines::$0 lines::$2 ] ) -- zpby1=cowo1_derefidx_zpby2
ldx l
lda lines_x+1,x
sta _2
//SEG35 [19] (byte~) lines::$3 ← (const byte[]) lines_y#0 *idx (byte) lines::l#2 [ lines::l#2 lines::$0 lines::$2 lines::$3 ] ( main:2::lines:12 [ lines::l#2 lines::$0 lines::$2 lines::$3 ] ) -- zpby1=cowo1_derefidx_zpby2
ldx l
lda lines_y,x
sta _3
//SEG36 [20] (byte~) lines::$5 ← (const byte[]) lines_y#0+(byte/signed byte/word/signed word) 1 *idx (byte) lines::l#2 [ lines::l#2 lines::$0 lines::$2 lines::$3 lines::$5 ] ( main:2::lines:12 [ lines::l#2 lines::$0 lines::$2 lines::$3 lines::$5 ] ) -- xby=cowo1_derefidx_zpby1
ldx l
lda lines_y+1,x
tax
//SEG37 [21] (byte) line::x0#0 ← (byte~) lines::$0 [ lines::l#2 lines::$2 lines::$3 lines::$5 line::x0#0 ] ( main:2::lines:12 [ lines::l#2 lines::$2 lines::$3 lines::$5 line::x0#0 ] ) -- zpby1=yby
@ -20594,15 +20585,12 @@ lines: {
lda lines_x,x
tay
//SEG34 [18] (byte~) lines::$2 ← (const byte[]) lines_x#0+(byte/signed byte/word/signed word) 1 *idx (byte) lines::l#2 [ lines::l#2 lines::$0 lines::$2 ] ( main:2::lines:12 [ lines::l#2 lines::$0 lines::$2 ] ) -- zpby1=cowo1_derefidx_zpby2
ldx l
lda lines_x+1,x
sta _2
//SEG35 [19] (byte~) lines::$3 ← (const byte[]) lines_y#0 *idx (byte) lines::l#2 [ lines::l#2 lines::$0 lines::$2 lines::$3 ] ( main:2::lines:12 [ lines::l#2 lines::$0 lines::$2 lines::$3 ] ) -- zpby1=cowo1_derefidx_zpby2
ldx l
lda lines_y,x
sta _3
//SEG36 [20] (byte~) lines::$5 ← (const byte[]) lines_y#0+(byte/signed byte/word/signed word) 1 *idx (byte) lines::l#2 [ lines::l#2 lines::$0 lines::$2 lines::$3 lines::$5 ] ( main:2::lines:12 [ lines::l#2 lines::$0 lines::$2 lines::$3 lines::$5 ] ) -- xby=cowo1_derefidx_zpby1
ldx l
lda lines_y+1,x
tax
//SEG37 [21] (byte) line::x0#0 ← (byte~) lines::$0 [ lines::l#2 lines::$2 lines::$3 lines::$5 line::x0#0 ] ( main:2::lines:12 [ lines::l#2 lines::$2 lines::$3 lines::$5 line::x0#0 ] ) -- zpby1=yby
@ -21438,15 +21426,12 @@ lines: {
lda lines_x,x
tay
//SEG34 [18] (byte~) lines::$2 ← (const byte[]) lines_x#0+(byte/signed byte/word/signed word) 1 *idx (byte) lines::l#2 [ lines::l#2 lines::$0 lines::$2 ] ( main:2::lines:12 [ lines::l#2 lines::$0 lines::$2 ] ) -- zpby1=cowo1_derefidx_zpby2
ldx l
lda lines_x+1,x
sta _2
//SEG35 [19] (byte~) lines::$3 ← (const byte[]) lines_y#0 *idx (byte) lines::l#2 [ lines::l#2 lines::$0 lines::$2 lines::$3 ] ( main:2::lines:12 [ lines::l#2 lines::$0 lines::$2 lines::$3 ] ) -- zpby1=cowo1_derefidx_zpby2
ldx l
lda lines_y,x
sta _3
//SEG36 [20] (byte~) lines::$5 ← (const byte[]) lines_y#0+(byte/signed byte/word/signed word) 1 *idx (byte) lines::l#2 [ lines::l#2 lines::$0 lines::$2 lines::$3 lines::$5 ] ( main:2::lines:12 [ lines::l#2 lines::$0 lines::$2 lines::$3 lines::$5 ] ) -- xby=cowo1_derefidx_zpby1
ldx l
lda lines_y+1,x
tax
//SEG37 [21] (byte) line::x0#0 ← (byte~) lines::$0 [ lines::l#2 lines::$2 lines::$3 lines::$5 line::x0#0 ] ( main:2::lines:12 [ lines::l#2 lines::$2 lines::$3 lines::$5 line::x0#0 ] ) -- zpby1=yby
@ -22274,15 +22259,12 @@ lines: {
lda lines_x,x
tay
//SEG34 [18] (byte~) lines::$2 ← (const byte[]) lines_x#0+(byte/signed byte/word/signed word) 1 *idx (byte) lines::l#2 [ lines::l#2 lines::$0 lines::$2 ] ( main:2::lines:12 [ lines::l#2 lines::$0 lines::$2 ] ) -- zpby1=cowo1_derefidx_zpby2
ldx l
lda lines_x+1,x
sta _2
//SEG35 [19] (byte~) lines::$3 ← (const byte[]) lines_y#0 *idx (byte) lines::l#2 [ lines::l#2 lines::$0 lines::$2 lines::$3 ] ( main:2::lines:12 [ lines::l#2 lines::$0 lines::$2 lines::$3 ] ) -- zpby1=cowo1_derefidx_zpby2
ldx l
lda lines_y,x
sta _3
//SEG36 [20] (byte~) lines::$5 ← (const byte[]) lines_y#0+(byte/signed byte/word/signed word) 1 *idx (byte) lines::l#2 [ lines::l#2 lines::$0 lines::$2 lines::$3 lines::$5 ] ( main:2::lines:12 [ lines::l#2 lines::$0 lines::$2 lines::$3 lines::$5 ] ) -- xby=cowo1_derefidx_zpby1
ldx l
lda lines_y+1,x
tax
//SEG37 [21] (byte) line::x0#0 ← (byte~) lines::$0 [ lines::l#2 lines::$2 lines::$3 lines::$5 line::x0#0 ] ( main:2::lines:12 [ lines::l#2 lines::$2 lines::$3 lines::$5 line::x0#0 ] ) -- zpby1=yby
@ -23109,15 +23091,12 @@ lines: {
lda lines_x,x
tay
//SEG34 [18] (byte~) lines::$2 ← (const byte[]) lines_x#0+(byte/signed byte/word/signed word) 1 *idx (byte) lines::l#2 [ lines::l#2 lines::$0 lines::$2 ] ( main:2::lines:12 [ lines::l#2 lines::$0 lines::$2 ] ) -- zpby1=cowo1_derefidx_zpby2
ldx l
lda lines_x+1,x
sta _2
//SEG35 [19] (byte~) lines::$3 ← (const byte[]) lines_y#0 *idx (byte) lines::l#2 [ lines::l#2 lines::$0 lines::$2 lines::$3 ] ( main:2::lines:12 [ lines::l#2 lines::$0 lines::$2 lines::$3 ] ) -- zpby1=cowo1_derefidx_zpby2
ldx l
lda lines_y,x
sta _3
//SEG36 [20] (byte~) lines::$5 ← (const byte[]) lines_y#0+(byte/signed byte/word/signed word) 1 *idx (byte) lines::l#2 [ lines::l#2 lines::$0 lines::$2 lines::$3 lines::$5 ] ( main:2::lines:12 [ lines::l#2 lines::$0 lines::$2 lines::$3 lines::$5 ] ) -- xby=cowo1_derefidx_zpby1
ldx l
lda lines_y+1,x
tax
//SEG37 [21] (byte) line::x0#0 ← (byte~) lines::$0 [ lines::l#2 lines::$2 lines::$3 lines::$5 line::x0#0 ] ( main:2::lines:12 [ lines::l#2 lines::$2 lines::$3 lines::$5 line::x0#0 ] ) -- zpby1=yby
@ -24281,15 +24260,12 @@ lines: {
lda lines_x,x
tay
//SEG34 [18] (byte~) lines::$2 ← (const byte[]) lines_x#0+(byte/signed byte/word/signed word) 1 *idx (byte) lines::l#2 [ lines::l#2 lines::$0 lines::$2 ] ( main:2::lines:12 [ lines::l#2 lines::$0 lines::$2 ] ) -- zpby1=cowo1_derefidx_zpby2
ldx l
lda lines_x+1,x
sta _2
//SEG35 [19] (byte~) lines::$3 ← (const byte[]) lines_y#0 *idx (byte) lines::l#2 [ lines::l#2 lines::$0 lines::$2 lines::$3 ] ( main:2::lines:12 [ lines::l#2 lines::$0 lines::$2 lines::$3 ] ) -- zpby1=cowo1_derefidx_zpby2
ldx l
lda lines_y,x
sta _3
//SEG36 [20] (byte~) lines::$5 ← (const byte[]) lines_y#0+(byte/signed byte/word/signed word) 1 *idx (byte) lines::l#2 [ lines::l#2 lines::$0 lines::$2 lines::$3 lines::$5 ] ( main:2::lines:12 [ lines::l#2 lines::$0 lines::$2 lines::$3 lines::$5 ] ) -- xby=cowo1_derefidx_zpby1
ldx l
lda lines_y+1,x
tax
//SEG37 [21] (byte) line::x0#0 ← (byte~) lines::$0 [ lines::l#2 lines::$2 lines::$3 lines::$5 line::x0#0 ] ( main:2::lines:12 [ lines::l#2 lines::$2 lines::$3 lines::$5 line::x0#0 ] ) -- zpby1=yby

View File

@ -47,7 +47,6 @@ plots: {
ldx i
lda plots_x,x
tay
ldx i
lda plots_y,x
tax
jsr plot

View File

@ -6553,6 +6553,7 @@ init_screen: {
}
Removing instruction lda #0
Removing instruction ldx i
Removing instruction ldy #0
Removing instruction lda #>0
Replacing instruction ldx #0 with TAX
@ -6663,7 +6664,6 @@ plots: {
lda plots_x,x
tay
//SEG37 [20] (byte~) plots::$1 ← (const byte[]) plots_y#0 *idx (byte) plots::i#2 [ plots::i#2 plots::$0 plots::$1 ] ( main:2::plots:13 [ plots::i#2 plots::$0 plots::$1 ] ) -- aby=cowo1_derefidx_zpby1
ldx i
lda plots_y,x
//SEG38 [21] (byte) plot::x#0 ← (byte~) plots::$0 [ plots::i#2 plots::$1 plot::x#0 ] ( main:2::plots:13 [ plots::i#2 plots::$1 plot::x#0 ] )
// (byte) plot::x#0 = (byte~) plots::$0 // register copy reg byte y
@ -7035,7 +7035,6 @@ plots: {
lda plots_x,x
tay
//SEG37 [20] (byte~) plots::$1 ← (const byte[]) plots_y#0 *idx (byte) plots::i#2 [ plots::i#2 plots::$0 plots::$1 ] ( main:2::plots:13 [ plots::i#2 plots::$0 plots::$1 ] ) -- aby=cowo1_derefidx_zpby1
ldx i
lda plots_y,x
//SEG38 [21] (byte) plot::x#0 ← (byte~) plots::$0 [ plots::i#2 plots::$1 plot::x#0 ] ( main:2::plots:13 [ plots::i#2 plots::$1 plot::x#0 ] )
// (byte) plot::x#0 = (byte~) plots::$0 // register copy reg byte y
@ -7387,7 +7386,6 @@ plots: {
lda plots_x,x
tay
//SEG37 [20] (byte~) plots::$1 ← (const byte[]) plots_y#0 *idx (byte) plots::i#2 [ plots::i#2 plots::$0 plots::$1 ] ( main:2::plots:13 [ plots::i#2 plots::$0 plots::$1 ] ) -- aby=cowo1_derefidx_zpby1
ldx i
lda plots_y,x
//SEG38 [21] (byte) plot::x#0 ← (byte~) plots::$0 [ plots::i#2 plots::$1 plot::x#0 ] ( main:2::plots:13 [ plots::i#2 plots::$1 plot::x#0 ] )
// (byte) plot::x#0 = (byte~) plots::$0 // register copy reg byte y
@ -7709,7 +7707,6 @@ plots: {
lda plots_x,x
tay
//SEG37 [20] (byte~) plots::$1 ← (const byte[]) plots_y#0 *idx (byte) plots::i#2 [ plots::i#2 plots::$0 plots::$1 ] ( main:2::plots:13 [ plots::i#2 plots::$0 plots::$1 ] ) -- aby=cowo1_derefidx_zpby1
ldx i
lda plots_y,x
//SEG38 [21] (byte) plot::x#0 ← (byte~) plots::$0 [ plots::i#2 plots::$1 plot::x#0 ] ( main:2::plots:13 [ plots::i#2 plots::$1 plot::x#0 ] )
// (byte) plot::x#0 = (byte~) plots::$0 // register copy reg byte y
@ -8030,7 +8027,6 @@ plots: {
lda plots_x,x
tay
//SEG37 [20] (byte~) plots::$1 ← (const byte[]) plots_y#0 *idx (byte) plots::i#2 [ plots::i#2 plots::$0 plots::$1 ] ( main:2::plots:13 [ plots::i#2 plots::$0 plots::$1 ] ) -- aby=cowo1_derefidx_zpby1
ldx i
lda plots_y,x
//SEG38 [21] (byte) plot::x#0 ← (byte~) plots::$0 [ plots::i#2 plots::$1 plot::x#0 ] ( main:2::plots:13 [ plots::i#2 plots::$1 plot::x#0 ] )
// (byte) plot::x#0 = (byte~) plots::$0 // register copy reg byte y
@ -8354,7 +8350,6 @@ plots: {
lda plots_x,x
tay
//SEG37 [20] (byte~) plots::$1 ← (const byte[]) plots_y#0 *idx (byte) plots::i#2 [ plots::i#2 plots::$0 plots::$1 ] ( main:2::plots:13 [ plots::i#2 plots::$0 plots::$1 ] ) -- aby=cowo1_derefidx_zpby1
ldx i
lda plots_y,x
//SEG38 [21] (byte) plot::x#0 ← (byte~) plots::$0 [ plots::i#2 plots::$1 plot::x#0 ] ( main:2::plots:13 [ plots::i#2 plots::$1 plot::x#0 ] )
// (byte) plot::x#0 = (byte~) plots::$0 // register copy reg byte y
@ -8670,7 +8665,6 @@ plots: {
lda plots_x,x
tay
//SEG37 [20] (byte~) plots::$1 ← (const byte[]) plots_y#0 *idx (byte) plots::i#2 [ plots::i#2 plots::$0 plots::$1 ] ( main:2::plots:13 [ plots::i#2 plots::$0 plots::$1 ] ) -- aby=cowo1_derefidx_zpby1
ldx i
lda plots_y,x
//SEG38 [21] (byte) plot::x#0 ← (byte~) plots::$0 [ plots::i#2 plots::$1 plot::x#0 ] ( main:2::plots:13 [ plots::i#2 plots::$1 plot::x#0 ] )
// (byte) plot::x#0 = (byte~) plots::$0 // register copy reg byte y
@ -8985,7 +8979,6 @@ plots: {
lda plots_x,x
tay
//SEG37 [20] (byte~) plots::$1 ← (const byte[]) plots_y#0 *idx (byte) plots::i#2 [ plots::i#2 plots::$0 plots::$1 ] ( main:2::plots:13 [ plots::i#2 plots::$0 plots::$1 ] ) -- aby=cowo1_derefidx_zpby1
ldx i
lda plots_y,x
//SEG38 [21] (byte) plot::x#0 ← (byte~) plots::$0 [ plots::i#2 plots::$1 plot::x#0 ] ( main:2::plots:13 [ plots::i#2 plots::$1 plot::x#0 ] )
// (byte) plot::x#0 = (byte~) plots::$0 // register copy reg byte y
@ -9433,7 +9426,6 @@ plots: {
lda plots_x,x
tay
//SEG37 [20] (byte~) plots::$1 ← (const byte[]) plots_y#0 *idx (byte) plots::i#2 [ plots::i#2 plots::$0 plots::$1 ] ( main:2::plots:13 [ plots::i#2 plots::$0 plots::$1 ] ) -- aby=cowo1_derefidx_zpby1
ldx i
lda plots_y,x
//SEG38 [21] (byte) plot::x#0 ← (byte~) plots::$0 [ plots::i#2 plots::$1 plot::x#0 ] ( main:2::plots:13 [ plots::i#2 plots::$1 plot::x#0 ] )
// (byte) plot::x#0 = (byte~) plots::$0 // register copy reg byte y

View File

@ -71,7 +71,6 @@ anim: {
ldx j2
sta SPRITES_XPOS,x
lda sintab_y,y
ldx j2
sta SPRITES_YPOS,x
lda xidx
clc

File diff suppressed because one or more lines are too long