1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-10-11 12:23:45 +00:00

Closes #26 Change pointer derefs ASM signature to _deref_xxx (from _star_xxx)

This commit is contained in:
jespergravgaard 2017-11-13 19:05:57 +01:00
parent f351b28f58
commit 365357596b
124 changed files with 1260 additions and 1256 deletions

View File

@ -29,8 +29,7 @@ New language Features
Pointers
- Support calculated pointers eg. *(ptr+i)
- Use a rule-based approach should de-inline most pointer derefs again just before register allocation. ( *a = *b + *c => $1=*b (reg a), $2=*c (alu), $3=$1+$2 (reg a), *a = $3 - but *a=*a+const should stay inlined as it has efficient ASM)
- Change pointer derefs ASM signature to _deref_xxx (from _star_xxx)
- Use a rule-based approach to de-inline most pointer derefs again just before register allocation. ( *a = *b + *c => $1=*b (reg a), $2=*c (alu), $3=$1+$2 (reg a), *a = $3 - but *a=*a+const should stay inlined as it has efficient ASM)
- VariableReplacer, GraphReplacer, Pass1GenerateSSA#versionAllUses() has a pretty ugly handling of pointers. Abstract prettier code.
- AsmFragmentManager only handles _neq_ pointer comparison. Abstract a better replacer and handle the rest.
- Consider if array-indexing should be handled in the same way as unary * when generating statements (put into inline Pointers instead of temporary variables.) This will fix a[2]++, which probably does not work atm.
@ -209,3 +208,4 @@ Done
+ (incd020.kc) Increment/decrement of value pointed to by pointer does not work. eg. byte* BGCOL = $d020; (*BGCOL)++;
+ All pointer derefs *ptr should per default be inlined as rValues/lValues in early passes (PointerDereference).
+ Alternatively: Selectively inline some pointer derefs that can be optimized in ASM
+ Change pointer derefs ASM signature to _deref_xxx (from _star_xxx)

View File

@ -126,8 +126,8 @@ public class AsmFragmentManager {
return result;
}
}
if (signature.startsWith("_star_cowo1_neq_") && !signature.contains("aby")) {
String subSignature = "aby_neq_" + signature.substring(16).replace("cowo2", "cowo1").replace("cowo3", "cowo2").replace("coby2", "coby1").replace("coby3", "coby2");
if (signature.startsWith("_deref_cowo1_neq_") && !signature.contains("aby")) {
String subSignature = regexpRewriteSignature(signature, "_deref_cowo1_neq_(.*)", "aby_neq_$1").replace("cowo2", "cowo1").replace("cowo3", "cowo2").replace("coby2", "coby1").replace("coby3", "coby2");
CharStream subCharStream = loadOrSynthesizeFragment(subSignature);
if (subCharStream != null) {
CharStream result = CharStreams.fromString("lda {cowo1}\n"+subCharStream.toString().replace("cowo2", "cowo3").replace("cowo1", "cowo2").replace("coby2", "coby3").replace("coby1", "coby2"));
@ -158,48 +158,48 @@ public class AsmFragmentManager {
return result;
}
}
if (signature.contains("=_star_cowo1") && !signature.matches(".*=.*aby.*")) {
String subSignature = regexpRewriteSignature(signature, "(.*)=_star_cowo1_(.*)", "$1=aby_$2").replace("cowo2", "cowo1").replace("cowo3", "cowo2").replace("coby2", "coby1").replace("coby3", "coby2");
if (signature.contains("=_deref_cowo1") && !signature.matches(".*=.*aby.*")) {
String subSignature = regexpRewriteSignature(signature, "(.*)=_deref_cowo1_(.*)", "$1=aby_$2").replace("cowo2", "cowo1").replace("cowo3", "cowo2").replace("coby2", "coby1").replace("coby3", "coby2");
CharStream subCharStream = loadOrSynthesizeFragment(subSignature);
if (subCharStream != null) {
CharStream result = CharStreams.fromString("lda {cowo1}\n"+subCharStream.toString().replace("cowo2", "cowo3").replace("cowo1", "cowo2").replace("coby2", "coby3").replace("coby1", "coby2"));
return result;
}
}
if (signature.contains("=_star_zpptrby1") && !signature.matches(".*=.*aby.*")&& !signature.matches(".*=.*yby.*")) {
String subSignature = regexpRewriteSignature(signature, "(.*)=_star_zpptrby1_(.*)", "$1=aby_$2").replace("zpptrby2", "zpptrby1").replace("zpptrby3", "zpptrby2");
if (signature.contains("=_deref_zpptrby1") && !signature.matches(".*=.*aby.*")&& !signature.matches(".*=.*yby.*")) {
String subSignature = regexpRewriteSignature(signature, "(.*)=_deref_zpptrby1_(.*)", "$1=aby_$2").replace("zpptrby2", "zpptrby1").replace("zpptrby3", "zpptrby2");
CharStream subCharStream = loadOrSynthesizeFragment(subSignature);
if (subCharStream != null) {
CharStream result = CharStreams.fromString("ldy #0\n"+"lda ({zpptrby1}),y\n"+subCharStream.toString().replace("zpptrby2", "zpptrby3").replace("zpptrby1", "zpptrby2"));
return result;
}
}
if (signature.endsWith("_staridx_aby") && !signature.matches(".*=.*yby.*")) {
String subSignature = regexpRewriteSignature(signature, "(.*)=(.*)_staridx_aby", "$1=$2_staridx_yby");
if (signature.endsWith("_derefidx_aby") && !signature.matches(".*=.*yby.*")) {
String subSignature = regexpRewriteSignature(signature, "(.*)=(.*)_derefidx_aby", "$1=$2_derefidx_yby");
CharStream subCharStream = loadOrSynthesizeFragment(subSignature);
if (subCharStream != null) {
CharStream result = CharStreams.fromString("tay\n"+subCharStream.toString());
return result;
}
}
if (signature.endsWith("_staridx_aby") && !signature.matches(".*=.*xby.*")) {
String subSignature = regexpRewriteSignature(signature, "(.*)=(.*)_staridx_aby", "$1=$2_staridx_xby");
if (signature.endsWith("_derefidx_aby") && !signature.matches(".*=.*xby.*")) {
String subSignature = regexpRewriteSignature(signature, "(.*)=(.*)_derefidx_aby", "$1=$2_derefidx_xby");
CharStream subCharStream = loadOrSynthesizeFragment(subSignature);
if (subCharStream != null) {
CharStream result = CharStreams.fromString("tax\n"+subCharStream.toString());
return result;
}
}
if (signature.endsWith("_staridx_zpby1") && !signature.matches(".*=.*yby.*")) {
String subSignature = regexpRewriteSignature(signature, "(.*)=(.*)_staridx_zpby1", "$1=$2_staridx_yby").replace("zpby2", "zpby1").replace("zpby3", "zpby2");
if (signature.endsWith("_derefidx_zpby1") && !signature.matches(".*=.*yby.*")) {
String subSignature = regexpRewriteSignature(signature, "(.*)=(.*)_derefidx_zpby1", "$1=$2_derefidx_yby").replace("zpby2", "zpby1").replace("zpby3", "zpby2");
CharStream subCharStream = loadOrSynthesizeFragment(subSignature);
if (subCharStream != null) {
CharStream result = CharStreams.fromString("ldy {zpby1}\n"+subCharStream.toString().replace("zpby2", "zpby3").replace("zpby1", "zpby2"));
return result;
}
}
if (signature.endsWith("_staridx_zpby1") && !signature.matches(".*=.*xby.*")) {
String subSignature = regexpRewriteSignature(signature, "(.*)=(.*)_staridx_zpby1", "$1=$2_staridx_xby").replace("zpby2", "zpby1").replace("zpby3", "zpby2");
if (signature.endsWith("_derefidx_zpby1") && !signature.matches(".*=.*xby.*")) {
String subSignature = regexpRewriteSignature(signature, "(.*)=(.*)_derefidx_zpby1", "$1=$2_derefidx_xby").replace("zpby2", "zpby1").replace("zpby3", "zpby2");
CharStream subCharStream = loadOrSynthesizeFragment(subSignature);
if (subCharStream != null) {
CharStream result = CharStreams.fromString("ldx {zpby1}\n"+subCharStream.toString().replace("zpby2", "zpby3").replace("zpby1", "zpby2"));

View File

@ -165,9 +165,13 @@ public class AsmFragmentSignature {
String op = operator.getOperator();
switch (op) {
case "*":
return "_star_";
if(operator.getType().equals(Operator.Type.UNARY)) {
return "_deref_";
} else {
return "_mul_";
}
case "*idx":
return "_staridx_";
return "_derefidx_";
case "+":
return "_plus_";
case "++":
@ -249,10 +253,10 @@ public class AsmFragmentSignature {
public String bind(Value value) {
if (value instanceof PointerDereferenceSimple) {
PointerDereferenceSimple deref = (PointerDereferenceSimple) value;
return "_star_" + bind(deref.getPointer());
return "_deref_" + bind(deref.getPointer());
} else if (value instanceof PointerDereferenceIndexed) {
PointerDereferenceIndexed deref = (PointerDereferenceIndexed) value;
return bind(deref.getPointer()) + "_staridx_" + bind(deref.getIndex());
return bind(deref.getPointer()) + "_derefidx_" + bind(deref.getIndex());
}
if (value instanceof VariableRef) {

View File

@ -1303,7 +1303,7 @@ main: {
jmp b2
//SEG17 main::@2
b2:
//SEG18 [4] *((const byte*) SCREEN#0 + (byte) main::i#4) ← (byte) main::j#2 [ main::i#4 main::j#2 ] ( main:0 [ main::i#4 main::j#2 ] ) -- cowo1_staridx_zpby1=zpby2
//SEG18 [4] *((const byte*) SCREEN#0 + (byte) main::i#4) ← (byte) main::j#2 [ main::i#4 main::j#2 ] ( main:0 [ main::i#4 main::j#2 ] ) -- cowo1_derefidx_zpby1=zpby2
lda j
ldx i
sta SCREEN,x
@ -1349,7 +1349,7 @@ main: {
//SEG34 asm { eor#$55tax }
eor #$55
tax
//SEG35 [12] *((const byte*) SCREEN#0 + (byte) main::k#4) ← (byte) main::l#2 [ main::k#4 main::l#2 ] ( main:0 [ main::k#4 main::l#2 ] ) -- cowo1_staridx_zpby1=zpby2
//SEG35 [12] *((const byte*) SCREEN#0 + (byte) main::k#4) ← (byte) main::l#2 [ main::k#4 main::l#2 ] ( main:0 [ main::k#4 main::l#2 ] ) -- cowo1_derefidx_zpby1=zpby2
lda l
ldx k
sta SCREEN,x
@ -1448,7 +1448,7 @@ main: {
//SEG16 [3] phi (byte) main::j#2 = (byte) main::j#1 [phi:main::@2->main::@2#0] -- register_copy
//SEG17 main::@2
b2:
//SEG18 [4] *((const byte*) SCREEN#0 + (byte) main::i#4) ← (byte) main::j#2 [ main::i#4 main::j#2 ] ( main:0 [ main::i#4 main::j#2 ] ) -- cowo1_staridx_xby=aby
//SEG18 [4] *((const byte*) SCREEN#0 + (byte) main::i#4) ← (byte) main::j#2 [ main::i#4 main::j#2 ] ( main:0 [ main::i#4 main::j#2 ] ) -- cowo1_derefidx_xby=aby
sta SCREEN,x
//SEG19 [5] (byte) main::j#1 ← ++ (byte) main::j#2 [ main::i#4 main::j#1 ] ( main:0 [ main::i#4 main::j#1 ] ) -- aby=_inc_aby
clc
@ -1487,7 +1487,7 @@ main: {
//SEG34 asm { eor#$55tax }
eor #$55
tax
//SEG35 [12] *((const byte*) SCREEN#0 + (byte) main::k#4) ← (byte) main::l#2 [ main::k#4 main::l#2 ] ( main:0 [ main::k#4 main::l#2 ] ) -- cowo1_staridx_yby=zpby1
//SEG35 [12] *((const byte*) SCREEN#0 + (byte) main::k#4) ← (byte) main::l#2 [ main::k#4 main::l#2 ] ( main:0 [ main::k#4 main::l#2 ] ) -- cowo1_derefidx_yby=zpby1
lda l
sta SCREEN,y
//SEG36 [13] (byte) main::l#1 ← ++ (byte) main::l#2 [ main::k#4 main::l#1 ] ( main:0 [ main::k#4 main::l#1 ] ) -- zpby1=_inc_zpby1
@ -1557,7 +1557,7 @@ main: {
//SEG16 [3] phi (byte) main::j#2 = (byte) main::j#1 [phi:main::@2->main::@2#0] -- register_copy
//SEG17 main::@2
b2:
//SEG18 [4] *((const byte*) SCREEN#0 + (byte) main::i#4) ← (byte) main::j#2 [ main::i#4 main::j#2 ] ( main:0 [ main::i#4 main::j#2 ] ) -- cowo1_staridx_xby=aby
//SEG18 [4] *((const byte*) SCREEN#0 + (byte) main::i#4) ← (byte) main::j#2 [ main::i#4 main::j#2 ] ( main:0 [ main::i#4 main::j#2 ] ) -- cowo1_derefidx_xby=aby
sta SCREEN,x
//SEG19 [5] (byte) main::j#1 ← ++ (byte) main::j#2 [ main::i#4 main::j#1 ] ( main:0 [ main::i#4 main::j#1 ] ) -- aby=_inc_aby
clc
@ -1593,7 +1593,7 @@ main: {
//SEG34 asm { eor#$55tax }
eor #$55
tax
//SEG35 [12] *((const byte*) SCREEN#0 + (byte) main::k#4) ← (byte) main::l#2 [ main::k#4 main::l#2 ] ( main:0 [ main::k#4 main::l#2 ] ) -- cowo1_staridx_yby=zpby1
//SEG35 [12] *((const byte*) SCREEN#0 + (byte) main::k#4) ← (byte) main::l#2 [ main::k#4 main::l#2 ] ( main:0 [ main::k#4 main::l#2 ] ) -- cowo1_derefidx_yby=zpby1
lda l
sta SCREEN,y
//SEG36 [13] (byte) main::l#1 ← ++ (byte) main::l#2 [ main::k#4 main::l#1 ] ( main:0 [ main::k#4 main::l#1 ] ) -- zpby1=_inc_zpby1
@ -1655,7 +1655,7 @@ main: {
//SEG16 [3] phi (byte) main::j#2 = (byte) main::j#1 [phi:main::@2->main::@2#0] -- register_copy
//SEG17 main::@2
b2:
//SEG18 [4] *((const byte*) SCREEN#0 + (byte) main::i#4) ← (byte) main::j#2 [ main::i#4 main::j#2 ] ( main:0 [ main::i#4 main::j#2 ] ) -- cowo1_staridx_xby=aby
//SEG18 [4] *((const byte*) SCREEN#0 + (byte) main::i#4) ← (byte) main::j#2 [ main::i#4 main::j#2 ] ( main:0 [ main::i#4 main::j#2 ] ) -- cowo1_derefidx_xby=aby
sta SCREEN,x
//SEG19 [5] (byte) main::j#1 ← ++ (byte) main::j#2 [ main::i#4 main::j#1 ] ( main:0 [ main::i#4 main::j#1 ] ) -- aby=_inc_aby
clc
@ -1689,7 +1689,7 @@ main: {
//SEG34 asm { eor#$55tax }
eor #$55
tax
//SEG35 [12] *((const byte*) SCREEN#0 + (byte) main::k#4) ← (byte) main::l#2 [ main::k#4 main::l#2 ] ( main:0 [ main::k#4 main::l#2 ] ) -- cowo1_staridx_yby=zpby1
//SEG35 [12] *((const byte*) SCREEN#0 + (byte) main::k#4) ← (byte) main::l#2 [ main::k#4 main::l#2 ] ( main:0 [ main::k#4 main::l#2 ] ) -- cowo1_derefidx_yby=zpby1
lda l
sta SCREEN,y
//SEG36 [13] (byte) main::l#1 ← ++ (byte) main::l#2 [ main::k#4 main::l#1 ] ( main:0 [ main::k#4 main::l#1 ] ) -- zpby1=_inc_zpby1
@ -1744,7 +1744,7 @@ main: {
//SEG16 [3] phi (byte) main::j#2 = (byte) main::j#1 [phi:main::@2->main::@2#0] -- register_copy
//SEG17 main::@2
b2:
//SEG18 [4] *((const byte*) SCREEN#0 + (byte) main::i#4) ← (byte) main::j#2 [ main::i#4 main::j#2 ] ( main:0 [ main::i#4 main::j#2 ] ) -- cowo1_staridx_xby=aby
//SEG18 [4] *((const byte*) SCREEN#0 + (byte) main::i#4) ← (byte) main::j#2 [ main::i#4 main::j#2 ] ( main:0 [ main::i#4 main::j#2 ] ) -- cowo1_derefidx_xby=aby
sta SCREEN,x
//SEG19 [5] (byte) main::j#1 ← ++ (byte) main::j#2 [ main::i#4 main::j#1 ] ( main:0 [ main::i#4 main::j#1 ] ) -- aby=_inc_aby
clc
@ -1776,7 +1776,7 @@ main: {
//SEG34 asm { eor#$55tax }
eor #$55
tax
//SEG35 [12] *((const byte*) SCREEN#0 + (byte) main::k#4) ← (byte) main::l#2 [ main::k#4 main::l#2 ] ( main:0 [ main::k#4 main::l#2 ] ) -- cowo1_staridx_yby=zpby1
//SEG35 [12] *((const byte*) SCREEN#0 + (byte) main::k#4) ← (byte) main::l#2 [ main::k#4 main::l#2 ] ( main:0 [ main::k#4 main::l#2 ] ) -- cowo1_derefidx_yby=zpby1
lda l
sta SCREEN,y
//SEG36 [13] (byte) main::l#1 ← ++ (byte) main::l#2 [ main::k#4 main::l#1 ] ( main:0 [ main::k#4 main::l#1 ] ) -- zpby1=_inc_zpby1
@ -1858,7 +1858,7 @@ main: {
//SEG16 [3] phi (byte) main::j#2 = (byte) main::j#1 [phi:main::@2->main::@2#0] -- register_copy
//SEG17 main::@2
b2:
//SEG18 [4] *((const byte*) SCREEN#0 + (byte) main::i#4) ← (byte) main::j#2 [ main::i#4 main::j#2 ] ( main:0 [ main::i#4 main::j#2 ] ) -- cowo1_staridx_xby=aby
//SEG18 [4] *((const byte*) SCREEN#0 + (byte) main::i#4) ← (byte) main::j#2 [ main::i#4 main::j#2 ] ( main:0 [ main::i#4 main::j#2 ] ) -- cowo1_derefidx_xby=aby
sta SCREEN,x
//SEG19 [5] (byte) main::j#1 ← ++ (byte) main::j#2 [ main::i#4 main::j#1 ] ( main:0 [ main::i#4 main::j#1 ] ) -- aby=_inc_aby
clc
@ -1890,7 +1890,7 @@ main: {
//SEG34 asm { eor#$55tax }
eor #$55
tax
//SEG35 [12] *((const byte*) SCREEN#0 + (byte) main::k#4) ← (byte) main::l#2 [ main::k#4 main::l#2 ] ( main:0 [ main::k#4 main::l#2 ] ) -- cowo1_staridx_yby=zpby1
//SEG35 [12] *((const byte*) SCREEN#0 + (byte) main::k#4) ← (byte) main::l#2 [ main::k#4 main::l#2 ] ( main:0 [ main::k#4 main::l#2 ] ) -- cowo1_derefidx_yby=zpby1
lda l
sta SCREEN,y
//SEG36 [13] (byte) main::l#1 ← ++ (byte) main::l#2 [ main::k#4 main::l#1 ] ( main:0 [ main::k#4 main::l#1 ] ) -- zpby1=_inc_zpby1

File diff suppressed because it is too large Load Diff

View File

@ -1613,7 +1613,7 @@ main: {
jmp b1
//SEG18 main::@1
b1:
//SEG19 [3] *((byte*) main::cursor#3) ← (const byte) STAR#0 [ main::cursor#3 main::x#2 main::e#3 main::y#2 ] ( main:0 [ main::cursor#3 main::x#2 main::e#3 main::y#2 ] ) -- _star_zpptrby1=coby1
//SEG19 [3] *((byte*) main::cursor#3) ← (const byte) STAR#0 [ main::cursor#3 main::x#2 main::e#3 main::y#2 ] ( main:0 [ main::cursor#3 main::x#2 main::e#3 main::y#2 ] ) -- _deref_zpptrby1=coby1
ldy #0
lda #STAR
sta (cursor),y
@ -1760,7 +1760,7 @@ main: {
//SEG17 [2] phi (byte*) main::cursor#3 = (byte*) main::cursor#5 [phi:main::@2->main::@1#3] -- register_copy
//SEG18 main::@1
b1:
//SEG19 [3] *((byte*) main::cursor#3) ← (const byte) STAR#0 [ main::cursor#3 main::x#2 main::e#3 main::y#2 ] ( main:0 [ main::cursor#3 main::x#2 main::e#3 main::y#2 ] ) -- _star_zpptrby1=coby1
//SEG19 [3] *((byte*) main::cursor#3) ← (const byte) STAR#0 [ main::cursor#3 main::x#2 main::e#3 main::y#2 ] ( main:0 [ main::cursor#3 main::x#2 main::e#3 main::y#2 ] ) -- _deref_zpptrby1=coby1
ldy #0
lda #STAR
sta (cursor),y
@ -1869,7 +1869,7 @@ main: {
//SEG17 [2] phi (byte*) main::cursor#3 = (byte*) main::cursor#5 [phi:main::@2->main::@1#3] -- register_copy
//SEG18 main::@1
b1:
//SEG19 [3] *((byte*) main::cursor#3) ← (const byte) STAR#0 [ main::cursor#3 main::x#2 main::e#3 main::y#2 ] ( main:0 [ main::cursor#3 main::x#2 main::e#3 main::y#2 ] ) -- _star_zpptrby1=coby1
//SEG19 [3] *((byte*) main::cursor#3) ← (const byte) STAR#0 [ main::cursor#3 main::x#2 main::e#3 main::y#2 ] ( main:0 [ main::cursor#3 main::x#2 main::e#3 main::y#2 ] ) -- _deref_zpptrby1=coby1
ldy #0
lda #STAR
sta (cursor),y
@ -1971,7 +1971,7 @@ main: {
//SEG17 [2] phi (byte*) main::cursor#3 = (byte*) main::cursor#5 [phi:main::@2->main::@1#3] -- register_copy
//SEG18 main::@1
b1:
//SEG19 [3] *((byte*) main::cursor#3) ← (const byte) STAR#0 [ main::cursor#3 main::x#2 main::e#3 main::y#2 ] ( main:0 [ main::cursor#3 main::x#2 main::e#3 main::y#2 ] ) -- _star_zpptrby1=coby1
//SEG19 [3] *((byte*) main::cursor#3) ← (const byte) STAR#0 [ main::cursor#3 main::x#2 main::e#3 main::y#2 ] ( main:0 [ main::cursor#3 main::x#2 main::e#3 main::y#2 ] ) -- _deref_zpptrby1=coby1
ldy #0
lda #STAR
sta (cursor),y
@ -2066,7 +2066,7 @@ main: {
//SEG17 [2] phi (byte*) main::cursor#3 = (byte*) main::cursor#5 [phi:main::@2->main::@1#3] -- register_copy
//SEG18 main::@1
b1:
//SEG19 [3] *((byte*) main::cursor#3) ← (const byte) STAR#0 [ main::cursor#3 main::x#2 main::e#3 main::y#2 ] ( main:0 [ main::cursor#3 main::x#2 main::e#3 main::y#2 ] ) -- _star_zpptrby1=coby1
//SEG19 [3] *((byte*) main::cursor#3) ← (const byte) STAR#0 [ main::cursor#3 main::x#2 main::e#3 main::y#2 ] ( main:0 [ main::cursor#3 main::x#2 main::e#3 main::y#2 ] ) -- _deref_zpptrby1=coby1
ldy #0
lda #STAR
sta (cursor),y
@ -2205,7 +2205,7 @@ main: {
//SEG17 [2] phi (byte*) main::cursor#3 = (byte*) main::cursor#5 [phi:main::@2->main::@1#3] -- register_copy
//SEG18 main::@1
b1:
//SEG19 [3] *((byte*) main::cursor#3) ← (const byte) STAR#0 [ main::cursor#3 main::x#2 main::e#3 main::y#2 ] ( main:0 [ main::cursor#3 main::x#2 main::e#3 main::y#2 ] ) -- _star_zpptrby1=coby1
//SEG19 [3] *((byte*) main::cursor#3) ← (const byte) STAR#0 [ main::cursor#3 main::x#2 main::e#3 main::y#2 ] ( main:0 [ main::cursor#3 main::x#2 main::e#3 main::y#2 ] ) -- _deref_zpptrby1=coby1
ldy #0
lda #STAR
sta (cursor),y

View File

@ -1558,7 +1558,7 @@ main: {
jmp b1
//SEG18 main::@1
b1:
//SEG19 [3] *((const byte[1000]) main::screen#0 + (word) main::idx#3) ← (const byte) main::STAR#0 [ main::idx#3 main::x#2 main::e#3 main::y#2 ] ( main:0 [ main::idx#3 main::x#2 main::e#3 main::y#2 ] ) -- cowo1_staridx_zpwo1=coby2
//SEG19 [3] *((const byte[1000]) main::screen#0 + (word) main::idx#3) ← (const byte) main::STAR#0 [ main::idx#3 main::x#2 main::e#3 main::y#2 ] ( main:0 [ main::idx#3 main::x#2 main::e#3 main::y#2 ] ) -- cowo1_derefidx_zpwo1=coby2
lda #<screen
clc
adc idx
@ -1704,7 +1704,7 @@ main: {
//SEG17 [2] phi (word) main::idx#3 = (word) main::idx#5 [phi:main::@2->main::@1#3] -- register_copy
//SEG18 main::@1
b1:
//SEG19 [3] *((const byte[1000]) main::screen#0 + (word) main::idx#3) ← (const byte) main::STAR#0 [ main::idx#3 main::x#2 main::e#3 main::y#2 ] ( main:0 [ main::idx#3 main::x#2 main::e#3 main::y#2 ] ) -- cowo1_staridx_zpwo1=coby2
//SEG19 [3] *((const byte[1000]) main::screen#0 + (word) main::idx#3) ← (const byte) main::STAR#0 [ main::idx#3 main::x#2 main::e#3 main::y#2 ] ( main:0 [ main::idx#3 main::x#2 main::e#3 main::y#2 ] ) -- cowo1_derefidx_zpwo1=coby2
lda #<screen
clc
adc idx
@ -1818,7 +1818,7 @@ main: {
//SEG17 [2] phi (word) main::idx#3 = (word) main::idx#5 [phi:main::@2->main::@1#3] -- register_copy
//SEG18 main::@1
b1:
//SEG19 [3] *((const byte[1000]) main::screen#0 + (word) main::idx#3) ← (const byte) main::STAR#0 [ main::idx#3 main::x#2 main::e#3 main::y#2 ] ( main:0 [ main::idx#3 main::x#2 main::e#3 main::y#2 ] ) -- cowo1_staridx_zpwo1=coby2
//SEG19 [3] *((const byte[1000]) main::screen#0 + (word) main::idx#3) ← (const byte) main::STAR#0 [ main::idx#3 main::x#2 main::e#3 main::y#2 ] ( main:0 [ main::idx#3 main::x#2 main::e#3 main::y#2 ] ) -- cowo1_derefidx_zpwo1=coby2
lda #<screen
clc
adc idx
@ -1925,7 +1925,7 @@ main: {
//SEG17 [2] phi (word) main::idx#3 = (word) main::idx#5 [phi:main::@2->main::@1#3] -- register_copy
//SEG18 main::@1
b1:
//SEG19 [3] *((const byte[1000]) main::screen#0 + (word) main::idx#3) ← (const byte) main::STAR#0 [ main::idx#3 main::x#2 main::e#3 main::y#2 ] ( main:0 [ main::idx#3 main::x#2 main::e#3 main::y#2 ] ) -- cowo1_staridx_zpwo1=coby2
//SEG19 [3] *((const byte[1000]) main::screen#0 + (word) main::idx#3) ← (const byte) main::STAR#0 [ main::idx#3 main::x#2 main::e#3 main::y#2 ] ( main:0 [ main::idx#3 main::x#2 main::e#3 main::y#2 ] ) -- cowo1_derefidx_zpwo1=coby2
lda #<screen
clc
adc idx
@ -2025,7 +2025,7 @@ main: {
//SEG17 [2] phi (word) main::idx#3 = (word) main::idx#5 [phi:main::@2->main::@1#3] -- register_copy
//SEG18 main::@1
b1:
//SEG19 [3] *((const byte[1000]) main::screen#0 + (word) main::idx#3) ← (const byte) main::STAR#0 [ main::idx#3 main::x#2 main::e#3 main::y#2 ] ( main:0 [ main::idx#3 main::x#2 main::e#3 main::y#2 ] ) -- cowo1_staridx_zpwo1=coby2
//SEG19 [3] *((const byte[1000]) main::screen#0 + (word) main::idx#3) ← (const byte) main::STAR#0 [ main::idx#3 main::x#2 main::e#3 main::y#2 ] ( main:0 [ main::idx#3 main::x#2 main::e#3 main::y#2 ] ) -- cowo1_derefidx_zpwo1=coby2
lda #<screen
clc
adc idx
@ -2169,7 +2169,7 @@ main: {
//SEG17 [2] phi (word) main::idx#3 = (word) main::idx#5 [phi:main::@2->main::@1#3] -- register_copy
//SEG18 main::@1
b1:
//SEG19 [3] *((const byte[1000]) main::screen#0 + (word) main::idx#3) ← (const byte) main::STAR#0 [ main::idx#3 main::x#2 main::e#3 main::y#2 ] ( main:0 [ main::idx#3 main::x#2 main::e#3 main::y#2 ] ) -- cowo1_staridx_zpwo1=coby2
//SEG19 [3] *((const byte[1000]) main::screen#0 + (word) main::idx#3) ← (const byte) main::STAR#0 [ main::idx#3 main::x#2 main::e#3 main::y#2 ] ( main:0 [ main::idx#3 main::x#2 main::e#3 main::y#2 ] ) -- cowo1_derefidx_zpwo1=coby2
lda #<screen
clc
adc idx

View File

@ -956,7 +956,7 @@ line: {
jmp b1
//SEG25 line::@1
b1:
//SEG26 [7] *((byte*) screen#10) ← (byte) line::x#2 [ line::x1#3 line::x#2 screen#10 ] ( main:0::line:2 [ line::x1#3 line::x#2 screen#10 ] main:0::line:3 [ line::x1#3 line::x#2 screen#10 ] ) -- _star_zpptrby1=zpby1
//SEG26 [7] *((byte*) screen#10) ← (byte) line::x#2 [ line::x1#3 line::x#2 screen#10 ] ( main:0::line:2 [ line::x1#3 line::x#2 screen#10 ] main:0::line:3 [ line::x1#3 line::x#2 screen#10 ] ) -- _deref_zpptrby1=zpby1
ldy #0
lda x
sta (screen),y
@ -1065,7 +1065,7 @@ line: {
//SEG24 [6] phi (byte) line::x#2 = (byte) line::x#0 [phi:line/line::@1->line::@1#1] -- register_copy
//SEG25 line::@1
b1:
//SEG26 [7] *((byte*) screen#10) ← (byte) line::x#2 [ line::x1#3 line::x#2 screen#10 ] ( main:0::line:2 [ line::x1#3 line::x#2 screen#10 ] main:0::line:3 [ line::x1#3 line::x#2 screen#10 ] ) -- _star_zpptrby1=xby
//SEG26 [7] *((byte*) screen#10) ← (byte) line::x#2 [ line::x1#3 line::x#2 screen#10 ] ( main:0::line:2 [ line::x1#3 line::x#2 screen#10 ] main:0::line:3 [ line::x1#3 line::x#2 screen#10 ] ) -- _deref_zpptrby1=xby
txa
ldy #0
sta (screen),y
@ -1147,7 +1147,7 @@ line: {
//SEG24 [6] phi (byte) line::x#2 = (byte) line::x#0 [phi:line/line::@1->line::@1#1] -- register_copy
//SEG25 line::@1
b1:
//SEG26 [7] *((byte*) screen#10) ← (byte) line::x#2 [ line::x1#3 line::x#2 screen#10 ] ( main:0::line:2 [ line::x1#3 line::x#2 screen#10 ] main:0::line:3 [ line::x1#3 line::x#2 screen#10 ] ) -- _star_zpptrby1=xby
//SEG26 [7] *((byte*) screen#10) ← (byte) line::x#2 [ line::x1#3 line::x#2 screen#10 ] ( main:0::line:2 [ line::x1#3 line::x#2 screen#10 ] main:0::line:3 [ line::x1#3 line::x#2 screen#10 ] ) -- _deref_zpptrby1=xby
txa
ldy #0
sta (screen),y
@ -1224,7 +1224,7 @@ line: {
//SEG24 [6] phi (byte) line::x#2 = (byte) line::x#0 [phi:line/line::@1->line::@1#1] -- register_copy
//SEG25 line::@1
b1:
//SEG26 [7] *((byte*) screen#10) ← (byte) line::x#2 [ line::x1#3 line::x#2 screen#10 ] ( main:0::line:2 [ line::x1#3 line::x#2 screen#10 ] main:0::line:3 [ line::x1#3 line::x#2 screen#10 ] ) -- _star_zpptrby1=xby
//SEG26 [7] *((byte*) screen#10) ← (byte) line::x#2 [ line::x1#3 line::x#2 screen#10 ] ( main:0::line:2 [ line::x1#3 line::x#2 screen#10 ] main:0::line:3 [ line::x1#3 line::x#2 screen#10 ] ) -- _deref_zpptrby1=xby
txa
ldy #0
sta (screen),y
@ -1319,7 +1319,7 @@ line: {
//SEG24 [6] phi (byte) line::x#2 = (byte) line::x#0 [phi:line/line::@1->line::@1#1] -- register_copy
//SEG25 line::@1
b1:
//SEG26 [7] *((byte*) screen#10) ← (byte) line::x#2 [ line::x1#3 line::x#2 screen#10 ] ( main:0::line:2 [ line::x1#3 line::x#2 screen#10 ] main:0::line:3 [ line::x1#3 line::x#2 screen#10 ] ) -- _star_zpptrby1=xby
//SEG26 [7] *((byte*) screen#10) ← (byte) line::x#2 [ line::x1#3 line::x#2 screen#10 ] ( main:0::line:2 [ line::x1#3 line::x#2 screen#10 ] main:0::line:3 [ line::x1#3 line::x#2 screen#10 ] ) -- _deref_zpptrby1=xby
txa
ldy #0
sta (screen),y

View File

@ -1695,7 +1695,7 @@ main: {
.label c = 7
//SEG7 asm { sei }
sei
//SEG8 [2] *((const byte*) PROCPORT#0) ← (byte) 50 [ ] ( main:0 [ ] ) -- _star_cowo1=coby2
//SEG8 [2] *((const byte*) PROCPORT#0) ← (byte) 50 [ ] ( main:0 [ ] ) -- _deref_cowo1=coby2
lda #$32
sta PROCPORT
//SEG9 [3] phi from main to main::@1 [phi:main->main::@1]
@ -1716,7 +1716,7 @@ main: {
jmp b1
//SEG15 main::@1
b1:
//SEG16 [4] (byte) main::bits#0 ← (const byte*) main::CHAR_A#0 *idx (byte) main::y#2 [ main::y#2 main::sc#7 main::bits#0 ] ( main:0 [ main::y#2 main::sc#7 main::bits#0 ] ) -- zpby1=cowo1_staridx_zpby2
//SEG16 [4] (byte) main::bits#0 ← (const byte*) main::CHAR_A#0 *idx (byte) main::y#2 [ main::y#2 main::sc#7 main::bits#0 ] ( main:0 [ main::y#2 main::sc#7 main::bits#0 ] ) -- zpby1=cowo1_derefidx_zpby2
ldx y
lda CHAR_A,x
sta bits
@ -1760,7 +1760,7 @@ main: {
jmp b3
//SEG33 main::@3
b3:
//SEG34 [9] *((byte*) main::sc#3) ← (byte) main::c#2 [ main::y#2 main::bits#2 main::sc#3 main::x#2 ] ( main:0 [ main::y#2 main::bits#2 main::sc#3 main::x#2 ] ) -- _star_zpptrby1=zpby1
//SEG34 [9] *((byte*) main::sc#3) ← (byte) main::c#2 [ main::y#2 main::bits#2 main::sc#3 main::x#2 ] ( main:0 [ main::y#2 main::bits#2 main::sc#3 main::x#2 ] ) -- _deref_zpptrby1=zpby1
ldy #0
lda c
sta (sc),y
@ -1797,7 +1797,7 @@ main: {
jmp b6
//SEG43 main::@6
b6:
//SEG44 [17] *((const byte*) PROCPORT#0) ← (byte) 55 [ ] ( main:0 [ ] ) -- _star_cowo1=coby2
//SEG44 [17] *((const byte*) PROCPORT#0) ← (byte) 55 [ ] ( main:0 [ ] ) -- _deref_cowo1=coby2
lda #$37
sta PROCPORT
//SEG45 asm { cli }
@ -1879,7 +1879,7 @@ main: {
.label y = 2
//SEG7 asm { sei }
sei
//SEG8 [2] *((const byte*) PROCPORT#0) ← (byte) 50 [ ] ( main:0 [ ] ) -- _star_cowo1=coby2
//SEG8 [2] *((const byte*) PROCPORT#0) ← (byte) 50 [ ] ( main:0 [ ] ) -- _deref_cowo1=coby2
lda #$32
sta PROCPORT
//SEG9 [3] phi from main to main::@1 [phi:main->main::@1]
@ -1899,7 +1899,7 @@ main: {
//SEG14 [3] phi (byte) main::y#2 = (byte) main::y#1 [phi:main::@5->main::@1#1] -- register_copy
//SEG15 main::@1
b1:
//SEG16 [4] (byte) main::bits#0 ← (const byte*) main::CHAR_A#0 *idx (byte) main::y#2 [ main::y#2 main::sc#7 main::bits#0 ] ( main:0 [ main::y#2 main::sc#7 main::bits#0 ] ) -- zpby1=cowo1_staridx_zpby2
//SEG16 [4] (byte) main::bits#0 ← (const byte*) main::CHAR_A#0 *idx (byte) main::y#2 [ main::y#2 main::sc#7 main::bits#0 ] ( main:0 [ main::y#2 main::sc#7 main::bits#0 ] ) -- zpby1=cowo1_derefidx_zpby2
ldx y
lda CHAR_A,x
sta bits
@ -1936,7 +1936,7 @@ main: {
lda #'.'
//SEG33 main::@3
b3:
//SEG34 [9] *((byte*) main::sc#3) ← (byte) main::c#2 [ main::y#2 main::bits#2 main::sc#3 main::x#2 ] ( main:0 [ main::y#2 main::bits#2 main::sc#3 main::x#2 ] ) -- _star_zpptrby1=aby
//SEG34 [9] *((byte*) main::sc#3) ← (byte) main::c#2 [ main::y#2 main::bits#2 main::sc#3 main::x#2 ] ( main:0 [ main::y#2 main::bits#2 main::sc#3 main::x#2 ] ) -- _deref_zpptrby1=aby
ldy #0
sta (sc),y
//SEG35 [10] (byte*) main::sc#1 ← ++ (byte*) main::sc#3 [ main::y#2 main::bits#2 main::x#2 main::sc#1 ] ( main:0 [ main::y#2 main::bits#2 main::x#2 main::sc#1 ] ) -- zpptrby1=_inc_zpptrby1
@ -1969,7 +1969,7 @@ main: {
bne b1_from_b5
//SEG43 main::@6
b6:
//SEG44 [17] *((const byte*) PROCPORT#0) ← (byte) 55 [ ] ( main:0 [ ] ) -- _star_cowo1=coby2
//SEG44 [17] *((const byte*) PROCPORT#0) ← (byte) 55 [ ] ( main:0 [ ] ) -- _deref_cowo1=coby2
lda #$37
sta PROCPORT
//SEG45 asm { cli }
@ -2011,7 +2011,7 @@ main: {
.label y = 2
//SEG7 asm { sei }
sei
//SEG8 [2] *((const byte*) PROCPORT#0) ← (byte) 50 [ ] ( main:0 [ ] ) -- _star_cowo1=coby2
//SEG8 [2] *((const byte*) PROCPORT#0) ← (byte) 50 [ ] ( main:0 [ ] ) -- _deref_cowo1=coby2
lda #$32
sta PROCPORT
//SEG9 [3] phi from main to main::@1 [phi:main->main::@1]
@ -2030,7 +2030,7 @@ main: {
//SEG14 [3] phi (byte) main::y#2 = (byte) main::y#1 [phi:main::@5->main::@1#1] -- register_copy
//SEG15 main::@1
b1:
//SEG16 [4] (byte) main::bits#0 ← (const byte*) main::CHAR_A#0 *idx (byte) main::y#2 [ main::y#2 main::sc#7 main::bits#0 ] ( main:0 [ main::y#2 main::sc#7 main::bits#0 ] ) -- zpby1=cowo1_staridx_zpby2
//SEG16 [4] (byte) main::bits#0 ← (const byte*) main::CHAR_A#0 *idx (byte) main::y#2 [ main::y#2 main::sc#7 main::bits#0 ] ( main:0 [ main::y#2 main::sc#7 main::bits#0 ] ) -- zpby1=cowo1_derefidx_zpby2
ldx y
lda CHAR_A,x
sta bits
@ -2065,7 +2065,7 @@ main: {
lda #'.'
//SEG33 main::@3
b3:
//SEG34 [9] *((byte*) main::sc#3) ← (byte) main::c#2 [ main::y#2 main::bits#2 main::sc#3 main::x#2 ] ( main:0 [ main::y#2 main::bits#2 main::sc#3 main::x#2 ] ) -- _star_zpptrby1=aby
//SEG34 [9] *((byte*) main::sc#3) ← (byte) main::c#2 [ main::y#2 main::bits#2 main::sc#3 main::x#2 ] ( main:0 [ main::y#2 main::bits#2 main::sc#3 main::x#2 ] ) -- _deref_zpptrby1=aby
ldy #0
sta (sc),y
//SEG35 [10] (byte*) main::sc#1 ← ++ (byte*) main::sc#3 [ main::y#2 main::bits#2 main::x#2 main::sc#1 ] ( main:0 [ main::y#2 main::bits#2 main::x#2 main::sc#1 ] ) -- zpptrby1=_inc_zpptrby1
@ -2098,7 +2098,7 @@ main: {
bne b1
//SEG43 main::@6
b6:
//SEG44 [17] *((const byte*) PROCPORT#0) ← (byte) 55 [ ] ( main:0 [ ] ) -- _star_cowo1=coby2
//SEG44 [17] *((const byte*) PROCPORT#0) ← (byte) 55 [ ] ( main:0 [ ] ) -- _deref_cowo1=coby2
lda #$37
sta PROCPORT
//SEG45 asm { cli }
@ -2140,7 +2140,7 @@ main: {
.label y = 2
//SEG7 asm { sei }
sei
//SEG8 [2] *((const byte*) PROCPORT#0) ← (byte) 50 [ ] ( main:0 [ ] ) -- _star_cowo1=coby2
//SEG8 [2] *((const byte*) PROCPORT#0) ← (byte) 50 [ ] ( main:0 [ ] ) -- _deref_cowo1=coby2
lda #$32
sta PROCPORT
//SEG9 [3] phi from main to main::@1 [phi:main->main::@1]
@ -2158,7 +2158,7 @@ main: {
//SEG14 [3] phi (byte) main::y#2 = (byte) main::y#1 [phi:main::@5->main::@1#1] -- register_copy
//SEG15 main::@1
b1:
//SEG16 [4] (byte) main::bits#0 ← (const byte*) main::CHAR_A#0 *idx (byte) main::y#2 [ main::y#2 main::sc#7 main::bits#0 ] ( main:0 [ main::y#2 main::sc#7 main::bits#0 ] ) -- zpby1=cowo1_staridx_zpby2
//SEG16 [4] (byte) main::bits#0 ← (const byte*) main::CHAR_A#0 *idx (byte) main::y#2 [ main::y#2 main::sc#7 main::bits#0 ] ( main:0 [ main::y#2 main::sc#7 main::bits#0 ] ) -- zpby1=cowo1_derefidx_zpby2
ldx y
lda CHAR_A,x
sta bits
@ -2191,7 +2191,7 @@ main: {
lda #'.'
//SEG33 main::@3
b3:
//SEG34 [9] *((byte*) main::sc#3) ← (byte) main::c#2 [ main::y#2 main::bits#2 main::sc#3 main::x#2 ] ( main:0 [ main::y#2 main::bits#2 main::sc#3 main::x#2 ] ) -- _star_zpptrby1=aby
//SEG34 [9] *((byte*) main::sc#3) ← (byte) main::c#2 [ main::y#2 main::bits#2 main::sc#3 main::x#2 ] ( main:0 [ main::y#2 main::bits#2 main::sc#3 main::x#2 ] ) -- _deref_zpptrby1=aby
ldy #0
sta (sc),y
//SEG35 [10] (byte*) main::sc#1 ← ++ (byte*) main::sc#3 [ main::y#2 main::bits#2 main::x#2 main::sc#1 ] ( main:0 [ main::y#2 main::bits#2 main::x#2 main::sc#1 ] ) -- zpptrby1=_inc_zpptrby1
@ -2222,7 +2222,7 @@ main: {
cmp #8
bne b1
//SEG43 main::@6
//SEG44 [17] *((const byte*) PROCPORT#0) ← (byte) 55 [ ] ( main:0 [ ] ) -- _star_cowo1=coby2
//SEG44 [17] *((const byte*) PROCPORT#0) ← (byte) 55 [ ] ( main:0 [ ] ) -- _deref_cowo1=coby2
lda #$37
sta PROCPORT
//SEG45 asm { cli }
@ -2257,7 +2257,7 @@ main: {
.label y = 2
//SEG7 asm { sei }
sei
//SEG8 [2] *((const byte*) PROCPORT#0) ← (byte) 50 [ ] ( main:0 [ ] ) -- _star_cowo1=coby2
//SEG8 [2] *((const byte*) PROCPORT#0) ← (byte) 50 [ ] ( main:0 [ ] ) -- _deref_cowo1=coby2
lda #$32
sta PROCPORT
//SEG9 [3] phi from main to main::@1 [phi:main->main::@1]
@ -2274,7 +2274,7 @@ main: {
//SEG14 [3] phi (byte) main::y#2 = (byte) main::y#1 [phi:main::@5->main::@1#1] -- register_copy
//SEG15 main::@1
b1:
//SEG16 [4] (byte) main::bits#0 ← (const byte*) main::CHAR_A#0 *idx (byte) main::y#2 [ main::y#2 main::sc#7 main::bits#0 ] ( main:0 [ main::y#2 main::sc#7 main::bits#0 ] ) -- zpby1=cowo1_staridx_zpby2
//SEG16 [4] (byte) main::bits#0 ← (const byte*) main::CHAR_A#0 *idx (byte) main::y#2 [ main::y#2 main::sc#7 main::bits#0 ] ( main:0 [ main::y#2 main::sc#7 main::bits#0 ] ) -- zpby1=cowo1_derefidx_zpby2
ldx y
lda CHAR_A,x
sta bits
@ -2306,7 +2306,7 @@ main: {
lda #'.'
//SEG33 main::@3
b3:
//SEG34 [9] *((byte*) main::sc#3) ← (byte) main::c#2 [ main::y#2 main::bits#2 main::sc#3 main::x#2 ] ( main:0 [ main::y#2 main::bits#2 main::sc#3 main::x#2 ] ) -- _star_zpptrby1=aby
//SEG34 [9] *((byte*) main::sc#3) ← (byte) main::c#2 [ main::y#2 main::bits#2 main::sc#3 main::x#2 ] ( main:0 [ main::y#2 main::bits#2 main::sc#3 main::x#2 ] ) -- _deref_zpptrby1=aby
ldy #0
sta (sc),y
//SEG35 [10] (byte*) main::sc#1 ← ++ (byte*) main::sc#3 [ main::y#2 main::bits#2 main::x#2 main::sc#1 ] ( main:0 [ main::y#2 main::bits#2 main::x#2 main::sc#1 ] ) -- zpptrby1=_inc_zpptrby1
@ -2337,7 +2337,7 @@ main: {
cmp #8
bne b1
//SEG43 main::@6
//SEG44 [17] *((const byte*) PROCPORT#0) ← (byte) 55 [ ] ( main:0 [ ] ) -- _star_cowo1=coby2
//SEG44 [17] *((const byte*) PROCPORT#0) ← (byte) 55 [ ] ( main:0 [ ] ) -- _deref_cowo1=coby2
lda #$37
sta PROCPORT
//SEG45 asm { cli }
@ -2415,7 +2415,7 @@ main: {
.label y = 2
//SEG7 asm { sei }
sei
//SEG8 [2] *((const byte*) PROCPORT#0) ← (byte) 50 [ ] ( main:0 [ ] ) -- _star_cowo1=coby2
//SEG8 [2] *((const byte*) PROCPORT#0) ← (byte) 50 [ ] ( main:0 [ ] ) -- _deref_cowo1=coby2
lda #$32
sta PROCPORT
//SEG9 [3] phi from main to main::@1 [phi:main->main::@1]
@ -2432,7 +2432,7 @@ main: {
//SEG14 [3] phi (byte) main::y#2 = (byte) main::y#1 [phi:main::@5->main::@1#1] -- register_copy
//SEG15 main::@1
b1:
//SEG16 [4] (byte) main::bits#0 ← (const byte*) main::CHAR_A#0 *idx (byte) main::y#2 [ main::y#2 main::sc#7 main::bits#0 ] ( main:0 [ main::y#2 main::sc#7 main::bits#0 ] ) -- zpby1=cowo1_staridx_zpby2
//SEG16 [4] (byte) main::bits#0 ← (const byte*) main::CHAR_A#0 *idx (byte) main::y#2 [ main::y#2 main::sc#7 main::bits#0 ] ( main:0 [ main::y#2 main::sc#7 main::bits#0 ] ) -- zpby1=cowo1_derefidx_zpby2
ldx y
lda CHAR_A,x
sta bits
@ -2464,7 +2464,7 @@ main: {
lda #'.'
//SEG33 main::@3
b3:
//SEG34 [9] *((byte*) main::sc#3) ← (byte) main::c#2 [ main::y#2 main::bits#2 main::sc#3 main::x#2 ] ( main:0 [ main::y#2 main::bits#2 main::sc#3 main::x#2 ] ) -- _star_zpptrby1=aby
//SEG34 [9] *((byte*) main::sc#3) ← (byte) main::c#2 [ main::y#2 main::bits#2 main::sc#3 main::x#2 ] ( main:0 [ main::y#2 main::bits#2 main::sc#3 main::x#2 ] ) -- _deref_zpptrby1=aby
ldy #0
sta (sc),y
//SEG35 [10] (byte*) main::sc#1 ← ++ (byte*) main::sc#3 [ main::y#2 main::bits#2 main::x#2 main::sc#1 ] ( main:0 [ main::y#2 main::bits#2 main::x#2 main::sc#1 ] ) -- zpptrby1=_inc_zpptrby1
@ -2495,7 +2495,7 @@ main: {
cmp #8
bne b1
//SEG43 main::@6
//SEG44 [17] *((const byte*) PROCPORT#0) ← (byte) 55 [ ] ( main:0 [ ] ) -- _star_cowo1=coby2
//SEG44 [17] *((const byte*) PROCPORT#0) ← (byte) 55 [ ] ( main:0 [ ] ) -- _deref_cowo1=coby2
lda #$37
sta PROCPORT
//SEG45 asm { cli }

View File

@ -1841,11 +1841,11 @@ main: {
jmp b1
//SEG12 main::@1
b1:
//SEG13 [3] *((const byte[]) plots#0 + (byte) main::i#2) ← (byte) main::i#2 [ main::i#2 ] ( main:0 [ main::i#2 ] ) -- cowo1_staridx_zpby1=zpby1
//SEG13 [3] *((const byte[]) plots#0 + (byte) main::i#2) ← (byte) main::i#2 [ main::i#2 ] ( main:0 [ main::i#2 ] ) -- cowo1_derefidx_zpby1=zpby1
ldx i
txa
sta plots,x
//SEG14 [4] *((const byte*) SCREEN#0 + (byte) main::i#2) ← (byte) 0 [ main::i#2 ] ( main:0 [ main::i#2 ] ) -- cowo1_staridx_zpby1=coby2
//SEG14 [4] *((const byte*) SCREEN#0 + (byte) main::i#2) ← (byte) 0 [ main::i#2 ] ( main:0 [ main::i#2 ] ) -- cowo1_derefidx_zpby1=coby2
lda #0
ldx i
sta SCREEN,x
@ -1931,11 +1931,11 @@ plot: {
.label _2 = 7
.label x = 4
.label idx = 5
//SEG44 [19] (byte) plot::idx#0 ← (const byte[]) plots#0 *idx (byte) plot::x#2 [ plot::idx#0 ] ( main:0::line:7::plot:13 [ line::x#2 plot::idx#0 ] main:0::line:7::plot:17 [ plot::idx#0 ] ) -- zpby1=cowo1_staridx_zpby2
//SEG44 [19] (byte) plot::idx#0 ← (const byte[]) plots#0 *idx (byte) plot::x#2 [ plot::idx#0 ] ( main:0::line:7::plot:13 [ line::x#2 plot::idx#0 ] main:0::line:7::plot:17 [ plot::idx#0 ] ) -- zpby1=cowo1_derefidx_zpby2
ldx x
lda plots,x
sta idx
//SEG45 [20] (byte~) plot::$1 ← (const byte*) SCREEN#0 *idx (byte) plot::idx#0 [ plot::idx#0 plot::$1 ] ( main:0::line:7::plot:13 [ line::x#2 plot::idx#0 plot::$1 ] main:0::line:7::plot:17 [ plot::idx#0 plot::$1 ] ) -- zpby1=cowo1_staridx_zpby2
//SEG45 [20] (byte~) plot::$1 ← (const byte*) SCREEN#0 *idx (byte) plot::idx#0 [ plot::idx#0 plot::$1 ] ( main:0::line:7::plot:13 [ line::x#2 plot::idx#0 plot::$1 ] main:0::line:7::plot:17 [ plot::idx#0 plot::$1 ] ) -- zpby1=cowo1_derefidx_zpby2
ldx idx
lda SCREEN,x
sta _1
@ -1944,7 +1944,7 @@ plot: {
clc
adc #1
sta _2
//SEG47 [22] *((const byte*) SCREEN#0 + (byte) plot::idx#0) ← (byte~) plot::$2 [ ] ( main:0::line:7::plot:13 [ line::x#2 ] main:0::line:7::plot:17 [ ] ) -- cowo1_staridx_zpby1=zpby2
//SEG47 [22] *((const byte*) SCREEN#0 + (byte) plot::idx#0) ← (byte~) plot::$2 [ ] ( main:0::line:7::plot:13 [ line::x#2 ] main:0::line:7::plot:17 [ ] ) -- cowo1_derefidx_zpby1=zpby2
lda _2
ldx idx
sta SCREEN,x
@ -2024,10 +2024,10 @@ main: {
//SEG11 [2] phi (byte) main::i#2 = (byte) main::i#1 [phi:main::@1->main::@1#0] -- register_copy
//SEG12 main::@1
b1:
//SEG13 [3] *((const byte[]) plots#0 + (byte) main::i#2) ← (byte) main::i#2 [ main::i#2 ] ( main:0 [ main::i#2 ] ) -- cowo1_staridx_xby=xby
//SEG13 [3] *((const byte[]) plots#0 + (byte) main::i#2) ← (byte) main::i#2 [ main::i#2 ] ( main:0 [ main::i#2 ] ) -- cowo1_derefidx_xby=xby
txa
sta plots,x
//SEG14 [4] *((const byte*) SCREEN#0 + (byte) main::i#2) ← (byte) 0 [ main::i#2 ] ( main:0 [ main::i#2 ] ) -- cowo1_staridx_xby=coby2
//SEG14 [4] *((const byte*) SCREEN#0 + (byte) main::i#2) ← (byte) 0 [ main::i#2 ] ( main:0 [ main::i#2 ] ) -- cowo1_derefidx_xby=coby2
lda #0
sta SCREEN,x
//SEG15 [5] (byte) main::i#1 ← ++ (byte) main::i#2 [ main::i#1 ] ( main:0 [ main::i#1 ] ) -- xby=_inc_xby
@ -2099,14 +2099,14 @@ line: {
}
//SEG43 plot
plot: {
//SEG44 [19] (byte) plot::idx#0 ← (const byte[]) plots#0 *idx (byte) plot::x#2 [ plot::idx#0 ] ( main:0::line:7::plot:13 [ line::x#2 plot::idx#0 ] main:0::line:7::plot:17 [ plot::idx#0 ] ) -- xby=cowo1_staridx_yby
//SEG44 [19] (byte) plot::idx#0 ← (const byte[]) plots#0 *idx (byte) plot::x#2 [ plot::idx#0 ] ( main:0::line:7::plot:13 [ line::x#2 plot::idx#0 ] main:0::line:7::plot:17 [ plot::idx#0 ] ) -- xby=cowo1_derefidx_yby
ldx plots,y
//SEG45 [20] (byte~) plot::$1 ← (const byte*) SCREEN#0 *idx (byte) plot::idx#0 [ plot::idx#0 plot::$1 ] ( main:0::line:7::plot:13 [ line::x#2 plot::idx#0 plot::$1 ] main:0::line:7::plot:17 [ plot::idx#0 plot::$1 ] ) -- aby=cowo1_staridx_xby
//SEG45 [20] (byte~) plot::$1 ← (const byte*) SCREEN#0 *idx (byte) plot::idx#0 [ plot::idx#0 plot::$1 ] ( main:0::line:7::plot:13 [ line::x#2 plot::idx#0 plot::$1 ] main:0::line:7::plot:17 [ plot::idx#0 plot::$1 ] ) -- aby=cowo1_derefidx_xby
lda SCREEN,x
//SEG46 [21] (byte~) plot::$2 ← (byte~) plot::$1 + (byte) 1 [ plot::idx#0 plot::$2 ] ( main:0::line:7::plot:13 [ line::x#2 plot::idx#0 plot::$2 ] main:0::line:7::plot:17 [ plot::idx#0 plot::$2 ] ) -- aby=aby_plus_1
clc
adc #1
//SEG47 [22] *((const byte*) SCREEN#0 + (byte) plot::idx#0) ← (byte~) plot::$2 [ ] ( main:0::line:7::plot:13 [ line::x#2 ] main:0::line:7::plot:17 [ ] ) -- cowo1_staridx_xby=aby
//SEG47 [22] *((const byte*) SCREEN#0 + (byte) plot::idx#0) ← (byte~) plot::$2 [ ] ( main:0::line:7::plot:13 [ line::x#2 ] main:0::line:7::plot:17 [ ] ) -- cowo1_derefidx_xby=aby
sta SCREEN,x
//SEG48 plot::@return
breturn:
@ -2150,10 +2150,10 @@ main: {
//SEG11 [2] phi (byte) main::i#2 = (byte) main::i#1 [phi:main::@1->main::@1#0] -- register_copy
//SEG12 main::@1
b1:
//SEG13 [3] *((const byte[]) plots#0 + (byte) main::i#2) ← (byte) main::i#2 [ main::i#2 ] ( main:0 [ main::i#2 ] ) -- cowo1_staridx_xby=xby
//SEG13 [3] *((const byte[]) plots#0 + (byte) main::i#2) ← (byte) main::i#2 [ main::i#2 ] ( main:0 [ main::i#2 ] ) -- cowo1_derefidx_xby=xby
txa
sta plots,x
//SEG14 [4] *((const byte*) SCREEN#0 + (byte) main::i#2) ← (byte) 0 [ main::i#2 ] ( main:0 [ main::i#2 ] ) -- cowo1_staridx_xby=coby2
//SEG14 [4] *((const byte*) SCREEN#0 + (byte) main::i#2) ← (byte) 0 [ main::i#2 ] ( main:0 [ main::i#2 ] ) -- cowo1_derefidx_xby=coby2
lda #0
sta SCREEN,x
//SEG15 [5] (byte) main::i#1 ← ++ (byte) main::i#2 [ main::i#1 ] ( main:0 [ main::i#1 ] ) -- xby=_inc_xby
@ -2223,14 +2223,14 @@ line: {
}
//SEG43 plot
plot: {
//SEG44 [19] (byte) plot::idx#0 ← (const byte[]) plots#0 *idx (byte) plot::x#2 [ plot::idx#0 ] ( main:0::line:7::plot:13 [ line::x#2 plot::idx#0 ] main:0::line:7::plot:17 [ plot::idx#0 ] ) -- xby=cowo1_staridx_yby
//SEG44 [19] (byte) plot::idx#0 ← (const byte[]) plots#0 *idx (byte) plot::x#2 [ plot::idx#0 ] ( main:0::line:7::plot:13 [ line::x#2 plot::idx#0 ] main:0::line:7::plot:17 [ plot::idx#0 ] ) -- xby=cowo1_derefidx_yby
ldx plots,y
//SEG45 [20] (byte~) plot::$1 ← (const byte*) SCREEN#0 *idx (byte) plot::idx#0 [ plot::idx#0 plot::$1 ] ( main:0::line:7::plot:13 [ line::x#2 plot::idx#0 plot::$1 ] main:0::line:7::plot:17 [ plot::idx#0 plot::$1 ] ) -- aby=cowo1_staridx_xby
//SEG45 [20] (byte~) plot::$1 ← (const byte*) SCREEN#0 *idx (byte) plot::idx#0 [ plot::idx#0 plot::$1 ] ( main:0::line:7::plot:13 [ line::x#2 plot::idx#0 plot::$1 ] main:0::line:7::plot:17 [ plot::idx#0 plot::$1 ] ) -- aby=cowo1_derefidx_xby
lda SCREEN,x
//SEG46 [21] (byte~) plot::$2 ← (byte~) plot::$1 + (byte) 1 [ plot::idx#0 plot::$2 ] ( main:0::line:7::plot:13 [ line::x#2 plot::idx#0 plot::$2 ] main:0::line:7::plot:17 [ plot::idx#0 plot::$2 ] ) -- aby=aby_plus_1
clc
adc #1
//SEG47 [22] *((const byte*) SCREEN#0 + (byte) plot::idx#0) ← (byte~) plot::$2 [ ] ( main:0::line:7::plot:13 [ line::x#2 ] main:0::line:7::plot:17 [ ] ) -- cowo1_staridx_xby=aby
//SEG47 [22] *((const byte*) SCREEN#0 + (byte) plot::idx#0) ← (byte~) plot::$2 [ ] ( main:0::line:7::plot:13 [ line::x#2 ] main:0::line:7::plot:17 [ ] ) -- cowo1_derefidx_xby=aby
sta SCREEN,x
//SEG48 plot::@return
breturn:
@ -2272,10 +2272,10 @@ main: {
//SEG11 [2] phi (byte) main::i#2 = (byte) main::i#1 [phi:main::@1->main::@1#0] -- register_copy
//SEG12 main::@1
b1:
//SEG13 [3] *((const byte[]) plots#0 + (byte) main::i#2) ← (byte) main::i#2 [ main::i#2 ] ( main:0 [ main::i#2 ] ) -- cowo1_staridx_xby=xby
//SEG13 [3] *((const byte[]) plots#0 + (byte) main::i#2) ← (byte) main::i#2 [ main::i#2 ] ( main:0 [ main::i#2 ] ) -- cowo1_derefidx_xby=xby
txa
sta plots,x
//SEG14 [4] *((const byte*) SCREEN#0 + (byte) main::i#2) ← (byte) 0 [ main::i#2 ] ( main:0 [ main::i#2 ] ) -- cowo1_staridx_xby=coby2
//SEG14 [4] *((const byte*) SCREEN#0 + (byte) main::i#2) ← (byte) 0 [ main::i#2 ] ( main:0 [ main::i#2 ] ) -- cowo1_derefidx_xby=coby2
lda #0
sta SCREEN,x
//SEG15 [5] (byte) main::i#1 ← ++ (byte) main::i#2 [ main::i#1 ] ( main:0 [ main::i#1 ] ) -- xby=_inc_xby
@ -2340,14 +2340,14 @@ line: {
}
//SEG43 plot
plot: {
//SEG44 [19] (byte) plot::idx#0 ← (const byte[]) plots#0 *idx (byte) plot::x#2 [ plot::idx#0 ] ( main:0::line:7::plot:13 [ line::x#2 plot::idx#0 ] main:0::line:7::plot:17 [ plot::idx#0 ] ) -- xby=cowo1_staridx_yby
//SEG44 [19] (byte) plot::idx#0 ← (const byte[]) plots#0 *idx (byte) plot::x#2 [ plot::idx#0 ] ( main:0::line:7::plot:13 [ line::x#2 plot::idx#0 ] main:0::line:7::plot:17 [ plot::idx#0 ] ) -- xby=cowo1_derefidx_yby
ldx plots,y
//SEG45 [20] (byte~) plot::$1 ← (const byte*) SCREEN#0 *idx (byte) plot::idx#0 [ plot::idx#0 plot::$1 ] ( main:0::line:7::plot:13 [ line::x#2 plot::idx#0 plot::$1 ] main:0::line:7::plot:17 [ plot::idx#0 plot::$1 ] ) -- aby=cowo1_staridx_xby
//SEG45 [20] (byte~) plot::$1 ← (const byte*) SCREEN#0 *idx (byte) plot::idx#0 [ plot::idx#0 plot::$1 ] ( main:0::line:7::plot:13 [ line::x#2 plot::idx#0 plot::$1 ] main:0::line:7::plot:17 [ plot::idx#0 plot::$1 ] ) -- aby=cowo1_derefidx_xby
lda SCREEN,x
//SEG46 [21] (byte~) plot::$2 ← (byte~) plot::$1 + (byte) 1 [ plot::idx#0 plot::$2 ] ( main:0::line:7::plot:13 [ line::x#2 plot::idx#0 plot::$2 ] main:0::line:7::plot:17 [ plot::idx#0 plot::$2 ] ) -- aby=aby_plus_1
clc
adc #1
//SEG47 [22] *((const byte*) SCREEN#0 + (byte) plot::idx#0) ← (byte~) plot::$2 [ ] ( main:0::line:7::plot:13 [ line::x#2 ] main:0::line:7::plot:17 [ ] ) -- cowo1_staridx_xby=aby
//SEG47 [22] *((const byte*) SCREEN#0 + (byte) plot::idx#0) ← (byte~) plot::$2 [ ] ( main:0::line:7::plot:13 [ line::x#2 ] main:0::line:7::plot:17 [ ] ) -- cowo1_derefidx_xby=aby
sta SCREEN,x
//SEG48 plot::@return
//SEG49 [23] return [ ] ( main:0::line:7::plot:13 [ line::x#2 ] main:0::line:7::plot:17 [ ] )
@ -2380,10 +2380,10 @@ main: {
//SEG11 [2] phi (byte) main::i#2 = (byte) main::i#1 [phi:main::@1->main::@1#0] -- register_copy
//SEG12 main::@1
b1:
//SEG13 [3] *((const byte[]) plots#0 + (byte) main::i#2) ← (byte) main::i#2 [ main::i#2 ] ( main:0 [ main::i#2 ] ) -- cowo1_staridx_xby=xby
//SEG13 [3] *((const byte[]) plots#0 + (byte) main::i#2) ← (byte) main::i#2 [ main::i#2 ] ( main:0 [ main::i#2 ] ) -- cowo1_derefidx_xby=xby
txa
sta plots,x
//SEG14 [4] *((const byte*) SCREEN#0 + (byte) main::i#2) ← (byte) 0 [ main::i#2 ] ( main:0 [ main::i#2 ] ) -- cowo1_staridx_xby=coby2
//SEG14 [4] *((const byte*) SCREEN#0 + (byte) main::i#2) ← (byte) 0 [ main::i#2 ] ( main:0 [ main::i#2 ] ) -- cowo1_derefidx_xby=coby2
lda #0
sta SCREEN,x
//SEG15 [5] (byte) main::i#1 ← ++ (byte) main::i#2 [ main::i#1 ] ( main:0 [ main::i#1 ] ) -- xby=_inc_xby
@ -2447,14 +2447,14 @@ line: {
}
//SEG43 plot
plot: {
//SEG44 [19] (byte) plot::idx#0 ← (const byte[]) plots#0 *idx (byte) plot::x#2 [ plot::idx#0 ] ( main:0::line:7::plot:13 [ line::x#2 plot::idx#0 ] main:0::line:7::plot:17 [ plot::idx#0 ] ) -- xby=cowo1_staridx_yby
//SEG44 [19] (byte) plot::idx#0 ← (const byte[]) plots#0 *idx (byte) plot::x#2 [ plot::idx#0 ] ( main:0::line:7::plot:13 [ line::x#2 plot::idx#0 ] main:0::line:7::plot:17 [ plot::idx#0 ] ) -- xby=cowo1_derefidx_yby
ldx plots,y
//SEG45 [20] (byte~) plot::$1 ← (const byte*) SCREEN#0 *idx (byte) plot::idx#0 [ plot::idx#0 plot::$1 ] ( main:0::line:7::plot:13 [ line::x#2 plot::idx#0 plot::$1 ] main:0::line:7::plot:17 [ plot::idx#0 plot::$1 ] ) -- aby=cowo1_staridx_xby
//SEG45 [20] (byte~) plot::$1 ← (const byte*) SCREEN#0 *idx (byte) plot::idx#0 [ plot::idx#0 plot::$1 ] ( main:0::line:7::plot:13 [ line::x#2 plot::idx#0 plot::$1 ] main:0::line:7::plot:17 [ plot::idx#0 plot::$1 ] ) -- aby=cowo1_derefidx_xby
lda SCREEN,x
//SEG46 [21] (byte~) plot::$2 ← (byte~) plot::$1 + (byte) 1 [ plot::idx#0 plot::$2 ] ( main:0::line:7::plot:13 [ line::x#2 plot::idx#0 plot::$2 ] main:0::line:7::plot:17 [ plot::idx#0 plot::$2 ] ) -- aby=aby_plus_1
clc
adc #1
//SEG47 [22] *((const byte*) SCREEN#0 + (byte) plot::idx#0) ← (byte~) plot::$2 [ ] ( main:0::line:7::plot:13 [ line::x#2 ] main:0::line:7::plot:17 [ ] ) -- cowo1_staridx_xby=aby
//SEG47 [22] *((const byte*) SCREEN#0 + (byte) plot::idx#0) ← (byte~) plot::$2 [ ] ( main:0::line:7::plot:13 [ line::x#2 ] main:0::line:7::plot:17 [ ] ) -- cowo1_derefidx_xby=aby
sta SCREEN,x
//SEG48 plot::@return
//SEG49 [23] return [ ] ( main:0::line:7::plot:13 [ line::x#2 ] main:0::line:7::plot:17 [ ] )
@ -2486,10 +2486,10 @@ main: {
//SEG11 [2] phi (byte) main::i#2 = (byte) main::i#1 [phi:main::@1->main::@1#0] -- register_copy
//SEG12 main::@1
b1:
//SEG13 [3] *((const byte[]) plots#0 + (byte) main::i#2) ← (byte) main::i#2 [ main::i#2 ] ( main:0 [ main::i#2 ] ) -- cowo1_staridx_xby=xby
//SEG13 [3] *((const byte[]) plots#0 + (byte) main::i#2) ← (byte) main::i#2 [ main::i#2 ] ( main:0 [ main::i#2 ] ) -- cowo1_derefidx_xby=xby
txa
sta plots,x
//SEG14 [4] *((const byte*) SCREEN#0 + (byte) main::i#2) ← (byte) 0 [ main::i#2 ] ( main:0 [ main::i#2 ] ) -- cowo1_staridx_xby=coby2
//SEG14 [4] *((const byte*) SCREEN#0 + (byte) main::i#2) ← (byte) 0 [ main::i#2 ] ( main:0 [ main::i#2 ] ) -- cowo1_derefidx_xby=coby2
lda #0
sta SCREEN,x
//SEG15 [5] (byte) main::i#1 ← ++ (byte) main::i#2 [ main::i#1 ] ( main:0 [ main::i#1 ] ) -- xby=_inc_xby
@ -2552,14 +2552,14 @@ line: {
}
//SEG43 plot
plot: {
//SEG44 [19] (byte) plot::idx#0 ← (const byte[]) plots#0 *idx (byte) plot::x#2 [ plot::idx#0 ] ( main:0::line:7::plot:13 [ line::x#2 plot::idx#0 ] main:0::line:7::plot:17 [ plot::idx#0 ] ) -- xby=cowo1_staridx_yby
//SEG44 [19] (byte) plot::idx#0 ← (const byte[]) plots#0 *idx (byte) plot::x#2 [ plot::idx#0 ] ( main:0::line:7::plot:13 [ line::x#2 plot::idx#0 ] main:0::line:7::plot:17 [ plot::idx#0 ] ) -- xby=cowo1_derefidx_yby
ldx plots,y
//SEG45 [20] (byte~) plot::$1 ← (const byte*) SCREEN#0 *idx (byte) plot::idx#0 [ plot::idx#0 plot::$1 ] ( main:0::line:7::plot:13 [ line::x#2 plot::idx#0 plot::$1 ] main:0::line:7::plot:17 [ plot::idx#0 plot::$1 ] ) -- aby=cowo1_staridx_xby
//SEG45 [20] (byte~) plot::$1 ← (const byte*) SCREEN#0 *idx (byte) plot::idx#0 [ plot::idx#0 plot::$1 ] ( main:0::line:7::plot:13 [ line::x#2 plot::idx#0 plot::$1 ] main:0::line:7::plot:17 [ plot::idx#0 plot::$1 ] ) -- aby=cowo1_derefidx_xby
lda SCREEN,x
//SEG46 [21] (byte~) plot::$2 ← (byte~) plot::$1 + (byte) 1 [ plot::idx#0 plot::$2 ] ( main:0::line:7::plot:13 [ line::x#2 plot::idx#0 plot::$2 ] main:0::line:7::plot:17 [ plot::idx#0 plot::$2 ] ) -- aby=aby_plus_1
clc
adc #1
//SEG47 [22] *((const byte*) SCREEN#0 + (byte) plot::idx#0) ← (byte~) plot::$2 [ ] ( main:0::line:7::plot:13 [ line::x#2 ] main:0::line:7::plot:17 [ ] ) -- cowo1_staridx_xby=aby
//SEG47 [22] *((const byte*) SCREEN#0 + (byte) plot::idx#0) ← (byte~) plot::$2 [ ] ( main:0::line:7::plot:13 [ line::x#2 ] main:0::line:7::plot:17 [ ] ) -- cowo1_derefidx_xby=aby
sta SCREEN,x
//SEG48 plot::@return
//SEG49 [23] return [ ] ( main:0::line:7::plot:13 [ line::x#2 ] main:0::line:7::plot:17 [ ] )
@ -2633,10 +2633,10 @@ main: {
//SEG11 [2] phi (byte) main::i#2 = (byte) main::i#1 [phi:main::@1->main::@1#0] -- register_copy
//SEG12 main::@1
b1:
//SEG13 [3] *((const byte[]) plots#0 + (byte) main::i#2) ← (byte) main::i#2 [ main::i#2 ] ( main:0 [ main::i#2 ] ) -- cowo1_staridx_xby=xby
//SEG13 [3] *((const byte[]) plots#0 + (byte) main::i#2) ← (byte) main::i#2 [ main::i#2 ] ( main:0 [ main::i#2 ] ) -- cowo1_derefidx_xby=xby
txa
sta plots,x
//SEG14 [4] *((const byte*) SCREEN#0 + (byte) main::i#2) ← (byte) 0 [ main::i#2 ] ( main:0 [ main::i#2 ] ) -- cowo1_staridx_xby=coby2
//SEG14 [4] *((const byte*) SCREEN#0 + (byte) main::i#2) ← (byte) 0 [ main::i#2 ] ( main:0 [ main::i#2 ] ) -- cowo1_derefidx_xby=coby2
lda #0
sta SCREEN,x
//SEG15 [5] (byte) main::i#1 ← ++ (byte) main::i#2 [ main::i#1 ] ( main:0 [ main::i#1 ] ) -- xby=_inc_xby
@ -2699,14 +2699,14 @@ line: {
}
//SEG43 plot
plot: {
//SEG44 [19] (byte) plot::idx#0 ← (const byte[]) plots#0 *idx (byte) plot::x#2 [ plot::idx#0 ] ( main:0::line:7::plot:13 [ line::x#2 plot::idx#0 ] main:0::line:7::plot:17 [ plot::idx#0 ] ) -- xby=cowo1_staridx_yby
//SEG44 [19] (byte) plot::idx#0 ← (const byte[]) plots#0 *idx (byte) plot::x#2 [ plot::idx#0 ] ( main:0::line:7::plot:13 [ line::x#2 plot::idx#0 ] main:0::line:7::plot:17 [ plot::idx#0 ] ) -- xby=cowo1_derefidx_yby
ldx plots,y
//SEG45 [20] (byte~) plot::$1 ← (const byte*) SCREEN#0 *idx (byte) plot::idx#0 [ plot::idx#0 plot::$1 ] ( main:0::line:7::plot:13 [ line::x#2 plot::idx#0 plot::$1 ] main:0::line:7::plot:17 [ plot::idx#0 plot::$1 ] ) -- aby=cowo1_staridx_xby
//SEG45 [20] (byte~) plot::$1 ← (const byte*) SCREEN#0 *idx (byte) plot::idx#0 [ plot::idx#0 plot::$1 ] ( main:0::line:7::plot:13 [ line::x#2 plot::idx#0 plot::$1 ] main:0::line:7::plot:17 [ plot::idx#0 plot::$1 ] ) -- aby=cowo1_derefidx_xby
lda SCREEN,x
//SEG46 [21] (byte~) plot::$2 ← (byte~) plot::$1 + (byte) 1 [ plot::idx#0 plot::$2 ] ( main:0::line:7::plot:13 [ line::x#2 plot::idx#0 plot::$2 ] main:0::line:7::plot:17 [ plot::idx#0 plot::$2 ] ) -- aby=aby_plus_1
clc
adc #1
//SEG47 [22] *((const byte*) SCREEN#0 + (byte) plot::idx#0) ← (byte~) plot::$2 [ ] ( main:0::line:7::plot:13 [ line::x#2 ] main:0::line:7::plot:17 [ ] ) -- cowo1_staridx_xby=aby
//SEG47 [22] *((const byte*) SCREEN#0 + (byte) plot::idx#0) ← (byte~) plot::$2 [ ] ( main:0::line:7::plot:13 [ line::x#2 ] main:0::line:7::plot:17 [ ] ) -- cowo1_derefidx_xby=aby
sta SCREEN,x
//SEG48 plot::@return
//SEG49 [23] return [ ] ( main:0::line:7::plot:13 [ line::x#2 ] main:0::line:7::plot:17 [ ] )

View File

@ -757,10 +757,10 @@ bend:
//SEG6 main
main: {
.label i = 2
//SEG7 [1] *((const byte*) SCREEN#0) ← (const byte) STAR#0 [ ] ( main:0 [ ] ) -- _star_cowo1=coby2
//SEG7 [1] *((const byte*) SCREEN#0) ← (const byte) STAR#0 [ ] ( main:0 [ ] ) -- _deref_cowo1=coby2
lda #STAR
sta SCREEN
//SEG8 [2] *((const byte*) BGCOL#0) ← (const byte) RED#0 [ ] ( main:0 [ ] ) -- _star_cowo1=coby2
//SEG8 [2] *((const byte*) BGCOL#0) ← (const byte) RED#0 [ ] ( main:0 [ ] ) -- _deref_cowo1=coby2
lda #RED
sta BGCOL
//SEG9 [3] phi from main to main::@1 [phi:main->main::@1]
@ -775,7 +775,7 @@ main: {
jmp b1
//SEG13 main::@1
b1:
//SEG14 [4] *((const byte*) SCREEN#0 + (byte) main::i#2) ← (const byte) STAR#0+(byte) 1 [ main::i#2 ] ( main:0 [ main::i#2 ] ) -- cowo1_staridx_zpby1=coby2
//SEG14 [4] *((const byte*) SCREEN#0 + (byte) main::i#2) ← (const byte) STAR#0+(byte) 1 [ main::i#2 ] ( main:0 [ main::i#2 ] ) -- cowo1_derefidx_zpby1=coby2
lda #STAR+1
ldx i
sta SCREEN,x
@ -834,10 +834,10 @@ b1:
bend:
//SEG6 main
main: {
//SEG7 [1] *((const byte*) SCREEN#0) ← (const byte) STAR#0 [ ] ( main:0 [ ] ) -- _star_cowo1=coby2
//SEG7 [1] *((const byte*) SCREEN#0) ← (const byte) STAR#0 [ ] ( main:0 [ ] ) -- _deref_cowo1=coby2
lda #STAR
sta SCREEN
//SEG8 [2] *((const byte*) BGCOL#0) ← (const byte) RED#0 [ ] ( main:0 [ ] ) -- _star_cowo1=coby2
//SEG8 [2] *((const byte*) BGCOL#0) ← (const byte) RED#0 [ ] ( main:0 [ ] ) -- _deref_cowo1=coby2
lda #RED
sta BGCOL
//SEG9 [3] phi from main to main::@1 [phi:main->main::@1]
@ -850,7 +850,7 @@ main: {
//SEG12 [3] phi (byte) main::i#2 = (byte) main::i#1 [phi:main::@1->main::@1#0] -- register_copy
//SEG13 main::@1
b1:
//SEG14 [4] *((const byte*) SCREEN#0 + (byte) main::i#2) ← (const byte) STAR#0+(byte) 1 [ main::i#2 ] ( main:0 [ main::i#2 ] ) -- cowo1_staridx_xby=coby2
//SEG14 [4] *((const byte*) SCREEN#0 + (byte) main::i#2) ← (const byte) STAR#0+(byte) 1 [ main::i#2 ] ( main:0 [ main::i#2 ] ) -- cowo1_derefidx_xby=coby2
lda #STAR+1
sta SCREEN,x
//SEG15 [5] (byte) main::i#1 ← ++ (byte) main::i#2 [ main::i#1 ] ( main:0 [ main::i#1 ] ) -- xby=_inc_xby
@ -888,10 +888,10 @@ b1:
bend:
//SEG6 main
main: {
//SEG7 [1] *((const byte*) SCREEN#0) ← (const byte) STAR#0 [ ] ( main:0 [ ] ) -- _star_cowo1=coby2
//SEG7 [1] *((const byte*) SCREEN#0) ← (const byte) STAR#0 [ ] ( main:0 [ ] ) -- _deref_cowo1=coby2
lda #STAR
sta SCREEN
//SEG8 [2] *((const byte*) BGCOL#0) ← (const byte) RED#0 [ ] ( main:0 [ ] ) -- _star_cowo1=coby2
//SEG8 [2] *((const byte*) BGCOL#0) ← (const byte) RED#0 [ ] ( main:0 [ ] ) -- _deref_cowo1=coby2
lda #RED
sta BGCOL
//SEG9 [3] phi from main to main::@1 [phi:main->main::@1]
@ -903,7 +903,7 @@ main: {
//SEG12 [3] phi (byte) main::i#2 = (byte) main::i#1 [phi:main::@1->main::@1#0] -- register_copy
//SEG13 main::@1
b1:
//SEG14 [4] *((const byte*) SCREEN#0 + (byte) main::i#2) ← (const byte) STAR#0+(byte) 1 [ main::i#2 ] ( main:0 [ main::i#2 ] ) -- cowo1_staridx_xby=coby2
//SEG14 [4] *((const byte*) SCREEN#0 + (byte) main::i#2) ← (const byte) STAR#0+(byte) 1 [ main::i#2 ] ( main:0 [ main::i#2 ] ) -- cowo1_derefidx_xby=coby2
lda #STAR+1
sta SCREEN,x
//SEG15 [5] (byte) main::i#1 ← ++ (byte) main::i#2 [ main::i#1 ] ( main:0 [ main::i#1 ] ) -- xby=_inc_xby
@ -940,10 +940,10 @@ ASSEMBLER
//SEG5 @end
//SEG6 main
main: {
//SEG7 [1] *((const byte*) SCREEN#0) ← (const byte) STAR#0 [ ] ( main:0 [ ] ) -- _star_cowo1=coby2
//SEG7 [1] *((const byte*) SCREEN#0) ← (const byte) STAR#0 [ ] ( main:0 [ ] ) -- _deref_cowo1=coby2
lda #STAR
sta SCREEN
//SEG8 [2] *((const byte*) BGCOL#0) ← (const byte) RED#0 [ ] ( main:0 [ ] ) -- _star_cowo1=coby2
//SEG8 [2] *((const byte*) BGCOL#0) ← (const byte) RED#0 [ ] ( main:0 [ ] ) -- _deref_cowo1=coby2
lda #RED
sta BGCOL
//SEG9 [3] phi from main to main::@1 [phi:main->main::@1]
@ -954,7 +954,7 @@ main: {
//SEG12 [3] phi (byte) main::i#2 = (byte) main::i#1 [phi:main::@1->main::@1#0] -- register_copy
//SEG13 main::@1
b1:
//SEG14 [4] *((const byte*) SCREEN#0 + (byte) main::i#2) ← (const byte) STAR#0+(byte) 1 [ main::i#2 ] ( main:0 [ main::i#2 ] ) -- cowo1_staridx_xby=coby2
//SEG14 [4] *((const byte*) SCREEN#0 + (byte) main::i#2) ← (const byte) STAR#0+(byte) 1 [ main::i#2 ] ( main:0 [ main::i#2 ] ) -- cowo1_derefidx_xby=coby2
lda #STAR+1
sta SCREEN,x
//SEG15 [5] (byte) main::i#1 ← ++ (byte) main::i#2 [ main::i#1 ] ( main:0 [ main::i#1 ] ) -- xby=_inc_xby
@ -987,10 +987,10 @@ ASSEMBLER
//SEG5 @end
//SEG6 main
main: {
//SEG7 [1] *((const byte*) SCREEN#0) ← (const byte) STAR#0 [ ] ( main:0 [ ] ) -- _star_cowo1=coby2
//SEG7 [1] *((const byte*) SCREEN#0) ← (const byte) STAR#0 [ ] ( main:0 [ ] ) -- _deref_cowo1=coby2
lda #STAR
sta SCREEN
//SEG8 [2] *((const byte*) BGCOL#0) ← (const byte) RED#0 [ ] ( main:0 [ ] ) -- _star_cowo1=coby2
//SEG8 [2] *((const byte*) BGCOL#0) ← (const byte) RED#0 [ ] ( main:0 [ ] ) -- _deref_cowo1=coby2
lda #RED
sta BGCOL
//SEG9 [3] phi from main to main::@1 [phi:main->main::@1]
@ -1000,7 +1000,7 @@ main: {
//SEG12 [3] phi (byte) main::i#2 = (byte) main::i#1 [phi:main::@1->main::@1#0] -- register_copy
//SEG13 main::@1
b1:
//SEG14 [4] *((const byte*) SCREEN#0 + (byte) main::i#2) ← (const byte) STAR#0+(byte) 1 [ main::i#2 ] ( main:0 [ main::i#2 ] ) -- cowo1_staridx_xby=coby2
//SEG14 [4] *((const byte*) SCREEN#0 + (byte) main::i#2) ← (const byte) STAR#0+(byte) 1 [ main::i#2 ] ( main:0 [ main::i#2 ] ) -- cowo1_derefidx_xby=coby2
lda #STAR+1
sta SCREEN,x
//SEG15 [5] (byte) main::i#1 ← ++ (byte) main::i#2 [ main::i#1 ] ( main:0 [ main::i#1 ] ) -- xby=_inc_xby
@ -1054,10 +1054,10 @@ FINAL CODE
//SEG5 @end
//SEG6 main
main: {
//SEG7 [1] *((const byte*) SCREEN#0) ← (const byte) STAR#0 [ ] ( main:0 [ ] ) -- _star_cowo1=coby2
//SEG7 [1] *((const byte*) SCREEN#0) ← (const byte) STAR#0 [ ] ( main:0 [ ] ) -- _deref_cowo1=coby2
lda #STAR
sta SCREEN
//SEG8 [2] *((const byte*) BGCOL#0) ← (const byte) RED#0 [ ] ( main:0 [ ] ) -- _star_cowo1=coby2
//SEG8 [2] *((const byte*) BGCOL#0) ← (const byte) RED#0 [ ] ( main:0 [ ] ) -- _deref_cowo1=coby2
lda #RED
sta BGCOL
//SEG9 [3] phi from main to main::@1 [phi:main->main::@1]
@ -1067,7 +1067,7 @@ main: {
//SEG12 [3] phi (byte) main::i#2 = (byte) main::i#1 [phi:main::@1->main::@1#0] -- register_copy
//SEG13 main::@1
b1:
//SEG14 [4] *((const byte*) SCREEN#0 + (byte) main::i#2) ← (const byte) STAR#0+(byte) 1 [ main::i#2 ] ( main:0 [ main::i#2 ] ) -- cowo1_staridx_xby=coby2
//SEG14 [4] *((const byte*) SCREEN#0 + (byte) main::i#2) ← (const byte) STAR#0+(byte) 1 [ main::i#2 ] ( main:0 [ main::i#2 ] ) -- cowo1_derefidx_xby=coby2
lda #STAR+1
sta SCREEN,x
//SEG15 [5] (byte) main::i#1 ← ++ (byte) main::i#2 [ main::i#1 ] ( main:0 [ main::i#1 ] ) -- xby=_inc_xby

Some files were not shown because too many files have changed in this diff Show More