mirror of
https://gitlab.com/camelot/kickc.git
synced 2025-01-26 15:30:28 +00:00
Implemented signed words - first test works. Closes #22
This commit is contained in:
parent
978c1fb997
commit
c38e9b85e4
@ -92,16 +92,22 @@ public class AsmFragmentManager {
|
||||
Map<String, String> mapConst = new LinkedHashMap<>();
|
||||
mapConst.put("c2", "c1");
|
||||
mapConst.put("c3", "c2");
|
||||
Map<String, String> mapSbyToBy = new LinkedHashMap<>();
|
||||
mapSbyToBy.put("vbsz1", "vbuz1");
|
||||
mapSbyToBy.put("vbsz2", "vbuz2");
|
||||
mapSbyToBy.put("vbsz3", "vbuz3");
|
||||
mapSbyToBy.put("vbsc1", "vbuc1");
|
||||
mapSbyToBy.put("vbsc2", "vbuc2");
|
||||
mapSbyToBy.put("vbsc3", "vbuc3");
|
||||
mapSbyToBy.put("vbsaa", "vbuaa");
|
||||
mapSbyToBy.put("vbsxx", "vbuxx");
|
||||
mapSbyToBy.put("vbsyy", "vbuyy");
|
||||
Map<String, String> mapSToU = new LinkedHashMap<>();
|
||||
mapSToU.put("vbsz1", "vbuz1");
|
||||
mapSToU.put("vbsz2", "vbuz2");
|
||||
mapSToU.put("vbsz3", "vbuz3");
|
||||
mapSToU.put("vbsc1", "vbuc1");
|
||||
mapSToU.put("vbsc2", "vbuc2");
|
||||
mapSToU.put("vbsc3", "vbuc3");
|
||||
mapSToU.put("vbsaa", "vbuaa");
|
||||
mapSToU.put("vbsxx", "vbuxx");
|
||||
mapSToU.put("vbsyy", "vbuyy");
|
||||
mapSToU.put("vwsz1", "vwuz1");
|
||||
mapSToU.put("vwsz2", "vwuz2");
|
||||
mapSToU.put("vwsz3", "vwuz3");
|
||||
mapSToU.put("vwsc1", "vwuc1");
|
||||
mapSToU.put("vwsc2", "vwuc2");
|
||||
mapSToU.put("vwsc3", "vwuc3");
|
||||
|
||||
List<FragmentSynthesis> synths = new ArrayList<>();
|
||||
|
||||
@ -125,6 +131,8 @@ public class AsmFragmentManager {
|
||||
synths.add(new FragmentSynthesis("(.*)=vbsz1(.*)", ".*=.*vb.aa.*|.*z1.*z1.*", "lda {z1}\n", "$1=vbsaa$2", null, mapZ));
|
||||
synths.add(new FragmentSynthesis("(.*)=vbuz2", ".*=.*aa.*|.*z2.*=.*", "lda {z2}\n", "$1=vbuaa", null, null));
|
||||
synths.add(new FragmentSynthesis("(.*)=vbsz2", ".*=.*aa.*|.*z2.*=.*", "lda {z2}\n", "$1=vbuaa", null, null));
|
||||
synths.add(new FragmentSynthesis("(.*)=vbuc1", ".*=.*aa.*", "lda #{c1}\n", "$1=vbuaa", null, mapConst));
|
||||
synths.add(new FragmentSynthesis("(.*)=vbsc1", ".*=.*aa.*", "lda #{c1}\n", "$1=vbsaa", null, mapConst));
|
||||
synths.add(new FragmentSynthesis("(.*)=_deref_vwuc1(.*)", ".*=.*aa.*", "lda {c1}\n", "$1=vbuaa$2", null, mapConst));
|
||||
synths.add(new FragmentSynthesis("(.*)=_deref_pb(.)z1(.*)", ".*z1.*z1.*|.*=.*aa.*|.*=.*yy.*", "ldy #0\n" + "lda ({z1}),y\n", "$1=vb$2aa$3", null, mapZ));
|
||||
|
||||
@ -171,10 +179,24 @@ public class AsmFragmentManager {
|
||||
synths.add(new FragmentSynthesis("p..z1=(.*)_(sethi|setlo|plus|minus)_(.*)", null, null, "vwuz1=$1_$2_$3", null, null));
|
||||
synths.add(new FragmentSynthesis("(.*)=p..z(.)_(sethi|setlo|plus|minus)_(.*)", null, null, "$1=vwuz$2_$3_$4", null, null));
|
||||
|
||||
synths.add(new FragmentSynthesis("(vbsz.|vbsaa|vbsxx|vbsyy)_(eq|neq)_(vbsz.|csoby.|vbsaa|vbsxx|vbsyy)_then_(.*)", null, null, "$1_$2_$3_then_$4", null, mapSbyToBy));
|
||||
synths.add(new FragmentSynthesis("(vbsz.|vbsaa|vbsxx|vbsyy)=(vbsz.|vbsc.|vbsaa|vbsxx|vbsyy)", null, null, "$1=$2", null, mapSbyToBy));
|
||||
synths.add(new FragmentSynthesis("(vbsz.|vbsaa|vbsxx|vbsyy)=(vbsz.|vbsc.|vbsaa|vbsxx|vbsyy)_(plus|band|bxor|bor)_(vbsz.|csoby.|vbsaa|vbsxx|vbsyy)", null, null, "$1=$2_$3_$4", null, mapSbyToBy));
|
||||
synths.add(new FragmentSynthesis("(vbsz.|vbsaa|vbsxx|vbsyy)=_(inc|dec)_(vbsz.|csoby.|vbsaa|vbsxx|vbsyy)", null, null, "$1=_$2_$3", null, mapSbyToBy));
|
||||
synths.add(new FragmentSynthesis("(vbsz.|vbsaa|vbsxx|vbsyy)_(eq|neq)_(vbsz.|vbsc.|vbsaa|vbsxx|vbsyy)_then_(.*)", null, null, "$1_$2_$3_then_$4", null, mapSToU));
|
||||
synths.add(new FragmentSynthesis("(vbsz.|vbsaa|vbsxx|vbsyy)=(vbsz.|vbsc.|vbsaa|vbsxx|vbsyy)", null, null, "$1=$2", null, mapSToU));
|
||||
synths.add(new FragmentSynthesis("(vbsz.|vbsaa|vbsxx|vbsyy)=(vbsz.|vbsc.|vbsaa|vbsxx|vbsyy)_(plus|band|bxor|bor)_(vbsz.|csoby.|vbsaa|vbsxx|vbsyy)", null, null, "$1=$2_$3_$4", null, mapSToU));
|
||||
synths.add(new FragmentSynthesis("(vbsz.|vbsaa|vbsxx|vbsyy)=_(inc|dec)_(vbsz.|vbsc.|vbsaa|vbsxx|vbsyy)", null, null, "$1=_$2_$3", null, mapSToU));
|
||||
|
||||
synths.add(new FragmentSynthesis("(vwsz.)=(vwsz.|vwsc.)", null, null, "$1=$2", null, mapSToU));
|
||||
synths.add(new FragmentSynthesis("(vwsz.)=(vwsz.|vwsc.)_(plus|band|bxor|bor)_(vwsz.|vwsc.)", null, null, "$1=$2_$3_$4", null, mapSToU));
|
||||
|
||||
synths.add(new FragmentSynthesis("(vwsz.)=(vwsz.)_(plus|minus|band|bxor|bor)_vb.c(.)", null, null, "$1=$2_$3_vwsc$4", null, null));
|
||||
synths.add(new FragmentSynthesis("(vwsz.)=vb.c(.)_(plus|minus|band|bxor|bor)_(vwsz.)", null, null, "$1=vwsc$2_$3_$4", null, null));
|
||||
|
||||
synths.add(new FragmentSynthesis("(vbuz.|vbuaa|vbuxx|vbuyy)=_(lo|hi)_vws(z.|c.)", null, null, "$1=_$2_vwu$3", null, mapSToU));
|
||||
|
||||
// Use Z1/Z2 ASM to synthesize Z1-only code
|
||||
synths.add(new FragmentSynthesis("(v..)z1=(v..)z1_(plus|minus|band|bxor|bor)_(.*)", null, null, "$1z1=$2z2_$3_$4", null, mapZ, false));
|
||||
synths.add(new FragmentSynthesis("(v..)z1=(.*)_(plus|minus|band|bxor|bor)_(v..)z1", null, null, "$1z1=$2_$3_$4z2", null, mapZ, false));
|
||||
synths.add(new FragmentSynthesis("(v..)z1=_(neg|lo|hi)_(v..)z1", null, null, "$1z1=_$2_$3z2", null, mapZ, false));
|
||||
|
||||
|
||||
for (FragmentSynthesis synth : synths) {
|
||||
CharStream synthesized = synth.synthesize(signature, log);
|
||||
@ -222,21 +244,28 @@ public class AsmFragmentManager {
|
||||
private String asmPostfix;
|
||||
private Map<String, String> bindMappings;
|
||||
private String subSignature;
|
||||
private boolean mapSignature;
|
||||
|
||||
public FragmentSynthesis(String sigMatch, String sigAvoid, String asmPrefix, String sigReplace, String asmPostfix, Map<String, String> bindMappings) {
|
||||
public FragmentSynthesis(String sigMatch, String sigAvoid, String asmPrefix, String sigReplace, String asmPostfix, Map<String, String> bindMappings, boolean mapSignature) {
|
||||
this.sigMatch = sigMatch;
|
||||
this.sigAvoid = sigAvoid;
|
||||
this.asmPrefix = asmPrefix;
|
||||
this.sigReplace = sigReplace;
|
||||
this.asmPostfix = asmPostfix;
|
||||
this.bindMappings = bindMappings;
|
||||
this.mapSignature = mapSignature;
|
||||
}
|
||||
|
||||
public FragmentSynthesis(String sigMatch, String sigAvoid, String asmPrefix, String sigReplace, String asmPostfix, Map<String, String> bindMappings) {
|
||||
this(sigMatch, sigAvoid, asmPrefix, sigReplace, asmPostfix, bindMappings, true);
|
||||
}
|
||||
|
||||
public CharStream synthesize(String signature, CompileLog log) {
|
||||
if (signature.matches(sigMatch)) {
|
||||
if (sigAvoid == null || !signature.matches(sigAvoid)) {
|
||||
subSignature = regexpRewriteSignature(signature, sigMatch, sigReplace);
|
||||
if (bindMappings != null) {
|
||||
if (mapSignature && bindMappings != null) {
|
||||
// When mapping the signature we do the map replacement in the signature
|
||||
for (String bound : bindMappings.keySet()) {
|
||||
subSignature = subSignature.replace(bound, bindMappings.get(bound));
|
||||
}
|
||||
@ -249,10 +278,18 @@ public class AsmFragmentManager {
|
||||
}
|
||||
String subFragment = subCharStream.toString();
|
||||
if (bindMappings != null) {
|
||||
List<String> reverse = new ArrayList<>(bindMappings.keySet());
|
||||
Collections.reverse(reverse);
|
||||
for (String bound : reverse) {
|
||||
subFragment = subFragment.replace("{"+bindMappings.get(bound)+"}", "{"+bound+"}");
|
||||
if(mapSignature) {
|
||||
// When mapping the signature we do the reverse replacement in the ASM
|
||||
List<String> reverse = new ArrayList<>(bindMappings.keySet());
|
||||
Collections.reverse(reverse);
|
||||
for (String bound : reverse) {
|
||||
subFragment = subFragment.replace("{" + bindMappings.get(bound) + "}", "{" + bound + "}");
|
||||
}
|
||||
} else {
|
||||
// When not mapping the signature we do the replacement directly in the ASM
|
||||
for (String bound : bindMappings.keySet()) {
|
||||
subFragment = subFragment.replace("{" + bound + "}", "{" + bindMappings.get(bound) + "}");
|
||||
}
|
||||
}
|
||||
}
|
||||
newFragment.append(subFragment);
|
||||
|
@ -336,6 +336,8 @@ public class AsmFragmentSignature {
|
||||
return "vbs";
|
||||
} else if (SymbolType.isWord(type)) {
|
||||
return "vwu";
|
||||
} else if (SymbolType.isSWord(type)) {
|
||||
return "vws";
|
||||
} else if (type instanceof SymbolTypePointer ) {
|
||||
SymbolType elementType = ((SymbolTypePointer) type).getElementType();
|
||||
if (SymbolType.isByte(elementType)) {
|
||||
|
@ -0,0 +1 @@
|
||||
lda {z1}
|
@ -0,0 +1,9 @@
|
||||
sec
|
||||
lda {z2}
|
||||
eor #$ff
|
||||
adc #$0
|
||||
sta {z1}
|
||||
lda {z2}+1
|
||||
eor #$ff
|
||||
adc #$0
|
||||
sta {z1}+1
|
@ -1,4 +1,3 @@
|
||||
lda #{c1}
|
||||
sta {z1}
|
||||
lda #0
|
||||
sta {z1}+1
|
@ -0,0 +1,7 @@
|
||||
lda #<{c1}
|
||||
sec
|
||||
sbc {z2}
|
||||
sta {z1}
|
||||
lda #>{c1}
|
||||
sbc {z2}+1
|
||||
sta {z1}+1
|
@ -0,0 +1,7 @@
|
||||
lda {z2}
|
||||
sec
|
||||
sbc #<{c1}
|
||||
sta {z1}
|
||||
lda {z2}+1
|
||||
sbc #>{c1}
|
||||
sta {z1}+1
|
@ -0,0 +1,7 @@
|
||||
lda {z2}
|
||||
clc
|
||||
adc #<{c1}
|
||||
sta {z1}
|
||||
lda {z2}+1
|
||||
adc #>{c1}
|
||||
sta {z1}+1
|
@ -0,0 +1,21 @@
|
||||
// ROL thrice instead of RORing 5 times
|
||||
lda {z2} // {z2} low byte to tmp $ff
|
||||
sta $ff
|
||||
lda {z2}+1 // {z2} high byte to {z1} low byte
|
||||
sta {z1}
|
||||
lda #0
|
||||
bit {z2}+1
|
||||
bpl !+ // {z2} high byte positive?
|
||||
lda #$ff
|
||||
!:
|
||||
sta {z1}+1 // sign extended {z2} into {z1} high byte
|
||||
// ROL thrice
|
||||
rol $ff
|
||||
rol {z1}
|
||||
rol {z1}+1
|
||||
rol $ff
|
||||
rol {z1}
|
||||
rol {z1}+1
|
||||
rol $ff
|
||||
rol {z1}
|
||||
rol {z1}+1
|
@ -0,0 +1,18 @@
|
||||
// ROL twice instead of RORing 6 times
|
||||
lda {z2} // {z2} low byte to tmp $ff
|
||||
sta $ff
|
||||
lda {z2}+1 // {z2} high byte to {z1} low byte
|
||||
sta {z1}
|
||||
lda #0
|
||||
bit {z2}+1
|
||||
bpl !+ // {z2} high byte positive?
|
||||
lda #$ff
|
||||
!:
|
||||
sta {z1}+1 // sign extended {z2} into {z1} high byte
|
||||
// ROL twice
|
||||
rol $ff
|
||||
rol {z1}
|
||||
rol {z1}+1
|
||||
rol $ff
|
||||
rol {z1}
|
||||
rol {z1}+1
|
@ -0,0 +1,15 @@
|
||||
// ROL once instead of RORing 7 times
|
||||
lda {z2} // {z2} low byte to tmp $ff
|
||||
sta $ff
|
||||
lda {z2}+1 // {z2} high byte to {z1} low byte
|
||||
sta {z1}
|
||||
lda #0
|
||||
bit {z2}+1
|
||||
bpl !+ // {z2} high byte positive?
|
||||
lda #$ff
|
||||
!:
|
||||
sta {z1}+1 // sign extended {z2} into {z1} high byte
|
||||
// ROL once
|
||||
rol $ff
|
||||
rol {z1}
|
||||
rol {z1}+1
|
@ -0,0 +1,2 @@
|
||||
lda {z1}+1
|
||||
bpl {la1}
|
@ -0,0 +1,8 @@
|
||||
lda {z1}
|
||||
cmp #<{c1}
|
||||
lda {z1}+1
|
||||
sbc #>{c1}
|
||||
bvc !+
|
||||
eor #$80
|
||||
!:
|
||||
bpl {la1}
|
@ -0,0 +1,4 @@
|
||||
lda {z2}
|
||||
sta {z1}
|
||||
lda {z2}+1
|
||||
sta {z1}+1
|
@ -0,0 +1,7 @@
|
||||
lda {z2}
|
||||
clc
|
||||
adc #<{c1}
|
||||
sta {z1}
|
||||
lda {z2}+1
|
||||
adc #>{c1}
|
||||
sta {z1}+1
|
@ -62,11 +62,11 @@ public class SymbolTypeInference {
|
||||
throw new RuntimeException("Type error: Dereferencing a non-pointer " + subType);
|
||||
}
|
||||
} else if (Operator.LOWBYTE.equals(operator)) {
|
||||
if (subType instanceof SymbolTypePointer || SymbolType.WORD.equals(subType)) {
|
||||
if (subType instanceof SymbolTypePointer || SymbolType.WORD.equals(subType) || SymbolType.WORD.equals(subType)) {
|
||||
return SymbolType.BYTE;
|
||||
}
|
||||
} else if (Operator.HIBYTE.equals(operator)) {
|
||||
if (subType instanceof SymbolTypePointer || SymbolType.WORD.equals(subType)) {
|
||||
if (subType instanceof SymbolTypePointer || SymbolType.WORD.equals(subType) || SymbolType.SWORD.equals(subType) ) {
|
||||
return SymbolType.BYTE;
|
||||
}
|
||||
} else if (Operator.CAST_BYTE.equals(operator)) {
|
||||
@ -117,7 +117,7 @@ public class SymbolTypeInference {
|
||||
}
|
||||
if (SymbolType.WORD.equals(type1) || SymbolType.WORD.equals(type2)) {
|
||||
return SymbolType.WORD;
|
||||
} else if (isByte(type1) && isByte(type2)) {
|
||||
} else if (SymbolType.isByte(type1) && SymbolType.isByte(type2)) {
|
||||
return SymbolType.BYTE;
|
||||
} else if (SymbolType.SBYTE.equals(type1) && SymbolType.SBYTE.equals(type2)) {
|
||||
return SymbolType.SBYTE;
|
||||
@ -129,7 +129,7 @@ public class SymbolTypeInference {
|
||||
}
|
||||
throw new RuntimeException("Type inference case not handled " + type1 + " " + operator + " " + type2);
|
||||
case "/":
|
||||
if (type1 instanceof SymbolTypePointer && isByte(type2)) {
|
||||
if (type1 instanceof SymbolTypePointer && SymbolType.isByte(type2)) {
|
||||
return type1;
|
||||
}
|
||||
case "&":
|
||||
@ -137,17 +137,21 @@ public class SymbolTypeInference {
|
||||
case "^":
|
||||
if (SymbolType.WORD.equals(type1) || SymbolType.WORD.equals(type2)) {
|
||||
return SymbolType.WORD;
|
||||
} else if (isByte(type1) && isByte(type2)) {
|
||||
} else if (SymbolType.isByte(type1) && SymbolType.isByte(type2)) {
|
||||
return SymbolType.BYTE;
|
||||
}
|
||||
|
||||
throw new RuntimeException("Type inference case not handled " + type1 + " " + operator + " " + type2);
|
||||
case "<<":
|
||||
case ">>":
|
||||
if (SymbolType.WORD.equals(type1)) {
|
||||
return SymbolType.WORD;
|
||||
} else if (isByte(type1)) {
|
||||
if (SymbolType.isByte(type1)) {
|
||||
return SymbolType.BYTE;
|
||||
} else if (SymbolType.isSByte(type1)) {
|
||||
return SymbolType.SBYTE;
|
||||
} else if (SymbolType.isWord(type1)) {
|
||||
return SymbolType.WORD;
|
||||
} else if (SymbolType.isSWord(type1)) {
|
||||
return SymbolType.SWORD;
|
||||
}
|
||||
throw new RuntimeException("Type inference case not handled " + type1 + " " + operator + " " + type2);
|
||||
default:
|
||||
@ -156,7 +160,7 @@ public class SymbolTypeInference {
|
||||
}
|
||||
|
||||
private static SymbolType inferPlus(SymbolType type1, SymbolType type2) {
|
||||
if (type1.equals(SymbolType.STRING) && isByte(type2)) {
|
||||
if (type1.equals(SymbolType.STRING) && SymbolType.isByte(type2)) {
|
||||
return SymbolType.STRING;
|
||||
} else if (type1.equals(SymbolType.STRING) && SymbolType.STRING.equals(type2)) {
|
||||
return SymbolType.STRING;
|
||||
@ -164,16 +168,16 @@ public class SymbolTypeInference {
|
||||
if (type1 instanceof SymbolTypePointer && isInteger(type2)) {
|
||||
return new SymbolTypePointer(((SymbolTypePointer) type1).getElementType());
|
||||
}
|
||||
if (isByte(type1) && isByte(type2)) {
|
||||
if (SymbolType.isByte(type1) && SymbolType.isByte(type2)) {
|
||||
return SymbolType.BYTE;
|
||||
}
|
||||
if (isSByte(type1) && isSByte(type2)) {
|
||||
if (SymbolType.isSByte(type1) && SymbolType.isSByte(type2)) {
|
||||
return SymbolType.SBYTE;
|
||||
}
|
||||
if (isWord(type1) && isWord(type2) || isByte(type2)) {
|
||||
if (SymbolType.isWord(type1) && (SymbolType.isWord(type2) || SymbolType.isByte(type2))) {
|
||||
return SymbolType.WORD;
|
||||
}
|
||||
if (isSWord(type1) && isSWord(type2) || isSByte(type2)) {
|
||||
if (SymbolType.isSWord(type1) && (SymbolType.isSWord(type2) || SymbolType.isSByte(type2))) {
|
||||
return SymbolType.SWORD;
|
||||
}
|
||||
throw new RuntimeException("Type inference case not handled " + type1 + " " + "+" + " " + type2);
|
||||
@ -186,16 +190,16 @@ public class SymbolTypeInference {
|
||||
if (type1 instanceof SymbolTypePointer && type2 instanceof SymbolTypePointer) {
|
||||
return SymbolType.WORD;
|
||||
}
|
||||
if (isByte(type1) && isByte(type2)) {
|
||||
if (SymbolType.isByte(type1) && SymbolType.isByte(type2)) {
|
||||
return SymbolType.BYTE;
|
||||
}
|
||||
if (isSByte(type1) && isSByte(type2)) {
|
||||
if (SymbolType.isSByte(type1) && SymbolType.isSByte(type2)) {
|
||||
return SymbolType.SBYTE;
|
||||
}
|
||||
if (isWord(type1) && isWord(type2)) {
|
||||
if (SymbolType.isWord(type1) && SymbolType.isWord(type2)) {
|
||||
return SymbolType.WORD;
|
||||
}
|
||||
if (isSWord(type1) && isSWord(type2)) {
|
||||
if (SymbolType.isSWord(type1) && SymbolType.isSWord(type2)) {
|
||||
return SymbolType.SWORD;
|
||||
}
|
||||
throw new RuntimeException("Type inference case not handled " + type1 + " " + "+" + " " + type2);
|
||||
@ -205,60 +209,19 @@ public class SymbolTypeInference {
|
||||
private static boolean isInteger(SymbolType type) {
|
||||
if (SymbolType.BYTE.equals(type)) {
|
||||
return true;
|
||||
} else if (SymbolType.WORD.equals(type)) {
|
||||
} else if(SymbolType.WORD.equals(type)) {
|
||||
return true;
|
||||
} else if (SymbolType.SBYTE.equals(type)) {
|
||||
} else if(SymbolType.SBYTE.equals(type)) {
|
||||
return true;
|
||||
} else if (SymbolType.SWORD.equals(type)) {
|
||||
} else if(SymbolType.SWORD.equals(type)) {
|
||||
return true;
|
||||
} else if (type instanceof SymbolTypeInline) {
|
||||
} else if(type instanceof SymbolTypeInline) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private static boolean isByte(SymbolType type) {
|
||||
if (SymbolType.BYTE.equals(type)) {
|
||||
return true;
|
||||
} else if (type instanceof SymbolTypeInline) {
|
||||
return ((SymbolTypeInline) type).isByte();
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private static boolean isSByte(SymbolType type) {
|
||||
if (SymbolType.SBYTE.equals(type)) {
|
||||
return true;
|
||||
} else if (type instanceof SymbolTypeInline) {
|
||||
return ((SymbolTypeInline) type).isSByte();
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private static boolean isWord(SymbolType type) {
|
||||
if (SymbolType.WORD.equals(type)) {
|
||||
return true;
|
||||
} else if (type instanceof SymbolTypeInline) {
|
||||
return ((SymbolTypeInline) type).isWord();
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private static boolean isSWord(SymbolType type) {
|
||||
if (SymbolType.SWORD.equals(type)) {
|
||||
return true;
|
||||
} else if (type instanceof SymbolTypeInline) {
|
||||
return ((SymbolTypeInline) type).isSWord();
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static SymbolType inferType(ProgramScope symbols, RValue rValue) {
|
||||
SymbolType type = null;
|
||||
if (rValue instanceof VariableRef) {
|
||||
|
@ -21,17 +21,17 @@ public class Pass2AliasElimination extends Pass2SsaOptimization {
|
||||
public boolean optimize() {
|
||||
final Aliases aliases = findAliases(getProgram());
|
||||
removeAliasAssignments(aliases);
|
||||
replaceVariables(aliases.getReplacements());
|
||||
replaceVariables(aliases.getReplacements(getSymbols()));
|
||||
for (AliasSet aliasSet : aliases.getAliasSets()) {
|
||||
StringBuilder str = new StringBuilder();
|
||||
str.append(aliasSet.getKeepVar().toString(getProgram()));
|
||||
str.append(aliasSet.getKeepVar(getSymbols()).toString(getProgram()));
|
||||
str.append(" = ");
|
||||
for (VariableRef var : aliasSet.getEliminateVars()) {
|
||||
for (VariableRef var : aliasSet.getEliminateVars(getSymbols())) {
|
||||
str.append(var.toString(getProgram()) + " ");
|
||||
}
|
||||
getLog().append("Alias " + str);
|
||||
}
|
||||
deleteSymbols(aliases.getSymbolsToRemove());
|
||||
deleteSymbols(aliases.getSymbolsToRemove(getSymbols()));
|
||||
return (aliases.size() > 0);
|
||||
}
|
||||
|
||||
@ -96,19 +96,19 @@ public class Pass2AliasElimination extends Pass2SsaOptimization {
|
||||
}
|
||||
}
|
||||
|
||||
public List<VariableRef> getSymbolsToRemove() {
|
||||
public List<VariableRef> getSymbolsToRemove(ProgramScope scope) {
|
||||
ArrayList<VariableRef> eliminates = new ArrayList<>();
|
||||
for (AliasSet alias : aliases) {
|
||||
eliminates.addAll(alias.getEliminateVars());
|
||||
eliminates.addAll(alias.getEliminateVars(scope));
|
||||
}
|
||||
return eliminates;
|
||||
}
|
||||
|
||||
public Map<VariableRef, VariableRef> getReplacements() {
|
||||
public Map<VariableRef, VariableRef> getReplacements(ProgramScope scope) {
|
||||
HashMap<VariableRef, VariableRef> replacements = new LinkedHashMap<>();
|
||||
for (AliasSet aliasSet : aliases) {
|
||||
VariableRef keepVar = aliasSet.getKeepVar();
|
||||
for (VariableRef var : aliasSet.getEliminateVars()) {
|
||||
VariableRef keepVar = aliasSet.getKeepVar(scope);
|
||||
for (VariableRef var : aliasSet.getEliminateVars(scope)) {
|
||||
if (!var.equals(keepVar)) {
|
||||
replacements.put(var, keepVar);
|
||||
}
|
||||
@ -207,36 +207,59 @@ public class Pass2AliasElimination extends Pass2SsaOptimization {
|
||||
vars.addAll(aliasSet.getVars());
|
||||
}
|
||||
|
||||
public VariableRef getKeepVar() {
|
||||
VariableRef keep = null;
|
||||
List<VariableRef> vars = new ArrayList<>(this.vars);
|
||||
Collections.sort(vars, new Comparator<VariableRef>() {
|
||||
@Override
|
||||
public int compare(VariableRef o1, VariableRef o2) {
|
||||
return o1.getFullName().compareTo(o2.getFullName());
|
||||
}
|
||||
});
|
||||
public VariableRef getKeepVar(ProgramScope scope) {
|
||||
// Score all base names (without versions for versioned vars, full name for intermediates)
|
||||
int maxScore = 0;
|
||||
String maxName = null;
|
||||
Map<String, Integer> varNameScore = new LinkedHashMap<>();
|
||||
for (VariableRef var : vars) {
|
||||
if (keep == null) {
|
||||
keep = var;
|
||||
String name;
|
||||
int score;
|
||||
Variable variable = scope.getVariable(var);
|
||||
if(variable.isDeclaredConstant()) {
|
||||
name = var.getFullNameUnversioned();
|
||||
score = 100;
|
||||
} else if(var.isVersion()) {
|
||||
name = var.getFullNameUnversioned();
|
||||
score = 4-var.getScopeDepth();
|
||||
} else {
|
||||
if (var.isVersion()) {
|
||||
if (keep.isVersion()) {
|
||||
if (var.getScopeDepth() < keep.getScopeDepth()) {
|
||||
keep = var;
|
||||
}
|
||||
} else {
|
||||
keep = var;
|
||||
}
|
||||
// must be intermediate
|
||||
name = var.getFullName();
|
||||
score = 2-var.getScopeDepth();
|
||||
}
|
||||
Integer nameScore = varNameScore.get(name);
|
||||
if(nameScore==null) {
|
||||
nameScore = 0;
|
||||
}
|
||||
nameScore = nameScore + score;
|
||||
varNameScore.put(name, nameScore);
|
||||
if(nameScore>maxScore) {
|
||||
maxName = name;
|
||||
maxScore = nameScore;
|
||||
}
|
||||
}
|
||||
// Find first var with highest scoring name
|
||||
List<VariableRef> vars = new ArrayList<>(this.vars);
|
||||
Collections.sort(vars, Comparator.comparing(SymbolRef::getFullName));
|
||||
for (VariableRef var : vars) {
|
||||
if(var.isVersion()) {
|
||||
if(maxName.equals(var.getFullNameUnversioned())) {
|
||||
return var;
|
||||
}
|
||||
} else {
|
||||
if(maxName.equals(var.getFullName())) {
|
||||
return var;
|
||||
}
|
||||
}
|
||||
}
|
||||
return keep;
|
||||
|
||||
throw new RuntimeException("Keep variable unexpectedly not found!");
|
||||
|
||||
}
|
||||
|
||||
public List<VariableRef> getEliminateVars() {
|
||||
public List<VariableRef> getEliminateVars(ProgramScope scope) {
|
||||
List<VariableRef> eliminate = new ArrayList<>();
|
||||
VariableRef keepVar = getKeepVar();
|
||||
VariableRef keepVar = getKeepVar(scope);
|
||||
for (VariableRef var : vars) {
|
||||
if (!var.equals(keepVar)) {
|
||||
eliminate.add(var);
|
||||
@ -269,6 +292,10 @@ public class Pass2AliasElimination extends Pass2SsaOptimization {
|
||||
boolean lMatch = false;
|
||||
for (StatementPhiBlock.PhiVariable phiVariable : phi.getPhiVariables()) {
|
||||
if (lMatch) {
|
||||
if (aliasSet.contains(phiVariable.getVariable())) {
|
||||
// Assigning inside tha alias set again - no need to check the variables
|
||||
continue;
|
||||
}
|
||||
for (StatementPhiBlock.PhiRValue phiRValue : phiVariable.getValues()) {
|
||||
RValue rValue = phiRValue.getrValue();
|
||||
if (aliasSet.contains(rValue)) {
|
||||
@ -308,7 +335,7 @@ public class Pass2AliasElimination extends Pass2SsaOptimization {
|
||||
ControlFlowBlock aliasAssignmentBlock = program.getGraph().getAssignmentBlock(alias);
|
||||
ScopeRef aliasScope = aliasAssignmentBlock.getScope();
|
||||
ScopeRef varScope = block.getScope();
|
||||
if (!varScope.equals(aliasScope) || !variable.getScopeNames().equals(alias.getScopeNames())) {
|
||||
if (!alias.isIntermediate() && (!varScope.equals(aliasScope) || !variable.getScopeNames().equals(alias.getScopeNames()))) {
|
||||
program.getLog().append("Not aliassing across scopes: " + variable + " " + alias);
|
||||
} else {
|
||||
aliases.add(variable, alias);
|
||||
|
@ -41,13 +41,22 @@ public class Pass3PhiLifting {
|
||||
ControlFlowBlock predecessorBlock = graph.getBlock(predecessorRef);
|
||||
VariableRef rValVarRef = (VariableRef) phiRValue.getrValue();
|
||||
Variable newVar;
|
||||
if(rValVarRef.isVersion()) {
|
||||
Variable rValVar = program.getScope().getVariable(rValVarRef);
|
||||
newVar = ((VariableVersion) rValVar).getVersionOf().createVersion();
|
||||
if(phiVariable.getVariable().isVersion()) {
|
||||
Variable lValVar = program.getScope().getVariable(phiVariable.getVariable());
|
||||
newVar = ((VariableVersion) lValVar).getVersionOf().createVersion();
|
||||
} else {
|
||||
Symbol predecessorSymbol = programScope.getSymbol(predecessorRef);
|
||||
newVar = predecessorSymbol.getScope().addVariableIntermediate();
|
||||
throw new RuntimeException("Only versions! "+phiVariable.getVariable());
|
||||
// Symbol predecessorSymbol = programScope.getSymbol(predecessorRef);
|
||||
// newVar = predecessorSymbol.getScope().addVariableIntermediate();
|
||||
}
|
||||
// If the PHI LValue does not work when lifting - try the rValue instead! Original code below
|
||||
//if(rValVarRef.isVersion()) {
|
||||
// Variable rValVar = program.getScope().getVariable(rValVarRef);
|
||||
// newVar = ((VariableVersion) rValVar).getVersionOf().createVersion();
|
||||
//} else {
|
||||
// Symbol predecessorSymbol = programScope.getSymbol(predecessorRef);
|
||||
// newVar = predecessorSymbol.getScope().addVariableIntermediate();
|
||||
//}
|
||||
Symbol phiLValue = programScope.getSymbol(phiVariable.getVariable());
|
||||
newVar.setType(phiLValue.getType());
|
||||
newVar.setInferredType(true);
|
||||
|
@ -22,6 +22,10 @@ public class TestPrograms extends TestCase {
|
||||
helper = new ReferenceHelper("dk/camelot64/kickc/test/ref/");
|
||||
}
|
||||
|
||||
public void testSignedWords() throws IOException, URISyntaxException {
|
||||
compileAndCompare("signed-words");
|
||||
}
|
||||
|
||||
public void testSinusSprites() throws IOException, URISyntaxException {
|
||||
compileAndCompare("sinus-sprites");
|
||||
}
|
||||
|
25
src/main/java/dk/camelot64/kickc/test/c64.kc
Normal file
25
src/main/java/dk/camelot64/kickc/test/c64.kc
Normal file
@ -0,0 +1,25 @@
|
||||
const byte* PROCPORT = $01;
|
||||
|
||||
const byte* CHARGEN = $d000;
|
||||
|
||||
const byte* SPRITES_XPOS = $d000;
|
||||
const byte* SPRITES_YPOS = $d001;
|
||||
const byte* SPRITES_XMSB = $d010;
|
||||
const byte* RASTER = $d012;
|
||||
const byte* SPRITES_ENABLE = $d015;
|
||||
const byte* SPRITES_EXPAND_Y = $d017;
|
||||
const byte* SPRITES_PRIORITY = $d01b;
|
||||
const byte* SPRITES_MC = $d01c;
|
||||
const byte* SPRITES_EXPAND_X = $d01d;
|
||||
const byte* BORDERCOL = $d020;
|
||||
const byte* BGCOL = $d021;
|
||||
const byte* SPRITES_MC1 = $d025;
|
||||
const byte* SPRITES_MC2 = $d026;
|
||||
const byte* SPRITES_COLS = $d027;
|
||||
|
||||
const byte* COLS = $d800;
|
||||
|
||||
|
||||
const byte BLACK = 0;
|
||||
const byte WHITE = 1;
|
||||
const byte RED = 2;
|
@ -34,24 +34,19 @@ main: {
|
||||
jmp b1
|
||||
}
|
||||
lines: {
|
||||
.label _2 = 3
|
||||
.label _3 = 4
|
||||
.label l = 2
|
||||
lda #0
|
||||
sta l
|
||||
b1:
|
||||
ldx l
|
||||
lda lines_x,x
|
||||
tay
|
||||
sta line.x0
|
||||
lda lines_x+1,x
|
||||
sta _2
|
||||
sta line.x1
|
||||
lda lines_y,x
|
||||
sta _3
|
||||
tay
|
||||
lda lines_y+1,x
|
||||
tax
|
||||
sty line.x0
|
||||
ldy _3
|
||||
stx line.y1
|
||||
sta line.y1
|
||||
jsr line
|
||||
inc l
|
||||
lda l
|
||||
@ -60,9 +55,9 @@ lines: {
|
||||
rts
|
||||
}
|
||||
line: {
|
||||
.label x0 = 5
|
||||
.label x1 = 3
|
||||
.label y1 = 4
|
||||
.label x0 = 3
|
||||
.label x1 = 4
|
||||
.label y1 = 5
|
||||
.label xd = 7
|
||||
.label yd = $a
|
||||
lda x0
|
||||
@ -95,8 +90,6 @@ line: {
|
||||
b3:
|
||||
sty line_ydxi.y
|
||||
ldx x0
|
||||
lda y1
|
||||
sta line_ydxi.y1
|
||||
lda yd
|
||||
sta line_ydxi.yd
|
||||
lda xd
|
||||
@ -148,6 +141,8 @@ line: {
|
||||
ldx x1
|
||||
lda y1
|
||||
sta line_xdyd.y
|
||||
lda x0
|
||||
sta line_xdyd.x1
|
||||
lda xd
|
||||
sta line_xdyd.xd
|
||||
lda yd
|
||||
@ -157,8 +152,6 @@ line: {
|
||||
b10:
|
||||
sty line_ydxd.y
|
||||
ldx x0
|
||||
lda y1
|
||||
sta line_ydxd.y1
|
||||
lda yd
|
||||
sta line_ydxd.yd
|
||||
lda xd
|
||||
@ -175,6 +168,8 @@ line: {
|
||||
ldx x1
|
||||
lda y1
|
||||
sta line_xdyi.y
|
||||
lda x0
|
||||
sta line_xdyi.x1
|
||||
lda xd
|
||||
sta line_xdyi.xd
|
||||
lda yd
|
||||
|
@ -33,331 +33,327 @@ lines: scope:[lines] from main::@1
|
||||
to:lines::@1
|
||||
lines::@1: scope:[lines] from lines lines::@3
|
||||
[16] (byte) lines::l#2 ← phi( lines/(byte/signed byte/word/signed word) 0 lines::@3/(byte) lines::l#1 ) [ lines::l#2 ] ( main:2::lines:12 [ lines::l#2 ] )
|
||||
[17] (byte~) lines::$0 ← (const byte[]) lines_x#0 *idx (byte) lines::l#2 [ lines::l#2 lines::$0 ] ( main:2::lines:12 [ lines::l#2 lines::$0 ] )
|
||||
[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 ] )
|
||||
[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 ] )
|
||||
[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 ] )
|
||||
[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 ] )
|
||||
[22] (byte) line::x1#0 ← (byte~) lines::$2 [ lines::l#2 lines::$3 lines::$5 line::x0#0 line::x1#0 ] ( main:2::lines:12 [ lines::l#2 lines::$3 lines::$5 line::x0#0 line::x1#0 ] )
|
||||
[23] (byte) line::y0#0 ← (byte~) lines::$3 [ lines::l#2 lines::$5 line::x0#0 line::x1#0 line::y0#0 ] ( main:2::lines:12 [ lines::l#2 lines::$5 line::x0#0 line::x1#0 line::y0#0 ] )
|
||||
[24] (byte) line::y1#0 ← (byte~) lines::$5 [ lines::l#2 line::x0#0 line::x1#0 line::y0#0 line::y1#0 ] ( main:2::lines:12 [ lines::l#2 line::x0#0 line::x1#0 line::y0#0 line::y1#0 ] )
|
||||
[25] call line param-assignment [ lines::l#2 ] ( main:2::lines:12 [ lines::l#2 ] )
|
||||
[17] (byte) line::x0#0 ← (const byte[]) lines_x#0 *idx (byte) lines::l#2 [ lines::l#2 line::x0#0 ] ( main:2::lines:12 [ lines::l#2 line::x0#0 ] )
|
||||
[18] (byte) line::x1#0 ← (const byte[]) lines_x#0+(byte/signed byte/word/signed word) 1 *idx (byte) lines::l#2 [ lines::l#2 line::x0#0 line::x1#0 ] ( main:2::lines:12 [ lines::l#2 line::x0#0 line::x1#0 ] )
|
||||
[19] (byte) line::y0#0 ← (const byte[]) lines_y#0 *idx (byte) lines::l#2 [ lines::l#2 line::x0#0 line::x1#0 line::y0#0 ] ( main:2::lines:12 [ lines::l#2 line::x0#0 line::x1#0 line::y0#0 ] )
|
||||
[20] (byte) line::y1#0 ← (const byte[]) lines_y#0+(byte/signed byte/word/signed word) 1 *idx (byte) lines::l#2 [ lines::l#2 line::x0#0 line::x1#0 line::y0#0 line::y1#0 ] ( main:2::lines:12 [ lines::l#2 line::x0#0 line::x1#0 line::y0#0 line::y1#0 ] )
|
||||
[21] call line param-assignment [ lines::l#2 ] ( main:2::lines:12 [ lines::l#2 ] )
|
||||
to:lines::@3
|
||||
lines::@3: scope:[lines] from lines::@1
|
||||
[26] (byte) lines::l#1 ← ++ (byte) lines::l#2 [ lines::l#1 ] ( main:2::lines:12 [ lines::l#1 ] )
|
||||
[27] if((byte) lines::l#1<(const byte) lines_cnt#0) goto lines::@1 [ lines::l#1 ] ( main:2::lines:12 [ lines::l#1 ] )
|
||||
[22] (byte) lines::l#1 ← ++ (byte) lines::l#2 [ lines::l#1 ] ( main:2::lines:12 [ lines::l#1 ] )
|
||||
[23] if((byte) lines::l#1<(const byte) lines_cnt#0) goto lines::@1 [ lines::l#1 ] ( main:2::lines:12 [ lines::l#1 ] )
|
||||
to:lines::@return
|
||||
lines::@return: scope:[lines] from lines::@3
|
||||
[28] return [ ] ( main:2::lines:12 [ ] )
|
||||
[24] return [ ] ( main:2::lines:12 [ ] )
|
||||
to:@return
|
||||
line: scope:[line] from lines::@1
|
||||
[29] if((byte) line::x0#0>=(byte) line::x1#0) goto line::@1 [ line::x0#0 line::x1#0 line::y0#0 line::y1#0 ] ( main:2::lines:12::line:25 [ lines::l#2 line::x0#0 line::x1#0 line::y0#0 line::y1#0 ] )
|
||||
[25] if((byte) line::x0#0>=(byte) line::x1#0) goto line::@1 [ line::x0#0 line::x1#0 line::y0#0 line::y1#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::x0#0 line::x1#0 line::y0#0 line::y1#0 ] )
|
||||
to:line::@15
|
||||
line::@15: scope:[line] from line
|
||||
[30] (byte) line::xd#1 ← (byte) line::x1#0 - (byte) line::x0#0 [ line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#1 ] ( main:2::lines:12::line:25 [ lines::l#2 line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#1 ] )
|
||||
[31] if((byte) line::y0#0>=(byte) line::y1#0) goto line::@2 [ line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#1 ] ( main:2::lines:12::line:25 [ lines::l#2 line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#1 ] )
|
||||
[26] (byte) line::xd#1 ← (byte) line::x1#0 - (byte) line::x0#0 [ line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#1 ] )
|
||||
[27] if((byte) line::y0#0>=(byte) line::y1#0) goto line::@2 [ line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#1 ] )
|
||||
to:line::@16
|
||||
line::@16: scope:[line] from line::@15
|
||||
[32] (byte) line::yd#1 ← (byte) line::y1#0 - (byte) line::y0#0 [ line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#1 line::yd#1 ] ( main:2::lines:12::line:25 [ lines::l#2 line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#1 line::yd#1 ] )
|
||||
[33] if((byte) line::yd#1>=(byte) line::xd#1) goto line::@3 [ line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#1 line::yd#1 ] ( main:2::lines:12::line:25 [ lines::l#2 line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#1 line::yd#1 ] )
|
||||
[28] (byte) line::yd#1 ← (byte) line::y1#0 - (byte) line::y0#0 [ line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#1 line::yd#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#1 line::yd#1 ] )
|
||||
[29] if((byte) line::yd#1>=(byte) line::xd#1) goto line::@3 [ line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#1 line::yd#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#1 line::yd#1 ] )
|
||||
to:line::@17
|
||||
line::@17: scope:[line] from line::@16
|
||||
[34] (byte) line_xdyi::x#0 ← (byte) line::x0#0 [ line::x1#0 line::y0#0 line::xd#1 line::yd#1 line_xdyi::x#0 ] ( main:2::lines:12::line:25 [ lines::l#2 line::x1#0 line::y0#0 line::xd#1 line::yd#1 line_xdyi::x#0 ] )
|
||||
[35] (byte) line_xdyi::y#0 ← (byte) line::y0#0 [ line::x1#0 line::xd#1 line::yd#1 line_xdyi::x#0 line_xdyi::y#0 ] ( main:2::lines:12::line:25 [ lines::l#2 line::x1#0 line::xd#1 line::yd#1 line_xdyi::x#0 line_xdyi::y#0 ] )
|
||||
[36] (byte) line_xdyi::x1#0 ← (byte) line::x1#0 [ line::xd#1 line::yd#1 line_xdyi::x#0 line_xdyi::y#0 line_xdyi::x1#0 ] ( main:2::lines:12::line:25 [ lines::l#2 line::xd#1 line::yd#1 line_xdyi::x#0 line_xdyi::y#0 line_xdyi::x1#0 ] )
|
||||
[37] (byte) line_xdyi::xd#0 ← (byte) line::xd#1 [ line::yd#1 line_xdyi::x#0 line_xdyi::y#0 line_xdyi::x1#0 line_xdyi::xd#0 ] ( main:2::lines:12::line:25 [ lines::l#2 line::yd#1 line_xdyi::x#0 line_xdyi::y#0 line_xdyi::x1#0 line_xdyi::xd#0 ] )
|
||||
[38] (byte) line_xdyi::yd#0 ← (byte) line::yd#1 [ line_xdyi::x#0 line_xdyi::y#0 line_xdyi::x1#0 line_xdyi::xd#0 line_xdyi::yd#0 ] ( main:2::lines:12::line:25 [ lines::l#2 line_xdyi::x#0 line_xdyi::y#0 line_xdyi::x1#0 line_xdyi::xd#0 line_xdyi::yd#0 ] )
|
||||
[39] call line_xdyi param-assignment [ ] ( main:2::lines:12::line:25 [ lines::l#2 ] )
|
||||
[30] (byte) line_xdyi::x#0 ← (byte) line::x0#0 [ line::x1#0 line::y0#0 line::xd#1 line::yd#1 line_xdyi::x#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::x1#0 line::y0#0 line::xd#1 line::yd#1 line_xdyi::x#0 ] )
|
||||
[31] (byte) line_xdyi::y#0 ← (byte) line::y0#0 [ line::x1#0 line::xd#1 line::yd#1 line_xdyi::x#0 line_xdyi::y#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::x1#0 line::xd#1 line::yd#1 line_xdyi::x#0 line_xdyi::y#0 ] )
|
||||
[32] (byte) line_xdyi::x1#0 ← (byte) line::x1#0 [ line::xd#1 line::yd#1 line_xdyi::x#0 line_xdyi::y#0 line_xdyi::x1#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::xd#1 line::yd#1 line_xdyi::x#0 line_xdyi::y#0 line_xdyi::x1#0 ] )
|
||||
[33] (byte) line_xdyi::xd#0 ← (byte) line::xd#1 [ line::yd#1 line_xdyi::x#0 line_xdyi::y#0 line_xdyi::x1#0 line_xdyi::xd#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::yd#1 line_xdyi::x#0 line_xdyi::y#0 line_xdyi::x1#0 line_xdyi::xd#0 ] )
|
||||
[34] (byte) line_xdyi::yd#0 ← (byte) line::yd#1 [ line_xdyi::x#0 line_xdyi::y#0 line_xdyi::x1#0 line_xdyi::xd#0 line_xdyi::yd#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line_xdyi::x#0 line_xdyi::y#0 line_xdyi::x1#0 line_xdyi::xd#0 line_xdyi::yd#0 ] )
|
||||
[35] call line_xdyi param-assignment [ ] ( main:2::lines:12::line:21 [ lines::l#2 ] )
|
||||
to:line::@return
|
||||
line::@return: scope:[line] from line::@10 line::@13 line::@17 line::@20 line::@24 line::@27 line::@3 line::@6
|
||||
[40] return [ ] ( main:2::lines:12::line:25 [ lines::l#2 ] )
|
||||
[36] return [ ] ( main:2::lines:12::line:21 [ lines::l#2 ] )
|
||||
to:@return
|
||||
line::@3: scope:[line] from line::@16
|
||||
[41] (byte) line_ydxi::y#0 ← (byte) line::y0#0 [ line::x0#0 line::y1#0 line::xd#1 line::yd#1 line_ydxi::y#0 ] ( main:2::lines:12::line:25 [ lines::l#2 line::x0#0 line::y1#0 line::xd#1 line::yd#1 line_ydxi::y#0 ] )
|
||||
[42] (byte) line_ydxi::x#0 ← (byte) line::x0#0 [ line::y1#0 line::xd#1 line::yd#1 line_ydxi::y#0 line_ydxi::x#0 ] ( main:2::lines:12::line:25 [ lines::l#2 line::y1#0 line::xd#1 line::yd#1 line_ydxi::y#0 line_ydxi::x#0 ] )
|
||||
[43] (byte) line_ydxi::y1#0 ← (byte) line::y1#0 [ line::xd#1 line::yd#1 line_ydxi::y#0 line_ydxi::x#0 line_ydxi::y1#0 ] ( main:2::lines:12::line:25 [ lines::l#2 line::xd#1 line::yd#1 line_ydxi::y#0 line_ydxi::x#0 line_ydxi::y1#0 ] )
|
||||
[44] (byte) line_ydxi::yd#0 ← (byte) line::yd#1 [ line::xd#1 line_ydxi::y#0 line_ydxi::x#0 line_ydxi::y1#0 line_ydxi::yd#0 ] ( main:2::lines:12::line:25 [ lines::l#2 line::xd#1 line_ydxi::y#0 line_ydxi::x#0 line_ydxi::y1#0 line_ydxi::yd#0 ] )
|
||||
[45] (byte) line_ydxi::xd#0 ← (byte) line::xd#1 [ line_ydxi::y#0 line_ydxi::x#0 line_ydxi::y1#0 line_ydxi::yd#0 line_ydxi::xd#0 ] ( main:2::lines:12::line:25 [ lines::l#2 line_ydxi::y#0 line_ydxi::x#0 line_ydxi::y1#0 line_ydxi::yd#0 line_ydxi::xd#0 ] )
|
||||
[46] call line_ydxi param-assignment [ ] ( main:2::lines:12::line:25 [ lines::l#2 ] )
|
||||
[37] (byte) line_ydxi::y#0 ← (byte) line::y0#0 [ line::x0#0 line::y1#0 line::xd#1 line::yd#1 line_ydxi::y#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::x0#0 line::y1#0 line::xd#1 line::yd#1 line_ydxi::y#0 ] )
|
||||
[38] (byte) line_ydxi::x#0 ← (byte) line::x0#0 [ line::y1#0 line::xd#1 line::yd#1 line_ydxi::y#0 line_ydxi::x#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::y1#0 line::xd#1 line::yd#1 line_ydxi::y#0 line_ydxi::x#0 ] )
|
||||
[39] (byte) line_ydxi::y1#0 ← (byte) line::y1#0 [ line::xd#1 line::yd#1 line_ydxi::y#0 line_ydxi::x#0 line_ydxi::y1#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::xd#1 line::yd#1 line_ydxi::y#0 line_ydxi::x#0 line_ydxi::y1#0 ] )
|
||||
[40] (byte) line_ydxi::yd#0 ← (byte) line::yd#1 [ line::xd#1 line_ydxi::y#0 line_ydxi::x#0 line_ydxi::y1#0 line_ydxi::yd#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::xd#1 line_ydxi::y#0 line_ydxi::x#0 line_ydxi::y1#0 line_ydxi::yd#0 ] )
|
||||
[41] (byte) line_ydxi::xd#0 ← (byte) line::xd#1 [ line_ydxi::y#0 line_ydxi::x#0 line_ydxi::y1#0 line_ydxi::yd#0 line_ydxi::xd#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line_ydxi::y#0 line_ydxi::x#0 line_ydxi::y1#0 line_ydxi::yd#0 line_ydxi::xd#0 ] )
|
||||
[42] call line_ydxi param-assignment [ ] ( main:2::lines:12::line:21 [ lines::l#2 ] )
|
||||
to:line::@return
|
||||
line::@2: scope:[line] from line::@15
|
||||
[47] (byte) line::yd#0 ← (byte) line::y0#0 - (byte) line::y1#0 [ line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#1 line::yd#0 ] ( main:2::lines:12::line:25 [ lines::l#2 line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#1 line::yd#0 ] )
|
||||
[48] if((byte) line::yd#0>=(byte) line::xd#1) goto line::@6 [ line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#1 line::yd#0 ] ( main:2::lines:12::line:25 [ lines::l#2 line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#1 line::yd#0 ] )
|
||||
[43] (byte) line::yd#0 ← (byte) line::y0#0 - (byte) line::y1#0 [ line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#1 line::yd#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#1 line::yd#0 ] )
|
||||
[44] if((byte) line::yd#0>=(byte) line::xd#1) goto line::@6 [ line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#1 line::yd#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#1 line::yd#0 ] )
|
||||
to:line::@20
|
||||
line::@20: scope:[line] from line::@2
|
||||
[49] (byte) line_xdyd::x#0 ← (byte) line::x0#0 [ line::x1#0 line::y0#0 line::xd#1 line::yd#0 line_xdyd::x#0 ] ( main:2::lines:12::line:25 [ lines::l#2 line::x1#0 line::y0#0 line::xd#1 line::yd#0 line_xdyd::x#0 ] )
|
||||
[50] (byte) line_xdyd::y#0 ← (byte) line::y0#0 [ line::x1#0 line::xd#1 line::yd#0 line_xdyd::x#0 line_xdyd::y#0 ] ( main:2::lines:12::line:25 [ lines::l#2 line::x1#0 line::xd#1 line::yd#0 line_xdyd::x#0 line_xdyd::y#0 ] )
|
||||
[51] (byte) line_xdyd::x1#0 ← (byte) line::x1#0 [ line::xd#1 line::yd#0 line_xdyd::x#0 line_xdyd::y#0 line_xdyd::x1#0 ] ( main:2::lines:12::line:25 [ lines::l#2 line::xd#1 line::yd#0 line_xdyd::x#0 line_xdyd::y#0 line_xdyd::x1#0 ] )
|
||||
[52] (byte) line_xdyd::xd#0 ← (byte) line::xd#1 [ line::yd#0 line_xdyd::x#0 line_xdyd::y#0 line_xdyd::x1#0 line_xdyd::xd#0 ] ( main:2::lines:12::line:25 [ lines::l#2 line::yd#0 line_xdyd::x#0 line_xdyd::y#0 line_xdyd::x1#0 line_xdyd::xd#0 ] )
|
||||
[53] (byte) line_xdyd::yd#0 ← (byte) line::yd#0 [ line_xdyd::x#0 line_xdyd::y#0 line_xdyd::x1#0 line_xdyd::xd#0 line_xdyd::yd#0 ] ( main:2::lines:12::line:25 [ lines::l#2 line_xdyd::x#0 line_xdyd::y#0 line_xdyd::x1#0 line_xdyd::xd#0 line_xdyd::yd#0 ] )
|
||||
[54] call line_xdyd param-assignment [ ] ( main:2::lines:12::line:25 [ lines::l#2 ] )
|
||||
[45] (byte) line_xdyd::x#0 ← (byte) line::x0#0 [ line::x1#0 line::y0#0 line::xd#1 line::yd#0 line_xdyd::x#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::x1#0 line::y0#0 line::xd#1 line::yd#0 line_xdyd::x#0 ] )
|
||||
[46] (byte) line_xdyd::y#0 ← (byte) line::y0#0 [ line::x1#0 line::xd#1 line::yd#0 line_xdyd::x#0 line_xdyd::y#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::x1#0 line::xd#1 line::yd#0 line_xdyd::x#0 line_xdyd::y#0 ] )
|
||||
[47] (byte) line_xdyd::x1#0 ← (byte) line::x1#0 [ line::xd#1 line::yd#0 line_xdyd::x#0 line_xdyd::y#0 line_xdyd::x1#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::xd#1 line::yd#0 line_xdyd::x#0 line_xdyd::y#0 line_xdyd::x1#0 ] )
|
||||
[48] (byte) line_xdyd::xd#0 ← (byte) line::xd#1 [ line::yd#0 line_xdyd::x#0 line_xdyd::y#0 line_xdyd::x1#0 line_xdyd::xd#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::yd#0 line_xdyd::x#0 line_xdyd::y#0 line_xdyd::x1#0 line_xdyd::xd#0 ] )
|
||||
[49] (byte) line_xdyd::yd#0 ← (byte) line::yd#0 [ line_xdyd::x#0 line_xdyd::y#0 line_xdyd::x1#0 line_xdyd::xd#0 line_xdyd::yd#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line_xdyd::x#0 line_xdyd::y#0 line_xdyd::x1#0 line_xdyd::xd#0 line_xdyd::yd#0 ] )
|
||||
[50] call line_xdyd param-assignment [ ] ( main:2::lines:12::line:21 [ lines::l#2 ] )
|
||||
to:line::@return
|
||||
line::@6: scope:[line] from line::@2
|
||||
[55] (byte) line_ydxd::y#0 ← (byte) line::y1#0 [ line::x1#0 line::y0#0 line::xd#1 line::yd#0 line_ydxd::y#0 ] ( main:2::lines:12::line:25 [ lines::l#2 line::x1#0 line::y0#0 line::xd#1 line::yd#0 line_ydxd::y#0 ] )
|
||||
[56] (byte) line_ydxd::x#0 ← (byte) line::x1#0 [ line::y0#0 line::xd#1 line::yd#0 line_ydxd::y#0 line_ydxd::x#0 ] ( main:2::lines:12::line:25 [ lines::l#2 line::y0#0 line::xd#1 line::yd#0 line_ydxd::y#0 line_ydxd::x#0 ] )
|
||||
[57] (byte) line_ydxd::y1#0 ← (byte) line::y0#0 [ line::xd#1 line::yd#0 line_ydxd::y#0 line_ydxd::x#0 line_ydxd::y1#0 ] ( main:2::lines:12::line:25 [ lines::l#2 line::xd#1 line::yd#0 line_ydxd::y#0 line_ydxd::x#0 line_ydxd::y1#0 ] )
|
||||
[58] (byte) line_ydxd::yd#0 ← (byte) line::yd#0 [ line::xd#1 line_ydxd::y#0 line_ydxd::x#0 line_ydxd::y1#0 line_ydxd::yd#0 ] ( main:2::lines:12::line:25 [ lines::l#2 line::xd#1 line_ydxd::y#0 line_ydxd::x#0 line_ydxd::y1#0 line_ydxd::yd#0 ] )
|
||||
[59] (byte) line_ydxd::xd#0 ← (byte) line::xd#1 [ line_ydxd::y#0 line_ydxd::x#0 line_ydxd::y1#0 line_ydxd::yd#0 line_ydxd::xd#0 ] ( main:2::lines:12::line:25 [ lines::l#2 line_ydxd::y#0 line_ydxd::x#0 line_ydxd::y1#0 line_ydxd::yd#0 line_ydxd::xd#0 ] )
|
||||
[60] call line_ydxd param-assignment [ ] ( main:2::lines:12::line:25 [ lines::l#2 ] )
|
||||
[51] (byte) line_ydxd::y#0 ← (byte) line::y1#0 [ line::x1#0 line::y0#0 line::xd#1 line::yd#0 line_ydxd::y#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::x1#0 line::y0#0 line::xd#1 line::yd#0 line_ydxd::y#0 ] )
|
||||
[52] (byte) line_ydxd::x#0 ← (byte) line::x1#0 [ line::y0#0 line::xd#1 line::yd#0 line_ydxd::y#0 line_ydxd::x#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::y0#0 line::xd#1 line::yd#0 line_ydxd::y#0 line_ydxd::x#0 ] )
|
||||
[53] (byte) line_ydxd::y1#0 ← (byte) line::y0#0 [ line::xd#1 line::yd#0 line_ydxd::y#0 line_ydxd::x#0 line_ydxd::y1#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::xd#1 line::yd#0 line_ydxd::y#0 line_ydxd::x#0 line_ydxd::y1#0 ] )
|
||||
[54] (byte) line_ydxd::yd#0 ← (byte) line::yd#0 [ line::xd#1 line_ydxd::y#0 line_ydxd::x#0 line_ydxd::y1#0 line_ydxd::yd#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::xd#1 line_ydxd::y#0 line_ydxd::x#0 line_ydxd::y1#0 line_ydxd::yd#0 ] )
|
||||
[55] (byte) line_ydxd::xd#0 ← (byte) line::xd#1 [ line_ydxd::y#0 line_ydxd::x#0 line_ydxd::y1#0 line_ydxd::yd#0 line_ydxd::xd#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line_ydxd::y#0 line_ydxd::x#0 line_ydxd::y1#0 line_ydxd::yd#0 line_ydxd::xd#0 ] )
|
||||
[56] call line_ydxd param-assignment [ ] ( main:2::lines:12::line:21 [ lines::l#2 ] )
|
||||
to:line::@return
|
||||
line::@1: scope:[line] from line
|
||||
[61] (byte) line::xd#0 ← (byte) line::x0#0 - (byte) line::x1#0 [ line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#0 ] ( main:2::lines:12::line:25 [ lines::l#2 line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#0 ] )
|
||||
[62] if((byte) line::y0#0>=(byte) line::y1#0) goto line::@9 [ line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#0 ] ( main:2::lines:12::line:25 [ lines::l#2 line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#0 ] )
|
||||
[57] (byte) line::xd#0 ← (byte) line::x0#0 - (byte) line::x1#0 [ line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#0 ] )
|
||||
[58] if((byte) line::y0#0>=(byte) line::y1#0) goto line::@9 [ line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#0 ] ( main:2::lines:12::line:21 [ lines::l#2 line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#0 ] )
|
||||
to:line::@23
|
||||
line::@23: scope:[line] from line::@1
|
||||
[63] (byte) line::yd#3 ← (byte) line::y1#0 - (byte) line::y0#0 [ line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#0 line::yd#3 ] ( main:2::lines:12::line:25 [ lines::l#2 line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#0 line::yd#3 ] )
|
||||
[64] if((byte) line::yd#3>=(byte) line::xd#0) goto line::@10 [ line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#0 line::yd#3 ] ( main:2::lines:12::line:25 [ lines::l#2 line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#0 line::yd#3 ] )
|
||||
[59] (byte) line::yd#3 ← (byte) line::y1#0 - (byte) line::y0#0 [ line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#0 line::yd#3 ] ( main:2::lines:12::line:21 [ lines::l#2 line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#0 line::yd#3 ] )
|
||||
[60] if((byte) line::yd#3>=(byte) line::xd#0) goto line::@10 [ line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#0 line::yd#3 ] ( main:2::lines:12::line:21 [ lines::l#2 line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#0 line::yd#3 ] )
|
||||
to:line::@24
|
||||
line::@24: scope:[line] from line::@23
|
||||
[65] (byte) line_xdyd::x#1 ← (byte) line::x1#0 [ line::x0#0 line::y1#0 line::xd#0 line::yd#3 line_xdyd::x#1 ] ( main:2::lines:12::line:25 [ lines::l#2 line::x0#0 line::y1#0 line::xd#0 line::yd#3 line_xdyd::x#1 ] )
|
||||
[66] (byte) line_xdyd::y#1 ← (byte) line::y1#0 [ line::x0#0 line::xd#0 line::yd#3 line_xdyd::x#1 line_xdyd::y#1 ] ( main:2::lines:12::line:25 [ lines::l#2 line::x0#0 line::xd#0 line::yd#3 line_xdyd::x#1 line_xdyd::y#1 ] )
|
||||
[67] (byte) line_xdyd::x1#1 ← (byte) line::x0#0 [ line::xd#0 line::yd#3 line_xdyd::x#1 line_xdyd::y#1 line_xdyd::x1#1 ] ( main:2::lines:12::line:25 [ lines::l#2 line::xd#0 line::yd#3 line_xdyd::x#1 line_xdyd::y#1 line_xdyd::x1#1 ] )
|
||||
[68] (byte) line_xdyd::xd#1 ← (byte) line::xd#0 [ line::yd#3 line_xdyd::x#1 line_xdyd::y#1 line_xdyd::x1#1 line_xdyd::xd#1 ] ( main:2::lines:12::line:25 [ lines::l#2 line::yd#3 line_xdyd::x#1 line_xdyd::y#1 line_xdyd::x1#1 line_xdyd::xd#1 ] )
|
||||
[69] (byte) line_xdyd::yd#1 ← (byte) line::yd#3 [ line_xdyd::x#1 line_xdyd::y#1 line_xdyd::x1#1 line_xdyd::xd#1 line_xdyd::yd#1 ] ( main:2::lines:12::line:25 [ lines::l#2 line_xdyd::x#1 line_xdyd::y#1 line_xdyd::x1#1 line_xdyd::xd#1 line_xdyd::yd#1 ] )
|
||||
[70] call line_xdyd param-assignment [ ] ( main:2::lines:12::line:25 [ lines::l#2 ] )
|
||||
[61] (byte) line_xdyd::x#1 ← (byte) line::x1#0 [ line::x0#0 line::y1#0 line::xd#0 line::yd#3 line_xdyd::x#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::x0#0 line::y1#0 line::xd#0 line::yd#3 line_xdyd::x#1 ] )
|
||||
[62] (byte) line_xdyd::y#1 ← (byte) line::y1#0 [ line::x0#0 line::xd#0 line::yd#3 line_xdyd::x#1 line_xdyd::y#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::x0#0 line::xd#0 line::yd#3 line_xdyd::x#1 line_xdyd::y#1 ] )
|
||||
[63] (byte) line_xdyd::x1#1 ← (byte) line::x0#0 [ line::xd#0 line::yd#3 line_xdyd::x#1 line_xdyd::y#1 line_xdyd::x1#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::xd#0 line::yd#3 line_xdyd::x#1 line_xdyd::y#1 line_xdyd::x1#1 ] )
|
||||
[64] (byte) line_xdyd::xd#1 ← (byte) line::xd#0 [ line::yd#3 line_xdyd::x#1 line_xdyd::y#1 line_xdyd::x1#1 line_xdyd::xd#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::yd#3 line_xdyd::x#1 line_xdyd::y#1 line_xdyd::x1#1 line_xdyd::xd#1 ] )
|
||||
[65] (byte) line_xdyd::yd#1 ← (byte) line::yd#3 [ line_xdyd::x#1 line_xdyd::y#1 line_xdyd::x1#1 line_xdyd::xd#1 line_xdyd::yd#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line_xdyd::x#1 line_xdyd::y#1 line_xdyd::x1#1 line_xdyd::xd#1 line_xdyd::yd#1 ] )
|
||||
[66] call line_xdyd param-assignment [ ] ( main:2::lines:12::line:21 [ lines::l#2 ] )
|
||||
to:line::@return
|
||||
line::@10: scope:[line] from line::@23
|
||||
[71] (byte) line_ydxd::y#1 ← (byte) line::y0#0 [ line::x0#0 line::y1#0 line::xd#0 line::yd#3 line_ydxd::y#1 ] ( main:2::lines:12::line:25 [ lines::l#2 line::x0#0 line::y1#0 line::xd#0 line::yd#3 line_ydxd::y#1 ] )
|
||||
[72] (byte) line_ydxd::x#1 ← (byte) line::x0#0 [ line::y1#0 line::xd#0 line::yd#3 line_ydxd::y#1 line_ydxd::x#1 ] ( main:2::lines:12::line:25 [ lines::l#2 line::y1#0 line::xd#0 line::yd#3 line_ydxd::y#1 line_ydxd::x#1 ] )
|
||||
[73] (byte) line_ydxd::y1#1 ← (byte) line::y1#0 [ line::xd#0 line::yd#3 line_ydxd::y#1 line_ydxd::x#1 line_ydxd::y1#1 ] ( main:2::lines:12::line:25 [ lines::l#2 line::xd#0 line::yd#3 line_ydxd::y#1 line_ydxd::x#1 line_ydxd::y1#1 ] )
|
||||
[74] (byte) line_ydxd::yd#1 ← (byte) line::yd#3 [ line::xd#0 line_ydxd::y#1 line_ydxd::x#1 line_ydxd::y1#1 line_ydxd::yd#1 ] ( main:2::lines:12::line:25 [ lines::l#2 line::xd#0 line_ydxd::y#1 line_ydxd::x#1 line_ydxd::y1#1 line_ydxd::yd#1 ] )
|
||||
[75] (byte) line_ydxd::xd#1 ← (byte) line::xd#0 [ line_ydxd::y#1 line_ydxd::x#1 line_ydxd::y1#1 line_ydxd::yd#1 line_ydxd::xd#1 ] ( main:2::lines:12::line:25 [ lines::l#2 line_ydxd::y#1 line_ydxd::x#1 line_ydxd::y1#1 line_ydxd::yd#1 line_ydxd::xd#1 ] )
|
||||
[76] call line_ydxd param-assignment [ ] ( main:2::lines:12::line:25 [ lines::l#2 ] )
|
||||
[67] (byte) line_ydxd::y#1 ← (byte) line::y0#0 [ line::x0#0 line::y1#0 line::xd#0 line::yd#3 line_ydxd::y#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::x0#0 line::y1#0 line::xd#0 line::yd#3 line_ydxd::y#1 ] )
|
||||
[68] (byte) line_ydxd::x#1 ← (byte) line::x0#0 [ line::y1#0 line::xd#0 line::yd#3 line_ydxd::y#1 line_ydxd::x#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::y1#0 line::xd#0 line::yd#3 line_ydxd::y#1 line_ydxd::x#1 ] )
|
||||
[69] (byte) line_ydxd::y1#1 ← (byte) line::y1#0 [ line::xd#0 line::yd#3 line_ydxd::y#1 line_ydxd::x#1 line_ydxd::y1#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::xd#0 line::yd#3 line_ydxd::y#1 line_ydxd::x#1 line_ydxd::y1#1 ] )
|
||||
[70] (byte) line_ydxd::yd#1 ← (byte) line::yd#3 [ line::xd#0 line_ydxd::y#1 line_ydxd::x#1 line_ydxd::y1#1 line_ydxd::yd#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::xd#0 line_ydxd::y#1 line_ydxd::x#1 line_ydxd::y1#1 line_ydxd::yd#1 ] )
|
||||
[71] (byte) line_ydxd::xd#1 ← (byte) line::xd#0 [ line_ydxd::y#1 line_ydxd::x#1 line_ydxd::y1#1 line_ydxd::yd#1 line_ydxd::xd#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line_ydxd::y#1 line_ydxd::x#1 line_ydxd::y1#1 line_ydxd::yd#1 line_ydxd::xd#1 ] )
|
||||
[72] call line_ydxd param-assignment [ ] ( main:2::lines:12::line:21 [ lines::l#2 ] )
|
||||
to:line::@return
|
||||
line::@9: scope:[line] from line::@1
|
||||
[77] (byte) line::yd#10 ← (byte) line::y0#0 - (byte) line::y1#0 [ line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#0 line::yd#10 ] ( main:2::lines:12::line:25 [ lines::l#2 line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#0 line::yd#10 ] )
|
||||
[78] if((byte) line::yd#10>=(byte) line::xd#0) goto line::@13 [ line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#0 line::yd#10 ] ( main:2::lines:12::line:25 [ lines::l#2 line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#0 line::yd#10 ] )
|
||||
[73] (byte) line::yd#10 ← (byte) line::y0#0 - (byte) line::y1#0 [ line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#0 line::yd#10 ] ( main:2::lines:12::line:21 [ lines::l#2 line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#0 line::yd#10 ] )
|
||||
[74] if((byte) line::yd#10>=(byte) line::xd#0) goto line::@13 [ line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#0 line::yd#10 ] ( main:2::lines:12::line:21 [ lines::l#2 line::x0#0 line::x1#0 line::y0#0 line::y1#0 line::xd#0 line::yd#10 ] )
|
||||
to:line::@27
|
||||
line::@27: scope:[line] from line::@9
|
||||
[79] (byte) line_xdyi::x#1 ← (byte) line::x1#0 [ line::x0#0 line::y1#0 line::xd#0 line::yd#10 line_xdyi::x#1 ] ( main:2::lines:12::line:25 [ lines::l#2 line::x0#0 line::y1#0 line::xd#0 line::yd#10 line_xdyi::x#1 ] )
|
||||
[80] (byte) line_xdyi::y#1 ← (byte) line::y1#0 [ line::x0#0 line::xd#0 line::yd#10 line_xdyi::x#1 line_xdyi::y#1 ] ( main:2::lines:12::line:25 [ lines::l#2 line::x0#0 line::xd#0 line::yd#10 line_xdyi::x#1 line_xdyi::y#1 ] )
|
||||
[81] (byte) line_xdyi::x1#1 ← (byte) line::x0#0 [ line::xd#0 line::yd#10 line_xdyi::x#1 line_xdyi::y#1 line_xdyi::x1#1 ] ( main:2::lines:12::line:25 [ lines::l#2 line::xd#0 line::yd#10 line_xdyi::x#1 line_xdyi::y#1 line_xdyi::x1#1 ] )
|
||||
[82] (byte) line_xdyi::xd#1 ← (byte) line::xd#0 [ line::yd#10 line_xdyi::x#1 line_xdyi::y#1 line_xdyi::x1#1 line_xdyi::xd#1 ] ( main:2::lines:12::line:25 [ lines::l#2 line::yd#10 line_xdyi::x#1 line_xdyi::y#1 line_xdyi::x1#1 line_xdyi::xd#1 ] )
|
||||
[83] (byte) line_xdyi::yd#1 ← (byte) line::yd#10 [ line_xdyi::x#1 line_xdyi::y#1 line_xdyi::x1#1 line_xdyi::xd#1 line_xdyi::yd#1 ] ( main:2::lines:12::line:25 [ lines::l#2 line_xdyi::x#1 line_xdyi::y#1 line_xdyi::x1#1 line_xdyi::xd#1 line_xdyi::yd#1 ] )
|
||||
[84] call line_xdyi param-assignment [ ] ( main:2::lines:12::line:25 [ lines::l#2 ] )
|
||||
[75] (byte) line_xdyi::x#1 ← (byte) line::x1#0 [ line::x0#0 line::y1#0 line::xd#0 line::yd#10 line_xdyi::x#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::x0#0 line::y1#0 line::xd#0 line::yd#10 line_xdyi::x#1 ] )
|
||||
[76] (byte) line_xdyi::y#1 ← (byte) line::y1#0 [ line::x0#0 line::xd#0 line::yd#10 line_xdyi::x#1 line_xdyi::y#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::x0#0 line::xd#0 line::yd#10 line_xdyi::x#1 line_xdyi::y#1 ] )
|
||||
[77] (byte) line_xdyi::x1#1 ← (byte) line::x0#0 [ line::xd#0 line::yd#10 line_xdyi::x#1 line_xdyi::y#1 line_xdyi::x1#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::xd#0 line::yd#10 line_xdyi::x#1 line_xdyi::y#1 line_xdyi::x1#1 ] )
|
||||
[78] (byte) line_xdyi::xd#1 ← (byte) line::xd#0 [ line::yd#10 line_xdyi::x#1 line_xdyi::y#1 line_xdyi::x1#1 line_xdyi::xd#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::yd#10 line_xdyi::x#1 line_xdyi::y#1 line_xdyi::x1#1 line_xdyi::xd#1 ] )
|
||||
[79] (byte) line_xdyi::yd#1 ← (byte) line::yd#10 [ line_xdyi::x#1 line_xdyi::y#1 line_xdyi::x1#1 line_xdyi::xd#1 line_xdyi::yd#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line_xdyi::x#1 line_xdyi::y#1 line_xdyi::x1#1 line_xdyi::xd#1 line_xdyi::yd#1 ] )
|
||||
[80] call line_xdyi param-assignment [ ] ( main:2::lines:12::line:21 [ lines::l#2 ] )
|
||||
to:line::@return
|
||||
line::@13: scope:[line] from line::@9
|
||||
[85] (byte) line_ydxi::y#1 ← (byte) line::y1#0 [ line::x1#0 line::y0#0 line::xd#0 line::yd#10 line_ydxi::y#1 ] ( main:2::lines:12::line:25 [ lines::l#2 line::x1#0 line::y0#0 line::xd#0 line::yd#10 line_ydxi::y#1 ] )
|
||||
[86] (byte) line_ydxi::x#1 ← (byte) line::x1#0 [ line::y0#0 line::xd#0 line::yd#10 line_ydxi::y#1 line_ydxi::x#1 ] ( main:2::lines:12::line:25 [ lines::l#2 line::y0#0 line::xd#0 line::yd#10 line_ydxi::y#1 line_ydxi::x#1 ] )
|
||||
[87] (byte) line_ydxi::y1#1 ← (byte) line::y0#0 [ line::xd#0 line::yd#10 line_ydxi::y#1 line_ydxi::x#1 line_ydxi::y1#1 ] ( main:2::lines:12::line:25 [ lines::l#2 line::xd#0 line::yd#10 line_ydxi::y#1 line_ydxi::x#1 line_ydxi::y1#1 ] )
|
||||
[88] (byte) line_ydxi::yd#1 ← (byte) line::yd#10 [ line::xd#0 line_ydxi::y#1 line_ydxi::x#1 line_ydxi::y1#1 line_ydxi::yd#1 ] ( main:2::lines:12::line:25 [ lines::l#2 line::xd#0 line_ydxi::y#1 line_ydxi::x#1 line_ydxi::y1#1 line_ydxi::yd#1 ] )
|
||||
[89] (byte) line_ydxi::xd#1 ← (byte) line::xd#0 [ line_ydxi::y#1 line_ydxi::x#1 line_ydxi::y1#1 line_ydxi::yd#1 line_ydxi::xd#1 ] ( main:2::lines:12::line:25 [ lines::l#2 line_ydxi::y#1 line_ydxi::x#1 line_ydxi::y1#1 line_ydxi::yd#1 line_ydxi::xd#1 ] )
|
||||
[90] call line_ydxi param-assignment [ ] ( main:2::lines:12::line:25 [ lines::l#2 ] )
|
||||
[81] (byte) line_ydxi::y#1 ← (byte) line::y1#0 [ line::x1#0 line::y0#0 line::xd#0 line::yd#10 line_ydxi::y#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::x1#0 line::y0#0 line::xd#0 line::yd#10 line_ydxi::y#1 ] )
|
||||
[82] (byte) line_ydxi::x#1 ← (byte) line::x1#0 [ line::y0#0 line::xd#0 line::yd#10 line_ydxi::y#1 line_ydxi::x#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::y0#0 line::xd#0 line::yd#10 line_ydxi::y#1 line_ydxi::x#1 ] )
|
||||
[83] (byte) line_ydxi::y1#1 ← (byte) line::y0#0 [ line::xd#0 line::yd#10 line_ydxi::y#1 line_ydxi::x#1 line_ydxi::y1#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::xd#0 line::yd#10 line_ydxi::y#1 line_ydxi::x#1 line_ydxi::y1#1 ] )
|
||||
[84] (byte) line_ydxi::yd#1 ← (byte) line::yd#10 [ line::xd#0 line_ydxi::y#1 line_ydxi::x#1 line_ydxi::y1#1 line_ydxi::yd#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line::xd#0 line_ydxi::y#1 line_ydxi::x#1 line_ydxi::y1#1 line_ydxi::yd#1 ] )
|
||||
[85] (byte) line_ydxi::xd#1 ← (byte) line::xd#0 [ line_ydxi::y#1 line_ydxi::x#1 line_ydxi::y1#1 line_ydxi::yd#1 line_ydxi::xd#1 ] ( main:2::lines:12::line:21 [ lines::l#2 line_ydxi::y#1 line_ydxi::x#1 line_ydxi::y1#1 line_ydxi::yd#1 line_ydxi::xd#1 ] )
|
||||
[86] call line_ydxi param-assignment [ ] ( main:2::lines:12::line:21 [ lines::l#2 ] )
|
||||
to:line::@return
|
||||
line_ydxi: scope:[line_ydxi] from line::@13 line::@3
|
||||
[91] (byte) line_ydxi::y1#6 ← phi( line::@13/(byte) line_ydxi::y1#1 line::@3/(byte) line_ydxi::y1#0 ) [ line_ydxi::xd#2 line_ydxi::x#5 line_ydxi::y#6 line_ydxi::yd#5 line_ydxi::y1#6 ] ( main:2::lines:12::line:25::line_ydxi:46 [ lines::l#2 line_ydxi::xd#2 line_ydxi::x#5 line_ydxi::y#6 line_ydxi::yd#5 line_ydxi::y1#6 ] main:2::lines:12::line:25::line_ydxi:90 [ lines::l#2 line_ydxi::xd#2 line_ydxi::x#5 line_ydxi::y#6 line_ydxi::yd#5 line_ydxi::y1#6 ] )
|
||||
[91] (byte) line_ydxi::yd#5 ← phi( line::@13/(byte) line_ydxi::yd#1 line::@3/(byte) line_ydxi::yd#0 ) [ line_ydxi::xd#2 line_ydxi::x#5 line_ydxi::y#6 line_ydxi::yd#5 line_ydxi::y1#6 ] ( main:2::lines:12::line:25::line_ydxi:46 [ lines::l#2 line_ydxi::xd#2 line_ydxi::x#5 line_ydxi::y#6 line_ydxi::yd#5 line_ydxi::y1#6 ] main:2::lines:12::line:25::line_ydxi:90 [ lines::l#2 line_ydxi::xd#2 line_ydxi::x#5 line_ydxi::y#6 line_ydxi::yd#5 line_ydxi::y1#6 ] )
|
||||
[91] (byte) line_ydxi::y#6 ← phi( line::@13/(byte) line_ydxi::y#1 line::@3/(byte) line_ydxi::y#0 ) [ line_ydxi::xd#2 line_ydxi::x#5 line_ydxi::y#6 line_ydxi::yd#5 line_ydxi::y1#6 ] ( main:2::lines:12::line:25::line_ydxi:46 [ lines::l#2 line_ydxi::xd#2 line_ydxi::x#5 line_ydxi::y#6 line_ydxi::yd#5 line_ydxi::y1#6 ] main:2::lines:12::line:25::line_ydxi:90 [ lines::l#2 line_ydxi::xd#2 line_ydxi::x#5 line_ydxi::y#6 line_ydxi::yd#5 line_ydxi::y1#6 ] )
|
||||
[91] (byte) line_ydxi::x#5 ← phi( line::@13/(byte) line_ydxi::x#1 line::@3/(byte) line_ydxi::x#0 ) [ line_ydxi::xd#2 line_ydxi::x#5 line_ydxi::y#6 line_ydxi::yd#5 line_ydxi::y1#6 ] ( main:2::lines:12::line:25::line_ydxi:46 [ lines::l#2 line_ydxi::xd#2 line_ydxi::x#5 line_ydxi::y#6 line_ydxi::yd#5 line_ydxi::y1#6 ] main:2::lines:12::line:25::line_ydxi:90 [ lines::l#2 line_ydxi::xd#2 line_ydxi::x#5 line_ydxi::y#6 line_ydxi::yd#5 line_ydxi::y1#6 ] )
|
||||
[91] (byte) line_ydxi::xd#2 ← phi( line::@13/(byte) line_ydxi::xd#1 line::@3/(byte) line_ydxi::xd#0 ) [ line_ydxi::xd#2 line_ydxi::x#5 line_ydxi::y#6 line_ydxi::yd#5 line_ydxi::y1#6 ] ( main:2::lines:12::line:25::line_ydxi:46 [ lines::l#2 line_ydxi::xd#2 line_ydxi::x#5 line_ydxi::y#6 line_ydxi::yd#5 line_ydxi::y1#6 ] main:2::lines:12::line:25::line_ydxi:90 [ lines::l#2 line_ydxi::xd#2 line_ydxi::x#5 line_ydxi::y#6 line_ydxi::yd#5 line_ydxi::y1#6 ] )
|
||||
[92] (byte) line_ydxi::e#0 ← (byte) line_ydxi::xd#2 >> (byte/signed byte/word/signed word) 1 [ line_ydxi::xd#2 line_ydxi::x#5 line_ydxi::y#6 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::e#0 ] ( main:2::lines:12::line:25::line_ydxi:46 [ lines::l#2 line_ydxi::xd#2 line_ydxi::x#5 line_ydxi::y#6 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::e#0 ] main:2::lines:12::line:25::line_ydxi:90 [ lines::l#2 line_ydxi::xd#2 line_ydxi::x#5 line_ydxi::y#6 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::e#0 ] )
|
||||
[87] (byte) line_ydxi::y1#6 ← phi( line::@13/(byte) line_ydxi::y1#1 line::@3/(byte) line_ydxi::y1#0 ) [ line_ydxi::xd#2 line_ydxi::x#5 line_ydxi::y#6 line_ydxi::yd#5 line_ydxi::y1#6 ] ( main:2::lines:12::line:21::line_ydxi:42 [ lines::l#2 line_ydxi::xd#2 line_ydxi::x#5 line_ydxi::y#6 line_ydxi::yd#5 line_ydxi::y1#6 ] main:2::lines:12::line:21::line_ydxi:86 [ lines::l#2 line_ydxi::xd#2 line_ydxi::x#5 line_ydxi::y#6 line_ydxi::yd#5 line_ydxi::y1#6 ] )
|
||||
[87] (byte) line_ydxi::yd#5 ← phi( line::@13/(byte) line_ydxi::yd#1 line::@3/(byte) line_ydxi::yd#0 ) [ line_ydxi::xd#2 line_ydxi::x#5 line_ydxi::y#6 line_ydxi::yd#5 line_ydxi::y1#6 ] ( main:2::lines:12::line:21::line_ydxi:42 [ lines::l#2 line_ydxi::xd#2 line_ydxi::x#5 line_ydxi::y#6 line_ydxi::yd#5 line_ydxi::y1#6 ] main:2::lines:12::line:21::line_ydxi:86 [ lines::l#2 line_ydxi::xd#2 line_ydxi::x#5 line_ydxi::y#6 line_ydxi::yd#5 line_ydxi::y1#6 ] )
|
||||
[87] (byte) line_ydxi::y#6 ← phi( line::@13/(byte) line_ydxi::y#1 line::@3/(byte) line_ydxi::y#0 ) [ line_ydxi::xd#2 line_ydxi::x#5 line_ydxi::y#6 line_ydxi::yd#5 line_ydxi::y1#6 ] ( main:2::lines:12::line:21::line_ydxi:42 [ lines::l#2 line_ydxi::xd#2 line_ydxi::x#5 line_ydxi::y#6 line_ydxi::yd#5 line_ydxi::y1#6 ] main:2::lines:12::line:21::line_ydxi:86 [ lines::l#2 line_ydxi::xd#2 line_ydxi::x#5 line_ydxi::y#6 line_ydxi::yd#5 line_ydxi::y1#6 ] )
|
||||
[87] (byte) line_ydxi::x#5 ← phi( line::@13/(byte) line_ydxi::x#1 line::@3/(byte) line_ydxi::x#0 ) [ line_ydxi::xd#2 line_ydxi::x#5 line_ydxi::y#6 line_ydxi::yd#5 line_ydxi::y1#6 ] ( main:2::lines:12::line:21::line_ydxi:42 [ lines::l#2 line_ydxi::xd#2 line_ydxi::x#5 line_ydxi::y#6 line_ydxi::yd#5 line_ydxi::y1#6 ] main:2::lines:12::line:21::line_ydxi:86 [ lines::l#2 line_ydxi::xd#2 line_ydxi::x#5 line_ydxi::y#6 line_ydxi::yd#5 line_ydxi::y1#6 ] )
|
||||
[87] (byte) line_ydxi::xd#2 ← phi( line::@13/(byte) line_ydxi::xd#1 line::@3/(byte) line_ydxi::xd#0 ) [ line_ydxi::xd#2 line_ydxi::x#5 line_ydxi::y#6 line_ydxi::yd#5 line_ydxi::y1#6 ] ( main:2::lines:12::line:21::line_ydxi:42 [ lines::l#2 line_ydxi::xd#2 line_ydxi::x#5 line_ydxi::y#6 line_ydxi::yd#5 line_ydxi::y1#6 ] main:2::lines:12::line:21::line_ydxi:86 [ lines::l#2 line_ydxi::xd#2 line_ydxi::x#5 line_ydxi::y#6 line_ydxi::yd#5 line_ydxi::y1#6 ] )
|
||||
[88] (byte) line_ydxi::e#0 ← (byte) line_ydxi::xd#2 >> (byte/signed byte/word/signed word) 1 [ line_ydxi::xd#2 line_ydxi::x#5 line_ydxi::y#6 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::e#0 ] ( main:2::lines:12::line:21::line_ydxi:42 [ lines::l#2 line_ydxi::xd#2 line_ydxi::x#5 line_ydxi::y#6 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::e#0 ] main:2::lines:12::line:21::line_ydxi:86 [ lines::l#2 line_ydxi::xd#2 line_ydxi::x#5 line_ydxi::y#6 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::e#0 ] )
|
||||
to:line_ydxi::@1
|
||||
line_ydxi::@1: scope:[line_ydxi] from line_ydxi line_ydxi::@2
|
||||
[93] (byte) line_ydxi::e#3 ← phi( line_ydxi/(byte) line_ydxi::e#0 line_ydxi::@2/(byte) line_ydxi::e#6 ) [ line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 ] ( main:2::lines:12::line:25::line_ydxi:46 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 ] main:2::lines:12::line:25::line_ydxi:90 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 ] )
|
||||
[93] (byte) line_ydxi::y#3 ← phi( line_ydxi/(byte) line_ydxi::y#6 line_ydxi::@2/(byte) line_ydxi::y#2 ) [ line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 ] ( main:2::lines:12::line:25::line_ydxi:46 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 ] main:2::lines:12::line:25::line_ydxi:90 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 ] )
|
||||
[93] (byte) line_ydxi::x#3 ← phi( line_ydxi/(byte) line_ydxi::x#5 line_ydxi::@2/(byte) line_ydxi::x#6 ) [ line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 ] ( main:2::lines:12::line:25::line_ydxi:46 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 ] main:2::lines:12::line:25::line_ydxi:90 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 ] )
|
||||
[94] (byte) plot::x#2 ← (byte) line_ydxi::x#3 [ line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#2 ] ( main:2::lines:12::line:25::line_ydxi:46 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#2 ] main:2::lines:12::line:25::line_ydxi:90 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#2 ] )
|
||||
[95] (byte) plot::y#2 ← (byte) line_ydxi::y#3 [ line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#2 plot::y#2 ] ( main:2::lines:12::line:25::line_ydxi:46 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#2 plot::y#2 ] main:2::lines:12::line:25::line_ydxi:90 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#2 plot::y#2 ] )
|
||||
[96] call plot param-assignment [ line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 ] ( main:2::lines:12::line:25::line_ydxi:46 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 ] main:2::lines:12::line:25::line_ydxi:90 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 ] )
|
||||
[89] (byte) line_ydxi::e#3 ← phi( line_ydxi/(byte) line_ydxi::e#0 line_ydxi::@2/(byte) line_ydxi::e#6 ) [ line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 ] ( main:2::lines:12::line:21::line_ydxi:42 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 ] main:2::lines:12::line:21::line_ydxi:86 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 ] )
|
||||
[89] (byte) line_ydxi::y#3 ← phi( line_ydxi/(byte) line_ydxi::y#6 line_ydxi::@2/(byte) line_ydxi::y#2 ) [ line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 ] ( main:2::lines:12::line:21::line_ydxi:42 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 ] main:2::lines:12::line:21::line_ydxi:86 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 ] )
|
||||
[89] (byte) line_ydxi::x#3 ← phi( line_ydxi/(byte) line_ydxi::x#5 line_ydxi::@2/(byte) line_ydxi::x#6 ) [ line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 ] ( main:2::lines:12::line:21::line_ydxi:42 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 ] main:2::lines:12::line:21::line_ydxi:86 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 ] )
|
||||
[90] (byte) plot::x#2 ← (byte) line_ydxi::x#3 [ line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#2 ] ( main:2::lines:12::line:21::line_ydxi:42 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#2 ] main:2::lines:12::line:21::line_ydxi:86 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#2 ] )
|
||||
[91] (byte) plot::y#2 ← (byte) line_ydxi::y#3 [ line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#2 plot::y#2 ] ( main:2::lines:12::line:21::line_ydxi:42 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#2 plot::y#2 ] main:2::lines:12::line:21::line_ydxi:86 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#2 plot::y#2 ] )
|
||||
[92] call plot param-assignment [ line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 ] ( main:2::lines:12::line:21::line_ydxi:42 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 ] main:2::lines:12::line:21::line_ydxi:86 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 ] )
|
||||
to:line_ydxi::@5
|
||||
line_ydxi::@5: scope:[line_ydxi] from line_ydxi::@1
|
||||
[97] (byte) line_ydxi::y#2 ← (byte) line_ydxi::y#3 + (byte/signed byte/word/signed word) 1 [ line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::e#3 line_ydxi::y#2 ] ( main:2::lines:12::line:25::line_ydxi:46 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::e#3 line_ydxi::y#2 ] main:2::lines:12::line:25::line_ydxi:90 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::e#3 line_ydxi::y#2 ] )
|
||||
[98] (byte) line_ydxi::e#1 ← (byte) line_ydxi::e#3 + (byte) line_ydxi::xd#2 [ line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#2 line_ydxi::e#1 ] ( main:2::lines:12::line:25::line_ydxi:46 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#2 line_ydxi::e#1 ] main:2::lines:12::line:25::line_ydxi:90 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#2 line_ydxi::e#1 ] )
|
||||
[99] if((byte) line_ydxi::yd#5>=(byte) line_ydxi::e#1) goto line_ydxi::@2 [ line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#2 line_ydxi::e#1 ] ( main:2::lines:12::line:25::line_ydxi:46 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#2 line_ydxi::e#1 ] main:2::lines:12::line:25::line_ydxi:90 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#2 line_ydxi::e#1 ] )
|
||||
[93] (byte) line_ydxi::y#2 ← (byte) line_ydxi::y#3 + (byte/signed byte/word/signed word) 1 [ line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::e#3 line_ydxi::y#2 ] ( main:2::lines:12::line:21::line_ydxi:42 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::e#3 line_ydxi::y#2 ] main:2::lines:12::line:21::line_ydxi:86 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::e#3 line_ydxi::y#2 ] )
|
||||
[94] (byte) line_ydxi::e#1 ← (byte) line_ydxi::e#3 + (byte) line_ydxi::xd#2 [ line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#2 line_ydxi::e#1 ] ( main:2::lines:12::line:21::line_ydxi:42 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#2 line_ydxi::e#1 ] main:2::lines:12::line:21::line_ydxi:86 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#2 line_ydxi::e#1 ] )
|
||||
[95] if((byte) line_ydxi::yd#5>=(byte) line_ydxi::e#1) goto line_ydxi::@2 [ line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#2 line_ydxi::e#1 ] ( main:2::lines:12::line:21::line_ydxi:42 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#2 line_ydxi::e#1 ] main:2::lines:12::line:21::line_ydxi:86 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#2 line_ydxi::e#1 ] )
|
||||
to:line_ydxi::@3
|
||||
line_ydxi::@3: scope:[line_ydxi] from line_ydxi::@5
|
||||
[100] (byte) line_ydxi::x#2 ← (byte) line_ydxi::x#3 + (byte/signed byte/word/signed word) 1 [ line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::y#2 line_ydxi::e#1 line_ydxi::x#2 ] ( main:2::lines:12::line:25::line_ydxi:46 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::y#2 line_ydxi::e#1 line_ydxi::x#2 ] main:2::lines:12::line:25::line_ydxi:90 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::y#2 line_ydxi::e#1 line_ydxi::x#2 ] )
|
||||
[101] (byte) line_ydxi::e#2 ← (byte) line_ydxi::e#1 - (byte) line_ydxi::yd#5 [ line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::y#2 line_ydxi::x#2 line_ydxi::e#2 ] ( main:2::lines:12::line:25::line_ydxi:46 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::y#2 line_ydxi::x#2 line_ydxi::e#2 ] main:2::lines:12::line:25::line_ydxi:90 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::y#2 line_ydxi::x#2 line_ydxi::e#2 ] )
|
||||
[96] (byte) line_ydxi::x#2 ← (byte) line_ydxi::x#3 + (byte/signed byte/word/signed word) 1 [ line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::y#2 line_ydxi::e#1 line_ydxi::x#2 ] ( main:2::lines:12::line:21::line_ydxi:42 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::y#2 line_ydxi::e#1 line_ydxi::x#2 ] main:2::lines:12::line:21::line_ydxi:86 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::y#2 line_ydxi::e#1 line_ydxi::x#2 ] )
|
||||
[97] (byte) line_ydxi::e#2 ← (byte) line_ydxi::e#1 - (byte) line_ydxi::yd#5 [ line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::y#2 line_ydxi::x#2 line_ydxi::e#2 ] ( main:2::lines:12::line:21::line_ydxi:42 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::y#2 line_ydxi::x#2 line_ydxi::e#2 ] main:2::lines:12::line:21::line_ydxi:86 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::y#2 line_ydxi::x#2 line_ydxi::e#2 ] )
|
||||
to:line_ydxi::@2
|
||||
line_ydxi::@2: scope:[line_ydxi] from line_ydxi::@3 line_ydxi::@5
|
||||
[102] (byte) line_ydxi::e#6 ← phi( line_ydxi::@3/(byte) line_ydxi::e#2 line_ydxi::@5/(byte) line_ydxi::e#1 ) [ line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#6 line_ydxi::y#2 line_ydxi::e#6 ] ( main:2::lines:12::line:25::line_ydxi:46 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#6 line_ydxi::y#2 line_ydxi::e#6 ] main:2::lines:12::line:25::line_ydxi:90 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#6 line_ydxi::y#2 line_ydxi::e#6 ] )
|
||||
[102] (byte) line_ydxi::x#6 ← phi( line_ydxi::@3/(byte) line_ydxi::x#2 line_ydxi::@5/(byte) line_ydxi::x#3 ) [ line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#6 line_ydxi::y#2 line_ydxi::e#6 ] ( main:2::lines:12::line:25::line_ydxi:46 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#6 line_ydxi::y#2 line_ydxi::e#6 ] main:2::lines:12::line:25::line_ydxi:90 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#6 line_ydxi::y#2 line_ydxi::e#6 ] )
|
||||
[103] (byte~) line_ydxi::$8 ← (byte) line_ydxi::y1#6 + (byte/signed byte/word/signed word) 1 [ line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#6 line_ydxi::y#2 line_ydxi::e#6 line_ydxi::$8 ] ( main:2::lines:12::line:25::line_ydxi:46 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#6 line_ydxi::y#2 line_ydxi::e#6 line_ydxi::$8 ] main:2::lines:12::line:25::line_ydxi:90 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#6 line_ydxi::y#2 line_ydxi::e#6 line_ydxi::$8 ] )
|
||||
[104] if((byte) line_ydxi::y#2<(byte~) line_ydxi::$8) goto line_ydxi::@1 [ line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#6 line_ydxi::y#2 line_ydxi::e#6 ] ( main:2::lines:12::line:25::line_ydxi:46 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#6 line_ydxi::y#2 line_ydxi::e#6 ] main:2::lines:12::line:25::line_ydxi:90 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#6 line_ydxi::y#2 line_ydxi::e#6 ] )
|
||||
[98] (byte) line_ydxi::e#6 ← phi( line_ydxi::@3/(byte) line_ydxi::e#2 line_ydxi::@5/(byte) line_ydxi::e#1 ) [ line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#6 line_ydxi::y#2 line_ydxi::e#6 ] ( main:2::lines:12::line:21::line_ydxi:42 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#6 line_ydxi::y#2 line_ydxi::e#6 ] main:2::lines:12::line:21::line_ydxi:86 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#6 line_ydxi::y#2 line_ydxi::e#6 ] )
|
||||
[98] (byte) line_ydxi::x#6 ← phi( line_ydxi::@3/(byte) line_ydxi::x#2 line_ydxi::@5/(byte) line_ydxi::x#3 ) [ line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#6 line_ydxi::y#2 line_ydxi::e#6 ] ( main:2::lines:12::line:21::line_ydxi:42 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#6 line_ydxi::y#2 line_ydxi::e#6 ] main:2::lines:12::line:21::line_ydxi:86 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#6 line_ydxi::y#2 line_ydxi::e#6 ] )
|
||||
[99] (byte~) line_ydxi::$8 ← (byte) line_ydxi::y1#6 + (byte/signed byte/word/signed word) 1 [ line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#6 line_ydxi::y#2 line_ydxi::e#6 line_ydxi::$8 ] ( main:2::lines:12::line:21::line_ydxi:42 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#6 line_ydxi::y#2 line_ydxi::e#6 line_ydxi::$8 ] main:2::lines:12::line:21::line_ydxi:86 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#6 line_ydxi::y#2 line_ydxi::e#6 line_ydxi::$8 ] )
|
||||
[100] if((byte) line_ydxi::y#2<(byte~) line_ydxi::$8) goto line_ydxi::@1 [ line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#6 line_ydxi::y#2 line_ydxi::e#6 ] ( main:2::lines:12::line:21::line_ydxi:42 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#6 line_ydxi::y#2 line_ydxi::e#6 ] main:2::lines:12::line:21::line_ydxi:86 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#6 line_ydxi::y#2 line_ydxi::e#6 ] )
|
||||
to:line_ydxi::@return
|
||||
line_ydxi::@return: scope:[line_ydxi] from line_ydxi::@2
|
||||
[105] return [ ] ( main:2::lines:12::line:25::line_ydxi:46 [ lines::l#2 ] main:2::lines:12::line:25::line_ydxi:90 [ lines::l#2 ] )
|
||||
[101] return [ ] ( main:2::lines:12::line:21::line_ydxi:42 [ lines::l#2 ] main:2::lines:12::line:21::line_ydxi:86 [ lines::l#2 ] )
|
||||
to:@return
|
||||
plot: scope:[plot] from line_xdyd::@1 line_xdyi::@1 line_ydxd::@1 line_ydxi::@1
|
||||
[106] (byte) plot::y#4 ← phi( line_xdyd::@1/(byte) plot::y#1 line_xdyi::@1/(byte) plot::y#0 line_ydxd::@1/(byte) plot::y#3 line_ydxi::@1/(byte) plot::y#2 ) [ plot::x#4 plot::y#4 ] ( main:2::lines:12::line:25::line_ydxi:46::plot:96 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::y#4 ] main:2::lines:12::line:25::line_ydxi:90::plot:96 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::y#4 ] main:2::lines:12::line:25::line_xdyi:39::plot:125 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::y#4 ] main:2::lines:12::line:25::line_xdyi:84::plot:125 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::y#4 ] main:2::lines:12::line:25::line_ydxd:60::plot:140 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::y#4 ] main:2::lines:12::line:25::line_ydxd:76::plot:140 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::y#4 ] main:2::lines:12::line:25::line_xdyd:54::plot:155 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::y#4 ] main:2::lines:12::line:25::line_xdyd:70::plot:155 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::y#4 ] )
|
||||
[106] (byte) plot::x#4 ← phi( line_xdyd::@1/(byte) plot::x#1 line_xdyi::@1/(byte) plot::x#0 line_ydxd::@1/(byte) plot::x#3 line_ydxi::@1/(byte) plot::x#2 ) [ plot::x#4 plot::y#4 ] ( main:2::lines:12::line:25::line_ydxi:46::plot:96 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::y#4 ] main:2::lines:12::line:25::line_ydxi:90::plot:96 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::y#4 ] main:2::lines:12::line:25::line_xdyi:39::plot:125 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::y#4 ] main:2::lines:12::line:25::line_xdyi:84::plot:125 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::y#4 ] main:2::lines:12::line:25::line_ydxd:60::plot:140 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::y#4 ] main:2::lines:12::line:25::line_ydxd:76::plot:140 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::y#4 ] main:2::lines:12::line:25::line_xdyd:54::plot:155 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::y#4 ] main:2::lines:12::line:25::line_xdyd:70::plot:155 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::y#4 ] )
|
||||
[107] (byte~) plot::$0 ← (const byte[]) plot_xhi#0 *idx (byte) plot::x#4 [ plot::x#4 plot::y#4 plot::$0 ] ( main:2::lines:12::line:25::line_ydxi:46::plot:96 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::y#4 plot::$0 ] main:2::lines:12::line:25::line_ydxi:90::plot:96 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::y#4 plot::$0 ] main:2::lines:12::line:25::line_xdyi:39::plot:125 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::y#4 plot::$0 ] main:2::lines:12::line:25::line_xdyi:84::plot:125 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::y#4 plot::$0 ] main:2::lines:12::line:25::line_ydxd:60::plot:140 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::y#4 plot::$0 ] main:2::lines:12::line:25::line_ydxd:76::plot:140 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::y#4 plot::$0 ] main:2::lines:12::line:25::line_xdyd:54::plot:155 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::y#4 plot::$0 ] main:2::lines:12::line:25::line_xdyd:70::plot:155 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::y#4 plot::$0 ] )
|
||||
[108] (byte*) plot::plotter_x#1 ← ((byte*))(byte/signed byte/word/signed word) 0 hi= (byte~) plot::$0 [ plot::x#4 plot::y#4 plot::plotter_x#1 ] ( main:2::lines:12::line:25::line_ydxi:46::plot:96 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 ] main:2::lines:12::line:25::line_ydxi:90::plot:96 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 ] main:2::lines:12::line:25::line_xdyi:39::plot:125 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 ] main:2::lines:12::line:25::line_xdyi:84::plot:125 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 ] main:2::lines:12::line:25::line_ydxd:60::plot:140 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 ] main:2::lines:12::line:25::line_ydxd:76::plot:140 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 ] main:2::lines:12::line:25::line_xdyd:54::plot:155 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 ] main:2::lines:12::line:25::line_xdyd:70::plot:155 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 ] )
|
||||
[109] (byte~) plot::$1 ← (const byte[]) plot_xlo#0 *idx (byte) plot::x#4 [ plot::x#4 plot::y#4 plot::plotter_x#1 plot::$1 ] ( main:2::lines:12::line:25::line_ydxi:46::plot:96 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 plot::$1 ] main:2::lines:12::line:25::line_ydxi:90::plot:96 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 plot::$1 ] main:2::lines:12::line:25::line_xdyi:39::plot:125 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 plot::$1 ] main:2::lines:12::line:25::line_xdyi:84::plot:125 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 plot::$1 ] main:2::lines:12::line:25::line_ydxd:60::plot:140 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 plot::$1 ] main:2::lines:12::line:25::line_ydxd:76::plot:140 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 plot::$1 ] main:2::lines:12::line:25::line_xdyd:54::plot:155 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 plot::$1 ] main:2::lines:12::line:25::line_xdyd:70::plot:155 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 plot::$1 ] )
|
||||
[110] (byte*) plot::plotter_x#2 ← (byte*) plot::plotter_x#1 lo= (byte~) plot::$1 [ plot::x#4 plot::y#4 plot::plotter_x#2 ] ( main:2::lines:12::line:25::line_ydxi:46::plot:96 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 ] main:2::lines:12::line:25::line_ydxi:90::plot:96 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 ] main:2::lines:12::line:25::line_xdyi:39::plot:125 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 ] main:2::lines:12::line:25::line_xdyi:84::plot:125 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 ] main:2::lines:12::line:25::line_ydxd:60::plot:140 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 ] main:2::lines:12::line:25::line_ydxd:76::plot:140 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 ] main:2::lines:12::line:25::line_xdyd:54::plot:155 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 ] main:2::lines:12::line:25::line_xdyd:70::plot:155 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 ] )
|
||||
[111] (byte~) plot::$2 ← (const byte[]) plot_yhi#0 *idx (byte) plot::y#4 [ plot::x#4 plot::y#4 plot::plotter_x#2 plot::$2 ] ( main:2::lines:12::line:25::line_ydxi:46::plot:96 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 plot::$2 ] main:2::lines:12::line:25::line_ydxi:90::plot:96 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 plot::$2 ] main:2::lines:12::line:25::line_xdyi:39::plot:125 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 plot::$2 ] main:2::lines:12::line:25::line_xdyi:84::plot:125 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 plot::$2 ] main:2::lines:12::line:25::line_ydxd:60::plot:140 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 plot::$2 ] main:2::lines:12::line:25::line_ydxd:76::plot:140 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 plot::$2 ] main:2::lines:12::line:25::line_xdyd:54::plot:155 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 plot::$2 ] main:2::lines:12::line:25::line_xdyd:70::plot:155 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 plot::$2 ] )
|
||||
[112] (word) plot::plotter_y#1 ← (byte/signed byte/word/signed word) 0 hi= (byte~) plot::$2 [ plot::x#4 plot::y#4 plot::plotter_x#2 plot::plotter_y#1 ] ( main:2::lines:12::line:25::line_ydxi:46::plot:96 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 plot::plotter_y#1 ] main:2::lines:12::line:25::line_ydxi:90::plot:96 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 plot::plotter_y#1 ] main:2::lines:12::line:25::line_xdyi:39::plot:125 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 plot::plotter_y#1 ] main:2::lines:12::line:25::line_xdyi:84::plot:125 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 plot::plotter_y#1 ] main:2::lines:12::line:25::line_ydxd:60::plot:140 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 plot::plotter_y#1 ] main:2::lines:12::line:25::line_ydxd:76::plot:140 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 plot::plotter_y#1 ] main:2::lines:12::line:25::line_xdyd:54::plot:155 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 plot::plotter_y#1 ] main:2::lines:12::line:25::line_xdyd:70::plot:155 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 plot::plotter_y#1 ] )
|
||||
[113] (byte~) plot::$3 ← (const byte[]) plot_ylo#0 *idx (byte) plot::y#4 [ plot::x#4 plot::plotter_x#2 plot::plotter_y#1 plot::$3 ] ( main:2::lines:12::line:25::line_ydxi:46::plot:96 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::plotter_x#2 plot::plotter_y#1 plot::$3 ] main:2::lines:12::line:25::line_ydxi:90::plot:96 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::plotter_x#2 plot::plotter_y#1 plot::$3 ] main:2::lines:12::line:25::line_xdyi:39::plot:125 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::plotter_x#2 plot::plotter_y#1 plot::$3 ] main:2::lines:12::line:25::line_xdyi:84::plot:125 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::plotter_x#2 plot::plotter_y#1 plot::$3 ] main:2::lines:12::line:25::line_ydxd:60::plot:140 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::plotter_x#2 plot::plotter_y#1 plot::$3 ] main:2::lines:12::line:25::line_ydxd:76::plot:140 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::plotter_x#2 plot::plotter_y#1 plot::$3 ] main:2::lines:12::line:25::line_xdyd:54::plot:155 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::plotter_x#2 plot::plotter_y#1 plot::$3 ] main:2::lines:12::line:25::line_xdyd:70::plot:155 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::plotter_x#2 plot::plotter_y#1 plot::$3 ] )
|
||||
[114] (word) plot::plotter_y#2 ← (word) plot::plotter_y#1 lo= (byte~) plot::$3 [ plot::x#4 plot::plotter_x#2 plot::plotter_y#2 ] ( main:2::lines:12::line:25::line_ydxi:46::plot:96 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::plotter_x#2 plot::plotter_y#2 ] main:2::lines:12::line:25::line_ydxi:90::plot:96 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::plotter_x#2 plot::plotter_y#2 ] main:2::lines:12::line:25::line_xdyi:39::plot:125 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::plotter_x#2 plot::plotter_y#2 ] main:2::lines:12::line:25::line_xdyi:84::plot:125 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::plotter_x#2 plot::plotter_y#2 ] main:2::lines:12::line:25::line_ydxd:60::plot:140 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::plotter_x#2 plot::plotter_y#2 ] main:2::lines:12::line:25::line_ydxd:76::plot:140 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::plotter_x#2 plot::plotter_y#2 ] main:2::lines:12::line:25::line_xdyd:54::plot:155 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::plotter_x#2 plot::plotter_y#2 ] main:2::lines:12::line:25::line_xdyd:70::plot:155 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::plotter_x#2 plot::plotter_y#2 ] )
|
||||
[115] (byte*) plot::plotter#0 ← (byte*) plot::plotter_x#2 + (word) plot::plotter_y#2 [ plot::x#4 plot::plotter#0 ] ( main:2::lines:12::line:25::line_ydxi:46::plot:96 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::plotter#0 ] main:2::lines:12::line:25::line_ydxi:90::plot:96 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::plotter#0 ] main:2::lines:12::line:25::line_xdyi:39::plot:125 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::plotter#0 ] main:2::lines:12::line:25::line_xdyi:84::plot:125 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::plotter#0 ] main:2::lines:12::line:25::line_ydxd:60::plot:140 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::plotter#0 ] main:2::lines:12::line:25::line_ydxd:76::plot:140 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::plotter#0 ] main:2::lines:12::line:25::line_xdyd:54::plot:155 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::plotter#0 ] main:2::lines:12::line:25::line_xdyd:70::plot:155 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::plotter#0 ] )
|
||||
[116] (byte~) plot::$5 ← (const byte[]) plot_bit#0 *idx (byte) plot::x#4 [ plot::plotter#0 plot::$5 ] ( main:2::lines:12::line:25::line_ydxi:46::plot:96 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::plotter#0 plot::$5 ] main:2::lines:12::line:25::line_ydxi:90::plot:96 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::plotter#0 plot::$5 ] main:2::lines:12::line:25::line_xdyi:39::plot:125 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::plotter#0 plot::$5 ] main:2::lines:12::line:25::line_xdyi:84::plot:125 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::plotter#0 plot::$5 ] main:2::lines:12::line:25::line_ydxd:60::plot:140 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::plotter#0 plot::$5 ] main:2::lines:12::line:25::line_ydxd:76::plot:140 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::plotter#0 plot::$5 ] main:2::lines:12::line:25::line_xdyd:54::plot:155 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::plotter#0 plot::$5 ] main:2::lines:12::line:25::line_xdyd:70::plot:155 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::plotter#0 plot::$5 ] )
|
||||
[117] (byte~) plot::$6 ← *((byte*) plot::plotter#0) | (byte~) plot::$5 [ plot::plotter#0 plot::$6 ] ( main:2::lines:12::line:25::line_ydxi:46::plot:96 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::plotter#0 plot::$6 ] main:2::lines:12::line:25::line_ydxi:90::plot:96 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::plotter#0 plot::$6 ] main:2::lines:12::line:25::line_xdyi:39::plot:125 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::plotter#0 plot::$6 ] main:2::lines:12::line:25::line_xdyi:84::plot:125 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::plotter#0 plot::$6 ] main:2::lines:12::line:25::line_ydxd:60::plot:140 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::plotter#0 plot::$6 ] main:2::lines:12::line:25::line_ydxd:76::plot:140 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::plotter#0 plot::$6 ] main:2::lines:12::line:25::line_xdyd:54::plot:155 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::plotter#0 plot::$6 ] main:2::lines:12::line:25::line_xdyd:70::plot:155 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::plotter#0 plot::$6 ] )
|
||||
[118] *((byte*) plot::plotter#0) ← (byte~) plot::$6 [ ] ( main:2::lines:12::line:25::line_ydxi:46::plot:96 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 ] main:2::lines:12::line:25::line_ydxi:90::plot:96 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 ] main:2::lines:12::line:25::line_xdyi:39::plot:125 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 ] main:2::lines:12::line:25::line_xdyi:84::plot:125 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 ] main:2::lines:12::line:25::line_ydxd:60::plot:140 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 ] main:2::lines:12::line:25::line_ydxd:76::plot:140 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 ] main:2::lines:12::line:25::line_xdyd:54::plot:155 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 ] main:2::lines:12::line:25::line_xdyd:70::plot:155 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 ] )
|
||||
[102] (byte) plot::y#4 ← phi( line_xdyd::@1/(byte) plot::y#1 line_xdyi::@1/(byte) plot::y#0 line_ydxd::@1/(byte) plot::y#3 line_ydxi::@1/(byte) plot::y#2 ) [ plot::x#4 plot::y#4 ] ( main:2::lines:12::line:21::line_ydxi:42::plot:92 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::y#4 ] main:2::lines:12::line:21::line_ydxi:86::plot:92 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::y#4 ] main:2::lines:12::line:21::line_xdyi:35::plot:121 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::y#4 ] main:2::lines:12::line:21::line_xdyi:80::plot:121 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::y#4 ] main:2::lines:12::line:21::line_ydxd:56::plot:136 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::y#4 ] main:2::lines:12::line:21::line_ydxd:72::plot:136 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::y#4 ] main:2::lines:12::line:21::line_xdyd:50::plot:151 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::y#4 ] main:2::lines:12::line:21::line_xdyd:66::plot:151 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::y#4 ] )
|
||||
[102] (byte) plot::x#4 ← phi( line_xdyd::@1/(byte) plot::x#1 line_xdyi::@1/(byte) plot::x#0 line_ydxd::@1/(byte) plot::x#3 line_ydxi::@1/(byte) plot::x#2 ) [ plot::x#4 plot::y#4 ] ( main:2::lines:12::line:21::line_ydxi:42::plot:92 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::y#4 ] main:2::lines:12::line:21::line_ydxi:86::plot:92 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::y#4 ] main:2::lines:12::line:21::line_xdyi:35::plot:121 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::y#4 ] main:2::lines:12::line:21::line_xdyi:80::plot:121 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::y#4 ] main:2::lines:12::line:21::line_ydxd:56::plot:136 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::y#4 ] main:2::lines:12::line:21::line_ydxd:72::plot:136 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::y#4 ] main:2::lines:12::line:21::line_xdyd:50::plot:151 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::y#4 ] main:2::lines:12::line:21::line_xdyd:66::plot:151 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::y#4 ] )
|
||||
[103] (byte~) plot::$0 ← (const byte[]) plot_xhi#0 *idx (byte) plot::x#4 [ plot::x#4 plot::y#4 plot::$0 ] ( main:2::lines:12::line:21::line_ydxi:42::plot:92 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::y#4 plot::$0 ] main:2::lines:12::line:21::line_ydxi:86::plot:92 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::y#4 plot::$0 ] main:2::lines:12::line:21::line_xdyi:35::plot:121 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::y#4 plot::$0 ] main:2::lines:12::line:21::line_xdyi:80::plot:121 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::y#4 plot::$0 ] main:2::lines:12::line:21::line_ydxd:56::plot:136 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::y#4 plot::$0 ] main:2::lines:12::line:21::line_ydxd:72::plot:136 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::y#4 plot::$0 ] main:2::lines:12::line:21::line_xdyd:50::plot:151 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::y#4 plot::$0 ] main:2::lines:12::line:21::line_xdyd:66::plot:151 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::y#4 plot::$0 ] )
|
||||
[104] (byte*) plot::plotter_x#1 ← ((byte*))(byte/signed byte/word/signed word) 0 hi= (byte~) plot::$0 [ plot::x#4 plot::y#4 plot::plotter_x#1 ] ( main:2::lines:12::line:21::line_ydxi:42::plot:92 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 ] main:2::lines:12::line:21::line_ydxi:86::plot:92 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 ] main:2::lines:12::line:21::line_xdyi:35::plot:121 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 ] main:2::lines:12::line:21::line_xdyi:80::plot:121 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 ] main:2::lines:12::line:21::line_ydxd:56::plot:136 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 ] main:2::lines:12::line:21::line_ydxd:72::plot:136 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 ] main:2::lines:12::line:21::line_xdyd:50::plot:151 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 ] main:2::lines:12::line:21::line_xdyd:66::plot:151 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 ] )
|
||||
[105] (byte~) plot::$1 ← (const byte[]) plot_xlo#0 *idx (byte) plot::x#4 [ plot::x#4 plot::y#4 plot::plotter_x#1 plot::$1 ] ( main:2::lines:12::line:21::line_ydxi:42::plot:92 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 plot::$1 ] main:2::lines:12::line:21::line_ydxi:86::plot:92 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 plot::$1 ] main:2::lines:12::line:21::line_xdyi:35::plot:121 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 plot::$1 ] main:2::lines:12::line:21::line_xdyi:80::plot:121 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 plot::$1 ] main:2::lines:12::line:21::line_ydxd:56::plot:136 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 plot::$1 ] main:2::lines:12::line:21::line_ydxd:72::plot:136 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 plot::$1 ] main:2::lines:12::line:21::line_xdyd:50::plot:151 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 plot::$1 ] main:2::lines:12::line:21::line_xdyd:66::plot:151 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::y#4 plot::plotter_x#1 plot::$1 ] )
|
||||
[106] (byte*) plot::plotter_x#2 ← (byte*) plot::plotter_x#1 lo= (byte~) plot::$1 [ plot::x#4 plot::y#4 plot::plotter_x#2 ] ( main:2::lines:12::line:21::line_ydxi:42::plot:92 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 ] main:2::lines:12::line:21::line_ydxi:86::plot:92 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 ] main:2::lines:12::line:21::line_xdyi:35::plot:121 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 ] main:2::lines:12::line:21::line_xdyi:80::plot:121 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 ] main:2::lines:12::line:21::line_ydxd:56::plot:136 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 ] main:2::lines:12::line:21::line_ydxd:72::plot:136 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 ] main:2::lines:12::line:21::line_xdyd:50::plot:151 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 ] main:2::lines:12::line:21::line_xdyd:66::plot:151 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 ] )
|
||||
[107] (byte~) plot::$2 ← (const byte[]) plot_yhi#0 *idx (byte) plot::y#4 [ plot::x#4 plot::y#4 plot::plotter_x#2 plot::$2 ] ( main:2::lines:12::line:21::line_ydxi:42::plot:92 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 plot::$2 ] main:2::lines:12::line:21::line_ydxi:86::plot:92 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 plot::$2 ] main:2::lines:12::line:21::line_xdyi:35::plot:121 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 plot::$2 ] main:2::lines:12::line:21::line_xdyi:80::plot:121 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 plot::$2 ] main:2::lines:12::line:21::line_ydxd:56::plot:136 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 plot::$2 ] main:2::lines:12::line:21::line_ydxd:72::plot:136 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 plot::$2 ] main:2::lines:12::line:21::line_xdyd:50::plot:151 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 plot::$2 ] main:2::lines:12::line:21::line_xdyd:66::plot:151 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 plot::$2 ] )
|
||||
[108] (word) plot::plotter_y#1 ← (byte/signed byte/word/signed word) 0 hi= (byte~) plot::$2 [ plot::x#4 plot::y#4 plot::plotter_x#2 plot::plotter_y#1 ] ( main:2::lines:12::line:21::line_ydxi:42::plot:92 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 plot::plotter_y#1 ] main:2::lines:12::line:21::line_ydxi:86::plot:92 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 plot::plotter_y#1 ] main:2::lines:12::line:21::line_xdyi:35::plot:121 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 plot::plotter_y#1 ] main:2::lines:12::line:21::line_xdyi:80::plot:121 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 plot::plotter_y#1 ] main:2::lines:12::line:21::line_ydxd:56::plot:136 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 plot::plotter_y#1 ] main:2::lines:12::line:21::line_ydxd:72::plot:136 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 plot::plotter_y#1 ] main:2::lines:12::line:21::line_xdyd:50::plot:151 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 plot::plotter_y#1 ] main:2::lines:12::line:21::line_xdyd:66::plot:151 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::y#4 plot::plotter_x#2 plot::plotter_y#1 ] )
|
||||
[109] (byte~) plot::$3 ← (const byte[]) plot_ylo#0 *idx (byte) plot::y#4 [ plot::x#4 plot::plotter_x#2 plot::plotter_y#1 plot::$3 ] ( main:2::lines:12::line:21::line_ydxi:42::plot:92 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::plotter_x#2 plot::plotter_y#1 plot::$3 ] main:2::lines:12::line:21::line_ydxi:86::plot:92 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::plotter_x#2 plot::plotter_y#1 plot::$3 ] main:2::lines:12::line:21::line_xdyi:35::plot:121 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::plotter_x#2 plot::plotter_y#1 plot::$3 ] main:2::lines:12::line:21::line_xdyi:80::plot:121 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::plotter_x#2 plot::plotter_y#1 plot::$3 ] main:2::lines:12::line:21::line_ydxd:56::plot:136 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::plotter_x#2 plot::plotter_y#1 plot::$3 ] main:2::lines:12::line:21::line_ydxd:72::plot:136 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::plotter_x#2 plot::plotter_y#1 plot::$3 ] main:2::lines:12::line:21::line_xdyd:50::plot:151 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::plotter_x#2 plot::plotter_y#1 plot::$3 ] main:2::lines:12::line:21::line_xdyd:66::plot:151 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::plotter_x#2 plot::plotter_y#1 plot::$3 ] )
|
||||
[110] (word) plot::plotter_y#2 ← (word) plot::plotter_y#1 lo= (byte~) plot::$3 [ plot::x#4 plot::plotter_x#2 plot::plotter_y#2 ] ( main:2::lines:12::line:21::line_ydxi:42::plot:92 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::plotter_x#2 plot::plotter_y#2 ] main:2::lines:12::line:21::line_ydxi:86::plot:92 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::plotter_x#2 plot::plotter_y#2 ] main:2::lines:12::line:21::line_xdyi:35::plot:121 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::plotter_x#2 plot::plotter_y#2 ] main:2::lines:12::line:21::line_xdyi:80::plot:121 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::plotter_x#2 plot::plotter_y#2 ] main:2::lines:12::line:21::line_ydxd:56::plot:136 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::plotter_x#2 plot::plotter_y#2 ] main:2::lines:12::line:21::line_ydxd:72::plot:136 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::plotter_x#2 plot::plotter_y#2 ] main:2::lines:12::line:21::line_xdyd:50::plot:151 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::plotter_x#2 plot::plotter_y#2 ] main:2::lines:12::line:21::line_xdyd:66::plot:151 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::plotter_x#2 plot::plotter_y#2 ] )
|
||||
[111] (byte*) plot::plotter#0 ← (byte*) plot::plotter_x#2 + (word) plot::plotter_y#2 [ plot::x#4 plot::plotter#0 ] ( main:2::lines:12::line:21::line_ydxi:42::plot:92 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::plotter#0 ] main:2::lines:12::line:21::line_ydxi:86::plot:92 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::x#4 plot::plotter#0 ] main:2::lines:12::line:21::line_xdyi:35::plot:121 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::plotter#0 ] main:2::lines:12::line:21::line_xdyi:80::plot:121 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::x#4 plot::plotter#0 ] main:2::lines:12::line:21::line_ydxd:56::plot:136 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::plotter#0 ] main:2::lines:12::line:21::line_ydxd:72::plot:136 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::x#4 plot::plotter#0 ] main:2::lines:12::line:21::line_xdyd:50::plot:151 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::plotter#0 ] main:2::lines:12::line:21::line_xdyd:66::plot:151 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::x#4 plot::plotter#0 ] )
|
||||
[112] (byte~) plot::$5 ← (const byte[]) plot_bit#0 *idx (byte) plot::x#4 [ plot::plotter#0 plot::$5 ] ( main:2::lines:12::line:21::line_ydxi:42::plot:92 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::plotter#0 plot::$5 ] main:2::lines:12::line:21::line_ydxi:86::plot:92 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::plotter#0 plot::$5 ] main:2::lines:12::line:21::line_xdyi:35::plot:121 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::plotter#0 plot::$5 ] main:2::lines:12::line:21::line_xdyi:80::plot:121 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::plotter#0 plot::$5 ] main:2::lines:12::line:21::line_ydxd:56::plot:136 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::plotter#0 plot::$5 ] main:2::lines:12::line:21::line_ydxd:72::plot:136 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::plotter#0 plot::$5 ] main:2::lines:12::line:21::line_xdyd:50::plot:151 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::plotter#0 plot::$5 ] main:2::lines:12::line:21::line_xdyd:66::plot:151 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::plotter#0 plot::$5 ] )
|
||||
[113] (byte~) plot::$6 ← *((byte*) plot::plotter#0) | (byte~) plot::$5 [ plot::plotter#0 plot::$6 ] ( main:2::lines:12::line:21::line_ydxi:42::plot:92 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::plotter#0 plot::$6 ] main:2::lines:12::line:21::line_ydxi:86::plot:92 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 plot::plotter#0 plot::$6 ] main:2::lines:12::line:21::line_xdyi:35::plot:121 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::plotter#0 plot::$6 ] main:2::lines:12::line:21::line_xdyi:80::plot:121 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 plot::plotter#0 plot::$6 ] main:2::lines:12::line:21::line_ydxd:56::plot:136 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::plotter#0 plot::$6 ] main:2::lines:12::line:21::line_ydxd:72::plot:136 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 plot::plotter#0 plot::$6 ] main:2::lines:12::line:21::line_xdyd:50::plot:151 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::plotter#0 plot::$6 ] main:2::lines:12::line:21::line_xdyd:66::plot:151 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 plot::plotter#0 plot::$6 ] )
|
||||
[114] *((byte*) plot::plotter#0) ← (byte~) plot::$6 [ ] ( main:2::lines:12::line:21::line_ydxi:42::plot:92 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 ] main:2::lines:12::line:21::line_ydxi:86::plot:92 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 ] main:2::lines:12::line:21::line_xdyi:35::plot:121 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 ] main:2::lines:12::line:21::line_xdyi:80::plot:121 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 ] main:2::lines:12::line:21::line_ydxd:56::plot:136 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 ] main:2::lines:12::line:21::line_ydxd:72::plot:136 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 ] main:2::lines:12::line:21::line_xdyd:50::plot:151 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 ] main:2::lines:12::line:21::line_xdyd:66::plot:151 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 ] )
|
||||
to:plot::@return
|
||||
plot::@return: scope:[plot] from plot
|
||||
[119] return [ ] ( main:2::lines:12::line:25::line_ydxi:46::plot:96 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 ] main:2::lines:12::line:25::line_ydxi:90::plot:96 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 ] main:2::lines:12::line:25::line_xdyi:39::plot:125 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 ] main:2::lines:12::line:25::line_xdyi:84::plot:125 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 ] main:2::lines:12::line:25::line_ydxd:60::plot:140 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 ] main:2::lines:12::line:25::line_ydxd:76::plot:140 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 ] main:2::lines:12::line:25::line_xdyd:54::plot:155 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 ] main:2::lines:12::line:25::line_xdyd:70::plot:155 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 ] )
|
||||
[115] return [ ] ( main:2::lines:12::line:21::line_ydxi:42::plot:92 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 ] main:2::lines:12::line:21::line_ydxi:86::plot:92 [ lines::l#2 line_ydxi::xd#2 line_ydxi::yd#5 line_ydxi::y1#6 line_ydxi::x#3 line_ydxi::y#3 line_ydxi::e#3 ] main:2::lines:12::line:21::line_xdyi:35::plot:121 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 ] main:2::lines:12::line:21::line_xdyi:80::plot:121 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 ] main:2::lines:12::line:21::line_ydxd:56::plot:136 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 ] main:2::lines:12::line:21::line_ydxd:72::plot:136 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 ] main:2::lines:12::line:21::line_xdyd:50::plot:151 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 ] main:2::lines:12::line:21::line_xdyd:66::plot:151 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 ] )
|
||||
to:@return
|
||||
line_xdyi: scope:[line_xdyi] from line::@17 line::@27
|
||||
[120] (byte) line_xdyi::x1#6 ← phi( line::@17/(byte) line_xdyi::x1#0 line::@27/(byte) line_xdyi::x1#1 ) [ line_xdyi::yd#2 line_xdyi::x#6 line_xdyi::y#5 line_xdyi::xd#5 line_xdyi::x1#6 ] ( main:2::lines:12::line:25::line_xdyi:39 [ lines::l#2 line_xdyi::yd#2 line_xdyi::x#6 line_xdyi::y#5 line_xdyi::xd#5 line_xdyi::x1#6 ] main:2::lines:12::line:25::line_xdyi:84 [ lines::l#2 line_xdyi::yd#2 line_xdyi::x#6 line_xdyi::y#5 line_xdyi::xd#5 line_xdyi::x1#6 ] )
|
||||
[120] (byte) line_xdyi::xd#5 ← phi( line::@17/(byte) line_xdyi::xd#0 line::@27/(byte) line_xdyi::xd#1 ) [ line_xdyi::yd#2 line_xdyi::x#6 line_xdyi::y#5 line_xdyi::xd#5 line_xdyi::x1#6 ] ( main:2::lines:12::line:25::line_xdyi:39 [ lines::l#2 line_xdyi::yd#2 line_xdyi::x#6 line_xdyi::y#5 line_xdyi::xd#5 line_xdyi::x1#6 ] main:2::lines:12::line:25::line_xdyi:84 [ lines::l#2 line_xdyi::yd#2 line_xdyi::x#6 line_xdyi::y#5 line_xdyi::xd#5 line_xdyi::x1#6 ] )
|
||||
[120] (byte) line_xdyi::y#5 ← phi( line::@17/(byte) line_xdyi::y#0 line::@27/(byte) line_xdyi::y#1 ) [ line_xdyi::yd#2 line_xdyi::x#6 line_xdyi::y#5 line_xdyi::xd#5 line_xdyi::x1#6 ] ( main:2::lines:12::line:25::line_xdyi:39 [ lines::l#2 line_xdyi::yd#2 line_xdyi::x#6 line_xdyi::y#5 line_xdyi::xd#5 line_xdyi::x1#6 ] main:2::lines:12::line:25::line_xdyi:84 [ lines::l#2 line_xdyi::yd#2 line_xdyi::x#6 line_xdyi::y#5 line_xdyi::xd#5 line_xdyi::x1#6 ] )
|
||||
[120] (byte) line_xdyi::x#6 ← phi( line::@17/(byte) line_xdyi::x#0 line::@27/(byte) line_xdyi::x#1 ) [ line_xdyi::yd#2 line_xdyi::x#6 line_xdyi::y#5 line_xdyi::xd#5 line_xdyi::x1#6 ] ( main:2::lines:12::line:25::line_xdyi:39 [ lines::l#2 line_xdyi::yd#2 line_xdyi::x#6 line_xdyi::y#5 line_xdyi::xd#5 line_xdyi::x1#6 ] main:2::lines:12::line:25::line_xdyi:84 [ lines::l#2 line_xdyi::yd#2 line_xdyi::x#6 line_xdyi::y#5 line_xdyi::xd#5 line_xdyi::x1#6 ] )
|
||||
[120] (byte) line_xdyi::yd#2 ← phi( line::@17/(byte) line_xdyi::yd#0 line::@27/(byte) line_xdyi::yd#1 ) [ line_xdyi::yd#2 line_xdyi::x#6 line_xdyi::y#5 line_xdyi::xd#5 line_xdyi::x1#6 ] ( main:2::lines:12::line:25::line_xdyi:39 [ lines::l#2 line_xdyi::yd#2 line_xdyi::x#6 line_xdyi::y#5 line_xdyi::xd#5 line_xdyi::x1#6 ] main:2::lines:12::line:25::line_xdyi:84 [ lines::l#2 line_xdyi::yd#2 line_xdyi::x#6 line_xdyi::y#5 line_xdyi::xd#5 line_xdyi::x1#6 ] )
|
||||
[121] (byte) line_xdyi::e#0 ← (byte) line_xdyi::yd#2 >> (byte/signed byte/word/signed word) 1 [ line_xdyi::yd#2 line_xdyi::x#6 line_xdyi::y#5 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::e#0 ] ( main:2::lines:12::line:25::line_xdyi:39 [ lines::l#2 line_xdyi::yd#2 line_xdyi::x#6 line_xdyi::y#5 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::e#0 ] main:2::lines:12::line:25::line_xdyi:84 [ lines::l#2 line_xdyi::yd#2 line_xdyi::x#6 line_xdyi::y#5 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::e#0 ] )
|
||||
[116] (byte) line_xdyi::x1#6 ← phi( line::@17/(byte) line_xdyi::x1#0 line::@27/(byte) line_xdyi::x1#1 ) [ line_xdyi::yd#2 line_xdyi::x#6 line_xdyi::y#5 line_xdyi::xd#5 line_xdyi::x1#6 ] ( main:2::lines:12::line:21::line_xdyi:35 [ lines::l#2 line_xdyi::yd#2 line_xdyi::x#6 line_xdyi::y#5 line_xdyi::xd#5 line_xdyi::x1#6 ] main:2::lines:12::line:21::line_xdyi:80 [ lines::l#2 line_xdyi::yd#2 line_xdyi::x#6 line_xdyi::y#5 line_xdyi::xd#5 line_xdyi::x1#6 ] )
|
||||
[116] (byte) line_xdyi::xd#5 ← phi( line::@17/(byte) line_xdyi::xd#0 line::@27/(byte) line_xdyi::xd#1 ) [ line_xdyi::yd#2 line_xdyi::x#6 line_xdyi::y#5 line_xdyi::xd#5 line_xdyi::x1#6 ] ( main:2::lines:12::line:21::line_xdyi:35 [ lines::l#2 line_xdyi::yd#2 line_xdyi::x#6 line_xdyi::y#5 line_xdyi::xd#5 line_xdyi::x1#6 ] main:2::lines:12::line:21::line_xdyi:80 [ lines::l#2 line_xdyi::yd#2 line_xdyi::x#6 line_xdyi::y#5 line_xdyi::xd#5 line_xdyi::x1#6 ] )
|
||||
[116] (byte) line_xdyi::y#5 ← phi( line::@17/(byte) line_xdyi::y#0 line::@27/(byte) line_xdyi::y#1 ) [ line_xdyi::yd#2 line_xdyi::x#6 line_xdyi::y#5 line_xdyi::xd#5 line_xdyi::x1#6 ] ( main:2::lines:12::line:21::line_xdyi:35 [ lines::l#2 line_xdyi::yd#2 line_xdyi::x#6 line_xdyi::y#5 line_xdyi::xd#5 line_xdyi::x1#6 ] main:2::lines:12::line:21::line_xdyi:80 [ lines::l#2 line_xdyi::yd#2 line_xdyi::x#6 line_xdyi::y#5 line_xdyi::xd#5 line_xdyi::x1#6 ] )
|
||||
[116] (byte) line_xdyi::x#6 ← phi( line::@17/(byte) line_xdyi::x#0 line::@27/(byte) line_xdyi::x#1 ) [ line_xdyi::yd#2 line_xdyi::x#6 line_xdyi::y#5 line_xdyi::xd#5 line_xdyi::x1#6 ] ( main:2::lines:12::line:21::line_xdyi:35 [ lines::l#2 line_xdyi::yd#2 line_xdyi::x#6 line_xdyi::y#5 line_xdyi::xd#5 line_xdyi::x1#6 ] main:2::lines:12::line:21::line_xdyi:80 [ lines::l#2 line_xdyi::yd#2 line_xdyi::x#6 line_xdyi::y#5 line_xdyi::xd#5 line_xdyi::x1#6 ] )
|
||||
[116] (byte) line_xdyi::yd#2 ← phi( line::@17/(byte) line_xdyi::yd#0 line::@27/(byte) line_xdyi::yd#1 ) [ line_xdyi::yd#2 line_xdyi::x#6 line_xdyi::y#5 line_xdyi::xd#5 line_xdyi::x1#6 ] ( main:2::lines:12::line:21::line_xdyi:35 [ lines::l#2 line_xdyi::yd#2 line_xdyi::x#6 line_xdyi::y#5 line_xdyi::xd#5 line_xdyi::x1#6 ] main:2::lines:12::line:21::line_xdyi:80 [ lines::l#2 line_xdyi::yd#2 line_xdyi::x#6 line_xdyi::y#5 line_xdyi::xd#5 line_xdyi::x1#6 ] )
|
||||
[117] (byte) line_xdyi::e#0 ← (byte) line_xdyi::yd#2 >> (byte/signed byte/word/signed word) 1 [ line_xdyi::yd#2 line_xdyi::x#6 line_xdyi::y#5 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::e#0 ] ( main:2::lines:12::line:21::line_xdyi:35 [ lines::l#2 line_xdyi::yd#2 line_xdyi::x#6 line_xdyi::y#5 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::e#0 ] main:2::lines:12::line:21::line_xdyi:80 [ lines::l#2 line_xdyi::yd#2 line_xdyi::x#6 line_xdyi::y#5 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::e#0 ] )
|
||||
to:line_xdyi::@1
|
||||
line_xdyi::@1: scope:[line_xdyi] from line_xdyi line_xdyi::@2
|
||||
[122] (byte) line_xdyi::e#3 ← phi( line_xdyi/(byte) line_xdyi::e#0 line_xdyi::@2/(byte) line_xdyi::e#6 ) [ line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 ] ( main:2::lines:12::line:25::line_xdyi:39 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 ] main:2::lines:12::line:25::line_xdyi:84 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 ] )
|
||||
[122] (byte) line_xdyi::y#3 ← phi( line_xdyi/(byte) line_xdyi::y#5 line_xdyi::@2/(byte) line_xdyi::y#6 ) [ line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 ] ( main:2::lines:12::line:25::line_xdyi:39 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 ] main:2::lines:12::line:25::line_xdyi:84 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 ] )
|
||||
[122] (byte) line_xdyi::x#3 ← phi( line_xdyi/(byte) line_xdyi::x#6 line_xdyi::@2/(byte) line_xdyi::x#2 ) [ line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 ] ( main:2::lines:12::line:25::line_xdyi:39 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 ] main:2::lines:12::line:25::line_xdyi:84 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 ] )
|
||||
[123] (byte) plot::x#0 ← (byte) line_xdyi::x#3 [ plot::x#0 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 ] ( main:2::lines:12::line:25::line_xdyi:39 [ lines::l#2 plot::x#0 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 ] main:2::lines:12::line:25::line_xdyi:84 [ lines::l#2 plot::x#0 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 ] )
|
||||
[124] (byte) plot::y#0 ← (byte) line_xdyi::y#3 [ plot::x#0 plot::y#0 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 ] ( main:2::lines:12::line:25::line_xdyi:39 [ lines::l#2 plot::x#0 plot::y#0 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 ] main:2::lines:12::line:25::line_xdyi:84 [ lines::l#2 plot::x#0 plot::y#0 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 ] )
|
||||
[125] call plot param-assignment [ line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 ] ( main:2::lines:12::line:25::line_xdyi:39 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 ] main:2::lines:12::line:25::line_xdyi:84 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 ] )
|
||||
[118] (byte) line_xdyi::e#3 ← phi( line_xdyi/(byte) line_xdyi::e#0 line_xdyi::@2/(byte) line_xdyi::e#6 ) [ line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 ] ( main:2::lines:12::line:21::line_xdyi:35 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 ] main:2::lines:12::line:21::line_xdyi:80 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 ] )
|
||||
[118] (byte) line_xdyi::y#3 ← phi( line_xdyi/(byte) line_xdyi::y#5 line_xdyi::@2/(byte) line_xdyi::y#6 ) [ line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 ] ( main:2::lines:12::line:21::line_xdyi:35 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 ] main:2::lines:12::line:21::line_xdyi:80 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 ] )
|
||||
[118] (byte) line_xdyi::x#3 ← phi( line_xdyi/(byte) line_xdyi::x#6 line_xdyi::@2/(byte) line_xdyi::x#2 ) [ line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 ] ( main:2::lines:12::line:21::line_xdyi:35 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 ] main:2::lines:12::line:21::line_xdyi:80 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 ] )
|
||||
[119] (byte) plot::x#0 ← (byte) line_xdyi::x#3 [ plot::x#0 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 ] ( main:2::lines:12::line:21::line_xdyi:35 [ lines::l#2 plot::x#0 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 ] main:2::lines:12::line:21::line_xdyi:80 [ lines::l#2 plot::x#0 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 ] )
|
||||
[120] (byte) plot::y#0 ← (byte) line_xdyi::y#3 [ plot::x#0 plot::y#0 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 ] ( main:2::lines:12::line:21::line_xdyi:35 [ lines::l#2 plot::x#0 plot::y#0 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 ] main:2::lines:12::line:21::line_xdyi:80 [ lines::l#2 plot::x#0 plot::y#0 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 ] )
|
||||
[121] call plot param-assignment [ line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 ] ( main:2::lines:12::line:21::line_xdyi:35 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 ] main:2::lines:12::line:21::line_xdyi:80 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#3 line_xdyi::y#3 line_xdyi::e#3 ] )
|
||||
to:line_xdyi::@5
|
||||
line_xdyi::@5: scope:[line_xdyi] from line_xdyi::@1
|
||||
[126] (byte) line_xdyi::x#2 ← (byte) line_xdyi::x#3 + (byte/signed byte/word/signed word) 1 [ line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::y#3 line_xdyi::e#3 line_xdyi::x#2 ] ( main:2::lines:12::line:25::line_xdyi:39 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::y#3 line_xdyi::e#3 line_xdyi::x#2 ] main:2::lines:12::line:25::line_xdyi:84 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::y#3 line_xdyi::e#3 line_xdyi::x#2 ] )
|
||||
[127] (byte) line_xdyi::e#1 ← (byte) line_xdyi::e#3 + (byte) line_xdyi::yd#2 [ line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::y#3 line_xdyi::x#2 line_xdyi::e#1 ] ( main:2::lines:12::line:25::line_xdyi:39 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::y#3 line_xdyi::x#2 line_xdyi::e#1 ] main:2::lines:12::line:25::line_xdyi:84 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::y#3 line_xdyi::x#2 line_xdyi::e#1 ] )
|
||||
[128] if((byte) line_xdyi::xd#5>=(byte) line_xdyi::e#1) goto line_xdyi::@2 [ line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::y#3 line_xdyi::x#2 line_xdyi::e#1 ] ( main:2::lines:12::line:25::line_xdyi:39 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::y#3 line_xdyi::x#2 line_xdyi::e#1 ] main:2::lines:12::line:25::line_xdyi:84 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::y#3 line_xdyi::x#2 line_xdyi::e#1 ] )
|
||||
[122] (byte) line_xdyi::x#2 ← (byte) line_xdyi::x#3 + (byte/signed byte/word/signed word) 1 [ line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::y#3 line_xdyi::e#3 line_xdyi::x#2 ] ( main:2::lines:12::line:21::line_xdyi:35 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::y#3 line_xdyi::e#3 line_xdyi::x#2 ] main:2::lines:12::line:21::line_xdyi:80 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::y#3 line_xdyi::e#3 line_xdyi::x#2 ] )
|
||||
[123] (byte) line_xdyi::e#1 ← (byte) line_xdyi::e#3 + (byte) line_xdyi::yd#2 [ line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::y#3 line_xdyi::x#2 line_xdyi::e#1 ] ( main:2::lines:12::line:21::line_xdyi:35 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::y#3 line_xdyi::x#2 line_xdyi::e#1 ] main:2::lines:12::line:21::line_xdyi:80 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::y#3 line_xdyi::x#2 line_xdyi::e#1 ] )
|
||||
[124] if((byte) line_xdyi::xd#5>=(byte) line_xdyi::e#1) goto line_xdyi::@2 [ line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::y#3 line_xdyi::x#2 line_xdyi::e#1 ] ( main:2::lines:12::line:21::line_xdyi:35 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::y#3 line_xdyi::x#2 line_xdyi::e#1 ] main:2::lines:12::line:21::line_xdyi:80 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::y#3 line_xdyi::x#2 line_xdyi::e#1 ] )
|
||||
to:line_xdyi::@3
|
||||
line_xdyi::@3: scope:[line_xdyi] from line_xdyi::@5
|
||||
[129] (byte) line_xdyi::y#2 ← (byte) line_xdyi::y#3 + (byte/signed byte/word/signed word) 1 [ line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#2 line_xdyi::e#1 line_xdyi::y#2 ] ( main:2::lines:12::line:25::line_xdyi:39 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#2 line_xdyi::e#1 line_xdyi::y#2 ] main:2::lines:12::line:25::line_xdyi:84 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#2 line_xdyi::e#1 line_xdyi::y#2 ] )
|
||||
[130] (byte) line_xdyi::e#2 ← (byte) line_xdyi::e#1 - (byte) line_xdyi::xd#5 [ line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#2 line_xdyi::y#2 line_xdyi::e#2 ] ( main:2::lines:12::line:25::line_xdyi:39 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#2 line_xdyi::y#2 line_xdyi::e#2 ] main:2::lines:12::line:25::line_xdyi:84 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#2 line_xdyi::y#2 line_xdyi::e#2 ] )
|
||||
[125] (byte) line_xdyi::y#2 ← (byte) line_xdyi::y#3 + (byte/signed byte/word/signed word) 1 [ line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#2 line_xdyi::e#1 line_xdyi::y#2 ] ( main:2::lines:12::line:21::line_xdyi:35 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#2 line_xdyi::e#1 line_xdyi::y#2 ] main:2::lines:12::line:21::line_xdyi:80 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#2 line_xdyi::e#1 line_xdyi::y#2 ] )
|
||||
[126] (byte) line_xdyi::e#2 ← (byte) line_xdyi::e#1 - (byte) line_xdyi::xd#5 [ line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#2 line_xdyi::y#2 line_xdyi::e#2 ] ( main:2::lines:12::line:21::line_xdyi:35 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#2 line_xdyi::y#2 line_xdyi::e#2 ] main:2::lines:12::line:21::line_xdyi:80 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#2 line_xdyi::y#2 line_xdyi::e#2 ] )
|
||||
to:line_xdyi::@2
|
||||
line_xdyi::@2: scope:[line_xdyi] from line_xdyi::@3 line_xdyi::@5
|
||||
[131] (byte) line_xdyi::e#6 ← phi( line_xdyi::@3/(byte) line_xdyi::e#2 line_xdyi::@5/(byte) line_xdyi::e#1 ) [ line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#2 line_xdyi::y#6 line_xdyi::e#6 ] ( main:2::lines:12::line:25::line_xdyi:39 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#2 line_xdyi::y#6 line_xdyi::e#6 ] main:2::lines:12::line:25::line_xdyi:84 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#2 line_xdyi::y#6 line_xdyi::e#6 ] )
|
||||
[131] (byte) line_xdyi::y#6 ← phi( line_xdyi::@3/(byte) line_xdyi::y#2 line_xdyi::@5/(byte) line_xdyi::y#3 ) [ line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#2 line_xdyi::y#6 line_xdyi::e#6 ] ( main:2::lines:12::line:25::line_xdyi:39 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#2 line_xdyi::y#6 line_xdyi::e#6 ] main:2::lines:12::line:25::line_xdyi:84 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#2 line_xdyi::y#6 line_xdyi::e#6 ] )
|
||||
[132] (byte~) line_xdyi::$8 ← (byte) line_xdyi::x1#6 + (byte/signed byte/word/signed word) 1 [ line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#2 line_xdyi::y#6 line_xdyi::e#6 line_xdyi::$8 ] ( main:2::lines:12::line:25::line_xdyi:39 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#2 line_xdyi::y#6 line_xdyi::e#6 line_xdyi::$8 ] main:2::lines:12::line:25::line_xdyi:84 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#2 line_xdyi::y#6 line_xdyi::e#6 line_xdyi::$8 ] )
|
||||
[133] if((byte) line_xdyi::x#2<(byte~) line_xdyi::$8) goto line_xdyi::@1 [ line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#2 line_xdyi::y#6 line_xdyi::e#6 ] ( main:2::lines:12::line:25::line_xdyi:39 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#2 line_xdyi::y#6 line_xdyi::e#6 ] main:2::lines:12::line:25::line_xdyi:84 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#2 line_xdyi::y#6 line_xdyi::e#6 ] )
|
||||
[127] (byte) line_xdyi::e#6 ← phi( line_xdyi::@3/(byte) line_xdyi::e#2 line_xdyi::@5/(byte) line_xdyi::e#1 ) [ line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#2 line_xdyi::y#6 line_xdyi::e#6 ] ( main:2::lines:12::line:21::line_xdyi:35 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#2 line_xdyi::y#6 line_xdyi::e#6 ] main:2::lines:12::line:21::line_xdyi:80 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#2 line_xdyi::y#6 line_xdyi::e#6 ] )
|
||||
[127] (byte) line_xdyi::y#6 ← phi( line_xdyi::@3/(byte) line_xdyi::y#2 line_xdyi::@5/(byte) line_xdyi::y#3 ) [ line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#2 line_xdyi::y#6 line_xdyi::e#6 ] ( main:2::lines:12::line:21::line_xdyi:35 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#2 line_xdyi::y#6 line_xdyi::e#6 ] main:2::lines:12::line:21::line_xdyi:80 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#2 line_xdyi::y#6 line_xdyi::e#6 ] )
|
||||
[128] (byte~) line_xdyi::$8 ← (byte) line_xdyi::x1#6 + (byte/signed byte/word/signed word) 1 [ line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#2 line_xdyi::y#6 line_xdyi::e#6 line_xdyi::$8 ] ( main:2::lines:12::line:21::line_xdyi:35 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#2 line_xdyi::y#6 line_xdyi::e#6 line_xdyi::$8 ] main:2::lines:12::line:21::line_xdyi:80 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#2 line_xdyi::y#6 line_xdyi::e#6 line_xdyi::$8 ] )
|
||||
[129] if((byte) line_xdyi::x#2<(byte~) line_xdyi::$8) goto line_xdyi::@1 [ line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#2 line_xdyi::y#6 line_xdyi::e#6 ] ( main:2::lines:12::line:21::line_xdyi:35 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#2 line_xdyi::y#6 line_xdyi::e#6 ] main:2::lines:12::line:21::line_xdyi:80 [ lines::l#2 line_xdyi::yd#2 line_xdyi::xd#5 line_xdyi::x1#6 line_xdyi::x#2 line_xdyi::y#6 line_xdyi::e#6 ] )
|
||||
to:line_xdyi::@return
|
||||
line_xdyi::@return: scope:[line_xdyi] from line_xdyi::@2
|
||||
[134] return [ ] ( main:2::lines:12::line:25::line_xdyi:39 [ lines::l#2 ] main:2::lines:12::line:25::line_xdyi:84 [ lines::l#2 ] )
|
||||
[130] return [ ] ( main:2::lines:12::line:21::line_xdyi:35 [ lines::l#2 ] main:2::lines:12::line:21::line_xdyi:80 [ lines::l#2 ] )
|
||||
to:@return
|
||||
line_ydxd: scope:[line_ydxd] from line::@10 line::@6
|
||||
[135] (byte) line_ydxd::y1#6 ← phi( line::@10/(byte) line_ydxd::y1#1 line::@6/(byte) line_ydxd::y1#0 ) [ line_ydxd::xd#2 line_ydxd::x#5 line_ydxd::y#6 line_ydxd::yd#5 line_ydxd::y1#6 ] ( main:2::lines:12::line:25::line_ydxd:60 [ lines::l#2 line_ydxd::xd#2 line_ydxd::x#5 line_ydxd::y#6 line_ydxd::yd#5 line_ydxd::y1#6 ] main:2::lines:12::line:25::line_ydxd:76 [ lines::l#2 line_ydxd::xd#2 line_ydxd::x#5 line_ydxd::y#6 line_ydxd::yd#5 line_ydxd::y1#6 ] )
|
||||
[135] (byte) line_ydxd::yd#5 ← phi( line::@10/(byte) line_ydxd::yd#1 line::@6/(byte) line_ydxd::yd#0 ) [ line_ydxd::xd#2 line_ydxd::x#5 line_ydxd::y#6 line_ydxd::yd#5 line_ydxd::y1#6 ] ( main:2::lines:12::line:25::line_ydxd:60 [ lines::l#2 line_ydxd::xd#2 line_ydxd::x#5 line_ydxd::y#6 line_ydxd::yd#5 line_ydxd::y1#6 ] main:2::lines:12::line:25::line_ydxd:76 [ lines::l#2 line_ydxd::xd#2 line_ydxd::x#5 line_ydxd::y#6 line_ydxd::yd#5 line_ydxd::y1#6 ] )
|
||||
[135] (byte) line_ydxd::y#6 ← phi( line::@10/(byte) line_ydxd::y#1 line::@6/(byte) line_ydxd::y#0 ) [ line_ydxd::xd#2 line_ydxd::x#5 line_ydxd::y#6 line_ydxd::yd#5 line_ydxd::y1#6 ] ( main:2::lines:12::line:25::line_ydxd:60 [ lines::l#2 line_ydxd::xd#2 line_ydxd::x#5 line_ydxd::y#6 line_ydxd::yd#5 line_ydxd::y1#6 ] main:2::lines:12::line:25::line_ydxd:76 [ lines::l#2 line_ydxd::xd#2 line_ydxd::x#5 line_ydxd::y#6 line_ydxd::yd#5 line_ydxd::y1#6 ] )
|
||||
[135] (byte) line_ydxd::x#5 ← phi( line::@10/(byte) line_ydxd::x#1 line::@6/(byte) line_ydxd::x#0 ) [ line_ydxd::xd#2 line_ydxd::x#5 line_ydxd::y#6 line_ydxd::yd#5 line_ydxd::y1#6 ] ( main:2::lines:12::line:25::line_ydxd:60 [ lines::l#2 line_ydxd::xd#2 line_ydxd::x#5 line_ydxd::y#6 line_ydxd::yd#5 line_ydxd::y1#6 ] main:2::lines:12::line:25::line_ydxd:76 [ lines::l#2 line_ydxd::xd#2 line_ydxd::x#5 line_ydxd::y#6 line_ydxd::yd#5 line_ydxd::y1#6 ] )
|
||||
[135] (byte) line_ydxd::xd#2 ← phi( line::@10/(byte) line_ydxd::xd#1 line::@6/(byte) line_ydxd::xd#0 ) [ line_ydxd::xd#2 line_ydxd::x#5 line_ydxd::y#6 line_ydxd::yd#5 line_ydxd::y1#6 ] ( main:2::lines:12::line:25::line_ydxd:60 [ lines::l#2 line_ydxd::xd#2 line_ydxd::x#5 line_ydxd::y#6 line_ydxd::yd#5 line_ydxd::y1#6 ] main:2::lines:12::line:25::line_ydxd:76 [ lines::l#2 line_ydxd::xd#2 line_ydxd::x#5 line_ydxd::y#6 line_ydxd::yd#5 line_ydxd::y1#6 ] )
|
||||
[136] (byte) line_ydxd::e#0 ← (byte) line_ydxd::xd#2 >> (byte/signed byte/word/signed word) 1 [ line_ydxd::xd#2 line_ydxd::x#5 line_ydxd::y#6 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::e#0 ] ( main:2::lines:12::line:25::line_ydxd:60 [ lines::l#2 line_ydxd::xd#2 line_ydxd::x#5 line_ydxd::y#6 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::e#0 ] main:2::lines:12::line:25::line_ydxd:76 [ lines::l#2 line_ydxd::xd#2 line_ydxd::x#5 line_ydxd::y#6 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::e#0 ] )
|
||||
[131] (byte) line_ydxd::y1#6 ← phi( line::@10/(byte) line_ydxd::y1#1 line::@6/(byte) line_ydxd::y1#0 ) [ line_ydxd::xd#2 line_ydxd::x#5 line_ydxd::y#6 line_ydxd::yd#5 line_ydxd::y1#6 ] ( main:2::lines:12::line:21::line_ydxd:56 [ lines::l#2 line_ydxd::xd#2 line_ydxd::x#5 line_ydxd::y#6 line_ydxd::yd#5 line_ydxd::y1#6 ] main:2::lines:12::line:21::line_ydxd:72 [ lines::l#2 line_ydxd::xd#2 line_ydxd::x#5 line_ydxd::y#6 line_ydxd::yd#5 line_ydxd::y1#6 ] )
|
||||
[131] (byte) line_ydxd::yd#5 ← phi( line::@10/(byte) line_ydxd::yd#1 line::@6/(byte) line_ydxd::yd#0 ) [ line_ydxd::xd#2 line_ydxd::x#5 line_ydxd::y#6 line_ydxd::yd#5 line_ydxd::y1#6 ] ( main:2::lines:12::line:21::line_ydxd:56 [ lines::l#2 line_ydxd::xd#2 line_ydxd::x#5 line_ydxd::y#6 line_ydxd::yd#5 line_ydxd::y1#6 ] main:2::lines:12::line:21::line_ydxd:72 [ lines::l#2 line_ydxd::xd#2 line_ydxd::x#5 line_ydxd::y#6 line_ydxd::yd#5 line_ydxd::y1#6 ] )
|
||||
[131] (byte) line_ydxd::y#6 ← phi( line::@10/(byte) line_ydxd::y#1 line::@6/(byte) line_ydxd::y#0 ) [ line_ydxd::xd#2 line_ydxd::x#5 line_ydxd::y#6 line_ydxd::yd#5 line_ydxd::y1#6 ] ( main:2::lines:12::line:21::line_ydxd:56 [ lines::l#2 line_ydxd::xd#2 line_ydxd::x#5 line_ydxd::y#6 line_ydxd::yd#5 line_ydxd::y1#6 ] main:2::lines:12::line:21::line_ydxd:72 [ lines::l#2 line_ydxd::xd#2 line_ydxd::x#5 line_ydxd::y#6 line_ydxd::yd#5 line_ydxd::y1#6 ] )
|
||||
[131] (byte) line_ydxd::x#5 ← phi( line::@10/(byte) line_ydxd::x#1 line::@6/(byte) line_ydxd::x#0 ) [ line_ydxd::xd#2 line_ydxd::x#5 line_ydxd::y#6 line_ydxd::yd#5 line_ydxd::y1#6 ] ( main:2::lines:12::line:21::line_ydxd:56 [ lines::l#2 line_ydxd::xd#2 line_ydxd::x#5 line_ydxd::y#6 line_ydxd::yd#5 line_ydxd::y1#6 ] main:2::lines:12::line:21::line_ydxd:72 [ lines::l#2 line_ydxd::xd#2 line_ydxd::x#5 line_ydxd::y#6 line_ydxd::yd#5 line_ydxd::y1#6 ] )
|
||||
[131] (byte) line_ydxd::xd#2 ← phi( line::@10/(byte) line_ydxd::xd#1 line::@6/(byte) line_ydxd::xd#0 ) [ line_ydxd::xd#2 line_ydxd::x#5 line_ydxd::y#6 line_ydxd::yd#5 line_ydxd::y1#6 ] ( main:2::lines:12::line:21::line_ydxd:56 [ lines::l#2 line_ydxd::xd#2 line_ydxd::x#5 line_ydxd::y#6 line_ydxd::yd#5 line_ydxd::y1#6 ] main:2::lines:12::line:21::line_ydxd:72 [ lines::l#2 line_ydxd::xd#2 line_ydxd::x#5 line_ydxd::y#6 line_ydxd::yd#5 line_ydxd::y1#6 ] )
|
||||
[132] (byte) line_ydxd::e#0 ← (byte) line_ydxd::xd#2 >> (byte/signed byte/word/signed word) 1 [ line_ydxd::xd#2 line_ydxd::x#5 line_ydxd::y#6 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::e#0 ] ( main:2::lines:12::line:21::line_ydxd:56 [ lines::l#2 line_ydxd::xd#2 line_ydxd::x#5 line_ydxd::y#6 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::e#0 ] main:2::lines:12::line:21::line_ydxd:72 [ lines::l#2 line_ydxd::xd#2 line_ydxd::x#5 line_ydxd::y#6 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::e#0 ] )
|
||||
to:line_ydxd::@1
|
||||
line_ydxd::@1: scope:[line_ydxd] from line_ydxd line_ydxd::@2
|
||||
[137] (byte) line_ydxd::e#3 ← phi( line_ydxd/(byte) line_ydxd::e#0 line_ydxd::@2/(byte) line_ydxd::e#6 ) [ line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 ] ( main:2::lines:12::line:25::line_ydxd:60 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 ] main:2::lines:12::line:25::line_ydxd:76 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 ] )
|
||||
[137] (byte) line_ydxd::y#3 ← phi( line_ydxd/(byte) line_ydxd::y#6 line_ydxd::@2/(byte) line_ydxd::y#2 ) [ line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 ] ( main:2::lines:12::line:25::line_ydxd:60 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 ] main:2::lines:12::line:25::line_ydxd:76 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 ] )
|
||||
[137] (byte) line_ydxd::x#3 ← phi( line_ydxd/(byte) line_ydxd::x#5 line_ydxd::@2/(byte) line_ydxd::x#6 ) [ line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 ] ( main:2::lines:12::line:25::line_ydxd:60 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 ] main:2::lines:12::line:25::line_ydxd:76 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 ] )
|
||||
[138] (byte) plot::x#3 ← (byte) line_ydxd::x#3 [ plot::x#3 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 ] ( main:2::lines:12::line:25::line_ydxd:60 [ lines::l#2 plot::x#3 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 ] main:2::lines:12::line:25::line_ydxd:76 [ lines::l#2 plot::x#3 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 ] )
|
||||
[139] (byte) plot::y#3 ← (byte) line_ydxd::y#3 [ plot::x#3 plot::y#3 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 ] ( main:2::lines:12::line:25::line_ydxd:60 [ lines::l#2 plot::x#3 plot::y#3 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 ] main:2::lines:12::line:25::line_ydxd:76 [ lines::l#2 plot::x#3 plot::y#3 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 ] )
|
||||
[140] call plot param-assignment [ line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 ] ( main:2::lines:12::line:25::line_ydxd:60 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 ] main:2::lines:12::line:25::line_ydxd:76 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 ] )
|
||||
[133] (byte) line_ydxd::e#3 ← phi( line_ydxd/(byte) line_ydxd::e#0 line_ydxd::@2/(byte) line_ydxd::e#6 ) [ line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 ] ( main:2::lines:12::line:21::line_ydxd:56 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 ] main:2::lines:12::line:21::line_ydxd:72 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 ] )
|
||||
[133] (byte) line_ydxd::y#3 ← phi( line_ydxd/(byte) line_ydxd::y#6 line_ydxd::@2/(byte) line_ydxd::y#2 ) [ line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 ] ( main:2::lines:12::line:21::line_ydxd:56 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 ] main:2::lines:12::line:21::line_ydxd:72 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 ] )
|
||||
[133] (byte) line_ydxd::x#3 ← phi( line_ydxd/(byte) line_ydxd::x#5 line_ydxd::@2/(byte) line_ydxd::x#6 ) [ line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 ] ( main:2::lines:12::line:21::line_ydxd:56 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 ] main:2::lines:12::line:21::line_ydxd:72 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 ] )
|
||||
[134] (byte) plot::x#3 ← (byte) line_ydxd::x#3 [ plot::x#3 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 ] ( main:2::lines:12::line:21::line_ydxd:56 [ lines::l#2 plot::x#3 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 ] main:2::lines:12::line:21::line_ydxd:72 [ lines::l#2 plot::x#3 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 ] )
|
||||
[135] (byte) plot::y#3 ← (byte) line_ydxd::y#3 [ plot::x#3 plot::y#3 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 ] ( main:2::lines:12::line:21::line_ydxd:56 [ lines::l#2 plot::x#3 plot::y#3 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 ] main:2::lines:12::line:21::line_ydxd:72 [ lines::l#2 plot::x#3 plot::y#3 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 ] )
|
||||
[136] call plot param-assignment [ line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 ] ( main:2::lines:12::line:21::line_ydxd:56 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 ] main:2::lines:12::line:21::line_ydxd:72 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#3 line_ydxd::e#3 ] )
|
||||
to:line_ydxd::@5
|
||||
line_ydxd::@5: scope:[line_ydxd] from line_ydxd::@1
|
||||
[141] (byte) line_ydxd::y#2 ← (byte) line_ydxd::y#3 + (byte/signed byte/word/signed word) 1 [ line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::e#3 line_ydxd::y#2 ] ( main:2::lines:12::line:25::line_ydxd:60 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::e#3 line_ydxd::y#2 ] main:2::lines:12::line:25::line_ydxd:76 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::e#3 line_ydxd::y#2 ] )
|
||||
[142] (byte) line_ydxd::e#1 ← (byte) line_ydxd::e#3 + (byte) line_ydxd::xd#2 [ line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#2 line_ydxd::e#1 ] ( main:2::lines:12::line:25::line_ydxd:60 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#2 line_ydxd::e#1 ] main:2::lines:12::line:25::line_ydxd:76 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#2 line_ydxd::e#1 ] )
|
||||
[143] if((byte) line_ydxd::yd#5>=(byte) line_ydxd::e#1) goto line_ydxd::@2 [ line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#2 line_ydxd::e#1 ] ( main:2::lines:12::line:25::line_ydxd:60 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#2 line_ydxd::e#1 ] main:2::lines:12::line:25::line_ydxd:76 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#2 line_ydxd::e#1 ] )
|
||||
[137] (byte) line_ydxd::y#2 ← (byte) line_ydxd::y#3 + (byte/signed byte/word/signed word) 1 [ line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::e#3 line_ydxd::y#2 ] ( main:2::lines:12::line:21::line_ydxd:56 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::e#3 line_ydxd::y#2 ] main:2::lines:12::line:21::line_ydxd:72 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::e#3 line_ydxd::y#2 ] )
|
||||
[138] (byte) line_ydxd::e#1 ← (byte) line_ydxd::e#3 + (byte) line_ydxd::xd#2 [ line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#2 line_ydxd::e#1 ] ( main:2::lines:12::line:21::line_ydxd:56 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#2 line_ydxd::e#1 ] main:2::lines:12::line:21::line_ydxd:72 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#2 line_ydxd::e#1 ] )
|
||||
[139] if((byte) line_ydxd::yd#5>=(byte) line_ydxd::e#1) goto line_ydxd::@2 [ line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#2 line_ydxd::e#1 ] ( main:2::lines:12::line:21::line_ydxd:56 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#2 line_ydxd::e#1 ] main:2::lines:12::line:21::line_ydxd:72 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#3 line_ydxd::y#2 line_ydxd::e#1 ] )
|
||||
to:line_ydxd::@3
|
||||
line_ydxd::@3: scope:[line_ydxd] from line_ydxd::@5
|
||||
[144] (byte) line_ydxd::x#2 ← (byte) line_ydxd::x#3 - (byte/signed byte/word/signed word) 1 [ line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::y#2 line_ydxd::e#1 line_ydxd::x#2 ] ( main:2::lines:12::line:25::line_ydxd:60 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::y#2 line_ydxd::e#1 line_ydxd::x#2 ] main:2::lines:12::line:25::line_ydxd:76 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::y#2 line_ydxd::e#1 line_ydxd::x#2 ] )
|
||||
[145] (byte) line_ydxd::e#2 ← (byte) line_ydxd::e#1 - (byte) line_ydxd::yd#5 [ line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::y#2 line_ydxd::x#2 line_ydxd::e#2 ] ( main:2::lines:12::line:25::line_ydxd:60 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::y#2 line_ydxd::x#2 line_ydxd::e#2 ] main:2::lines:12::line:25::line_ydxd:76 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::y#2 line_ydxd::x#2 line_ydxd::e#2 ] )
|
||||
[140] (byte) line_ydxd::x#2 ← (byte) line_ydxd::x#3 - (byte/signed byte/word/signed word) 1 [ line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::y#2 line_ydxd::e#1 line_ydxd::x#2 ] ( main:2::lines:12::line:21::line_ydxd:56 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::y#2 line_ydxd::e#1 line_ydxd::x#2 ] main:2::lines:12::line:21::line_ydxd:72 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::y#2 line_ydxd::e#1 line_ydxd::x#2 ] )
|
||||
[141] (byte) line_ydxd::e#2 ← (byte) line_ydxd::e#1 - (byte) line_ydxd::yd#5 [ line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::y#2 line_ydxd::x#2 line_ydxd::e#2 ] ( main:2::lines:12::line:21::line_ydxd:56 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::y#2 line_ydxd::x#2 line_ydxd::e#2 ] main:2::lines:12::line:21::line_ydxd:72 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::y#2 line_ydxd::x#2 line_ydxd::e#2 ] )
|
||||
to:line_ydxd::@2
|
||||
line_ydxd::@2: scope:[line_ydxd] from line_ydxd::@3 line_ydxd::@5
|
||||
[146] (byte) line_ydxd::e#6 ← phi( line_ydxd::@3/(byte) line_ydxd::e#2 line_ydxd::@5/(byte) line_ydxd::e#1 ) [ line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#6 line_ydxd::y#2 line_ydxd::e#6 ] ( main:2::lines:12::line:25::line_ydxd:60 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#6 line_ydxd::y#2 line_ydxd::e#6 ] main:2::lines:12::line:25::line_ydxd:76 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#6 line_ydxd::y#2 line_ydxd::e#6 ] )
|
||||
[146] (byte) line_ydxd::x#6 ← phi( line_ydxd::@3/(byte) line_ydxd::x#2 line_ydxd::@5/(byte) line_ydxd::x#3 ) [ line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#6 line_ydxd::y#2 line_ydxd::e#6 ] ( main:2::lines:12::line:25::line_ydxd:60 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#6 line_ydxd::y#2 line_ydxd::e#6 ] main:2::lines:12::line:25::line_ydxd:76 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#6 line_ydxd::y#2 line_ydxd::e#6 ] )
|
||||
[147] (byte~) line_ydxd::$8 ← (byte) line_ydxd::y1#6 + (byte/signed byte/word/signed word) 1 [ line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#6 line_ydxd::y#2 line_ydxd::e#6 line_ydxd::$8 ] ( main:2::lines:12::line:25::line_ydxd:60 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#6 line_ydxd::y#2 line_ydxd::e#6 line_ydxd::$8 ] main:2::lines:12::line:25::line_ydxd:76 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#6 line_ydxd::y#2 line_ydxd::e#6 line_ydxd::$8 ] )
|
||||
[148] if((byte) line_ydxd::y#2<(byte~) line_ydxd::$8) goto line_ydxd::@1 [ line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#6 line_ydxd::y#2 line_ydxd::e#6 ] ( main:2::lines:12::line:25::line_ydxd:60 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#6 line_ydxd::y#2 line_ydxd::e#6 ] main:2::lines:12::line:25::line_ydxd:76 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#6 line_ydxd::y#2 line_ydxd::e#6 ] )
|
||||
[142] (byte) line_ydxd::e#6 ← phi( line_ydxd::@3/(byte) line_ydxd::e#2 line_ydxd::@5/(byte) line_ydxd::e#1 ) [ line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#6 line_ydxd::y#2 line_ydxd::e#6 ] ( main:2::lines:12::line:21::line_ydxd:56 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#6 line_ydxd::y#2 line_ydxd::e#6 ] main:2::lines:12::line:21::line_ydxd:72 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#6 line_ydxd::y#2 line_ydxd::e#6 ] )
|
||||
[142] (byte) line_ydxd::x#6 ← phi( line_ydxd::@3/(byte) line_ydxd::x#2 line_ydxd::@5/(byte) line_ydxd::x#3 ) [ line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#6 line_ydxd::y#2 line_ydxd::e#6 ] ( main:2::lines:12::line:21::line_ydxd:56 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#6 line_ydxd::y#2 line_ydxd::e#6 ] main:2::lines:12::line:21::line_ydxd:72 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#6 line_ydxd::y#2 line_ydxd::e#6 ] )
|
||||
[143] (byte~) line_ydxd::$8 ← (byte) line_ydxd::y1#6 + (byte/signed byte/word/signed word) 1 [ line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#6 line_ydxd::y#2 line_ydxd::e#6 line_ydxd::$8 ] ( main:2::lines:12::line:21::line_ydxd:56 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#6 line_ydxd::y#2 line_ydxd::e#6 line_ydxd::$8 ] main:2::lines:12::line:21::line_ydxd:72 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#6 line_ydxd::y#2 line_ydxd::e#6 line_ydxd::$8 ] )
|
||||
[144] if((byte) line_ydxd::y#2<(byte~) line_ydxd::$8) goto line_ydxd::@1 [ line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#6 line_ydxd::y#2 line_ydxd::e#6 ] ( main:2::lines:12::line:21::line_ydxd:56 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#6 line_ydxd::y#2 line_ydxd::e#6 ] main:2::lines:12::line:21::line_ydxd:72 [ lines::l#2 line_ydxd::xd#2 line_ydxd::yd#5 line_ydxd::y1#6 line_ydxd::x#6 line_ydxd::y#2 line_ydxd::e#6 ] )
|
||||
to:line_ydxd::@return
|
||||
line_ydxd::@return: scope:[line_ydxd] from line_ydxd::@2
|
||||
[149] return [ ] ( main:2::lines:12::line:25::line_ydxd:60 [ lines::l#2 ] main:2::lines:12::line:25::line_ydxd:76 [ lines::l#2 ] )
|
||||
[145] return [ ] ( main:2::lines:12::line:21::line_ydxd:56 [ lines::l#2 ] main:2::lines:12::line:21::line_ydxd:72 [ lines::l#2 ] )
|
||||
to:@return
|
||||
line_xdyd: scope:[line_xdyd] from line::@20 line::@24
|
||||
[150] (byte) line_xdyd::x1#6 ← phi( line::@20/(byte) line_xdyd::x1#0 line::@24/(byte) line_xdyd::x1#1 ) [ line_xdyd::yd#2 line_xdyd::x#6 line_xdyd::y#5 line_xdyd::xd#5 line_xdyd::x1#6 ] ( main:2::lines:12::line:25::line_xdyd:54 [ lines::l#2 line_xdyd::yd#2 line_xdyd::x#6 line_xdyd::y#5 line_xdyd::xd#5 line_xdyd::x1#6 ] main:2::lines:12::line:25::line_xdyd:70 [ lines::l#2 line_xdyd::yd#2 line_xdyd::x#6 line_xdyd::y#5 line_xdyd::xd#5 line_xdyd::x1#6 ] )
|
||||
[150] (byte) line_xdyd::xd#5 ← phi( line::@20/(byte) line_xdyd::xd#0 line::@24/(byte) line_xdyd::xd#1 ) [ line_xdyd::yd#2 line_xdyd::x#6 line_xdyd::y#5 line_xdyd::xd#5 line_xdyd::x1#6 ] ( main:2::lines:12::line:25::line_xdyd:54 [ lines::l#2 line_xdyd::yd#2 line_xdyd::x#6 line_xdyd::y#5 line_xdyd::xd#5 line_xdyd::x1#6 ] main:2::lines:12::line:25::line_xdyd:70 [ lines::l#2 line_xdyd::yd#2 line_xdyd::x#6 line_xdyd::y#5 line_xdyd::xd#5 line_xdyd::x1#6 ] )
|
||||
[150] (byte) line_xdyd::y#5 ← phi( line::@20/(byte) line_xdyd::y#0 line::@24/(byte) line_xdyd::y#1 ) [ line_xdyd::yd#2 line_xdyd::x#6 line_xdyd::y#5 line_xdyd::xd#5 line_xdyd::x1#6 ] ( main:2::lines:12::line:25::line_xdyd:54 [ lines::l#2 line_xdyd::yd#2 line_xdyd::x#6 line_xdyd::y#5 line_xdyd::xd#5 line_xdyd::x1#6 ] main:2::lines:12::line:25::line_xdyd:70 [ lines::l#2 line_xdyd::yd#2 line_xdyd::x#6 line_xdyd::y#5 line_xdyd::xd#5 line_xdyd::x1#6 ] )
|
||||
[150] (byte) line_xdyd::x#6 ← phi( line::@20/(byte) line_xdyd::x#0 line::@24/(byte) line_xdyd::x#1 ) [ line_xdyd::yd#2 line_xdyd::x#6 line_xdyd::y#5 line_xdyd::xd#5 line_xdyd::x1#6 ] ( main:2::lines:12::line:25::line_xdyd:54 [ lines::l#2 line_xdyd::yd#2 line_xdyd::x#6 line_xdyd::y#5 line_xdyd::xd#5 line_xdyd::x1#6 ] main:2::lines:12::line:25::line_xdyd:70 [ lines::l#2 line_xdyd::yd#2 line_xdyd::x#6 line_xdyd::y#5 line_xdyd::xd#5 line_xdyd::x1#6 ] )
|
||||
[150] (byte) line_xdyd::yd#2 ← phi( line::@20/(byte) line_xdyd::yd#0 line::@24/(byte) line_xdyd::yd#1 ) [ line_xdyd::yd#2 line_xdyd::x#6 line_xdyd::y#5 line_xdyd::xd#5 line_xdyd::x1#6 ] ( main:2::lines:12::line:25::line_xdyd:54 [ lines::l#2 line_xdyd::yd#2 line_xdyd::x#6 line_xdyd::y#5 line_xdyd::xd#5 line_xdyd::x1#6 ] main:2::lines:12::line:25::line_xdyd:70 [ lines::l#2 line_xdyd::yd#2 line_xdyd::x#6 line_xdyd::y#5 line_xdyd::xd#5 line_xdyd::x1#6 ] )
|
||||
[151] (byte) line_xdyd::e#0 ← (byte) line_xdyd::yd#2 >> (byte/signed byte/word/signed word) 1 [ line_xdyd::yd#2 line_xdyd::x#6 line_xdyd::y#5 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::e#0 ] ( main:2::lines:12::line:25::line_xdyd:54 [ lines::l#2 line_xdyd::yd#2 line_xdyd::x#6 line_xdyd::y#5 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::e#0 ] main:2::lines:12::line:25::line_xdyd:70 [ lines::l#2 line_xdyd::yd#2 line_xdyd::x#6 line_xdyd::y#5 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::e#0 ] )
|
||||
[146] (byte) line_xdyd::x1#6 ← phi( line::@20/(byte) line_xdyd::x1#0 line::@24/(byte) line_xdyd::x1#1 ) [ line_xdyd::yd#2 line_xdyd::x#6 line_xdyd::y#5 line_xdyd::xd#5 line_xdyd::x1#6 ] ( main:2::lines:12::line:21::line_xdyd:50 [ lines::l#2 line_xdyd::yd#2 line_xdyd::x#6 line_xdyd::y#5 line_xdyd::xd#5 line_xdyd::x1#6 ] main:2::lines:12::line:21::line_xdyd:66 [ lines::l#2 line_xdyd::yd#2 line_xdyd::x#6 line_xdyd::y#5 line_xdyd::xd#5 line_xdyd::x1#6 ] )
|
||||
[146] (byte) line_xdyd::xd#5 ← phi( line::@20/(byte) line_xdyd::xd#0 line::@24/(byte) line_xdyd::xd#1 ) [ line_xdyd::yd#2 line_xdyd::x#6 line_xdyd::y#5 line_xdyd::xd#5 line_xdyd::x1#6 ] ( main:2::lines:12::line:21::line_xdyd:50 [ lines::l#2 line_xdyd::yd#2 line_xdyd::x#6 line_xdyd::y#5 line_xdyd::xd#5 line_xdyd::x1#6 ] main:2::lines:12::line:21::line_xdyd:66 [ lines::l#2 line_xdyd::yd#2 line_xdyd::x#6 line_xdyd::y#5 line_xdyd::xd#5 line_xdyd::x1#6 ] )
|
||||
[146] (byte) line_xdyd::y#5 ← phi( line::@20/(byte) line_xdyd::y#0 line::@24/(byte) line_xdyd::y#1 ) [ line_xdyd::yd#2 line_xdyd::x#6 line_xdyd::y#5 line_xdyd::xd#5 line_xdyd::x1#6 ] ( main:2::lines:12::line:21::line_xdyd:50 [ lines::l#2 line_xdyd::yd#2 line_xdyd::x#6 line_xdyd::y#5 line_xdyd::xd#5 line_xdyd::x1#6 ] main:2::lines:12::line:21::line_xdyd:66 [ lines::l#2 line_xdyd::yd#2 line_xdyd::x#6 line_xdyd::y#5 line_xdyd::xd#5 line_xdyd::x1#6 ] )
|
||||
[146] (byte) line_xdyd::x#6 ← phi( line::@20/(byte) line_xdyd::x#0 line::@24/(byte) line_xdyd::x#1 ) [ line_xdyd::yd#2 line_xdyd::x#6 line_xdyd::y#5 line_xdyd::xd#5 line_xdyd::x1#6 ] ( main:2::lines:12::line:21::line_xdyd:50 [ lines::l#2 line_xdyd::yd#2 line_xdyd::x#6 line_xdyd::y#5 line_xdyd::xd#5 line_xdyd::x1#6 ] main:2::lines:12::line:21::line_xdyd:66 [ lines::l#2 line_xdyd::yd#2 line_xdyd::x#6 line_xdyd::y#5 line_xdyd::xd#5 line_xdyd::x1#6 ] )
|
||||
[146] (byte) line_xdyd::yd#2 ← phi( line::@20/(byte) line_xdyd::yd#0 line::@24/(byte) line_xdyd::yd#1 ) [ line_xdyd::yd#2 line_xdyd::x#6 line_xdyd::y#5 line_xdyd::xd#5 line_xdyd::x1#6 ] ( main:2::lines:12::line:21::line_xdyd:50 [ lines::l#2 line_xdyd::yd#2 line_xdyd::x#6 line_xdyd::y#5 line_xdyd::xd#5 line_xdyd::x1#6 ] main:2::lines:12::line:21::line_xdyd:66 [ lines::l#2 line_xdyd::yd#2 line_xdyd::x#6 line_xdyd::y#5 line_xdyd::xd#5 line_xdyd::x1#6 ] )
|
||||
[147] (byte) line_xdyd::e#0 ← (byte) line_xdyd::yd#2 >> (byte/signed byte/word/signed word) 1 [ line_xdyd::yd#2 line_xdyd::x#6 line_xdyd::y#5 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::e#0 ] ( main:2::lines:12::line:21::line_xdyd:50 [ lines::l#2 line_xdyd::yd#2 line_xdyd::x#6 line_xdyd::y#5 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::e#0 ] main:2::lines:12::line:21::line_xdyd:66 [ lines::l#2 line_xdyd::yd#2 line_xdyd::x#6 line_xdyd::y#5 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::e#0 ] )
|
||||
to:line_xdyd::@1
|
||||
line_xdyd::@1: scope:[line_xdyd] from line_xdyd line_xdyd::@2
|
||||
[152] (byte) line_xdyd::e#3 ← phi( line_xdyd/(byte) line_xdyd::e#0 line_xdyd::@2/(byte) line_xdyd::e#6 ) [ line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 ] ( main:2::lines:12::line:25::line_xdyd:54 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 ] main:2::lines:12::line:25::line_xdyd:70 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 ] )
|
||||
[152] (byte) line_xdyd::y#3 ← phi( line_xdyd/(byte) line_xdyd::y#5 line_xdyd::@2/(byte) line_xdyd::y#6 ) [ line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 ] ( main:2::lines:12::line:25::line_xdyd:54 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 ] main:2::lines:12::line:25::line_xdyd:70 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 ] )
|
||||
[152] (byte) line_xdyd::x#3 ← phi( line_xdyd/(byte) line_xdyd::x#6 line_xdyd::@2/(byte) line_xdyd::x#2 ) [ line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 ] ( main:2::lines:12::line:25::line_xdyd:54 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 ] main:2::lines:12::line:25::line_xdyd:70 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 ] )
|
||||
[153] (byte) plot::x#1 ← (byte) line_xdyd::x#3 [ plot::x#1 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 ] ( main:2::lines:12::line:25::line_xdyd:54 [ lines::l#2 plot::x#1 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 ] main:2::lines:12::line:25::line_xdyd:70 [ lines::l#2 plot::x#1 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 ] )
|
||||
[154] (byte) plot::y#1 ← (byte) line_xdyd::y#3 [ plot::x#1 plot::y#1 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 ] ( main:2::lines:12::line:25::line_xdyd:54 [ lines::l#2 plot::x#1 plot::y#1 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 ] main:2::lines:12::line:25::line_xdyd:70 [ lines::l#2 plot::x#1 plot::y#1 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 ] )
|
||||
[155] call plot param-assignment [ line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 ] ( main:2::lines:12::line:25::line_xdyd:54 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 ] main:2::lines:12::line:25::line_xdyd:70 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 ] )
|
||||
[148] (byte) line_xdyd::e#3 ← phi( line_xdyd/(byte) line_xdyd::e#0 line_xdyd::@2/(byte) line_xdyd::e#6 ) [ line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 ] ( main:2::lines:12::line:21::line_xdyd:50 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 ] main:2::lines:12::line:21::line_xdyd:66 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 ] )
|
||||
[148] (byte) line_xdyd::y#3 ← phi( line_xdyd/(byte) line_xdyd::y#5 line_xdyd::@2/(byte) line_xdyd::y#6 ) [ line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 ] ( main:2::lines:12::line:21::line_xdyd:50 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 ] main:2::lines:12::line:21::line_xdyd:66 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 ] )
|
||||
[148] (byte) line_xdyd::x#3 ← phi( line_xdyd/(byte) line_xdyd::x#6 line_xdyd::@2/(byte) line_xdyd::x#2 ) [ line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 ] ( main:2::lines:12::line:21::line_xdyd:50 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 ] main:2::lines:12::line:21::line_xdyd:66 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 ] )
|
||||
[149] (byte) plot::x#1 ← (byte) line_xdyd::x#3 [ plot::x#1 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 ] ( main:2::lines:12::line:21::line_xdyd:50 [ lines::l#2 plot::x#1 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 ] main:2::lines:12::line:21::line_xdyd:66 [ lines::l#2 plot::x#1 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 ] )
|
||||
[150] (byte) plot::y#1 ← (byte) line_xdyd::y#3 [ plot::x#1 plot::y#1 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 ] ( main:2::lines:12::line:21::line_xdyd:50 [ lines::l#2 plot::x#1 plot::y#1 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 ] main:2::lines:12::line:21::line_xdyd:66 [ lines::l#2 plot::x#1 plot::y#1 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 ] )
|
||||
[151] call plot param-assignment [ line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 ] ( main:2::lines:12::line:21::line_xdyd:50 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 ] main:2::lines:12::line:21::line_xdyd:66 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#3 line_xdyd::y#3 line_xdyd::e#3 ] )
|
||||
to:line_xdyd::@5
|
||||
line_xdyd::@5: scope:[line_xdyd] from line_xdyd::@1
|
||||
[156] (byte) line_xdyd::x#2 ← (byte) line_xdyd::x#3 + (byte/signed byte/word/signed word) 1 [ line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::y#3 line_xdyd::e#3 line_xdyd::x#2 ] ( main:2::lines:12::line:25::line_xdyd:54 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::y#3 line_xdyd::e#3 line_xdyd::x#2 ] main:2::lines:12::line:25::line_xdyd:70 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::y#3 line_xdyd::e#3 line_xdyd::x#2 ] )
|
||||
[157] (byte) line_xdyd::e#1 ← (byte) line_xdyd::e#3 + (byte) line_xdyd::yd#2 [ line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::y#3 line_xdyd::x#2 line_xdyd::e#1 ] ( main:2::lines:12::line:25::line_xdyd:54 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::y#3 line_xdyd::x#2 line_xdyd::e#1 ] main:2::lines:12::line:25::line_xdyd:70 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::y#3 line_xdyd::x#2 line_xdyd::e#1 ] )
|
||||
[158] if((byte) line_xdyd::xd#5>=(byte) line_xdyd::e#1) goto line_xdyd::@2 [ line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::y#3 line_xdyd::x#2 line_xdyd::e#1 ] ( main:2::lines:12::line:25::line_xdyd:54 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::y#3 line_xdyd::x#2 line_xdyd::e#1 ] main:2::lines:12::line:25::line_xdyd:70 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::y#3 line_xdyd::x#2 line_xdyd::e#1 ] )
|
||||
[152] (byte) line_xdyd::x#2 ← (byte) line_xdyd::x#3 + (byte/signed byte/word/signed word) 1 [ line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::y#3 line_xdyd::e#3 line_xdyd::x#2 ] ( main:2::lines:12::line:21::line_xdyd:50 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::y#3 line_xdyd::e#3 line_xdyd::x#2 ] main:2::lines:12::line:21::line_xdyd:66 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::y#3 line_xdyd::e#3 line_xdyd::x#2 ] )
|
||||
[153] (byte) line_xdyd::e#1 ← (byte) line_xdyd::e#3 + (byte) line_xdyd::yd#2 [ line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::y#3 line_xdyd::x#2 line_xdyd::e#1 ] ( main:2::lines:12::line:21::line_xdyd:50 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::y#3 line_xdyd::x#2 line_xdyd::e#1 ] main:2::lines:12::line:21::line_xdyd:66 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::y#3 line_xdyd::x#2 line_xdyd::e#1 ] )
|
||||
[154] if((byte) line_xdyd::xd#5>=(byte) line_xdyd::e#1) goto line_xdyd::@2 [ line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::y#3 line_xdyd::x#2 line_xdyd::e#1 ] ( main:2::lines:12::line:21::line_xdyd:50 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::y#3 line_xdyd::x#2 line_xdyd::e#1 ] main:2::lines:12::line:21::line_xdyd:66 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::y#3 line_xdyd::x#2 line_xdyd::e#1 ] )
|
||||
to:line_xdyd::@3
|
||||
line_xdyd::@3: scope:[line_xdyd] from line_xdyd::@5
|
||||
[159] (byte) line_xdyd::y#2 ← (byte) line_xdyd::y#3 - (byte/signed byte/word/signed word) 1 [ line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#2 line_xdyd::e#1 line_xdyd::y#2 ] ( main:2::lines:12::line:25::line_xdyd:54 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#2 line_xdyd::e#1 line_xdyd::y#2 ] main:2::lines:12::line:25::line_xdyd:70 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#2 line_xdyd::e#1 line_xdyd::y#2 ] )
|
||||
[160] (byte) line_xdyd::e#2 ← (byte) line_xdyd::e#1 - (byte) line_xdyd::xd#5 [ line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#2 line_xdyd::y#2 line_xdyd::e#2 ] ( main:2::lines:12::line:25::line_xdyd:54 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#2 line_xdyd::y#2 line_xdyd::e#2 ] main:2::lines:12::line:25::line_xdyd:70 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#2 line_xdyd::y#2 line_xdyd::e#2 ] )
|
||||
[155] (byte) line_xdyd::y#2 ← (byte) line_xdyd::y#3 - (byte/signed byte/word/signed word) 1 [ line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#2 line_xdyd::e#1 line_xdyd::y#2 ] ( main:2::lines:12::line:21::line_xdyd:50 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#2 line_xdyd::e#1 line_xdyd::y#2 ] main:2::lines:12::line:21::line_xdyd:66 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#2 line_xdyd::e#1 line_xdyd::y#2 ] )
|
||||
[156] (byte) line_xdyd::e#2 ← (byte) line_xdyd::e#1 - (byte) line_xdyd::xd#5 [ line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#2 line_xdyd::y#2 line_xdyd::e#2 ] ( main:2::lines:12::line:21::line_xdyd:50 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#2 line_xdyd::y#2 line_xdyd::e#2 ] main:2::lines:12::line:21::line_xdyd:66 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#2 line_xdyd::y#2 line_xdyd::e#2 ] )
|
||||
to:line_xdyd::@2
|
||||
line_xdyd::@2: scope:[line_xdyd] from line_xdyd::@3 line_xdyd::@5
|
||||
[161] (byte) line_xdyd::e#6 ← phi( line_xdyd::@3/(byte) line_xdyd::e#2 line_xdyd::@5/(byte) line_xdyd::e#1 ) [ line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#2 line_xdyd::y#6 line_xdyd::e#6 ] ( main:2::lines:12::line:25::line_xdyd:54 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#2 line_xdyd::y#6 line_xdyd::e#6 ] main:2::lines:12::line:25::line_xdyd:70 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#2 line_xdyd::y#6 line_xdyd::e#6 ] )
|
||||
[161] (byte) line_xdyd::y#6 ← phi( line_xdyd::@3/(byte) line_xdyd::y#2 line_xdyd::@5/(byte) line_xdyd::y#3 ) [ line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#2 line_xdyd::y#6 line_xdyd::e#6 ] ( main:2::lines:12::line:25::line_xdyd:54 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#2 line_xdyd::y#6 line_xdyd::e#6 ] main:2::lines:12::line:25::line_xdyd:70 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#2 line_xdyd::y#6 line_xdyd::e#6 ] )
|
||||
[162] (byte~) line_xdyd::$8 ← (byte) line_xdyd::x1#6 + (byte/signed byte/word/signed word) 1 [ line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#2 line_xdyd::y#6 line_xdyd::e#6 line_xdyd::$8 ] ( main:2::lines:12::line:25::line_xdyd:54 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#2 line_xdyd::y#6 line_xdyd::e#6 line_xdyd::$8 ] main:2::lines:12::line:25::line_xdyd:70 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#2 line_xdyd::y#6 line_xdyd::e#6 line_xdyd::$8 ] )
|
||||
[163] if((byte) line_xdyd::x#2<(byte~) line_xdyd::$8) goto line_xdyd::@1 [ line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#2 line_xdyd::y#6 line_xdyd::e#6 ] ( main:2::lines:12::line:25::line_xdyd:54 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#2 line_xdyd::y#6 line_xdyd::e#6 ] main:2::lines:12::line:25::line_xdyd:70 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#2 line_xdyd::y#6 line_xdyd::e#6 ] )
|
||||
[157] (byte) line_xdyd::e#6 ← phi( line_xdyd::@3/(byte) line_xdyd::e#2 line_xdyd::@5/(byte) line_xdyd::e#1 ) [ line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#2 line_xdyd::y#6 line_xdyd::e#6 ] ( main:2::lines:12::line:21::line_xdyd:50 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#2 line_xdyd::y#6 line_xdyd::e#6 ] main:2::lines:12::line:21::line_xdyd:66 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#2 line_xdyd::y#6 line_xdyd::e#6 ] )
|
||||
[157] (byte) line_xdyd::y#6 ← phi( line_xdyd::@3/(byte) line_xdyd::y#2 line_xdyd::@5/(byte) line_xdyd::y#3 ) [ line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#2 line_xdyd::y#6 line_xdyd::e#6 ] ( main:2::lines:12::line:21::line_xdyd:50 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#2 line_xdyd::y#6 line_xdyd::e#6 ] main:2::lines:12::line:21::line_xdyd:66 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#2 line_xdyd::y#6 line_xdyd::e#6 ] )
|
||||
[158] (byte~) line_xdyd::$8 ← (byte) line_xdyd::x1#6 + (byte/signed byte/word/signed word) 1 [ line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#2 line_xdyd::y#6 line_xdyd::e#6 line_xdyd::$8 ] ( main:2::lines:12::line:21::line_xdyd:50 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#2 line_xdyd::y#6 line_xdyd::e#6 line_xdyd::$8 ] main:2::lines:12::line:21::line_xdyd:66 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#2 line_xdyd::y#6 line_xdyd::e#6 line_xdyd::$8 ] )
|
||||
[159] if((byte) line_xdyd::x#2<(byte~) line_xdyd::$8) goto line_xdyd::@1 [ line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#2 line_xdyd::y#6 line_xdyd::e#6 ] ( main:2::lines:12::line:21::line_xdyd:50 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#2 line_xdyd::y#6 line_xdyd::e#6 ] main:2::lines:12::line:21::line_xdyd:66 [ lines::l#2 line_xdyd::yd#2 line_xdyd::xd#5 line_xdyd::x1#6 line_xdyd::x#2 line_xdyd::y#6 line_xdyd::e#6 ] )
|
||||
to:line_xdyd::@return
|
||||
line_xdyd::@return: scope:[line_xdyd] from line_xdyd::@2
|
||||
[164] return [ ] ( main:2::lines:12::line:25::line_xdyd:54 [ lines::l#2 ] main:2::lines:12::line:25::line_xdyd:70 [ lines::l#2 ] )
|
||||
[160] return [ ] ( main:2::lines:12::line:21::line_xdyd:50 [ lines::l#2 ] main:2::lines:12::line:21::line_xdyd:66 [ lines::l#2 ] )
|
||||
to:@return
|
||||
init_plot_tables: scope:[init_plot_tables] from main::@3
|
||||
[165] phi() [ ] ( main:2::init_plot_tables:10 [ ] )
|
||||
[161] phi() [ ] ( main:2::init_plot_tables:10 [ ] )
|
||||
to:init_plot_tables::@1
|
||||
init_plot_tables::@1: scope:[init_plot_tables] from init_plot_tables init_plot_tables::@2
|
||||
[166] (byte) init_plot_tables::bits#3 ← phi( init_plot_tables/(byte/word/signed word) 128 init_plot_tables::@2/(byte) init_plot_tables::bits#4 ) [ init_plot_tables::x#2 init_plot_tables::bits#3 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] )
|
||||
[166] (byte) init_plot_tables::x#2 ← phi( init_plot_tables/(byte/signed byte/word/signed word) 0 init_plot_tables::@2/(byte) init_plot_tables::x#1 ) [ init_plot_tables::x#2 init_plot_tables::bits#3 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] )
|
||||
[167] (byte~) init_plot_tables::$0 ← (byte) init_plot_tables::x#2 & (byte/word/signed word) 248 [ init_plot_tables::x#2 init_plot_tables::bits#3 init_plot_tables::$0 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#2 init_plot_tables::bits#3 init_plot_tables::$0 ] )
|
||||
[168] *((const byte[]) plot_xlo#0 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$0 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] )
|
||||
[169] *((const byte[]) plot_xhi#0 + (byte) init_plot_tables::x#2) ← >(const byte*) BITMAP#0 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] )
|
||||
[170] *((const byte[]) plot_bit#0 + (byte) init_plot_tables::x#2) ← (byte) init_plot_tables::bits#3 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] )
|
||||
[171] (byte) init_plot_tables::bits#1 ← (byte) init_plot_tables::bits#3 >> (byte/signed byte/word/signed word) 1 [ init_plot_tables::x#2 init_plot_tables::bits#1 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#2 init_plot_tables::bits#1 ] )
|
||||
[172] if((byte) init_plot_tables::bits#1!=(byte/signed byte/word/signed word) 0) goto init_plot_tables::@10 [ init_plot_tables::x#2 init_plot_tables::bits#1 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#2 init_plot_tables::bits#1 ] )
|
||||
[162] (byte) init_plot_tables::bits#3 ← phi( init_plot_tables/(byte/word/signed word) 128 init_plot_tables::@2/(byte) init_plot_tables::bits#4 ) [ init_plot_tables::x#2 init_plot_tables::bits#3 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] )
|
||||
[162] (byte) init_plot_tables::x#2 ← phi( init_plot_tables/(byte/signed byte/word/signed word) 0 init_plot_tables::@2/(byte) init_plot_tables::x#1 ) [ init_plot_tables::x#2 init_plot_tables::bits#3 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] )
|
||||
[163] (byte~) init_plot_tables::$0 ← (byte) init_plot_tables::x#2 & (byte/word/signed word) 248 [ init_plot_tables::x#2 init_plot_tables::bits#3 init_plot_tables::$0 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#2 init_plot_tables::bits#3 init_plot_tables::$0 ] )
|
||||
[164] *((const byte[]) plot_xlo#0 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$0 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] )
|
||||
[165] *((const byte[]) plot_xhi#0 + (byte) init_plot_tables::x#2) ← >(const byte*) BITMAP#0 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] )
|
||||
[166] *((const byte[]) plot_bit#0 + (byte) init_plot_tables::x#2) ← (byte) init_plot_tables::bits#3 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] )
|
||||
[167] (byte) init_plot_tables::bits#1 ← (byte) init_plot_tables::bits#3 >> (byte/signed byte/word/signed word) 1 [ init_plot_tables::x#2 init_plot_tables::bits#1 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#2 init_plot_tables::bits#1 ] )
|
||||
[168] if((byte) init_plot_tables::bits#1!=(byte/signed byte/word/signed word) 0) goto init_plot_tables::@10 [ init_plot_tables::x#2 init_plot_tables::bits#1 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#2 init_plot_tables::bits#1 ] )
|
||||
to:init_plot_tables::@2
|
||||
init_plot_tables::@2: scope:[init_plot_tables] from init_plot_tables::@1 init_plot_tables::@10
|
||||
[173] (byte) init_plot_tables::bits#4 ← phi( init_plot_tables::@10/(byte) init_plot_tables::bits#1 init_plot_tables::@1/(byte/word/signed word) 128 ) [ init_plot_tables::x#2 init_plot_tables::bits#4 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#2 init_plot_tables::bits#4 ] )
|
||||
[174] (byte) init_plot_tables::x#1 ← ++ (byte) init_plot_tables::x#2 [ init_plot_tables::x#1 init_plot_tables::bits#4 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#1 init_plot_tables::bits#4 ] )
|
||||
[175] if((byte) init_plot_tables::x#1!=(byte/signed byte/word/signed word) 0) goto init_plot_tables::@1 [ init_plot_tables::x#1 init_plot_tables::bits#4 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#1 init_plot_tables::bits#4 ] )
|
||||
[169] (byte) init_plot_tables::bits#4 ← phi( init_plot_tables::@10/(byte) init_plot_tables::bits#1 init_plot_tables::@1/(byte/word/signed word) 128 ) [ init_plot_tables::x#2 init_plot_tables::bits#4 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#2 init_plot_tables::bits#4 ] )
|
||||
[170] (byte) init_plot_tables::x#1 ← ++ (byte) init_plot_tables::x#2 [ init_plot_tables::x#1 init_plot_tables::bits#4 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#1 init_plot_tables::bits#4 ] )
|
||||
[171] if((byte) init_plot_tables::x#1!=(byte/signed byte/word/signed word) 0) goto init_plot_tables::@1 [ init_plot_tables::x#1 init_plot_tables::bits#4 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#1 init_plot_tables::bits#4 ] )
|
||||
to:init_plot_tables::@3
|
||||
init_plot_tables::@3: scope:[init_plot_tables] from init_plot_tables::@2 init_plot_tables::@4
|
||||
[176] (byte*) init_plot_tables::yoffs#2 ← phi( init_plot_tables::@4/(byte*) init_plot_tables::yoffs#4 init_plot_tables::@2/((byte*))(byte/signed byte/word/signed word) 0 ) [ init_plot_tables::y#2 init_plot_tables::yoffs#2 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 ] )
|
||||
[176] (byte) init_plot_tables::y#2 ← phi( init_plot_tables::@4/(byte) init_plot_tables::y#1 init_plot_tables::@2/(byte/signed byte/word/signed word) 0 ) [ init_plot_tables::y#2 init_plot_tables::yoffs#2 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 ] )
|
||||
[177] (byte~) init_plot_tables::$6 ← (byte) init_plot_tables::y#2 & (byte/signed byte/word/signed word) 7 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$6 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$6 ] )
|
||||
[178] (byte~) init_plot_tables::$7 ← < (byte*) init_plot_tables::yoffs#2 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$6 init_plot_tables::$7 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$6 init_plot_tables::$7 ] )
|
||||
[179] (byte~) init_plot_tables::$8 ← (byte~) init_plot_tables::$6 | (byte~) init_plot_tables::$7 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$8 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$8 ] )
|
||||
[180] *((const byte[]) plot_ylo#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$8 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 ] )
|
||||
[181] (byte~) init_plot_tables::$9 ← > (byte*) init_plot_tables::yoffs#2 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$9 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$9 ] )
|
||||
[182] *((const byte[]) plot_yhi#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$9 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 ] )
|
||||
[183] (byte~) init_plot_tables::$10 ← (byte) init_plot_tables::y#2 & (byte/signed byte/word/signed word) 7 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$10 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$10 ] )
|
||||
[184] if((byte~) init_plot_tables::$10!=(byte/signed byte/word/signed word) 7) goto init_plot_tables::@4 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 ] )
|
||||
[172] (byte*) init_plot_tables::yoffs#2 ← phi( init_plot_tables::@4/(byte*) init_plot_tables::yoffs#4 init_plot_tables::@2/((byte*))(byte/signed byte/word/signed word) 0 ) [ init_plot_tables::y#2 init_plot_tables::yoffs#2 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 ] )
|
||||
[172] (byte) init_plot_tables::y#2 ← phi( init_plot_tables::@4/(byte) init_plot_tables::y#1 init_plot_tables::@2/(byte/signed byte/word/signed word) 0 ) [ init_plot_tables::y#2 init_plot_tables::yoffs#2 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 ] )
|
||||
[173] (byte~) init_plot_tables::$6 ← (byte) init_plot_tables::y#2 & (byte/signed byte/word/signed word) 7 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$6 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$6 ] )
|
||||
[174] (byte~) init_plot_tables::$7 ← < (byte*) init_plot_tables::yoffs#2 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$6 init_plot_tables::$7 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$6 init_plot_tables::$7 ] )
|
||||
[175] (byte~) init_plot_tables::$8 ← (byte~) init_plot_tables::$6 | (byte~) init_plot_tables::$7 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$8 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$8 ] )
|
||||
[176] *((const byte[]) plot_ylo#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$8 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 ] )
|
||||
[177] (byte~) init_plot_tables::$9 ← > (byte*) init_plot_tables::yoffs#2 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$9 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$9 ] )
|
||||
[178] *((const byte[]) plot_yhi#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$9 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 ] )
|
||||
[179] (byte~) init_plot_tables::$10 ← (byte) init_plot_tables::y#2 & (byte/signed byte/word/signed word) 7 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$10 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$10 ] )
|
||||
[180] if((byte~) init_plot_tables::$10!=(byte/signed byte/word/signed word) 7) goto init_plot_tables::@4 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 ] )
|
||||
to:init_plot_tables::@7
|
||||
init_plot_tables::@7: scope:[init_plot_tables] from init_plot_tables::@3
|
||||
[185] (byte*) init_plot_tables::yoffs#1 ← (byte*) init_plot_tables::yoffs#2 + (word/signed word) 320 [ init_plot_tables::y#2 init_plot_tables::yoffs#1 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#1 ] )
|
||||
[181] (byte*) init_plot_tables::yoffs#1 ← (byte*) init_plot_tables::yoffs#2 + (word/signed word) 320 [ init_plot_tables::y#2 init_plot_tables::yoffs#1 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#1 ] )
|
||||
to:init_plot_tables::@4
|
||||
init_plot_tables::@4: scope:[init_plot_tables] from init_plot_tables::@3 init_plot_tables::@7
|
||||
[186] (byte*) init_plot_tables::yoffs#4 ← phi( init_plot_tables::@3/(byte*) init_plot_tables::yoffs#2 init_plot_tables::@7/(byte*) init_plot_tables::yoffs#1 ) [ init_plot_tables::y#2 init_plot_tables::yoffs#4 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#4 ] )
|
||||
[187] (byte) init_plot_tables::y#1 ← ++ (byte) init_plot_tables::y#2 [ init_plot_tables::y#1 init_plot_tables::yoffs#4 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#1 init_plot_tables::yoffs#4 ] )
|
||||
[188] if((byte) init_plot_tables::y#1!=(byte/signed byte/word/signed word) 0) goto init_plot_tables::@3 [ init_plot_tables::y#1 init_plot_tables::yoffs#4 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#1 init_plot_tables::yoffs#4 ] )
|
||||
[182] (byte*) init_plot_tables::yoffs#4 ← phi( init_plot_tables::@3/(byte*) init_plot_tables::yoffs#2 init_plot_tables::@7/(byte*) init_plot_tables::yoffs#1 ) [ init_plot_tables::y#2 init_plot_tables::yoffs#4 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#4 ] )
|
||||
[183] (byte) init_plot_tables::y#1 ← ++ (byte) init_plot_tables::y#2 [ init_plot_tables::y#1 init_plot_tables::yoffs#4 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#1 init_plot_tables::yoffs#4 ] )
|
||||
[184] if((byte) init_plot_tables::y#1!=(byte/signed byte/word/signed word) 0) goto init_plot_tables::@3 [ init_plot_tables::y#1 init_plot_tables::yoffs#4 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#1 init_plot_tables::yoffs#4 ] )
|
||||
to:init_plot_tables::@return
|
||||
init_plot_tables::@return: scope:[init_plot_tables] from init_plot_tables::@4
|
||||
[189] return [ ] ( main:2::init_plot_tables:10 [ ] )
|
||||
[185] return [ ] ( main:2::init_plot_tables:10 [ ] )
|
||||
to:@return
|
||||
init_plot_tables::@10: scope:[init_plot_tables] from init_plot_tables::@1
|
||||
[190] phi() [ init_plot_tables::x#2 init_plot_tables::bits#1 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#2 init_plot_tables::bits#1 ] )
|
||||
[186] phi() [ init_plot_tables::x#2 init_plot_tables::bits#1 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#2 init_plot_tables::bits#1 ] )
|
||||
to:init_plot_tables::@2
|
||||
init_screen: scope:[init_screen] from main
|
||||
[191] phi() [ ] ( main:2::init_screen:8 [ ] )
|
||||
[187] phi() [ ] ( main:2::init_screen:8 [ ] )
|
||||
to:init_screen::@1
|
||||
init_screen::@1: scope:[init_screen] from init_screen init_screen::@1
|
||||
[192] (byte*) init_screen::b#2 ← phi( init_screen/(const byte*) BITMAP#0 init_screen::@1/(byte*) init_screen::b#1 ) [ init_screen::b#2 ] ( main:2::init_screen:8 [ init_screen::b#2 ] )
|
||||
[193] *((byte*) init_screen::b#2) ← (byte/signed byte/word/signed word) 0 [ init_screen::b#2 ] ( main:2::init_screen:8 [ init_screen::b#2 ] )
|
||||
[194] (byte*) init_screen::b#1 ← ++ (byte*) init_screen::b#2 [ init_screen::b#1 ] ( main:2::init_screen:8 [ init_screen::b#1 ] )
|
||||
[195] if((byte*) init_screen::b#1!=(const byte*) BITMAP#0+(word/signed word) 8192) goto init_screen::@1 [ init_screen::b#1 ] ( main:2::init_screen:8 [ init_screen::b#1 ] )
|
||||
[188] (byte*) init_screen::b#2 ← phi( init_screen/(const byte*) BITMAP#0 init_screen::@1/(byte*) init_screen::b#1 ) [ init_screen::b#2 ] ( main:2::init_screen:8 [ init_screen::b#2 ] )
|
||||
[189] *((byte*) init_screen::b#2) ← (byte/signed byte/word/signed word) 0 [ init_screen::b#2 ] ( main:2::init_screen:8 [ init_screen::b#2 ] )
|
||||
[190] (byte*) init_screen::b#1 ← ++ (byte*) init_screen::b#2 [ init_screen::b#1 ] ( main:2::init_screen:8 [ init_screen::b#1 ] )
|
||||
[191] if((byte*) init_screen::b#1!=(const byte*) BITMAP#0+(word/signed word) 8192) goto init_screen::@1 [ init_screen::b#1 ] ( main:2::init_screen:8 [ init_screen::b#1 ] )
|
||||
to:init_screen::@2
|
||||
init_screen::@2: scope:[init_screen] from init_screen::@1 init_screen::@2
|
||||
[196] (byte*) init_screen::c#2 ← phi( init_screen::@2/(byte*) init_screen::c#1 init_screen::@1/(const byte*) SCREEN#0 ) [ init_screen::c#2 ] ( main:2::init_screen:8 [ init_screen::c#2 ] )
|
||||
[197] *((byte*) init_screen::c#2) ← (byte/signed byte/word/signed word) 20 [ init_screen::c#2 ] ( main:2::init_screen:8 [ init_screen::c#2 ] )
|
||||
[198] (byte*) init_screen::c#1 ← ++ (byte*) init_screen::c#2 [ init_screen::c#1 ] ( main:2::init_screen:8 [ init_screen::c#1 ] )
|
||||
[199] if((byte*) init_screen::c#1!=(const byte*) SCREEN#0+(word/signed word) 1024) goto init_screen::@2 [ init_screen::c#1 ] ( main:2::init_screen:8 [ init_screen::c#1 ] )
|
||||
[192] (byte*) init_screen::c#2 ← phi( init_screen::@2/(byte*) init_screen::c#1 init_screen::@1/(const byte*) SCREEN#0 ) [ init_screen::c#2 ] ( main:2::init_screen:8 [ init_screen::c#2 ] )
|
||||
[193] *((byte*) init_screen::c#2) ← (byte/signed byte/word/signed word) 20 [ init_screen::c#2 ] ( main:2::init_screen:8 [ init_screen::c#2 ] )
|
||||
[194] (byte*) init_screen::c#1 ← ++ (byte*) init_screen::c#2 [ init_screen::c#1 ] ( main:2::init_screen:8 [ init_screen::c#1 ] )
|
||||
[195] if((byte*) init_screen::c#1!=(const byte*) SCREEN#0+(word/signed word) 1024) goto init_screen::@2 [ init_screen::c#1 ] ( main:2::init_screen:8 [ init_screen::c#1 ] )
|
||||
to:init_screen::@return
|
||||
init_screen::@return: scope:[init_screen] from init_screen::@2
|
||||
[200] return [ ] ( main:2::init_screen:8 [ ] )
|
||||
[196] return [ ] ( main:2::init_screen:8 [ ] )
|
||||
to:@return
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -74,16 +74,16 @@
|
||||
(label) line::@9
|
||||
(label) line::@return
|
||||
(byte) line::x0
|
||||
(byte) line::x0#0 x0 zp ZP_BYTE:5 5.173913043478264
|
||||
(byte) line::x0#0 x0 zp ZP_BYTE:3 5.173913043478264
|
||||
(byte) line::x1
|
||||
(byte) line::x1#0 x1 zp ZP_BYTE:3 5.409090909090908
|
||||
(byte) line::x1#0 x1 zp ZP_BYTE:4 5.409090909090908
|
||||
(byte) line::xd
|
||||
(byte) line::xd#0 xd zp ZP_BYTE:7 0.7
|
||||
(byte) line::xd#1 xd zp ZP_BYTE:7 0.7
|
||||
(byte) line::y0
|
||||
(byte) line::y0#0 reg byte y 5.952380952380948
|
||||
(byte) line::y1
|
||||
(byte) line::y1#0 y1 zp ZP_BYTE:4 6.249999999999996
|
||||
(byte) line::y1#0 y1 zp ZP_BYTE:5 6.249999999999996
|
||||
(byte) line::yd
|
||||
(byte) line::yd#0 yd zp ZP_BYTE:10 0.8888888888888888
|
||||
(byte) line::yd#1 yd zp ZP_BYTE:10 0.8888888888888888
|
||||
@ -242,16 +242,12 @@
|
||||
(byte) line_ydxi::yd#1 yd zp ZP_BYTE:4 2.0
|
||||
(byte) line_ydxi::yd#5 yd zp ZP_BYTE:4 1.8571428571428572
|
||||
(void()) lines()
|
||||
(byte~) lines::$0 reg byte y 50.5
|
||||
(byte~) lines::$2 $2 zp ZP_BYTE:3 50.5
|
||||
(byte~) lines::$3 $3 zp ZP_BYTE:4 50.5
|
||||
(byte~) lines::$5 reg byte x 50.5
|
||||
(label) lines::@1
|
||||
(label) lines::@3
|
||||
(label) lines::@return
|
||||
(byte) lines::l
|
||||
(byte) lines::l#1 l zp ZP_BYTE:2 151.5
|
||||
(byte) lines::l#2 l zp ZP_BYTE:2 60.6
|
||||
(byte) lines::l#2 l zp ZP_BYTE:2 100.99999999999999
|
||||
(byte) lines_cnt
|
||||
(const byte) lines_cnt#0 lines_cnt = (byte/signed byte/word/signed word) 8
|
||||
(byte[]) lines_x
|
||||
@ -303,9 +299,9 @@
|
||||
(const byte[]) plot_ylo#0 plot_ylo = ((byte*))(word/signed word) 4608
|
||||
|
||||
zp ZP_BYTE:2 [ lines::l#2 lines::l#1 init_plot_tables::$6 ]
|
||||
zp ZP_BYTE:3 [ line_ydxi::xd#2 line_ydxi::xd#1 line_ydxi::xd#0 line_xdyi::yd#2 line_xdyi::yd#0 line_xdyi::yd#1 line_ydxd::xd#2 line_ydxd::xd#1 line_ydxd::xd#0 line_xdyd::yd#2 line_xdyd::yd#0 line_xdyd::yd#1 lines::$2 line::x1#0 ]
|
||||
zp ZP_BYTE:4 [ line_ydxi::yd#5 line_ydxi::yd#1 line_ydxi::yd#0 line_xdyi::xd#5 line_xdyi::xd#0 line_xdyi::xd#1 line_ydxd::yd#5 line_ydxd::yd#1 line_ydxd::yd#0 line_xdyd::xd#5 line_xdyd::xd#0 line_xdyd::xd#1 lines::$3 line::y1#0 ]
|
||||
zp ZP_BYTE:5 [ line_ydxi::y1#6 line_ydxi::y1#1 line_ydxi::y1#0 line_xdyi::x1#6 line_xdyi::x1#0 line_xdyi::x1#1 line_ydxd::y1#6 line_ydxd::y1#1 line_ydxd::y1#0 line_xdyd::x1#6 line_xdyd::x1#0 line_xdyd::x1#1 line::x0#0 ]
|
||||
zp ZP_BYTE:3 [ line_ydxi::xd#2 line_ydxi::xd#1 line_ydxi::xd#0 line_xdyi::yd#2 line_xdyi::yd#0 line_xdyi::yd#1 line_ydxd::xd#2 line_ydxd::xd#1 line_ydxd::xd#0 line_xdyd::yd#2 line_xdyd::yd#0 line_xdyd::yd#1 line::x0#0 ]
|
||||
zp ZP_BYTE:4 [ line_ydxi::yd#5 line_ydxi::yd#1 line_ydxi::yd#0 line_xdyi::xd#5 line_xdyi::xd#0 line_xdyi::xd#1 line_ydxd::yd#5 line_ydxd::yd#1 line_ydxd::yd#0 line_xdyd::xd#5 line_xdyd::xd#0 line_xdyd::xd#1 line::x1#0 ]
|
||||
zp ZP_BYTE:5 [ line_ydxi::y1#6 line_ydxi::y1#1 line_ydxi::y1#0 line_xdyi::x1#6 line_xdyi::x1#0 line_xdyi::x1#1 line_ydxd::y1#6 line_ydxd::y1#1 line_ydxd::y1#0 line_xdyd::x1#6 line_xdyd::x1#0 line_xdyd::x1#1 line::y1#0 ]
|
||||
reg byte x [ line_ydxi::x#3 line_ydxi::x#5 line_ydxi::x#1 line_ydxi::x#0 line_ydxi::x#6 line_ydxi::x#2 ]
|
||||
zp ZP_BYTE:6 [ line_ydxi::y#3 line_ydxi::y#6 line_ydxi::y#1 line_ydxi::y#0 line_ydxi::y#2 line_xdyi::y#3 line_xdyi::y#5 line_xdyi::y#0 line_xdyi::y#1 line_xdyi::y#6 line_xdyi::y#2 line_ydxd::y#3 line_ydxd::y#6 line_ydxd::y#1 line_ydxd::y#0 line_ydxd::y#2 line_xdyd::y#3 line_xdyd::y#5 line_xdyd::y#0 line_xdyd::y#1 line_xdyd::y#6 line_xdyd::y#2 ]
|
||||
zp ZP_BYTE:7 [ line_ydxi::e#3 line_ydxi::e#0 line_ydxi::e#6 line_ydxi::e#2 line_ydxi::e#1 line_xdyi::e#3 line_xdyi::e#0 line_xdyi::e#6 line_xdyi::e#2 line_xdyi::e#1 line_ydxd::e#3 line_ydxd::e#0 line_ydxd::e#6 line_ydxd::e#2 line_ydxd::e#1 line_xdyd::e#3 line_xdyd::e#0 line_xdyd::e#6 line_xdyd::e#2 line_xdyd::e#1 line::xd#1 line::xd#0 ]
|
||||
@ -318,8 +314,6 @@ reg byte x [ init_plot_tables::x#2 init_plot_tables::x#1 ]
|
||||
reg byte y [ init_plot_tables::bits#3 init_plot_tables::bits#4 init_plot_tables::bits#1 ]
|
||||
reg byte x [ init_plot_tables::y#2 init_plot_tables::y#1 ]
|
||||
zp ZP_WORD:8 [ init_plot_tables::yoffs#2 init_plot_tables::yoffs#4 init_plot_tables::yoffs#1 init_screen::b#2 init_screen::b#1 init_screen::c#2 init_screen::c#1 plot::plotter_x#1 plot::plotter_x#2 plot::plotter#0 ]
|
||||
reg byte y [ lines::$0 ]
|
||||
reg byte x [ lines::$5 ]
|
||||
reg byte y [ line::y0#0 ]
|
||||
zp ZP_BYTE:10 [ line::yd#1 line::yd#0 line::yd#3 line::yd#10 line_xdyi::$8 line_xdyd::$8 ]
|
||||
reg byte a [ line_ydxi::$8 ]
|
||||
|
@ -37,95 +37,93 @@ plots: scope:[plots] from main::@3
|
||||
to:plots::@1
|
||||
plots::@1: scope:[plots] from plots plots::@3
|
||||
[18] (byte) plots::i#2 ← phi( plots/(byte/signed byte/word/signed word) 0 plots::@3/(byte) plots::i#1 ) [ plots::i#2 ] ( main:2::plots:13 [ plots::i#2 ] )
|
||||
[19] (byte~) plots::$0 ← (const byte[]) plots_x#0 *idx (byte) plots::i#2 [ plots::i#2 plots::$0 ] ( main:2::plots:13 [ plots::i#2 plots::$0 ] )
|
||||
[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 ] )
|
||||
[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 ] )
|
||||
[22] (byte) plot::y#0 ← (byte~) plots::$1 [ plots::i#2 plot::x#0 plot::y#0 ] ( main:2::plots:13 [ plots::i#2 plot::x#0 plot::y#0 ] )
|
||||
[23] call plot param-assignment [ plots::i#2 ] ( main:2::plots:13 [ plots::i#2 ] )
|
||||
[19] (byte) plot::x#0 ← (const byte[]) plots_x#0 *idx (byte) plots::i#2 [ plots::i#2 plot::x#0 ] ( main:2::plots:13 [ plots::i#2 plot::x#0 ] )
|
||||
[20] (byte) plot::y#0 ← (const byte[]) plots_y#0 *idx (byte) plots::i#2 [ plots::i#2 plot::x#0 plot::y#0 ] ( main:2::plots:13 [ plots::i#2 plot::x#0 plot::y#0 ] )
|
||||
[21] call plot param-assignment [ plots::i#2 ] ( main:2::plots:13 [ plots::i#2 ] )
|
||||
to:plots::@3
|
||||
plots::@3: scope:[plots] from plots::@1
|
||||
[24] (byte) plots::i#1 ← ++ (byte) plots::i#2 [ plots::i#1 ] ( main:2::plots:13 [ plots::i#1 ] )
|
||||
[25] if((byte) plots::i#1<(const byte) plots_cnt#0) goto plots::@1 [ plots::i#1 ] ( main:2::plots:13 [ plots::i#1 ] )
|
||||
[22] (byte) plots::i#1 ← ++ (byte) plots::i#2 [ plots::i#1 ] ( main:2::plots:13 [ plots::i#1 ] )
|
||||
[23] if((byte) plots::i#1<(const byte) plots_cnt#0) goto plots::@1 [ plots::i#1 ] ( main:2::plots:13 [ plots::i#1 ] )
|
||||
to:plots::@return
|
||||
plots::@return: scope:[plots] from plots::@3
|
||||
[26] return [ ] ( main:2::plots:13 [ ] )
|
||||
[24] return [ ] ( main:2::plots:13 [ ] )
|
||||
to:@return
|
||||
plot: scope:[plot] from plots::@1
|
||||
[27] (byte~) plot::$0 ← (const byte[]) plot_xhi#0 *idx (byte) plot::x#0 [ plot::x#0 plot::y#0 plot::$0 ] ( main:2::plots:13::plot:23 [ plots::i#2 plot::x#0 plot::y#0 plot::$0 ] )
|
||||
[28] (byte*) plot::plotter_x#1 ← ((byte*))(byte/signed byte/word/signed word) 0 hi= (byte~) plot::$0 [ plot::x#0 plot::y#0 plot::plotter_x#1 ] ( main:2::plots:13::plot:23 [ plots::i#2 plot::x#0 plot::y#0 plot::plotter_x#1 ] )
|
||||
[29] (byte~) plot::$1 ← (const byte[]) plot_xlo#0 *idx (byte) plot::x#0 [ plot::x#0 plot::y#0 plot::plotter_x#1 plot::$1 ] ( main:2::plots:13::plot:23 [ plots::i#2 plot::x#0 plot::y#0 plot::plotter_x#1 plot::$1 ] )
|
||||
[30] (byte*) plot::plotter_x#2 ← (byte*) plot::plotter_x#1 lo= (byte~) plot::$1 [ plot::x#0 plot::y#0 plot::plotter_x#2 ] ( main:2::plots:13::plot:23 [ plots::i#2 plot::x#0 plot::y#0 plot::plotter_x#2 ] )
|
||||
[31] (byte~) plot::$2 ← (const byte[]) plot_yhi#0 *idx (byte) plot::y#0 [ plot::x#0 plot::y#0 plot::plotter_x#2 plot::$2 ] ( main:2::plots:13::plot:23 [ plots::i#2 plot::x#0 plot::y#0 plot::plotter_x#2 plot::$2 ] )
|
||||
[32] (word) plot::plotter_y#1 ← (byte/signed byte/word/signed word) 0 hi= (byte~) plot::$2 [ plot::x#0 plot::y#0 plot::plotter_x#2 plot::plotter_y#1 ] ( main:2::plots:13::plot:23 [ plots::i#2 plot::x#0 plot::y#0 plot::plotter_x#2 plot::plotter_y#1 ] )
|
||||
[33] (byte~) plot::$3 ← (const byte[]) plot_ylo#0 *idx (byte) plot::y#0 [ plot::x#0 plot::plotter_x#2 plot::plotter_y#1 plot::$3 ] ( main:2::plots:13::plot:23 [ plots::i#2 plot::x#0 plot::plotter_x#2 plot::plotter_y#1 plot::$3 ] )
|
||||
[34] (word) plot::plotter_y#2 ← (word) plot::plotter_y#1 lo= (byte~) plot::$3 [ plot::x#0 plot::plotter_x#2 plot::plotter_y#2 ] ( main:2::plots:13::plot:23 [ plots::i#2 plot::x#0 plot::plotter_x#2 plot::plotter_y#2 ] )
|
||||
[35] (byte*) plot::plotter#0 ← (byte*) plot::plotter_x#2 + (word) plot::plotter_y#2 [ plot::x#0 plot::plotter#0 ] ( main:2::plots:13::plot:23 [ plots::i#2 plot::x#0 plot::plotter#0 ] )
|
||||
[36] (byte~) plot::$5 ← (const byte[]) plot_bit#0 *idx (byte) plot::x#0 [ plot::plotter#0 plot::$5 ] ( main:2::plots:13::plot:23 [ plots::i#2 plot::plotter#0 plot::$5 ] )
|
||||
[37] (byte~) plot::$6 ← *((byte*) plot::plotter#0) | (byte~) plot::$5 [ plot::plotter#0 plot::$6 ] ( main:2::plots:13::plot:23 [ plots::i#2 plot::plotter#0 plot::$6 ] )
|
||||
[38] *((byte*) plot::plotter#0) ← (byte~) plot::$6 [ ] ( main:2::plots:13::plot:23 [ plots::i#2 ] )
|
||||
[25] (byte~) plot::$0 ← (const byte[]) plot_xhi#0 *idx (byte) plot::x#0 [ plot::x#0 plot::y#0 plot::$0 ] ( main:2::plots:13::plot:21 [ plots::i#2 plot::x#0 plot::y#0 plot::$0 ] )
|
||||
[26] (byte*) plot::plotter_x#1 ← ((byte*))(byte/signed byte/word/signed word) 0 hi= (byte~) plot::$0 [ plot::x#0 plot::y#0 plot::plotter_x#1 ] ( main:2::plots:13::plot:21 [ plots::i#2 plot::x#0 plot::y#0 plot::plotter_x#1 ] )
|
||||
[27] (byte~) plot::$1 ← (const byte[]) plot_xlo#0 *idx (byte) plot::x#0 [ plot::x#0 plot::y#0 plot::plotter_x#1 plot::$1 ] ( main:2::plots:13::plot:21 [ plots::i#2 plot::x#0 plot::y#0 plot::plotter_x#1 plot::$1 ] )
|
||||
[28] (byte*) plot::plotter_x#2 ← (byte*) plot::plotter_x#1 lo= (byte~) plot::$1 [ plot::x#0 plot::y#0 plot::plotter_x#2 ] ( main:2::plots:13::plot:21 [ plots::i#2 plot::x#0 plot::y#0 plot::plotter_x#2 ] )
|
||||
[29] (byte~) plot::$2 ← (const byte[]) plot_yhi#0 *idx (byte) plot::y#0 [ plot::x#0 plot::y#0 plot::plotter_x#2 plot::$2 ] ( main:2::plots:13::plot:21 [ plots::i#2 plot::x#0 plot::y#0 plot::plotter_x#2 plot::$2 ] )
|
||||
[30] (word) plot::plotter_y#1 ← (byte/signed byte/word/signed word) 0 hi= (byte~) plot::$2 [ plot::x#0 plot::y#0 plot::plotter_x#2 plot::plotter_y#1 ] ( main:2::plots:13::plot:21 [ plots::i#2 plot::x#0 plot::y#0 plot::plotter_x#2 plot::plotter_y#1 ] )
|
||||
[31] (byte~) plot::$3 ← (const byte[]) plot_ylo#0 *idx (byte) plot::y#0 [ plot::x#0 plot::plotter_x#2 plot::plotter_y#1 plot::$3 ] ( main:2::plots:13::plot:21 [ plots::i#2 plot::x#0 plot::plotter_x#2 plot::plotter_y#1 plot::$3 ] )
|
||||
[32] (word) plot::plotter_y#2 ← (word) plot::plotter_y#1 lo= (byte~) plot::$3 [ plot::x#0 plot::plotter_x#2 plot::plotter_y#2 ] ( main:2::plots:13::plot:21 [ plots::i#2 plot::x#0 plot::plotter_x#2 plot::plotter_y#2 ] )
|
||||
[33] (byte*) plot::plotter#0 ← (byte*) plot::plotter_x#2 + (word) plot::plotter_y#2 [ plot::x#0 plot::plotter#0 ] ( main:2::plots:13::plot:21 [ plots::i#2 plot::x#0 plot::plotter#0 ] )
|
||||
[34] (byte~) plot::$5 ← (const byte[]) plot_bit#0 *idx (byte) plot::x#0 [ plot::plotter#0 plot::$5 ] ( main:2::plots:13::plot:21 [ plots::i#2 plot::plotter#0 plot::$5 ] )
|
||||
[35] (byte~) plot::$6 ← *((byte*) plot::plotter#0) | (byte~) plot::$5 [ plot::plotter#0 plot::$6 ] ( main:2::plots:13::plot:21 [ plots::i#2 plot::plotter#0 plot::$6 ] )
|
||||
[36] *((byte*) plot::plotter#0) ← (byte~) plot::$6 [ ] ( main:2::plots:13::plot:21 [ plots::i#2 ] )
|
||||
to:plot::@return
|
||||
plot::@return: scope:[plot] from plot
|
||||
[39] return [ ] ( main:2::plots:13::plot:23 [ plots::i#2 ] )
|
||||
[37] return [ ] ( main:2::plots:13::plot:21 [ plots::i#2 ] )
|
||||
to:@return
|
||||
init_plot_tables: scope:[init_plot_tables] from main::@5
|
||||
[40] phi() [ ] ( main:2::init_plot_tables:10 [ ] )
|
||||
[38] phi() [ ] ( main:2::init_plot_tables:10 [ ] )
|
||||
to:init_plot_tables::@1
|
||||
init_plot_tables::@1: scope:[init_plot_tables] from init_plot_tables init_plot_tables::@2
|
||||
[41] (byte) init_plot_tables::bits#3 ← phi( init_plot_tables/(byte/word/signed word) 128 init_plot_tables::@2/(byte) init_plot_tables::bits#4 ) [ init_plot_tables::x#2 init_plot_tables::bits#3 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] )
|
||||
[41] (byte) init_plot_tables::x#2 ← phi( init_plot_tables/(byte/signed byte/word/signed word) 0 init_plot_tables::@2/(byte) init_plot_tables::x#1 ) [ init_plot_tables::x#2 init_plot_tables::bits#3 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] )
|
||||
[42] (byte~) init_plot_tables::$0 ← (byte) init_plot_tables::x#2 & (byte/word/signed word) 248 [ init_plot_tables::x#2 init_plot_tables::bits#3 init_plot_tables::$0 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#2 init_plot_tables::bits#3 init_plot_tables::$0 ] )
|
||||
[43] *((const byte[]) plot_xlo#0 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$0 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] )
|
||||
[44] *((const byte[]) plot_xhi#0 + (byte) init_plot_tables::x#2) ← >(const byte*) BITMAP#0 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] )
|
||||
[45] *((const byte[]) plot_bit#0 + (byte) init_plot_tables::x#2) ← (byte) init_plot_tables::bits#3 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] )
|
||||
[46] (byte) init_plot_tables::bits#1 ← (byte) init_plot_tables::bits#3 >> (byte/signed byte/word/signed word) 1 [ init_plot_tables::x#2 init_plot_tables::bits#1 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#2 init_plot_tables::bits#1 ] )
|
||||
[47] if((byte) init_plot_tables::bits#1!=(byte/signed byte/word/signed word) 0) goto init_plot_tables::@10 [ init_plot_tables::x#2 init_plot_tables::bits#1 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#2 init_plot_tables::bits#1 ] )
|
||||
[39] (byte) init_plot_tables::bits#3 ← phi( init_plot_tables/(byte/word/signed word) 128 init_plot_tables::@2/(byte) init_plot_tables::bits#4 ) [ init_plot_tables::x#2 init_plot_tables::bits#3 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] )
|
||||
[39] (byte) init_plot_tables::x#2 ← phi( init_plot_tables/(byte/signed byte/word/signed word) 0 init_plot_tables::@2/(byte) init_plot_tables::x#1 ) [ init_plot_tables::x#2 init_plot_tables::bits#3 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] )
|
||||
[40] (byte~) init_plot_tables::$0 ← (byte) init_plot_tables::x#2 & (byte/word/signed word) 248 [ init_plot_tables::x#2 init_plot_tables::bits#3 init_plot_tables::$0 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#2 init_plot_tables::bits#3 init_plot_tables::$0 ] )
|
||||
[41] *((const byte[]) plot_xlo#0 + (byte) init_plot_tables::x#2) ← (byte~) init_plot_tables::$0 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] )
|
||||
[42] *((const byte[]) plot_xhi#0 + (byte) init_plot_tables::x#2) ← >(const byte*) BITMAP#0 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] )
|
||||
[43] *((const byte[]) plot_bit#0 + (byte) init_plot_tables::x#2) ← (byte) init_plot_tables::bits#3 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#2 init_plot_tables::bits#3 ] )
|
||||
[44] (byte) init_plot_tables::bits#1 ← (byte) init_plot_tables::bits#3 >> (byte/signed byte/word/signed word) 1 [ init_plot_tables::x#2 init_plot_tables::bits#1 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#2 init_plot_tables::bits#1 ] )
|
||||
[45] if((byte) init_plot_tables::bits#1!=(byte/signed byte/word/signed word) 0) goto init_plot_tables::@10 [ init_plot_tables::x#2 init_plot_tables::bits#1 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#2 init_plot_tables::bits#1 ] )
|
||||
to:init_plot_tables::@2
|
||||
init_plot_tables::@2: scope:[init_plot_tables] from init_plot_tables::@1 init_plot_tables::@10
|
||||
[48] (byte) init_plot_tables::bits#4 ← phi( init_plot_tables::@10/(byte) init_plot_tables::bits#1 init_plot_tables::@1/(byte/word/signed word) 128 ) [ init_plot_tables::x#2 init_plot_tables::bits#4 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#2 init_plot_tables::bits#4 ] )
|
||||
[49] (byte) init_plot_tables::x#1 ← ++ (byte) init_plot_tables::x#2 [ init_plot_tables::x#1 init_plot_tables::bits#4 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#1 init_plot_tables::bits#4 ] )
|
||||
[50] if((byte) init_plot_tables::x#1!=(byte/signed byte/word/signed word) 0) goto init_plot_tables::@1 [ init_plot_tables::x#1 init_plot_tables::bits#4 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#1 init_plot_tables::bits#4 ] )
|
||||
[46] (byte) init_plot_tables::bits#4 ← phi( init_plot_tables::@10/(byte) init_plot_tables::bits#1 init_plot_tables::@1/(byte/word/signed word) 128 ) [ init_plot_tables::x#2 init_plot_tables::bits#4 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#2 init_plot_tables::bits#4 ] )
|
||||
[47] (byte) init_plot_tables::x#1 ← ++ (byte) init_plot_tables::x#2 [ init_plot_tables::x#1 init_plot_tables::bits#4 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#1 init_plot_tables::bits#4 ] )
|
||||
[48] if((byte) init_plot_tables::x#1!=(byte/signed byte/word/signed word) 0) goto init_plot_tables::@1 [ init_plot_tables::x#1 init_plot_tables::bits#4 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#1 init_plot_tables::bits#4 ] )
|
||||
to:init_plot_tables::@3
|
||||
init_plot_tables::@3: scope:[init_plot_tables] from init_plot_tables::@2 init_plot_tables::@4
|
||||
[51] (byte*) init_plot_tables::yoffs#2 ← phi( init_plot_tables::@4/(byte*) init_plot_tables::yoffs#4 init_plot_tables::@2/((byte*))(byte/signed byte/word/signed word) 0 ) [ init_plot_tables::y#2 init_plot_tables::yoffs#2 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 ] )
|
||||
[51] (byte) init_plot_tables::y#2 ← phi( init_plot_tables::@4/(byte) init_plot_tables::y#1 init_plot_tables::@2/(byte/signed byte/word/signed word) 0 ) [ init_plot_tables::y#2 init_plot_tables::yoffs#2 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 ] )
|
||||
[52] (byte~) init_plot_tables::$6 ← (byte) init_plot_tables::y#2 & (byte/signed byte/word/signed word) 7 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$6 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$6 ] )
|
||||
[53] (byte~) init_plot_tables::$7 ← < (byte*) init_plot_tables::yoffs#2 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$6 init_plot_tables::$7 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$6 init_plot_tables::$7 ] )
|
||||
[54] (byte~) init_plot_tables::$8 ← (byte~) init_plot_tables::$6 | (byte~) init_plot_tables::$7 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$8 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$8 ] )
|
||||
[55] *((const byte[]) plot_ylo#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$8 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 ] )
|
||||
[56] (byte~) init_plot_tables::$9 ← > (byte*) init_plot_tables::yoffs#2 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$9 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$9 ] )
|
||||
[57] *((const byte[]) plot_yhi#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$9 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 ] )
|
||||
[58] (byte~) init_plot_tables::$10 ← (byte) init_plot_tables::y#2 & (byte/signed byte/word/signed word) 7 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$10 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$10 ] )
|
||||
[59] if((byte~) init_plot_tables::$10!=(byte/signed byte/word/signed word) 7) goto init_plot_tables::@4 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 ] )
|
||||
[49] (byte*) init_plot_tables::yoffs#2 ← phi( init_plot_tables::@4/(byte*) init_plot_tables::yoffs#4 init_plot_tables::@2/((byte*))(byte/signed byte/word/signed word) 0 ) [ init_plot_tables::y#2 init_plot_tables::yoffs#2 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 ] )
|
||||
[49] (byte) init_plot_tables::y#2 ← phi( init_plot_tables::@4/(byte) init_plot_tables::y#1 init_plot_tables::@2/(byte/signed byte/word/signed word) 0 ) [ init_plot_tables::y#2 init_plot_tables::yoffs#2 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 ] )
|
||||
[50] (byte~) init_plot_tables::$6 ← (byte) init_plot_tables::y#2 & (byte/signed byte/word/signed word) 7 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$6 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$6 ] )
|
||||
[51] (byte~) init_plot_tables::$7 ← < (byte*) init_plot_tables::yoffs#2 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$6 init_plot_tables::$7 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$6 init_plot_tables::$7 ] )
|
||||
[52] (byte~) init_plot_tables::$8 ← (byte~) init_plot_tables::$6 | (byte~) init_plot_tables::$7 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$8 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$8 ] )
|
||||
[53] *((const byte[]) plot_ylo#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$8 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 ] )
|
||||
[54] (byte~) init_plot_tables::$9 ← > (byte*) init_plot_tables::yoffs#2 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$9 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$9 ] )
|
||||
[55] *((const byte[]) plot_yhi#0 + (byte) init_plot_tables::y#2) ← (byte~) init_plot_tables::$9 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 ] )
|
||||
[56] (byte~) init_plot_tables::$10 ← (byte) init_plot_tables::y#2 & (byte/signed byte/word/signed word) 7 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$10 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 init_plot_tables::$10 ] )
|
||||
[57] if((byte~) init_plot_tables::$10!=(byte/signed byte/word/signed word) 7) goto init_plot_tables::@4 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#2 ] )
|
||||
to:init_plot_tables::@7
|
||||
init_plot_tables::@7: scope:[init_plot_tables] from init_plot_tables::@3
|
||||
[60] (byte*) init_plot_tables::yoffs#1 ← (byte*) init_plot_tables::yoffs#2 + (byte/signed byte/word/signed word) 40*(byte/signed byte/word/signed word) 8 [ init_plot_tables::y#2 init_plot_tables::yoffs#1 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#1 ] )
|
||||
[58] (byte*) init_plot_tables::yoffs#1 ← (byte*) init_plot_tables::yoffs#2 + (byte/signed byte/word/signed word) 40*(byte/signed byte/word/signed word) 8 [ init_plot_tables::y#2 init_plot_tables::yoffs#1 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#1 ] )
|
||||
to:init_plot_tables::@4
|
||||
init_plot_tables::@4: scope:[init_plot_tables] from init_plot_tables::@3 init_plot_tables::@7
|
||||
[61] (byte*) init_plot_tables::yoffs#4 ← phi( init_plot_tables::@3/(byte*) init_plot_tables::yoffs#2 init_plot_tables::@7/(byte*) init_plot_tables::yoffs#1 ) [ init_plot_tables::y#2 init_plot_tables::yoffs#4 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#4 ] )
|
||||
[62] (byte) init_plot_tables::y#1 ← ++ (byte) init_plot_tables::y#2 [ init_plot_tables::y#1 init_plot_tables::yoffs#4 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#1 init_plot_tables::yoffs#4 ] )
|
||||
[63] if((byte) init_plot_tables::y#1!=(byte/signed byte/word/signed word) 0) goto init_plot_tables::@3 [ init_plot_tables::y#1 init_plot_tables::yoffs#4 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#1 init_plot_tables::yoffs#4 ] )
|
||||
[59] (byte*) init_plot_tables::yoffs#4 ← phi( init_plot_tables::@3/(byte*) init_plot_tables::yoffs#2 init_plot_tables::@7/(byte*) init_plot_tables::yoffs#1 ) [ init_plot_tables::y#2 init_plot_tables::yoffs#4 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#2 init_plot_tables::yoffs#4 ] )
|
||||
[60] (byte) init_plot_tables::y#1 ← ++ (byte) init_plot_tables::y#2 [ init_plot_tables::y#1 init_plot_tables::yoffs#4 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#1 init_plot_tables::yoffs#4 ] )
|
||||
[61] if((byte) init_plot_tables::y#1!=(byte/signed byte/word/signed word) 0) goto init_plot_tables::@3 [ init_plot_tables::y#1 init_plot_tables::yoffs#4 ] ( main:2::init_plot_tables:10 [ init_plot_tables::y#1 init_plot_tables::yoffs#4 ] )
|
||||
to:init_plot_tables::@return
|
||||
init_plot_tables::@return: scope:[init_plot_tables] from init_plot_tables::@4
|
||||
[64] return [ ] ( main:2::init_plot_tables:10 [ ] )
|
||||
[62] return [ ] ( main:2::init_plot_tables:10 [ ] )
|
||||
to:@return
|
||||
init_plot_tables::@10: scope:[init_plot_tables] from init_plot_tables::@1
|
||||
[65] phi() [ init_plot_tables::x#2 init_plot_tables::bits#1 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#2 init_plot_tables::bits#1 ] )
|
||||
[63] phi() [ init_plot_tables::x#2 init_plot_tables::bits#1 ] ( main:2::init_plot_tables:10 [ init_plot_tables::x#2 init_plot_tables::bits#1 ] )
|
||||
to:init_plot_tables::@2
|
||||
init_screen: scope:[init_screen] from main
|
||||
[66] phi() [ ] ( main:2::init_screen:8 [ ] )
|
||||
[64] phi() [ ] ( main:2::init_screen:8 [ ] )
|
||||
to:init_screen::@1
|
||||
init_screen::@1: scope:[init_screen] from init_screen init_screen::@1
|
||||
[67] (byte*) init_screen::b#2 ← phi( init_screen/(const byte*) BITMAP#0 init_screen::@1/(byte*) init_screen::b#1 ) [ init_screen::b#2 ] ( main:2::init_screen:8 [ init_screen::b#2 ] )
|
||||
[68] *((byte*) init_screen::b#2) ← (byte/signed byte/word/signed word) 0 [ init_screen::b#2 ] ( main:2::init_screen:8 [ init_screen::b#2 ] )
|
||||
[69] (byte*) init_screen::b#1 ← ++ (byte*) init_screen::b#2 [ init_screen::b#1 ] ( main:2::init_screen:8 [ init_screen::b#1 ] )
|
||||
[70] if((byte*) init_screen::b#1!=(const byte*) BITMAP#0+(word/signed word) 8192) goto init_screen::@1 [ init_screen::b#1 ] ( main:2::init_screen:8 [ init_screen::b#1 ] )
|
||||
[65] (byte*) init_screen::b#2 ← phi( init_screen/(const byte*) BITMAP#0 init_screen::@1/(byte*) init_screen::b#1 ) [ init_screen::b#2 ] ( main:2::init_screen:8 [ init_screen::b#2 ] )
|
||||
[66] *((byte*) init_screen::b#2) ← (byte/signed byte/word/signed word) 0 [ init_screen::b#2 ] ( main:2::init_screen:8 [ init_screen::b#2 ] )
|
||||
[67] (byte*) init_screen::b#1 ← ++ (byte*) init_screen::b#2 [ init_screen::b#1 ] ( main:2::init_screen:8 [ init_screen::b#1 ] )
|
||||
[68] if((byte*) init_screen::b#1!=(const byte*) BITMAP#0+(word/signed word) 8192) goto init_screen::@1 [ init_screen::b#1 ] ( main:2::init_screen:8 [ init_screen::b#1 ] )
|
||||
to:init_screen::@2
|
||||
init_screen::@2: scope:[init_screen] from init_screen::@1 init_screen::@2
|
||||
[71] (byte*) init_screen::c#2 ← phi( init_screen::@2/(byte*) init_screen::c#1 init_screen::@1/(const byte*) SCREEN#0 ) [ init_screen::c#2 ] ( main:2::init_screen:8 [ init_screen::c#2 ] )
|
||||
[72] *((byte*) init_screen::c#2) ← (byte/signed byte/word/signed word) 20 [ init_screen::c#2 ] ( main:2::init_screen:8 [ init_screen::c#2 ] )
|
||||
[73] (byte*) init_screen::c#1 ← ++ (byte*) init_screen::c#2 [ init_screen::c#1 ] ( main:2::init_screen:8 [ init_screen::c#1 ] )
|
||||
[74] if((byte*) init_screen::c#1!=(const byte*) SCREEN#0+(word/signed word) 1024) goto init_screen::@2 [ init_screen::c#1 ] ( main:2::init_screen:8 [ init_screen::c#1 ] )
|
||||
[69] (byte*) init_screen::c#2 ← phi( init_screen::@2/(byte*) init_screen::c#1 init_screen::@1/(const byte*) SCREEN#0 ) [ init_screen::c#2 ] ( main:2::init_screen:8 [ init_screen::c#2 ] )
|
||||
[70] *((byte*) init_screen::c#2) ← (byte/signed byte/word/signed word) 20 [ init_screen::c#2 ] ( main:2::init_screen:8 [ init_screen::c#2 ] )
|
||||
[71] (byte*) init_screen::c#1 ← ++ (byte*) init_screen::c#2 [ init_screen::c#1 ] ( main:2::init_screen:8 [ init_screen::c#1 ] )
|
||||
[72] if((byte*) init_screen::c#1!=(const byte*) SCREEN#0+(word/signed word) 1024) goto init_screen::@2 [ init_screen::c#1 ] ( main:2::init_screen:8 [ init_screen::c#1 ] )
|
||||
to:init_screen::@return
|
||||
init_screen::@return: scope:[init_screen] from init_screen::@2
|
||||
[75] return [ ] ( main:2::init_screen:8 [ ] )
|
||||
[73] return [ ] ( main:2::init_screen:8 [ ] )
|
||||
to:@return
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -96,14 +96,12 @@
|
||||
(byte[]) plot_ylo
|
||||
(const byte[]) plot_ylo#0 plot_ylo = ((byte*))(word/signed word) 4608
|
||||
(void()) plots()
|
||||
(byte~) plots::$0 reg byte y 101.0
|
||||
(byte~) plots::$1 reg byte a 101.0
|
||||
(label) plots::@1
|
||||
(label) plots::@3
|
||||
(label) plots::@return
|
||||
(byte) plots::i
|
||||
(byte) plots::i#1 i zp ZP_BYTE:2 151.5
|
||||
(byte) plots::i#2 i zp ZP_BYTE:2 67.33333333333333
|
||||
(byte) plots::i#2 i zp ZP_BYTE:2 101.0
|
||||
(byte) plots_cnt
|
||||
(const byte) plots_cnt#0 plots_cnt = (byte/signed byte/word/signed word) 8
|
||||
(byte[]) plots_x
|
||||
@ -116,8 +114,6 @@ reg byte x [ init_plot_tables::x#2 init_plot_tables::x#1 ]
|
||||
reg byte y [ init_plot_tables::bits#3 init_plot_tables::bits#4 init_plot_tables::bits#1 ]
|
||||
reg byte x [ init_plot_tables::y#2 init_plot_tables::y#1 ]
|
||||
zp ZP_WORD:3 [ init_plot_tables::yoffs#2 init_plot_tables::yoffs#4 init_plot_tables::yoffs#1 init_screen::b#2 init_screen::b#1 init_screen::c#2 init_screen::c#1 plot::plotter_x#1 plot::plotter_x#2 plot::plotter#0 ]
|
||||
reg byte y [ plots::$0 ]
|
||||
reg byte a [ plots::$1 ]
|
||||
reg byte y [ plot::x#0 ]
|
||||
reg byte x [ plot::y#0 ]
|
||||
reg byte a [ plot::$0 ]
|
||||
|
@ -695,7 +695,7 @@ Not aliassing across scopes: line::x1#1 line::x1#0
|
||||
Not aliassing across scopes: plot::x#0 line::x0#2
|
||||
Not aliassing across scopes: plot::x#1 line::x#2
|
||||
Not aliassing across scopes: plot::x#2 plot::x#0
|
||||
Alias (byte) line::x#0 = (byte) line::x0#2 (byte) line::x0#1 (byte) line::x0#3
|
||||
Alias (byte) line::x0#1 = (byte) line::x0#2 (byte) line::x0#3 (byte) line::x#0
|
||||
Alias (byte) line::x1#1 = (byte) line::x1#4
|
||||
Alias (byte) line::x#2 = (byte) line::x#3
|
||||
Alias (byte) line::x1#2 = (byte) line::x1#3
|
||||
@ -730,19 +730,19 @@ main::@return: scope:[main] from main::@5
|
||||
to:@return
|
||||
line: scope:[line] from main::@2
|
||||
(byte) line::x1#1 ← phi( main::@2/(byte) line::x1#0 )
|
||||
(byte) line::x#0 ← phi( main::@2/(byte) line::x0#0 )
|
||||
(boolean~) line::$1 ← (byte) line::x#0 >= (byte) line::x1#1
|
||||
(byte) line::x0#1 ← phi( main::@2/(byte) line::x0#0 )
|
||||
(boolean~) line::$1 ← (byte) line::x0#1 >= (byte) line::x1#1
|
||||
if((boolean~) line::$1) goto line::@1
|
||||
to:line::@4
|
||||
line::@1: scope:[line] from line
|
||||
(byte) plot::x#0 ← (byte) line::x#0
|
||||
(byte) plot::x#0 ← (byte) line::x0#1
|
||||
call plot param-assignment
|
||||
to:line::@return
|
||||
line::@4: scope:[line] from line
|
||||
to:line::@2
|
||||
line::@2: scope:[line] from line::@4 line::@8
|
||||
(byte) line::x1#2 ← phi( line::@4/(byte) line::x1#1 line::@8/(byte) line::x1#2 )
|
||||
(byte) line::x#2 ← phi( line::@4/(byte) line::x#0 line::@8/(byte) line::x#1 )
|
||||
(byte) line::x#2 ← phi( line::@4/(byte) line::x0#1 line::@8/(byte) line::x#1 )
|
||||
(byte) plot::x#1 ← (byte) line::x#2
|
||||
call plot param-assignment
|
||||
to:line::@8
|
||||
@ -769,9 +769,9 @@ plot::@return: scope:[plot] from plot
|
||||
to:@end
|
||||
@end: scope:[] from @3
|
||||
|
||||
Not aliassing across scopes: line::x#0 line::x0#0
|
||||
Not aliassing across scopes: line::x0#1 line::x0#0
|
||||
Not aliassing across scopes: line::x1#1 line::x1#0
|
||||
Not aliassing across scopes: plot::x#0 line::x#0
|
||||
Not aliassing across scopes: plot::x#0 line::x0#1
|
||||
Not aliassing across scopes: plot::x#1 line::x#2
|
||||
Not aliassing across scopes: plot::x#2 plot::x#0
|
||||
Self Phi Eliminated (byte) line::x1#2
|
||||
@ -805,19 +805,19 @@ main::@return: scope:[main] from main::@5
|
||||
to:@return
|
||||
line: scope:[line] from main::@2
|
||||
(byte) line::x1#1 ← phi( main::@2/(byte) line::x1#0 )
|
||||
(byte) line::x#0 ← phi( main::@2/(byte) line::x0#0 )
|
||||
(boolean~) line::$1 ← (byte) line::x#0 >= (byte) line::x1#1
|
||||
(byte) line::x0#1 ← phi( main::@2/(byte) line::x0#0 )
|
||||
(boolean~) line::$1 ← (byte) line::x0#1 >= (byte) line::x1#1
|
||||
if((boolean~) line::$1) goto line::@1
|
||||
to:line::@4
|
||||
line::@1: scope:[line] from line
|
||||
(byte) plot::x#0 ← (byte) line::x#0
|
||||
(byte) plot::x#0 ← (byte) line::x0#1
|
||||
call plot param-assignment
|
||||
to:line::@return
|
||||
line::@4: scope:[line] from line
|
||||
to:line::@2
|
||||
line::@2: scope:[line] from line::@4 line::@8
|
||||
(byte) line::x1#2 ← phi( line::@4/(byte) line::x1#1 )
|
||||
(byte) line::x#2 ← phi( line::@4/(byte) line::x#0 line::@8/(byte) line::x#1 )
|
||||
(byte) line::x#2 ← phi( line::@4/(byte) line::x0#1 line::@8/(byte) line::x#1 )
|
||||
(byte) plot::x#1 ← (byte) line::x#2
|
||||
call plot param-assignment
|
||||
to:line::@8
|
||||
@ -844,7 +844,7 @@ plot::@return: scope:[plot] from plot
|
||||
to:@end
|
||||
@end: scope:[] from @3
|
||||
|
||||
Redundant Phi (byte) line::x#0 (byte) line::x0#0
|
||||
Redundant Phi (byte) line::x0#1 (byte) line::x0#0
|
||||
Redundant Phi (byte) line::x1#1 (byte) line::x1#0
|
||||
Redundant Phi (byte) line::x1#2 (byte) line::x1#1
|
||||
Succesful SSA optimization Pass2RedundantPhiElimination
|
||||
|
@ -363,7 +363,7 @@ main: scope:[main] from @1
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main main::@3
|
||||
(word) main::w#2 ← phi( main/((word))(byte/signed byte/word/signed word) 0 main::@3/(word~) main::w#3 )
|
||||
(byte) main::i#1 ← phi( main/(byte/signed byte/word/signed word) 0 main::@3/(byte~) main::j#3 )
|
||||
(byte) main::i#1 ← phi( main/(byte/signed byte/word/signed word) 0 main::@3/(byte~) main::i#2 )
|
||||
(word) main::w#1 ← (word) main::w#2 + (byte) main::i#1
|
||||
(byte) main::j#1 ← ++ (byte) main::i#1
|
||||
if((byte) main::j#1!=(byte/signed byte/word/signed word) 11) goto main::@3
|
||||
@ -372,7 +372,7 @@ main::@return: scope:[main] from main::@1
|
||||
return
|
||||
to:@return
|
||||
main::@3: scope:[main] from main::@1
|
||||
(byte~) main::j#3 ← (byte) main::j#1
|
||||
(byte~) main::i#2 ← (byte) main::j#1
|
||||
(word~) main::w#3 ← (word) main::w#1
|
||||
to:main::@1
|
||||
|
||||
@ -403,7 +403,7 @@ main: scope:[main] from @1
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main main::@3
|
||||
[5] (word) main::w#2 ← phi( main/((word))(byte/signed byte/word/signed word) 0 main::@3/(word~) main::w#3 ) [ main::i#1 main::w#2 ]
|
||||
[5] (byte) main::i#1 ← phi( main/(byte/signed byte/word/signed word) 0 main::@3/(byte~) main::j#3 ) [ main::i#1 main::w#2 ]
|
||||
[5] (byte) main::i#1 ← phi( main/(byte/signed byte/word/signed word) 0 main::@3/(byte~) main::i#2 ) [ main::i#1 main::w#2 ]
|
||||
[6] (word) main::w#1 ← (word) main::w#2 + (byte) main::i#1 [ main::i#1 main::w#1 ]
|
||||
[7] (byte) main::j#1 ← ++ (byte) main::i#1 [ main::w#1 main::j#1 ]
|
||||
[8] if((byte) main::j#1!=(byte/signed byte/word/signed word) 11) goto main::@3 [ main::w#1 main::j#1 ]
|
||||
@ -412,12 +412,12 @@ main::@return: scope:[main] from main::@1
|
||||
[9] return [ ]
|
||||
to:@return
|
||||
main::@3: scope:[main] from main::@1
|
||||
[10] (byte~) main::j#3 ← (byte) main::j#1 [ main::j#3 main::w#1 ]
|
||||
[11] (word~) main::w#3 ← (word) main::w#1 [ main::j#3 main::w#3 ]
|
||||
[10] (byte~) main::i#2 ← (byte) main::j#1 [ main::i#2 main::w#1 ]
|
||||
[11] (word~) main::w#3 ← (word) main::w#1 [ main::i#2 main::w#3 ]
|
||||
to:main::@1
|
||||
|
||||
Created 2 initial phi equivalence classes
|
||||
Coalesced [10] main::j#3 ← main::j#1
|
||||
Coalesced [10] main::i#2 ← main::j#1
|
||||
Coalesced [11] main::w#3 ← main::w#1
|
||||
Coalesced down to 2 phi equivalence classes
|
||||
Culled Empty Block (label) main::@3
|
||||
|
@ -9,12 +9,12 @@
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @2
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call inci param-assignment [ inci::return#2 inci::$0 ] ( main:2 [ inci::return#2 inci::$0 ] )
|
||||
[6] (byte) inci::return#0 ← (byte) inci::return#2 [ inci::return#0 inci::$0 ] ( main:2 [ inci::return#0 inci::$0 ] )
|
||||
[5] call inci param-assignment [ inci::return#2 i#11 ] ( main:2 [ inci::return#2 i#11 ] )
|
||||
[6] (byte) inci::return#0 ← (byte) inci::return#2 [ inci::return#0 i#11 ] ( main:2 [ inci::return#0 i#11 ] )
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main
|
||||
[7] (byte~) main::$0 ← (byte) inci::return#0 [ main::$0 inci::$0 ] ( main:2 [ main::$0 inci::$0 ] )
|
||||
[8] (byte) main::a#1 ← (byte/signed byte/word/signed word) 4 + (byte~) main::$0 [ main::a#1 inci::$0 ] ( main:2 [ main::a#1 inci::$0 ] )
|
||||
[7] (byte~) main::$0 ← (byte) inci::return#0 [ main::$0 i#11 ] ( main:2 [ main::$0 i#11 ] )
|
||||
[8] (byte) main::a#1 ← (byte/signed byte/word/signed word) 4 + (byte~) main::$0 [ main::a#1 i#11 ] ( main:2 [ main::a#1 i#11 ] )
|
||||
[9] call inci param-assignment [ inci::return#2 main::a#1 ] ( main:2 [ inci::return#2 main::a#1 ] )
|
||||
[10] (byte) inci::return#1 ← (byte) inci::return#2 [ main::a#1 inci::return#1 ] ( main:2 [ main::a#1 inci::return#1 ] )
|
||||
to:main::@2
|
||||
@ -26,10 +26,10 @@ main::@return: scope:[main] from main::@2
|
||||
[13] return [ ] ( main:2 [ ] )
|
||||
to:@return
|
||||
inci: scope:[inci] from main main::@1
|
||||
[14] (byte) i#10 ← phi( main/(byte/signed byte/word/signed word) 0 main::@1/(byte~) inci::$0 ) [ i#10 ] ( main:2::inci:5 [ i#10 ] main:2::inci:9 [ main::a#1 i#10 ] )
|
||||
[15] (byte~) inci::$0 ← (byte) i#10 + (byte/signed byte/word/signed word) 7 [ inci::$0 ] ( main:2::inci:5 [ inci::$0 ] main:2::inci:9 [ main::a#1 inci::$0 ] )
|
||||
[16] (byte) inci::return#2 ← (byte~) inci::$0 [ inci::return#2 inci::$0 ] ( main:2::inci:5 [ inci::return#2 inci::$0 ] main:2::inci:9 [ main::a#1 inci::return#2 inci::$0 ] )
|
||||
[14] (byte) i#10 ← phi( main/(byte/signed byte/word/signed word) 0 main::@1/(byte) i#11 ) [ i#10 ] ( main:2::inci:5 [ i#10 ] main:2::inci:9 [ main::a#1 i#10 ] )
|
||||
[15] (byte) i#11 ← (byte) i#10 + (byte/signed byte/word/signed word) 7 [ i#11 ] ( main:2::inci:5 [ i#11 ] main:2::inci:9 [ main::a#1 i#11 ] )
|
||||
[16] (byte) inci::return#2 ← (byte) i#11 [ inci::return#2 i#11 ] ( main:2::inci:5 [ inci::return#2 i#11 ] main:2::inci:9 [ main::a#1 inci::return#2 i#11 ] )
|
||||
to:inci::@return
|
||||
inci::@return: scope:[inci] from inci
|
||||
[17] return [ inci::return#2 inci::$0 ] ( main:2::inci:5 [ inci::return#2 inci::$0 ] main:2::inci:9 [ main::a#1 inci::return#2 inci::$0 ] )
|
||||
[17] return [ inci::return#2 i#11 ] ( main:2::inci:5 [ inci::return#2 i#11 ] main:2::inci:9 [ main::a#1 inci::return#2 i#11 ] )
|
||||
to:@return
|
||||
|
@ -332,7 +332,6 @@ Not aliassing across scopes: inci::return#1 inci::return#3
|
||||
Not aliassing across scopes: i#8 i#5
|
||||
Not aliassing across scopes: main::$2 inci::return#5
|
||||
Not aliassing across scopes: i#10 i#13
|
||||
Not aliassing across scopes: i#4 inci::$0
|
||||
Not aliassing across scopes: inci::return#2 i#4
|
||||
Not aliassing across scopes: i#12 i#3
|
||||
Alias (byte) inci::return#0 = (byte) inci::return#4
|
||||
@ -342,8 +341,8 @@ Alias (byte) main::a#1 = (byte~) main::$1 (byte) main::a#4
|
||||
Alias (byte) inci::return#1 = (byte) inci::return#5
|
||||
Alias (byte) i#2 = (byte) i#8 (byte) i#9 (byte) i#3
|
||||
Alias (byte) main::a#2 = (byte~) main::$3
|
||||
Alias (byte) i#11 = (byte) i#4 (byte~) inci::$0 (byte) i#5
|
||||
Alias (byte) inci::return#2 = (byte) inci::return#6 (byte) inci::return#3
|
||||
Alias (byte) i#11 = (byte) i#4 (byte) i#5
|
||||
Alias (byte) i#0 = (byte) i#14
|
||||
Alias (byte) i#12 = (byte) i#6
|
||||
Succesful SSA optimization Pass2AliasElimination
|
||||
@ -374,8 +373,7 @@ main::@return: scope:[main] from main::@2
|
||||
to:@return
|
||||
inci: scope:[inci] from main main::@1
|
||||
(byte) i#10 ← phi( main/(byte) i#13 main::@1/(byte) i#1 )
|
||||
(byte~) inci::$0 ← (byte) i#10 + (byte/signed byte/word/signed word) 7
|
||||
(byte) i#11 ← (byte~) inci::$0
|
||||
(byte) i#11 ← (byte) i#10 + (byte/signed byte/word/signed word) 7
|
||||
(byte) inci::return#2 ← (byte) i#11
|
||||
to:inci::@return
|
||||
inci::@return: scope:[inci] from inci
|
||||
@ -397,7 +395,6 @@ Not aliassing across scopes: inci::return#1 inci::return#2
|
||||
Not aliassing across scopes: i#2 i#11
|
||||
Not aliassing across scopes: main::$2 inci::return#1
|
||||
Not aliassing across scopes: i#10 i#13
|
||||
Not aliassing across scopes: i#11 inci::$0
|
||||
Not aliassing across scopes: inci::return#2 i#11
|
||||
Not aliassing across scopes: i#12 i#2
|
||||
Redundant Phi (byte) i#13 (byte) i#0
|
||||
@ -429,8 +426,7 @@ main::@return: scope:[main] from main::@2
|
||||
to:@return
|
||||
inci: scope:[inci] from main main::@1
|
||||
(byte) i#10 ← phi( main/(byte) i#0 main::@1/(byte) i#11 )
|
||||
(byte~) inci::$0 ← (byte) i#10 + (byte/signed byte/word/signed word) 7
|
||||
(byte) i#11 ← (byte~) inci::$0
|
||||
(byte) i#11 ← (byte) i#10 + (byte/signed byte/word/signed word) 7
|
||||
(byte) inci::return#2 ← (byte) i#11
|
||||
to:inci::@return
|
||||
inci::@return: scope:[inci] from inci
|
||||
@ -468,8 +464,7 @@ main::@return: scope:[main] from main::@2
|
||||
to:@return
|
||||
inci: scope:[inci] from main main::@1
|
||||
(byte) i#10 ← phi( main/(const byte) i#0 main::@1/(byte) i#11 )
|
||||
(byte~) inci::$0 ← (byte) i#10 + (byte/signed byte/word/signed word) 7
|
||||
(byte) i#11 ← (byte~) inci::$0
|
||||
(byte) i#11 ← (byte) i#10 + (byte/signed byte/word/signed word) 7
|
||||
(byte) inci::return#2 ← (byte) i#11
|
||||
to:inci::@return
|
||||
inci::@return: scope:[inci] from inci
|
||||
@ -506,8 +501,7 @@ main::@return: scope:[main] from main::@2
|
||||
to:@return
|
||||
inci: scope:[inci] from main main::@1
|
||||
(byte) i#10 ← phi( main/(const byte) i#0 main::@1/(byte) i#11 )
|
||||
(byte~) inci::$0 ← (byte) i#10 + (byte/signed byte/word/signed word) 7
|
||||
(byte) i#11 ← (byte~) inci::$0
|
||||
(byte) i#11 ← (byte) i#10 + (byte/signed byte/word/signed word) 7
|
||||
(byte) inci::return#2 ← (byte) i#11
|
||||
to:inci::@return
|
||||
inci::@return: scope:[inci] from inci
|
||||
@ -522,13 +516,11 @@ Not aliassing across scopes: inci::return#0 inci::return#2
|
||||
Not aliassing across scopes: main::$0 inci::return#0
|
||||
Not aliassing across scopes: inci::return#1 inci::return#2
|
||||
Not aliassing across scopes: main::$2 inci::return#1
|
||||
Not aliassing across scopes: i#11 inci::$0
|
||||
Not aliassing across scopes: inci::return#2 i#11
|
||||
Not aliassing across scopes: inci::return#0 inci::return#2
|
||||
Not aliassing across scopes: main::$0 inci::return#0
|
||||
Not aliassing across scopes: inci::return#1 inci::return#2
|
||||
Not aliassing across scopes: main::$2 inci::return#1
|
||||
Not aliassing across scopes: i#11 inci::$0
|
||||
Not aliassing across scopes: inci::return#2 i#11
|
||||
Inlining constant with var siblings (const byte) main::a#0
|
||||
Inlining constant with var siblings (const byte) main::a#0
|
||||
@ -559,8 +551,7 @@ main::@return: scope:[main] from main::@2
|
||||
to:@return
|
||||
inci: scope:[inci] from main main::@1
|
||||
(byte) i#10 ← phi( main/(byte/signed byte/word/signed word) 0 main::@1/(byte) i#11 )
|
||||
(byte~) inci::$0 ← (byte) i#10 + (byte/signed byte/word/signed word) 7
|
||||
(byte) i#11 ← (byte~) inci::$0
|
||||
(byte) i#11 ← (byte) i#10 + (byte/signed byte/word/signed word) 7
|
||||
(byte) inci::return#2 ← (byte) i#11
|
||||
to:inci::@return
|
||||
inci::@return: scope:[inci] from inci
|
||||
@ -579,7 +570,6 @@ FINAL SYMBOL TABLE
|
||||
(byte) i#10
|
||||
(byte) i#11
|
||||
(byte()) inci()
|
||||
(byte~) inci::$0
|
||||
(label) inci::@return
|
||||
(byte) inci::return
|
||||
(byte) inci::return#0
|
||||
@ -624,8 +614,7 @@ main::@return: scope:[main] from main::@2
|
||||
to:@return
|
||||
inci: scope:[inci] from main main::@1
|
||||
(byte) i#10 ← phi( main/(byte/signed byte/word/signed word) 0 main::@1/(byte~) i#15 )
|
||||
(byte~) inci::$0 ← (byte) i#10 + (byte/signed byte/word/signed word) 7
|
||||
(byte) i#11 ← (byte~) inci::$0
|
||||
(byte) i#11 ← (byte) i#10 + (byte/signed byte/word/signed word) 7
|
||||
(byte) inci::return#2 ← (byte) i#11
|
||||
to:inci::@return
|
||||
inci::@return: scope:[inci] from inci
|
||||
@ -677,17 +666,15 @@ main::@return: scope:[main] from main::@2
|
||||
to:@return
|
||||
inci: scope:[inci] from main main::@1
|
||||
[15] (byte) i#10 ← phi( main/(byte/signed byte/word/signed word) 0 main::@1/(byte~) i#15 ) [ i#10 ]
|
||||
[16] (byte~) inci::$0 ← (byte) i#10 + (byte/signed byte/word/signed word) 7 [ inci::$0 ]
|
||||
[17] (byte) i#11 ← (byte~) inci::$0 [ i#11 ]
|
||||
[18] (byte) inci::return#2 ← (byte) i#11 [ inci::return#2 i#11 ]
|
||||
[16] (byte) i#11 ← (byte) i#10 + (byte/signed byte/word/signed word) 7 [ i#11 ]
|
||||
[17] (byte) inci::return#2 ← (byte) i#11 [ inci::return#2 i#11 ]
|
||||
to:inci::@return
|
||||
inci::@return: scope:[inci] from inci
|
||||
[19] return [ inci::return#2 i#11 ]
|
||||
[18] return [ inci::return#2 i#11 ]
|
||||
to:@return
|
||||
|
||||
Created 1 initial phi equivalence classes
|
||||
Coalesced [9] i#15 ← i#11
|
||||
Coalesced [17] i#11 ← inci::$0
|
||||
Coalesced down to 1 phi equivalence classes
|
||||
Block Sequence Planned @begin @2 @end main main::@1 main::@2 main::@return inci inci::@return
|
||||
Adding NOP phi() at start of @begin
|
||||
@ -712,12 +699,12 @@ CONTROL FLOW GRAPH - BEFORE EFFECTIVE LIVE RANGES
|
||||
[3] phi() [ ]
|
||||
main: scope:[main] from @2
|
||||
[4] phi() [ ]
|
||||
[5] call inci param-assignment [ inci::return#2 inci::$0 ]
|
||||
[6] (byte) inci::return#0 ← (byte) inci::return#2 [ inci::return#0 inci::$0 ]
|
||||
[5] call inci param-assignment [ inci::return#2 i#11 ]
|
||||
[6] (byte) inci::return#0 ← (byte) inci::return#2 [ inci::return#0 i#11 ]
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main
|
||||
[7] (byte~) main::$0 ← (byte) inci::return#0 [ main::$0 inci::$0 ]
|
||||
[8] (byte) main::a#1 ← (byte/signed byte/word/signed word) 4 + (byte~) main::$0 [ main::a#1 inci::$0 ]
|
||||
[7] (byte~) main::$0 ← (byte) inci::return#0 [ main::$0 i#11 ]
|
||||
[8] (byte) main::a#1 ← (byte/signed byte/word/signed word) 4 + (byte~) main::$0 [ main::a#1 i#11 ]
|
||||
[9] call inci param-assignment [ inci::return#2 main::a#1 ]
|
||||
[10] (byte) inci::return#1 ← (byte) inci::return#2 [ main::a#1 inci::return#1 ]
|
||||
to:main::@2
|
||||
@ -729,12 +716,12 @@ main::@return: scope:[main] from main::@2
|
||||
[13] return [ ]
|
||||
to:@return
|
||||
inci: scope:[inci] from main main::@1
|
||||
[14] (byte) i#10 ← phi( main/(byte/signed byte/word/signed word) 0 main::@1/(byte~) inci::$0 ) [ i#10 ]
|
||||
[15] (byte~) inci::$0 ← (byte) i#10 + (byte/signed byte/word/signed word) 7 [ inci::$0 ]
|
||||
[16] (byte) inci::return#2 ← (byte~) inci::$0 [ inci::return#2 inci::$0 ]
|
||||
[14] (byte) i#10 ← phi( main/(byte/signed byte/word/signed word) 0 main::@1/(byte) i#11 ) [ i#10 ]
|
||||
[15] (byte) i#11 ← (byte) i#10 + (byte/signed byte/word/signed word) 7 [ i#11 ]
|
||||
[16] (byte) inci::return#2 ← (byte) i#11 [ inci::return#2 i#11 ]
|
||||
to:inci::@return
|
||||
inci::@return: scope:[inci] from inci
|
||||
[17] return [ inci::return#2 inci::$0 ]
|
||||
[17] return [ inci::return#2 i#11 ]
|
||||
to:@return
|
||||
|
||||
CONTROL FLOW GRAPH - PHI MEM COALESCED
|
||||
@ -749,12 +736,12 @@ CONTROL FLOW GRAPH - PHI MEM COALESCED
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @2
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call inci param-assignment [ inci::return#2 inci::$0 ] ( main:2 [ inci::return#2 inci::$0 ] )
|
||||
[6] (byte) inci::return#0 ← (byte) inci::return#2 [ inci::return#0 inci::$0 ] ( main:2 [ inci::return#0 inci::$0 ] )
|
||||
[5] call inci param-assignment [ inci::return#2 i#11 ] ( main:2 [ inci::return#2 i#11 ] )
|
||||
[6] (byte) inci::return#0 ← (byte) inci::return#2 [ inci::return#0 i#11 ] ( main:2 [ inci::return#0 i#11 ] )
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main
|
||||
[7] (byte~) main::$0 ← (byte) inci::return#0 [ main::$0 inci::$0 ] ( main:2 [ main::$0 inci::$0 ] )
|
||||
[8] (byte) main::a#1 ← (byte/signed byte/word/signed word) 4 + (byte~) main::$0 [ main::a#1 inci::$0 ] ( main:2 [ main::a#1 inci::$0 ] )
|
||||
[7] (byte~) main::$0 ← (byte) inci::return#0 [ main::$0 i#11 ] ( main:2 [ main::$0 i#11 ] )
|
||||
[8] (byte) main::a#1 ← (byte/signed byte/word/signed word) 4 + (byte~) main::$0 [ main::a#1 i#11 ] ( main:2 [ main::a#1 i#11 ] )
|
||||
[9] call inci param-assignment [ inci::return#2 main::a#1 ] ( main:2 [ inci::return#2 main::a#1 ] )
|
||||
[10] (byte) inci::return#1 ← (byte) inci::return#2 [ main::a#1 inci::return#1 ] ( main:2 [ main::a#1 inci::return#1 ] )
|
||||
to:main::@2
|
||||
@ -766,12 +753,12 @@ main::@return: scope:[main] from main::@2
|
||||
[13] return [ ] ( main:2 [ ] )
|
||||
to:@return
|
||||
inci: scope:[inci] from main main::@1
|
||||
[14] (byte) i#10 ← phi( main/(byte/signed byte/word/signed word) 0 main::@1/(byte~) inci::$0 ) [ i#10 ] ( main:2::inci:5 [ i#10 ] main:2::inci:9 [ main::a#1 i#10 ] )
|
||||
[15] (byte~) inci::$0 ← (byte) i#10 + (byte/signed byte/word/signed word) 7 [ inci::$0 ] ( main:2::inci:5 [ inci::$0 ] main:2::inci:9 [ main::a#1 inci::$0 ] )
|
||||
[16] (byte) inci::return#2 ← (byte~) inci::$0 [ inci::return#2 inci::$0 ] ( main:2::inci:5 [ inci::return#2 inci::$0 ] main:2::inci:9 [ main::a#1 inci::return#2 inci::$0 ] )
|
||||
[14] (byte) i#10 ← phi( main/(byte/signed byte/word/signed word) 0 main::@1/(byte) i#11 ) [ i#10 ] ( main:2::inci:5 [ i#10 ] main:2::inci:9 [ main::a#1 i#10 ] )
|
||||
[15] (byte) i#11 ← (byte) i#10 + (byte/signed byte/word/signed word) 7 [ i#11 ] ( main:2::inci:5 [ i#11 ] main:2::inci:9 [ main::a#1 i#11 ] )
|
||||
[16] (byte) inci::return#2 ← (byte) i#11 [ inci::return#2 i#11 ] ( main:2::inci:5 [ inci::return#2 i#11 ] main:2::inci:9 [ main::a#1 inci::return#2 i#11 ] )
|
||||
to:inci::@return
|
||||
inci::@return: scope:[inci] from inci
|
||||
[17] return [ inci::return#2 inci::$0 ] ( main:2::inci:5 [ inci::return#2 inci::$0 ] main:2::inci:9 [ main::a#1 inci::return#2 inci::$0 ] )
|
||||
[17] return [ inci::return#2 i#11 ] ( main:2::inci:5 [ inci::return#2 i#11 ] main:2::inci:9 [ main::a#1 inci::return#2 i#11 ] )
|
||||
to:@return
|
||||
|
||||
DOMINATORS
|
||||
@ -796,8 +783,8 @@ NATURAL LOOPS WITH DEPTH
|
||||
VARIABLE REGISTER WEIGHTS
|
||||
(byte) i
|
||||
(byte) i#10 4.0
|
||||
(byte) i#11 0.8571428571428571
|
||||
(byte()) inci()
|
||||
(byte~) inci::$0 0.8571428571428571
|
||||
(byte) inci::return
|
||||
(byte) inci::return#0 4.0
|
||||
(byte) inci::return#1 4.0
|
||||
@ -810,7 +797,7 @@ VARIABLE REGISTER WEIGHTS
|
||||
(byte) main::a#2 20.0
|
||||
|
||||
Initial phi equivalence classes
|
||||
[ i#10 inci::$0 ]
|
||||
[ i#10 i#11 ]
|
||||
Added variable inci::return#0 to zero page equivalence class [ inci::return#0 ]
|
||||
Added variable main::$0 to zero page equivalence class [ main::$0 ]
|
||||
Added variable main::a#1 to zero page equivalence class [ main::a#1 ]
|
||||
@ -819,7 +806,7 @@ Added variable main::$2 to zero page equivalence class [ main::$2 ]
|
||||
Added variable main::a#2 to zero page equivalence class [ main::a#2 ]
|
||||
Added variable inci::return#2 to zero page equivalence class [ inci::return#2 ]
|
||||
Complete equivalence classes
|
||||
[ i#10 inci::$0 ]
|
||||
[ i#10 i#11 ]
|
||||
[ inci::return#0 ]
|
||||
[ main::$0 ]
|
||||
[ main::a#1 ]
|
||||
@ -827,7 +814,7 @@ Complete equivalence classes
|
||||
[ main::$2 ]
|
||||
[ main::a#2 ]
|
||||
[ inci::return#2 ]
|
||||
Allocated zp ZP_BYTE:2 [ i#10 inci::$0 ]
|
||||
Allocated zp ZP_BYTE:2 [ i#10 i#11 ]
|
||||
Allocated zp ZP_BYTE:3 [ inci::return#0 ]
|
||||
Allocated zp ZP_BYTE:4 [ main::$0 ]
|
||||
Allocated zp ZP_BYTE:5 [ main::a#1 ]
|
||||
@ -864,23 +851,23 @@ main: {
|
||||
.label _2 = 7
|
||||
.label a = 5
|
||||
.label a_2 = 8
|
||||
//SEG10 [5] call inci param-assignment [ inci::return#2 inci::$0 ] ( main:2 [ inci::return#2 inci::$0 ] )
|
||||
//SEG10 [5] call inci param-assignment [ inci::return#2 i#11 ] ( main:2 [ inci::return#2 i#11 ] )
|
||||
//SEG11 [14] phi from main to inci [phi:main->inci]
|
||||
inci_from_main:
|
||||
//SEG12 [14] phi (byte) i#10 = (byte/signed byte/word/signed word) 0 [phi:main->inci#0] -- vbuz1=vbuc1
|
||||
lda #0
|
||||
sta i
|
||||
jsr inci
|
||||
//SEG13 [6] (byte) inci::return#0 ← (byte) inci::return#2 [ inci::return#0 inci::$0 ] ( main:2 [ inci::return#0 inci::$0 ] ) -- vbuz1=vbuz2
|
||||
//SEG13 [6] (byte) inci::return#0 ← (byte) inci::return#2 [ inci::return#0 i#11 ] ( main:2 [ inci::return#0 i#11 ] ) -- vbuz1=vbuz2
|
||||
lda inci.return_2
|
||||
sta inci.return
|
||||
jmp b1
|
||||
//SEG14 main::@1
|
||||
b1:
|
||||
//SEG15 [7] (byte~) main::$0 ← (byte) inci::return#0 [ main::$0 inci::$0 ] ( main:2 [ main::$0 inci::$0 ] ) -- vbuz1=vbuz2
|
||||
//SEG15 [7] (byte~) main::$0 ← (byte) inci::return#0 [ main::$0 i#11 ] ( main:2 [ main::$0 i#11 ] ) -- vbuz1=vbuz2
|
||||
lda inci.return
|
||||
sta _0
|
||||
//SEG16 [8] (byte) main::a#1 ← (byte/signed byte/word/signed word) 4 + (byte~) main::$0 [ main::a#1 inci::$0 ] ( main:2 [ main::a#1 inci::$0 ] ) -- vbuz1=vbuc1_plus_vbuz2
|
||||
//SEG16 [8] (byte) main::a#1 ← (byte/signed byte/word/signed word) 4 + (byte~) main::$0 [ main::a#1 i#11 ] ( main:2 [ main::a#1 i#11 ] ) -- vbuz1=vbuc1_plus_vbuz2
|
||||
lda _0
|
||||
clc
|
||||
adc #4
|
||||
@ -888,7 +875,7 @@ main: {
|
||||
//SEG17 [9] call inci param-assignment [ inci::return#2 main::a#1 ] ( main:2 [ inci::return#2 main::a#1 ] )
|
||||
//SEG18 [14] phi from main::@1 to inci [phi:main::@1->inci]
|
||||
inci_from_b1:
|
||||
//SEG19 [14] phi (byte) i#10 = (byte~) inci::$0 [phi:main::@1->inci#0] -- register_copy
|
||||
//SEG19 [14] phi (byte) i#10 = (byte) i#11 [phi:main::@1->inci#0] -- register_copy
|
||||
jsr inci
|
||||
//SEG20 [10] (byte) inci::return#1 ← (byte) inci::return#2 [ main::a#1 inci::return#1 ] ( main:2 [ main::a#1 inci::return#1 ] ) -- vbuz1=vbuz2
|
||||
lda inci.return_2
|
||||
@ -912,34 +899,33 @@ main: {
|
||||
}
|
||||
//SEG26 inci
|
||||
inci: {
|
||||
.label _0 = 2
|
||||
.label return = 3
|
||||
.label return_1 = 6
|
||||
.label return_2 = 9
|
||||
//SEG27 [15] (byte~) inci::$0 ← (byte) i#10 + (byte/signed byte/word/signed word) 7 [ inci::$0 ] ( main:2::inci:5 [ inci::$0 ] main:2::inci:9 [ main::a#1 inci::$0 ] ) -- vbuz1=vbuz1_plus_vbuc1
|
||||
lda _0
|
||||
//SEG27 [15] (byte) i#11 ← (byte) i#10 + (byte/signed byte/word/signed word) 7 [ i#11 ] ( main:2::inci:5 [ i#11 ] main:2::inci:9 [ main::a#1 i#11 ] ) -- vbuz1=vbuz1_plus_vbuc1
|
||||
lda i
|
||||
clc
|
||||
adc #7
|
||||
sta _0
|
||||
//SEG28 [16] (byte) inci::return#2 ← (byte~) inci::$0 [ inci::return#2 inci::$0 ] ( main:2::inci:5 [ inci::return#2 inci::$0 ] main:2::inci:9 [ main::a#1 inci::return#2 inci::$0 ] ) -- vbuz1=vbuz2
|
||||
lda _0
|
||||
sta i
|
||||
//SEG28 [16] (byte) inci::return#2 ← (byte) i#11 [ inci::return#2 i#11 ] ( main:2::inci:5 [ inci::return#2 i#11 ] main:2::inci:9 [ main::a#1 inci::return#2 i#11 ] ) -- vbuz1=vbuz2
|
||||
lda i
|
||||
sta return_2
|
||||
jmp breturn
|
||||
//SEG29 inci::@return
|
||||
breturn:
|
||||
//SEG30 [17] return [ inci::return#2 inci::$0 ] ( main:2::inci:5 [ inci::return#2 inci::$0 ] main:2::inci:9 [ main::a#1 inci::return#2 inci::$0 ] )
|
||||
//SEG30 [17] return [ inci::return#2 i#11 ] ( main:2::inci:5 [ inci::return#2 i#11 ] main:2::inci:9 [ main::a#1 inci::return#2 i#11 ] )
|
||||
rts
|
||||
}
|
||||
|
||||
REGISTER UPLIFT POTENTIAL REGISTERS
|
||||
Statement [8] (byte) main::a#1 ← (byte/signed byte/word/signed word) 4 + (byte~) main::$0 [ main::a#1 inci::$0 ] ( main:2 [ main::a#1 inci::$0 ] ) always clobbers reg byte a
|
||||
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ i#10 inci::$0 ]
|
||||
Statement [15] (byte~) inci::$0 ← (byte) i#10 + (byte/signed byte/word/signed word) 7 [ inci::$0 ] ( main:2::inci:5 [ inci::$0 ] main:2::inci:9 [ main::a#1 inci::$0 ] ) always clobbers reg byte a
|
||||
Statement [8] (byte) main::a#1 ← (byte/signed byte/word/signed word) 4 + (byte~) main::$0 [ main::a#1 i#11 ] ( main:2 [ main::a#1 i#11 ] ) always clobbers reg byte a
|
||||
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ i#10 i#11 ]
|
||||
Statement [15] (byte) i#11 ← (byte) i#10 + (byte/signed byte/word/signed word) 7 [ i#11 ] ( main:2::inci:5 [ i#11 ] main:2::inci:9 [ main::a#1 i#11 ] ) always clobbers reg byte a
|
||||
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:5 [ main::a#1 ]
|
||||
Statement [8] (byte) main::a#1 ← (byte/signed byte/word/signed word) 4 + (byte~) main::$0 [ main::a#1 inci::$0 ] ( main:2 [ main::a#1 inci::$0 ] ) always clobbers reg byte a
|
||||
Statement [8] (byte) main::a#1 ← (byte/signed byte/word/signed word) 4 + (byte~) main::$0 [ main::a#1 i#11 ] ( main:2 [ main::a#1 i#11 ] ) always clobbers reg byte a
|
||||
Statement [12] (byte) main::a#2 ← (byte) main::a#1 + (byte~) main::$2 [ ] ( main:2 [ ] ) always clobbers reg byte a
|
||||
Statement [15] (byte~) inci::$0 ← (byte) i#10 + (byte/signed byte/word/signed word) 7 [ inci::$0 ] ( main:2::inci:5 [ inci::$0 ] main:2::inci:9 [ main::a#1 inci::$0 ] ) always clobbers reg byte a
|
||||
Potential registers zp ZP_BYTE:2 [ i#10 inci::$0 ] : zp ZP_BYTE:2 , reg byte x , reg byte y ,
|
||||
Statement [15] (byte) i#11 ← (byte) i#10 + (byte/signed byte/word/signed word) 7 [ i#11 ] ( main:2::inci:5 [ i#11 ] main:2::inci:9 [ main::a#1 i#11 ] ) always clobbers reg byte a
|
||||
Potential registers zp ZP_BYTE:2 [ i#10 i#11 ] : zp ZP_BYTE:2 , reg byte x , reg byte y ,
|
||||
Potential registers zp ZP_BYTE:3 [ inci::return#0 ] : zp ZP_BYTE:3 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp ZP_BYTE:4 [ main::$0 ] : zp ZP_BYTE:4 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp ZP_BYTE:5 [ main::a#1 ] : zp ZP_BYTE:5 , reg byte x , reg byte y ,
|
||||
@ -951,11 +937,11 @@ Potential registers zp ZP_BYTE:9 [ inci::return#2 ] : zp ZP_BYTE:9 , reg byte a
|
||||
REGISTER UPLIFT SCOPES
|
||||
Uplift Scope [main] 20: zp ZP_BYTE:8 [ main::a#2 ] 4: zp ZP_BYTE:4 [ main::$0 ] 4: zp ZP_BYTE:7 [ main::$2 ] 1: zp ZP_BYTE:5 [ main::a#1 ]
|
||||
Uplift Scope [inci] 4: zp ZP_BYTE:3 [ inci::return#0 ] 4: zp ZP_BYTE:6 [ inci::return#1 ] 1.5: zp ZP_BYTE:9 [ inci::return#2 ]
|
||||
Uplift Scope [] 4.86: zp ZP_BYTE:2 [ i#10 inci::$0 ]
|
||||
Uplift Scope [] 4.86: zp ZP_BYTE:2 [ i#10 i#11 ]
|
||||
|
||||
Uplifting [main] best 99 combination reg byte a [ main::a#2 ] reg byte a [ main::$0 ] reg byte a [ main::$2 ] zp ZP_BYTE:5 [ main::a#1 ]
|
||||
Uplifting [inci] best 78 combination reg byte a [ inci::return#0 ] reg byte a [ inci::return#1 ] reg byte a [ inci::return#2 ]
|
||||
Uplifting [] best 72 combination reg byte x [ i#10 inci::$0 ]
|
||||
Uplifting [] best 72 combination reg byte x [ i#10 i#11 ]
|
||||
Attempting to uplift remaining variables inzp ZP_BYTE:5 [ main::a#1 ]
|
||||
Uplifting [main] best 72 combination zp ZP_BYTE:5 [ main::a#1 ]
|
||||
Allocated (was zp ZP_BYTE:5) zp ZP_BYTE:2 [ main::a#1 ]
|
||||
@ -989,26 +975,26 @@ bend:
|
||||
//SEG9 main
|
||||
main: {
|
||||
.label a = 2
|
||||
//SEG10 [5] call inci param-assignment [ inci::return#2 inci::$0 ] ( main:2 [ inci::return#2 inci::$0 ] )
|
||||
//SEG10 [5] call inci param-assignment [ inci::return#2 i#11 ] ( main:2 [ inci::return#2 i#11 ] )
|
||||
//SEG11 [14] phi from main to inci [phi:main->inci]
|
||||
inci_from_main:
|
||||
//SEG12 [14] phi (byte) i#10 = (byte/signed byte/word/signed word) 0 [phi:main->inci#0] -- vbuxx=vbuc1
|
||||
ldx #0
|
||||
jsr inci
|
||||
//SEG13 [6] (byte) inci::return#0 ← (byte) inci::return#2 [ inci::return#0 inci::$0 ] ( main:2 [ inci::return#0 inci::$0 ] )
|
||||
//SEG13 [6] (byte) inci::return#0 ← (byte) inci::return#2 [ inci::return#0 i#11 ] ( main:2 [ inci::return#0 i#11 ] )
|
||||
// (byte) inci::return#0 = (byte) inci::return#2 // register copy reg byte a
|
||||
//SEG14 main::@1
|
||||
b1:
|
||||
//SEG15 [7] (byte~) main::$0 ← (byte) inci::return#0 [ main::$0 inci::$0 ] ( main:2 [ main::$0 inci::$0 ] )
|
||||
//SEG15 [7] (byte~) main::$0 ← (byte) inci::return#0 [ main::$0 i#11 ] ( main:2 [ main::$0 i#11 ] )
|
||||
// (byte~) main::$0 = (byte) inci::return#0 // register copy reg byte a
|
||||
//SEG16 [8] (byte) main::a#1 ← (byte/signed byte/word/signed word) 4 + (byte~) main::$0 [ main::a#1 inci::$0 ] ( main:2 [ main::a#1 inci::$0 ] ) -- vbuz1=vbuc1_plus_vbuaa
|
||||
//SEG16 [8] (byte) main::a#1 ← (byte/signed byte/word/signed word) 4 + (byte~) main::$0 [ main::a#1 i#11 ] ( main:2 [ main::a#1 i#11 ] ) -- vbuz1=vbuc1_plus_vbuaa
|
||||
clc
|
||||
adc #4
|
||||
sta a
|
||||
//SEG17 [9] call inci param-assignment [ inci::return#2 main::a#1 ] ( main:2 [ inci::return#2 main::a#1 ] )
|
||||
//SEG18 [14] phi from main::@1 to inci [phi:main::@1->inci]
|
||||
inci_from_b1:
|
||||
//SEG19 [14] phi (byte) i#10 = (byte~) inci::$0 [phi:main::@1->inci#0] -- register_copy
|
||||
//SEG19 [14] phi (byte) i#10 = (byte) i#11 [phi:main::@1->inci#0] -- register_copy
|
||||
jsr inci
|
||||
//SEG20 [10] (byte) inci::return#1 ← (byte) inci::return#2 [ main::a#1 inci::return#1 ] ( main:2 [ main::a#1 inci::return#1 ] )
|
||||
// (byte) inci::return#1 = (byte) inci::return#2 // register copy reg byte a
|
||||
@ -1026,16 +1012,16 @@ main: {
|
||||
}
|
||||
//SEG26 inci
|
||||
inci: {
|
||||
//SEG27 [15] (byte~) inci::$0 ← (byte) i#10 + (byte/signed byte/word/signed word) 7 [ inci::$0 ] ( main:2::inci:5 [ inci::$0 ] main:2::inci:9 [ main::a#1 inci::$0 ] ) -- vbuxx=vbuxx_plus_vbuc1
|
||||
//SEG27 [15] (byte) i#11 ← (byte) i#10 + (byte/signed byte/word/signed word) 7 [ i#11 ] ( main:2::inci:5 [ i#11 ] main:2::inci:9 [ main::a#1 i#11 ] ) -- vbuxx=vbuxx_plus_vbuc1
|
||||
txa
|
||||
clc
|
||||
adc #7
|
||||
tax
|
||||
//SEG28 [16] (byte) inci::return#2 ← (byte~) inci::$0 [ inci::return#2 inci::$0 ] ( main:2::inci:5 [ inci::return#2 inci::$0 ] main:2::inci:9 [ main::a#1 inci::return#2 inci::$0 ] ) -- vbuaa=vbuxx
|
||||
//SEG28 [16] (byte) inci::return#2 ← (byte) i#11 [ inci::return#2 i#11 ] ( main:2::inci:5 [ inci::return#2 i#11 ] main:2::inci:9 [ main::a#1 inci::return#2 i#11 ] ) -- vbuaa=vbuxx
|
||||
txa
|
||||
//SEG29 inci::@return
|
||||
breturn:
|
||||
//SEG30 [17] return [ inci::return#2 inci::$0 ] ( main:2::inci:5 [ inci::return#2 inci::$0 ] main:2::inci:9 [ main::a#1 inci::return#2 inci::$0 ] )
|
||||
//SEG30 [17] return [ inci::return#2 i#11 ] ( main:2::inci:5 [ inci::return#2 i#11 ] main:2::inci:9 [ main::a#1 inci::return#2 i#11 ] )
|
||||
rts
|
||||
}
|
||||
|
||||
@ -1063,26 +1049,26 @@ bend:
|
||||
//SEG9 main
|
||||
main: {
|
||||
.label a = 2
|
||||
//SEG10 [5] call inci param-assignment [ inci::return#2 inci::$0 ] ( main:2 [ inci::return#2 inci::$0 ] )
|
||||
//SEG10 [5] call inci param-assignment [ inci::return#2 i#11 ] ( main:2 [ inci::return#2 i#11 ] )
|
||||
//SEG11 [14] phi from main to inci [phi:main->inci]
|
||||
inci_from_main:
|
||||
//SEG12 [14] phi (byte) i#10 = (byte/signed byte/word/signed word) 0 [phi:main->inci#0] -- vbuxx=vbuc1
|
||||
ldx #0
|
||||
jsr inci
|
||||
//SEG13 [6] (byte) inci::return#0 ← (byte) inci::return#2 [ inci::return#0 inci::$0 ] ( main:2 [ inci::return#0 inci::$0 ] )
|
||||
//SEG13 [6] (byte) inci::return#0 ← (byte) inci::return#2 [ inci::return#0 i#11 ] ( main:2 [ inci::return#0 i#11 ] )
|
||||
// (byte) inci::return#0 = (byte) inci::return#2 // register copy reg byte a
|
||||
//SEG14 main::@1
|
||||
b1:
|
||||
//SEG15 [7] (byte~) main::$0 ← (byte) inci::return#0 [ main::$0 inci::$0 ] ( main:2 [ main::$0 inci::$0 ] )
|
||||
//SEG15 [7] (byte~) main::$0 ← (byte) inci::return#0 [ main::$0 i#11 ] ( main:2 [ main::$0 i#11 ] )
|
||||
// (byte~) main::$0 = (byte) inci::return#0 // register copy reg byte a
|
||||
//SEG16 [8] (byte) main::a#1 ← (byte/signed byte/word/signed word) 4 + (byte~) main::$0 [ main::a#1 inci::$0 ] ( main:2 [ main::a#1 inci::$0 ] ) -- vbuz1=vbuc1_plus_vbuaa
|
||||
//SEG16 [8] (byte) main::a#1 ← (byte/signed byte/word/signed word) 4 + (byte~) main::$0 [ main::a#1 i#11 ] ( main:2 [ main::a#1 i#11 ] ) -- vbuz1=vbuc1_plus_vbuaa
|
||||
clc
|
||||
adc #4
|
||||
sta a
|
||||
//SEG17 [9] call inci param-assignment [ inci::return#2 main::a#1 ] ( main:2 [ inci::return#2 main::a#1 ] )
|
||||
//SEG18 [14] phi from main::@1 to inci [phi:main::@1->inci]
|
||||
inci_from_b1:
|
||||
//SEG19 [14] phi (byte) i#10 = (byte~) inci::$0 [phi:main::@1->inci#0] -- register_copy
|
||||
//SEG19 [14] phi (byte) i#10 = (byte) i#11 [phi:main::@1->inci#0] -- register_copy
|
||||
jsr inci
|
||||
//SEG20 [10] (byte) inci::return#1 ← (byte) inci::return#2 [ main::a#1 inci::return#1 ] ( main:2 [ main::a#1 inci::return#1 ] )
|
||||
// (byte) inci::return#1 = (byte) inci::return#2 // register copy reg byte a
|
||||
@ -1100,16 +1086,16 @@ main: {
|
||||
}
|
||||
//SEG26 inci
|
||||
inci: {
|
||||
//SEG27 [15] (byte~) inci::$0 ← (byte) i#10 + (byte/signed byte/word/signed word) 7 [ inci::$0 ] ( main:2::inci:5 [ inci::$0 ] main:2::inci:9 [ main::a#1 inci::$0 ] ) -- vbuxx=vbuxx_plus_vbuc1
|
||||
//SEG27 [15] (byte) i#11 ← (byte) i#10 + (byte/signed byte/word/signed word) 7 [ i#11 ] ( main:2::inci:5 [ i#11 ] main:2::inci:9 [ main::a#1 i#11 ] ) -- vbuxx=vbuxx_plus_vbuc1
|
||||
txa
|
||||
clc
|
||||
adc #7
|
||||
tax
|
||||
//SEG28 [16] (byte) inci::return#2 ← (byte~) inci::$0 [ inci::return#2 inci::$0 ] ( main:2::inci:5 [ inci::return#2 inci::$0 ] main:2::inci:9 [ main::a#1 inci::return#2 inci::$0 ] ) -- vbuaa=vbuxx
|
||||
//SEG28 [16] (byte) inci::return#2 ← (byte) i#11 [ inci::return#2 i#11 ] ( main:2::inci:5 [ inci::return#2 i#11 ] main:2::inci:9 [ main::a#1 inci::return#2 i#11 ] ) -- vbuaa=vbuxx
|
||||
txa
|
||||
//SEG29 inci::@return
|
||||
breturn:
|
||||
//SEG30 [17] return [ inci::return#2 inci::$0 ] ( main:2::inci:5 [ inci::return#2 inci::$0 ] main:2::inci:9 [ main::a#1 inci::return#2 inci::$0 ] )
|
||||
//SEG30 [17] return [ inci::return#2 i#11 ] ( main:2::inci:5 [ inci::return#2 i#11 ] main:2::inci:9 [ main::a#1 inci::return#2 i#11 ] )
|
||||
rts
|
||||
}
|
||||
|
||||
@ -1139,23 +1125,23 @@ ASSEMBLER
|
||||
//SEG9 main
|
||||
main: {
|
||||
.label a = 2
|
||||
//SEG10 [5] call inci param-assignment [ inci::return#2 inci::$0 ] ( main:2 [ inci::return#2 inci::$0 ] )
|
||||
//SEG10 [5] call inci param-assignment [ inci::return#2 i#11 ] ( main:2 [ inci::return#2 i#11 ] )
|
||||
//SEG11 [14] phi from main to inci [phi:main->inci]
|
||||
//SEG12 [14] phi (byte) i#10 = (byte/signed byte/word/signed word) 0 [phi:main->inci#0] -- vbuxx=vbuc1
|
||||
ldx #0
|
||||
jsr inci
|
||||
//SEG13 [6] (byte) inci::return#0 ← (byte) inci::return#2 [ inci::return#0 inci::$0 ] ( main:2 [ inci::return#0 inci::$0 ] )
|
||||
//SEG13 [6] (byte) inci::return#0 ← (byte) inci::return#2 [ inci::return#0 i#11 ] ( main:2 [ inci::return#0 i#11 ] )
|
||||
// (byte) inci::return#0 = (byte) inci::return#2 // register copy reg byte a
|
||||
//SEG14 main::@1
|
||||
//SEG15 [7] (byte~) main::$0 ← (byte) inci::return#0 [ main::$0 inci::$0 ] ( main:2 [ main::$0 inci::$0 ] )
|
||||
//SEG15 [7] (byte~) main::$0 ← (byte) inci::return#0 [ main::$0 i#11 ] ( main:2 [ main::$0 i#11 ] )
|
||||
// (byte~) main::$0 = (byte) inci::return#0 // register copy reg byte a
|
||||
//SEG16 [8] (byte) main::a#1 ← (byte/signed byte/word/signed word) 4 + (byte~) main::$0 [ main::a#1 inci::$0 ] ( main:2 [ main::a#1 inci::$0 ] ) -- vbuz1=vbuc1_plus_vbuaa
|
||||
//SEG16 [8] (byte) main::a#1 ← (byte/signed byte/word/signed word) 4 + (byte~) main::$0 [ main::a#1 i#11 ] ( main:2 [ main::a#1 i#11 ] ) -- vbuz1=vbuc1_plus_vbuaa
|
||||
clc
|
||||
adc #4
|
||||
sta a
|
||||
//SEG17 [9] call inci param-assignment [ inci::return#2 main::a#1 ] ( main:2 [ inci::return#2 main::a#1 ] )
|
||||
//SEG18 [14] phi from main::@1 to inci [phi:main::@1->inci]
|
||||
//SEG19 [14] phi (byte) i#10 = (byte~) inci::$0 [phi:main::@1->inci#0] -- register_copy
|
||||
//SEG19 [14] phi (byte) i#10 = (byte) i#11 [phi:main::@1->inci#0] -- register_copy
|
||||
jsr inci
|
||||
//SEG20 [10] (byte) inci::return#1 ← (byte) inci::return#2 [ main::a#1 inci::return#1 ] ( main:2 [ main::a#1 inci::return#1 ] )
|
||||
// (byte) inci::return#1 = (byte) inci::return#2 // register copy reg byte a
|
||||
@ -1171,15 +1157,15 @@ main: {
|
||||
}
|
||||
//SEG26 inci
|
||||
inci: {
|
||||
//SEG27 [15] (byte~) inci::$0 ← (byte) i#10 + (byte/signed byte/word/signed word) 7 [ inci::$0 ] ( main:2::inci:5 [ inci::$0 ] main:2::inci:9 [ main::a#1 inci::$0 ] ) -- vbuxx=vbuxx_plus_vbuc1
|
||||
//SEG27 [15] (byte) i#11 ← (byte) i#10 + (byte/signed byte/word/signed word) 7 [ i#11 ] ( main:2::inci:5 [ i#11 ] main:2::inci:9 [ main::a#1 i#11 ] ) -- vbuxx=vbuxx_plus_vbuc1
|
||||
txa
|
||||
clc
|
||||
adc #7
|
||||
tax
|
||||
//SEG28 [16] (byte) inci::return#2 ← (byte~) inci::$0 [ inci::return#2 inci::$0 ] ( main:2::inci:5 [ inci::return#2 inci::$0 ] main:2::inci:9 [ main::a#1 inci::return#2 inci::$0 ] ) -- vbuaa=vbuxx
|
||||
//SEG28 [16] (byte) inci::return#2 ← (byte) i#11 [ inci::return#2 i#11 ] ( main:2::inci:5 [ inci::return#2 i#11 ] main:2::inci:9 [ main::a#1 inci::return#2 i#11 ] ) -- vbuaa=vbuxx
|
||||
txa
|
||||
//SEG29 inci::@return
|
||||
//SEG30 [17] return [ inci::return#2 inci::$0 ] ( main:2::inci:5 [ inci::return#2 inci::$0 ] main:2::inci:9 [ main::a#1 inci::return#2 inci::$0 ] )
|
||||
//SEG30 [17] return [ inci::return#2 i#11 ] ( main:2::inci:5 [ inci::return#2 i#11 ] main:2::inci:9 [ main::a#1 inci::return#2 i#11 ] )
|
||||
rts
|
||||
}
|
||||
|
||||
@ -1189,8 +1175,8 @@ FINAL SYMBOL TABLE
|
||||
(label) @end
|
||||
(byte) i
|
||||
(byte) i#10 reg byte x 4.0
|
||||
(byte) i#11 reg byte x 0.8571428571428571
|
||||
(byte()) inci()
|
||||
(byte~) inci::$0 reg byte x 0.8571428571428571
|
||||
(label) inci::@return
|
||||
(byte) inci::return
|
||||
(byte) inci::return#0 reg byte a 4.0
|
||||
@ -1206,7 +1192,7 @@ FINAL SYMBOL TABLE
|
||||
(byte) main::a#1 a zp ZP_BYTE:2 1.0
|
||||
(byte) main::a#2 reg byte a 20.0
|
||||
|
||||
reg byte x [ i#10 inci::$0 ]
|
||||
reg byte x [ i#10 i#11 ]
|
||||
reg byte a [ inci::return#0 ]
|
||||
reg byte a [ main::$0 ]
|
||||
zp ZP_BYTE:2 [ main::a#1 ]
|
||||
@ -1232,23 +1218,23 @@ FINAL CODE
|
||||
//SEG9 main
|
||||
main: {
|
||||
.label a = 2
|
||||
//SEG10 [5] call inci param-assignment [ inci::return#2 inci::$0 ] ( main:2 [ inci::return#2 inci::$0 ] )
|
||||
//SEG10 [5] call inci param-assignment [ inci::return#2 i#11 ] ( main:2 [ inci::return#2 i#11 ] )
|
||||
//SEG11 [14] phi from main to inci [phi:main->inci]
|
||||
//SEG12 [14] phi (byte) i#10 = (byte/signed byte/word/signed word) 0 [phi:main->inci#0] -- vbuxx=vbuc1
|
||||
ldx #0
|
||||
jsr inci
|
||||
//SEG13 [6] (byte) inci::return#0 ← (byte) inci::return#2 [ inci::return#0 inci::$0 ] ( main:2 [ inci::return#0 inci::$0 ] )
|
||||
//SEG13 [6] (byte) inci::return#0 ← (byte) inci::return#2 [ inci::return#0 i#11 ] ( main:2 [ inci::return#0 i#11 ] )
|
||||
// (byte) inci::return#0 = (byte) inci::return#2 // register copy reg byte a
|
||||
//SEG14 main::@1
|
||||
//SEG15 [7] (byte~) main::$0 ← (byte) inci::return#0 [ main::$0 inci::$0 ] ( main:2 [ main::$0 inci::$0 ] )
|
||||
//SEG15 [7] (byte~) main::$0 ← (byte) inci::return#0 [ main::$0 i#11 ] ( main:2 [ main::$0 i#11 ] )
|
||||
// (byte~) main::$0 = (byte) inci::return#0 // register copy reg byte a
|
||||
//SEG16 [8] (byte) main::a#1 ← (byte/signed byte/word/signed word) 4 + (byte~) main::$0 [ main::a#1 inci::$0 ] ( main:2 [ main::a#1 inci::$0 ] ) -- vbuz1=vbuc1_plus_vbuaa
|
||||
//SEG16 [8] (byte) main::a#1 ← (byte/signed byte/word/signed word) 4 + (byte~) main::$0 [ main::a#1 i#11 ] ( main:2 [ main::a#1 i#11 ] ) -- vbuz1=vbuc1_plus_vbuaa
|
||||
clc
|
||||
adc #4
|
||||
sta a
|
||||
//SEG17 [9] call inci param-assignment [ inci::return#2 main::a#1 ] ( main:2 [ inci::return#2 main::a#1 ] )
|
||||
//SEG18 [14] phi from main::@1 to inci [phi:main::@1->inci]
|
||||
//SEG19 [14] phi (byte) i#10 = (byte~) inci::$0 [phi:main::@1->inci#0] -- register_copy
|
||||
//SEG19 [14] phi (byte) i#10 = (byte) i#11 [phi:main::@1->inci#0] -- register_copy
|
||||
jsr inci
|
||||
//SEG20 [10] (byte) inci::return#1 ← (byte) inci::return#2 [ main::a#1 inci::return#1 ] ( main:2 [ main::a#1 inci::return#1 ] )
|
||||
// (byte) inci::return#1 = (byte) inci::return#2 // register copy reg byte a
|
||||
@ -1264,15 +1250,15 @@ main: {
|
||||
}
|
||||
//SEG26 inci
|
||||
inci: {
|
||||
//SEG27 [15] (byte~) inci::$0 ← (byte) i#10 + (byte/signed byte/word/signed word) 7 [ inci::$0 ] ( main:2::inci:5 [ inci::$0 ] main:2::inci:9 [ main::a#1 inci::$0 ] ) -- vbuxx=vbuxx_plus_vbuc1
|
||||
//SEG27 [15] (byte) i#11 ← (byte) i#10 + (byte/signed byte/word/signed word) 7 [ i#11 ] ( main:2::inci:5 [ i#11 ] main:2::inci:9 [ main::a#1 i#11 ] ) -- vbuxx=vbuxx_plus_vbuc1
|
||||
txa
|
||||
clc
|
||||
adc #7
|
||||
tax
|
||||
//SEG28 [16] (byte) inci::return#2 ← (byte~) inci::$0 [ inci::return#2 inci::$0 ] ( main:2::inci:5 [ inci::return#2 inci::$0 ] main:2::inci:9 [ main::a#1 inci::return#2 inci::$0 ] ) -- vbuaa=vbuxx
|
||||
//SEG28 [16] (byte) inci::return#2 ← (byte) i#11 [ inci::return#2 i#11 ] ( main:2::inci:5 [ inci::return#2 i#11 ] main:2::inci:9 [ main::a#1 inci::return#2 i#11 ] ) -- vbuaa=vbuxx
|
||||
txa
|
||||
//SEG29 inci::@return
|
||||
//SEG30 [17] return [ inci::return#2 inci::$0 ] ( main:2::inci:5 [ inci::return#2 inci::$0 ] main:2::inci:9 [ main::a#1 inci::return#2 inci::$0 ] )
|
||||
//SEG30 [17] return [ inci::return#2 i#11 ] ( main:2::inci:5 [ inci::return#2 i#11 ] main:2::inci:9 [ main::a#1 inci::return#2 i#11 ] )
|
||||
rts
|
||||
}
|
||||
|
||||
|
@ -3,8 +3,8 @@
|
||||
(label) @end
|
||||
(byte) i
|
||||
(byte) i#10 reg byte x 4.0
|
||||
(byte) i#11 reg byte x 0.8571428571428571
|
||||
(byte()) inci()
|
||||
(byte~) inci::$0 reg byte x 0.8571428571428571
|
||||
(label) inci::@return
|
||||
(byte) inci::return
|
||||
(byte) inci::return#0 reg byte a 4.0
|
||||
@ -20,7 +20,7 @@
|
||||
(byte) main::a#1 a zp ZP_BYTE:2 1.0
|
||||
(byte) main::a#2 reg byte a 20.0
|
||||
|
||||
reg byte x [ i#10 inci::$0 ]
|
||||
reg byte x [ i#10 i#11 ]
|
||||
reg byte a [ inci::return#0 ]
|
||||
reg byte a [ main::$0 ]
|
||||
zp ZP_BYTE:2 [ main::a#1 ]
|
||||
|
@ -37,17 +37,16 @@ line: scope:[line] from main::@1 main::@2
|
||||
[18] call plot param-assignment [ line::l#2 ] ( main:2::line:7 [ main::i#2 line::l#2 ] main:2::line:12 [ main::j#2 line::l#2 ] )
|
||||
to:line::@1
|
||||
line::@1: scope:[line] from line
|
||||
[19] (byte~) line::$1 ← (byte) line::l#2 + (byte/signed byte/word/signed word) 20 [ line::$1 ] ( main:2::line:7 [ main::i#2 line::$1 ] main:2::line:12 [ main::j#2 line::$1 ] )
|
||||
[20] (byte) plot::x#1 ← (byte~) line::$1 [ plot::x#1 ] ( main:2::line:7 [ main::i#2 plot::x#1 ] main:2::line:12 [ main::j#2 plot::x#1 ] )
|
||||
[21] call plot param-assignment [ ] ( main:2::line:7 [ main::i#2 ] main:2::line:12 [ main::j#2 ] )
|
||||
[19] (byte) plot::x#1 ← (byte) line::l#2 + (byte/signed byte/word/signed word) 20 [ plot::x#1 ] ( main:2::line:7 [ main::i#2 plot::x#1 ] main:2::line:12 [ main::j#2 plot::x#1 ] )
|
||||
[20] call plot param-assignment [ ] ( main:2::line:7 [ main::i#2 ] main:2::line:12 [ main::j#2 ] )
|
||||
to:line::@return
|
||||
line::@return: scope:[line] from line::@1
|
||||
[22] return [ ] ( main:2::line:7 [ main::i#2 ] main:2::line:12 [ main::j#2 ] )
|
||||
[21] return [ ] ( main:2::line:7 [ main::i#2 ] main:2::line:12 [ main::j#2 ] )
|
||||
to:@return
|
||||
plot: scope:[plot] from line line::@1
|
||||
[23] (byte) plot::x#2 ← phi( line/(byte) plot::x#0 line::@1/(byte) plot::x#1 ) [ plot::x#2 ] ( main:2::line:7::plot:18 [ main::i#2 line::l#2 plot::x#2 ] main:2::line:12::plot:18 [ main::j#2 line::l#2 plot::x#2 ] main:2::line:7::plot:21 [ main::i#2 plot::x#2 ] main:2::line:12::plot:21 [ main::j#2 plot::x#2 ] )
|
||||
[24] *((const byte*) SCREEN#0 + (byte) plot::x#2) ← (byte) '*' [ ] ( main:2::line:7::plot:18 [ main::i#2 line::l#2 ] main:2::line:12::plot:18 [ main::j#2 line::l#2 ] main:2::line:7::plot:21 [ main::i#2 ] main:2::line:12::plot:21 [ main::j#2 ] )
|
||||
[22] (byte) plot::x#2 ← phi( line/(byte) plot::x#0 line::@1/(byte) plot::x#1 ) [ plot::x#2 ] ( main:2::line:7::plot:18 [ main::i#2 line::l#2 plot::x#2 ] main:2::line:12::plot:18 [ main::j#2 line::l#2 plot::x#2 ] main:2::line:7::plot:20 [ main::i#2 plot::x#2 ] main:2::line:12::plot:20 [ main::j#2 plot::x#2 ] )
|
||||
[23] *((const byte*) SCREEN#0 + (byte) plot::x#2) ← (byte) '*' [ ] ( main:2::line:7::plot:18 [ main::i#2 line::l#2 ] main:2::line:12::plot:18 [ main::j#2 line::l#2 ] main:2::line:7::plot:20 [ main::i#2 ] main:2::line:12::plot:20 [ main::j#2 ] )
|
||||
to:plot::@return
|
||||
plot::@return: scope:[plot] from plot
|
||||
[25] return [ ] ( main:2::line:7::plot:18 [ main::i#2 line::l#2 ] main:2::line:12::plot:18 [ main::j#2 line::l#2 ] main:2::line:7::plot:21 [ main::i#2 ] main:2::line:12::plot:21 [ main::j#2 ] )
|
||||
[24] return [ ] ( main:2::line:7::plot:18 [ main::i#2 line::l#2 ] main:2::line:12::plot:18 [ main::j#2 line::l#2 ] main:2::line:7::plot:20 [ main::i#2 ] main:2::line:12::plot:20 [ main::j#2 ] )
|
||||
to:@return
|
||||
|
@ -523,7 +523,6 @@ Not aliassing across scopes: line::l#1 main::j#2
|
||||
Not aliassing across scopes: line::l#2 line::l#0
|
||||
Not aliassing across scopes: SCREEN#2 SCREEN#4
|
||||
Not aliassing across scopes: plot::x#0 line::l#2
|
||||
Not aliassing across scopes: plot::x#1 line::$1
|
||||
Not aliassing across scopes: SCREEN#1 SCREEN#2
|
||||
Not aliassing across scopes: plot::x#2 plot::x#0
|
||||
Alias (byte) main::i#2 = (byte) main::i#3
|
||||
@ -532,6 +531,7 @@ Alias (byte) main::j#2 = (byte) main::j#3
|
||||
Alias (byte*) SCREEN#5 = (byte*) SCREEN#9
|
||||
Alias (byte) line::l#2 = (byte) line::l#3
|
||||
Alias (byte*) SCREEN#2 = (byte*) SCREEN#3
|
||||
Alias (byte) plot::x#1 = (byte~) line::$1
|
||||
Alias (byte*) SCREEN#0 = (byte*) SCREEN#10
|
||||
Succesful SSA optimization Pass2AliasElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@ -577,8 +577,7 @@ line: scope:[line] from main::@1 main::@2
|
||||
call plot param-assignment
|
||||
to:line::@1
|
||||
line::@1: scope:[line] from line
|
||||
(byte~) line::$1 ← (byte) line::l#2 + (byte/signed byte/word/signed word) 20
|
||||
(byte) plot::x#1 ← (byte~) line::$1
|
||||
(byte) plot::x#1 ← (byte) line::l#2 + (byte/signed byte/word/signed word) 20
|
||||
call plot param-assignment
|
||||
to:line::@return
|
||||
line::@return: scope:[line] from line::@1
|
||||
@ -603,7 +602,6 @@ Not aliassing across scopes: line::l#1 main::j#2
|
||||
Not aliassing across scopes: line::l#2 line::l#0
|
||||
Not aliassing across scopes: SCREEN#2 SCREEN#4
|
||||
Not aliassing across scopes: plot::x#0 line::l#2
|
||||
Not aliassing across scopes: plot::x#1 line::$1
|
||||
Not aliassing across scopes: SCREEN#1 SCREEN#2
|
||||
Not aliassing across scopes: plot::x#2 plot::x#0
|
||||
Self Phi Eliminated (byte*) SCREEN#4
|
||||
@ -652,8 +650,7 @@ line: scope:[line] from main::@1 main::@2
|
||||
call plot param-assignment
|
||||
to:line::@1
|
||||
line::@1: scope:[line] from line
|
||||
(byte~) line::$1 ← (byte) line::l#2 + (byte/signed byte/word/signed word) 20
|
||||
(byte) plot::x#1 ← (byte~) line::$1
|
||||
(byte) plot::x#1 ← (byte) line::l#2 + (byte/signed byte/word/signed word) 20
|
||||
call plot param-assignment
|
||||
to:line::@return
|
||||
line::@return: scope:[line] from line::@1
|
||||
@ -717,8 +714,7 @@ line: scope:[line] from main::@1 main::@2
|
||||
call plot param-assignment
|
||||
to:line::@1
|
||||
line::@1: scope:[line] from line
|
||||
(byte~) line::$1 ← (byte) line::l#2 + (byte/signed byte/word/signed word) 20
|
||||
(byte) plot::x#1 ← (byte~) line::$1
|
||||
(byte) plot::x#1 ← (byte) line::l#2 + (byte/signed byte/word/signed word) 20
|
||||
call plot param-assignment
|
||||
to:line::@return
|
||||
line::@return: scope:[line] from line::@1
|
||||
@ -777,8 +773,7 @@ line: scope:[line] from main::@1 main::@2
|
||||
call plot param-assignment
|
||||
to:line::@1
|
||||
line::@1: scope:[line] from line
|
||||
(byte~) line::$1 ← (byte) line::l#2 + (byte/signed byte/word/signed word) 20
|
||||
(byte) plot::x#1 ← (byte~) line::$1
|
||||
(byte) plot::x#1 ← (byte) line::l#2 + (byte/signed byte/word/signed word) 20
|
||||
call plot param-assignment
|
||||
to:line::@return
|
||||
line::@return: scope:[line] from line::@1
|
||||
@ -836,8 +831,7 @@ line: scope:[line] from main::@1 main::@2
|
||||
call plot param-assignment
|
||||
to:line::@1
|
||||
line::@1: scope:[line] from line
|
||||
(byte~) line::$1 ← (byte) line::l#2 + (byte/signed byte/word/signed word) 20
|
||||
(byte) plot::x#1 ← (byte~) line::$1
|
||||
(byte) plot::x#1 ← (byte) line::l#2 + (byte/signed byte/word/signed word) 20
|
||||
call plot param-assignment
|
||||
to:line::@return
|
||||
line::@return: scope:[line] from line::@1
|
||||
@ -893,8 +887,7 @@ line: scope:[line] from main::@1 main::@2
|
||||
call plot param-assignment
|
||||
to:line::@1
|
||||
line::@1: scope:[line] from line
|
||||
(byte~) line::$1 ← (byte) line::l#2 + (byte/signed byte/word/signed word) 20
|
||||
(byte) plot::x#1 ← (byte~) line::$1
|
||||
(byte) plot::x#1 ← (byte) line::l#2 + (byte/signed byte/word/signed word) 20
|
||||
call plot param-assignment
|
||||
to:line::@return
|
||||
line::@return: scope:[line] from line::@1
|
||||
@ -947,8 +940,7 @@ line: scope:[line] from main::@1 main::@2
|
||||
call plot param-assignment
|
||||
to:line::@1
|
||||
line::@1: scope:[line] from line
|
||||
(byte~) line::$1 ← (byte) line::l#2 + (byte/signed byte/word/signed word) 20
|
||||
(byte) plot::x#1 ← (byte~) line::$1
|
||||
(byte) plot::x#1 ← (byte) line::l#2 + (byte/signed byte/word/signed word) 20
|
||||
call plot param-assignment
|
||||
to:line::@return
|
||||
line::@return: scope:[line] from line::@1
|
||||
@ -970,14 +962,12 @@ Not aliassing across scopes: line::l#0 main::i#2
|
||||
Not aliassing across scopes: line::l#1 main::j#2
|
||||
Not aliassing across scopes: line::l#2 line::l#0
|
||||
Not aliassing across scopes: plot::x#0 line::l#2
|
||||
Not aliassing across scopes: plot::x#1 line::$1
|
||||
Not aliassing across scopes: plot::x#2 plot::x#0
|
||||
Multiple usages for variable. Not optimizing sub-constant (byte) line::l#2
|
||||
Not aliassing across scopes: line::l#0 main::i#2
|
||||
Not aliassing across scopes: line::l#1 main::j#2
|
||||
Not aliassing across scopes: line::l#2 line::l#0
|
||||
Not aliassing across scopes: plot::x#0 line::l#2
|
||||
Not aliassing across scopes: plot::x#1 line::$1
|
||||
Not aliassing across scopes: plot::x#2 plot::x#0
|
||||
Multiple usages for variable. Not optimizing sub-constant (byte) line::l#2
|
||||
Inlining constant with var siblings (const byte) main::i#0
|
||||
@ -1019,8 +1009,7 @@ line: scope:[line] from main::@1 main::@2
|
||||
call plot param-assignment
|
||||
to:line::@1
|
||||
line::@1: scope:[line] from line
|
||||
(byte~) line::$1 ← (byte) line::l#2 + (byte/signed byte/word/signed word) 20
|
||||
(byte) plot::x#1 ← (byte~) line::$1
|
||||
(byte) plot::x#1 ← (byte) line::l#2 + (byte/signed byte/word/signed word) 20
|
||||
call plot param-assignment
|
||||
to:line::@return
|
||||
line::@return: scope:[line] from line::@1
|
||||
@ -1045,7 +1034,6 @@ FINAL SYMBOL TABLE
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 = ((byte*))(word/signed word) 1024
|
||||
(void()) line((byte) line::l)
|
||||
(byte~) line::$1
|
||||
(label) line::@1
|
||||
(label) line::@return
|
||||
(byte) line::l
|
||||
@ -1120,8 +1108,7 @@ line: scope:[line] from main::@1 main::@2
|
||||
call plot param-assignment
|
||||
to:line::@1
|
||||
line::@1: scope:[line] from line
|
||||
(byte~) line::$1 ← (byte) line::l#2 + (byte/signed byte/word/signed word) 20
|
||||
(byte) plot::x#1 ← (byte~) line::$1
|
||||
(byte) plot::x#1 ← (byte) line::l#2 + (byte/signed byte/word/signed word) 20
|
||||
(byte~) plot::x#4 ← (byte) plot::x#1
|
||||
call plot param-assignment
|
||||
to:line::@return
|
||||
@ -1143,7 +1130,7 @@ Adding NOP phi() at start of main
|
||||
CALL GRAPH
|
||||
Calls in [] to main:2
|
||||
Calls in [main] to line:8 line:14
|
||||
Calls in [line] to plot:23 plot:27
|
||||
Calls in [line] to plot:23 plot:26
|
||||
|
||||
Propagating live ranges...
|
||||
Propagating live ranges...
|
||||
@ -1198,20 +1185,19 @@ line: scope:[line] from main::@1 main::@2
|
||||
[23] call plot param-assignment [ line::l#2 ]
|
||||
to:line::@1
|
||||
line::@1: scope:[line] from line
|
||||
[24] (byte~) line::$1 ← (byte) line::l#2 + (byte/signed byte/word/signed word) 20 [ line::$1 ]
|
||||
[25] (byte) plot::x#1 ← (byte~) line::$1 [ plot::x#1 ]
|
||||
[26] (byte~) plot::x#4 ← (byte) plot::x#1 [ plot::x#4 ]
|
||||
[27] call plot param-assignment [ ]
|
||||
[24] (byte) plot::x#1 ← (byte) line::l#2 + (byte/signed byte/word/signed word) 20 [ plot::x#1 ]
|
||||
[25] (byte~) plot::x#4 ← (byte) plot::x#1 [ plot::x#4 ]
|
||||
[26] call plot param-assignment [ ]
|
||||
to:line::@return
|
||||
line::@return: scope:[line] from line::@1
|
||||
[28] return [ ]
|
||||
[27] return [ ]
|
||||
to:@return
|
||||
plot: scope:[plot] from line line::@1
|
||||
[29] (byte) plot::x#2 ← phi( line/(byte~) plot::x#3 line::@1/(byte~) plot::x#4 ) [ plot::x#2 ]
|
||||
[30] *((const byte*) SCREEN#0 + (byte) plot::x#2) ← (byte) '*' [ ]
|
||||
[28] (byte) plot::x#2 ← phi( line/(byte~) plot::x#3 line::@1/(byte~) plot::x#4 ) [ plot::x#2 ]
|
||||
[29] *((const byte*) SCREEN#0 + (byte) plot::x#2) ← (byte) '*' [ ]
|
||||
to:plot::@return
|
||||
plot::@return: scope:[plot] from plot
|
||||
[31] return [ ]
|
||||
[30] return [ ]
|
||||
to:@return
|
||||
|
||||
Created 4 initial phi equivalence classes
|
||||
@ -1220,7 +1206,7 @@ Coalesced [13] line::l#5 ← line::l#1
|
||||
Coalesced [18] main::j#4 ← main::j#1
|
||||
Coalesced [19] main::i#4 ← main::i#1
|
||||
Coalesced [22] plot::x#3 ← plot::x#0
|
||||
Coalesced [26] plot::x#4 ← plot::x#1
|
||||
Coalesced [25] plot::x#4 ← plot::x#1
|
||||
Coalesced down to 4 phi equivalence classes
|
||||
Culled Empty Block (label) main::@8
|
||||
Culled Empty Block (label) main::@7
|
||||
@ -1272,19 +1258,18 @@ line: scope:[line] from main::@1 main::@2
|
||||
[18] call plot param-assignment [ line::l#2 ]
|
||||
to:line::@1
|
||||
line::@1: scope:[line] from line
|
||||
[19] (byte~) line::$1 ← (byte) line::l#2 + (byte/signed byte/word/signed word) 20 [ line::$1 ]
|
||||
[20] (byte) plot::x#1 ← (byte~) line::$1 [ plot::x#1 ]
|
||||
[21] call plot param-assignment [ ]
|
||||
[19] (byte) plot::x#1 ← (byte) line::l#2 + (byte/signed byte/word/signed word) 20 [ plot::x#1 ]
|
||||
[20] call plot param-assignment [ ]
|
||||
to:line::@return
|
||||
line::@return: scope:[line] from line::@1
|
||||
[22] return [ ]
|
||||
[21] return [ ]
|
||||
to:@return
|
||||
plot: scope:[plot] from line line::@1
|
||||
[23] (byte) plot::x#2 ← phi( line/(byte) plot::x#0 line::@1/(byte) plot::x#1 ) [ plot::x#2 ]
|
||||
[24] *((const byte*) SCREEN#0 + (byte) plot::x#2) ← (byte) '*' [ ]
|
||||
[22] (byte) plot::x#2 ← phi( line/(byte) plot::x#0 line::@1/(byte) plot::x#1 ) [ plot::x#2 ]
|
||||
[23] *((const byte*) SCREEN#0 + (byte) plot::x#2) ← (byte) '*' [ ]
|
||||
to:plot::@return
|
||||
plot::@return: scope:[plot] from plot
|
||||
[25] return [ ]
|
||||
[24] return [ ]
|
||||
to:@return
|
||||
|
||||
CONTROL FLOW GRAPH - PHI MEM COALESCED
|
||||
@ -1327,19 +1312,18 @@ line: scope:[line] from main::@1 main::@2
|
||||
[18] call plot param-assignment [ line::l#2 ] ( main:2::line:7 [ main::i#2 line::l#2 ] main:2::line:12 [ main::j#2 line::l#2 ] )
|
||||
to:line::@1
|
||||
line::@1: scope:[line] from line
|
||||
[19] (byte~) line::$1 ← (byte) line::l#2 + (byte/signed byte/word/signed word) 20 [ line::$1 ] ( main:2::line:7 [ main::i#2 line::$1 ] main:2::line:12 [ main::j#2 line::$1 ] )
|
||||
[20] (byte) plot::x#1 ← (byte~) line::$1 [ plot::x#1 ] ( main:2::line:7 [ main::i#2 plot::x#1 ] main:2::line:12 [ main::j#2 plot::x#1 ] )
|
||||
[21] call plot param-assignment [ ] ( main:2::line:7 [ main::i#2 ] main:2::line:12 [ main::j#2 ] )
|
||||
[19] (byte) plot::x#1 ← (byte) line::l#2 + (byte/signed byte/word/signed word) 20 [ plot::x#1 ] ( main:2::line:7 [ main::i#2 plot::x#1 ] main:2::line:12 [ main::j#2 plot::x#1 ] )
|
||||
[20] call plot param-assignment [ ] ( main:2::line:7 [ main::i#2 ] main:2::line:12 [ main::j#2 ] )
|
||||
to:line::@return
|
||||
line::@return: scope:[line] from line::@1
|
||||
[22] return [ ] ( main:2::line:7 [ main::i#2 ] main:2::line:12 [ main::j#2 ] )
|
||||
[21] return [ ] ( main:2::line:7 [ main::i#2 ] main:2::line:12 [ main::j#2 ] )
|
||||
to:@return
|
||||
plot: scope:[plot] from line line::@1
|
||||
[23] (byte) plot::x#2 ← phi( line/(byte) plot::x#0 line::@1/(byte) plot::x#1 ) [ plot::x#2 ] ( main:2::line:7::plot:18 [ main::i#2 line::l#2 plot::x#2 ] main:2::line:12::plot:18 [ main::j#2 line::l#2 plot::x#2 ] main:2::line:7::plot:21 [ main::i#2 plot::x#2 ] main:2::line:12::plot:21 [ main::j#2 plot::x#2 ] )
|
||||
[24] *((const byte*) SCREEN#0 + (byte) plot::x#2) ← (byte) '*' [ ] ( main:2::line:7::plot:18 [ main::i#2 line::l#2 ] main:2::line:12::plot:18 [ main::j#2 line::l#2 ] main:2::line:7::plot:21 [ main::i#2 ] main:2::line:12::plot:21 [ main::j#2 ] )
|
||||
[22] (byte) plot::x#2 ← phi( line/(byte) plot::x#0 line::@1/(byte) plot::x#1 ) [ plot::x#2 ] ( main:2::line:7::plot:18 [ main::i#2 line::l#2 plot::x#2 ] main:2::line:12::plot:18 [ main::j#2 line::l#2 plot::x#2 ] main:2::line:7::plot:20 [ main::i#2 plot::x#2 ] main:2::line:12::plot:20 [ main::j#2 plot::x#2 ] )
|
||||
[23] *((const byte*) SCREEN#0 + (byte) plot::x#2) ← (byte) '*' [ ] ( main:2::line:7::plot:18 [ main::i#2 line::l#2 ] main:2::line:12::plot:18 [ main::j#2 line::l#2 ] main:2::line:7::plot:20 [ main::i#2 ] main:2::line:12::plot:20 [ main::j#2 ] )
|
||||
to:plot::@return
|
||||
plot::@return: scope:[plot] from plot
|
||||
[25] return [ ] ( main:2::line:7::plot:18 [ main::i#2 line::l#2 ] main:2::line:12::plot:18 [ main::j#2 line::l#2 ] main:2::line:7::plot:21 [ main::i#2 ] main:2::line:12::plot:21 [ main::j#2 ] )
|
||||
[24] return [ ] ( main:2::line:7::plot:18 [ main::i#2 line::l#2 ] main:2::line:12::plot:18 [ main::j#2 line::l#2 ] main:2::line:7::plot:20 [ main::i#2 ] main:2::line:12::plot:20 [ main::j#2 ] )
|
||||
to:@return
|
||||
|
||||
DOMINATORS
|
||||
@ -1380,7 +1364,6 @@ Loop head: main::@2 tails: main::@6 blocks: main::@6 main::@2 depth: 1
|
||||
VARIABLE REGISTER WEIGHTS
|
||||
(byte*) SCREEN
|
||||
(void()) line((byte) line::l)
|
||||
(byte~) line::$1 4.0
|
||||
(byte) line::l
|
||||
(byte) line::l#0 22.0
|
||||
(byte) line::l#1 22.0
|
||||
@ -1403,18 +1386,15 @@ Initial phi equivalence classes
|
||||
[ main::j#2 main::j#1 ]
|
||||
[ line::l#2 line::l#0 line::l#1 ]
|
||||
[ plot::x#2 plot::x#0 plot::x#1 ]
|
||||
Added variable line::$1 to zero page equivalence class [ line::$1 ]
|
||||
Complete equivalence classes
|
||||
[ main::i#2 main::i#1 ]
|
||||
[ main::j#2 main::j#1 ]
|
||||
[ line::l#2 line::l#0 line::l#1 ]
|
||||
[ plot::x#2 plot::x#0 plot::x#1 ]
|
||||
[ line::$1 ]
|
||||
Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
|
||||
Allocated zp ZP_BYTE:3 [ main::j#2 main::j#1 ]
|
||||
Allocated zp ZP_BYTE:4 [ line::l#2 line::l#0 line::l#1 ]
|
||||
Allocated zp ZP_BYTE:5 [ plot::x#2 plot::x#0 plot::x#1 ]
|
||||
Allocated zp ZP_BYTE:6 [ line::$1 ]
|
||||
INITIAL ASM
|
||||
//SEG0 Basic Upstart
|
||||
.pc = $801 "Basic"
|
||||
@ -1508,74 +1488,69 @@ main: {
|
||||
}
|
||||
//SEG36 line
|
||||
line: {
|
||||
.label _1 = 6
|
||||
.label l = 4
|
||||
//SEG37 [17] (byte) plot::x#0 ← (byte) line::l#2 [ line::l#2 plot::x#0 ] ( main:2::line:7 [ main::i#2 line::l#2 plot::x#0 ] main:2::line:12 [ main::j#2 line::l#2 plot::x#0 ] ) -- vbuz1=vbuz2
|
||||
lda l
|
||||
sta plot.x
|
||||
//SEG38 [18] call plot param-assignment [ line::l#2 ] ( main:2::line:7 [ main::i#2 line::l#2 ] main:2::line:12 [ main::j#2 line::l#2 ] )
|
||||
//SEG39 [23] phi from line to plot [phi:line->plot]
|
||||
//SEG39 [22] phi from line to plot [phi:line->plot]
|
||||
plot_from_line:
|
||||
//SEG40 [23] phi (byte) plot::x#2 = (byte) plot::x#0 [phi:line->plot#0] -- register_copy
|
||||
//SEG40 [22] phi (byte) plot::x#2 = (byte) plot::x#0 [phi:line->plot#0] -- register_copy
|
||||
jsr plot
|
||||
jmp b1
|
||||
//SEG41 line::@1
|
||||
b1:
|
||||
//SEG42 [19] (byte~) line::$1 ← (byte) line::l#2 + (byte/signed byte/word/signed word) 20 [ line::$1 ] ( main:2::line:7 [ main::i#2 line::$1 ] main:2::line:12 [ main::j#2 line::$1 ] ) -- vbuz1=vbuz2_plus_vbuc1
|
||||
//SEG42 [19] (byte) plot::x#1 ← (byte) line::l#2 + (byte/signed byte/word/signed word) 20 [ plot::x#1 ] ( main:2::line:7 [ main::i#2 plot::x#1 ] main:2::line:12 [ main::j#2 plot::x#1 ] ) -- vbuz1=vbuz2_plus_vbuc1
|
||||
lda l
|
||||
clc
|
||||
adc #$14
|
||||
sta _1
|
||||
//SEG43 [20] (byte) plot::x#1 ← (byte~) line::$1 [ plot::x#1 ] ( main:2::line:7 [ main::i#2 plot::x#1 ] main:2::line:12 [ main::j#2 plot::x#1 ] ) -- vbuz1=vbuz2
|
||||
lda _1
|
||||
sta plot.x
|
||||
//SEG44 [21] call plot param-assignment [ ] ( main:2::line:7 [ main::i#2 ] main:2::line:12 [ main::j#2 ] )
|
||||
//SEG45 [23] phi from line::@1 to plot [phi:line::@1->plot]
|
||||
//SEG43 [20] call plot param-assignment [ ] ( main:2::line:7 [ main::i#2 ] main:2::line:12 [ main::j#2 ] )
|
||||
//SEG44 [22] phi from line::@1 to plot [phi:line::@1->plot]
|
||||
plot_from_b1:
|
||||
//SEG46 [23] phi (byte) plot::x#2 = (byte) plot::x#1 [phi:line::@1->plot#0] -- register_copy
|
||||
//SEG45 [22] phi (byte) plot::x#2 = (byte) plot::x#1 [phi:line::@1->plot#0] -- register_copy
|
||||
jsr plot
|
||||
jmp breturn
|
||||
//SEG47 line::@return
|
||||
//SEG46 line::@return
|
||||
breturn:
|
||||
//SEG48 [22] return [ ] ( main:2::line:7 [ main::i#2 ] main:2::line:12 [ main::j#2 ] )
|
||||
//SEG47 [21] return [ ] ( main:2::line:7 [ main::i#2 ] main:2::line:12 [ main::j#2 ] )
|
||||
rts
|
||||
}
|
||||
//SEG49 plot
|
||||
//SEG48 plot
|
||||
plot: {
|
||||
.label x = 5
|
||||
//SEG50 [24] *((const byte*) SCREEN#0 + (byte) plot::x#2) ← (byte) '*' [ ] ( main:2::line:7::plot:18 [ main::i#2 line::l#2 ] main:2::line:12::plot:18 [ main::j#2 line::l#2 ] main:2::line:7::plot:21 [ main::i#2 ] main:2::line:12::plot:21 [ main::j#2 ] ) -- vwuc1_derefidx_vbuz1=vbuc2
|
||||
//SEG49 [23] *((const byte*) SCREEN#0 + (byte) plot::x#2) ← (byte) '*' [ ] ( main:2::line:7::plot:18 [ main::i#2 line::l#2 ] main:2::line:12::plot:18 [ main::j#2 line::l#2 ] main:2::line:7::plot:20 [ main::i#2 ] main:2::line:12::plot:20 [ main::j#2 ] ) -- vwuc1_derefidx_vbuz1=vbuc2
|
||||
lda #'*'
|
||||
ldx x
|
||||
sta SCREEN,x
|
||||
jmp breturn
|
||||
//SEG51 plot::@return
|
||||
//SEG50 plot::@return
|
||||
breturn:
|
||||
//SEG52 [25] return [ ] ( main:2::line:7::plot:18 [ main::i#2 line::l#2 ] main:2::line:12::plot:18 [ main::j#2 line::l#2 ] main:2::line:7::plot:21 [ main::i#2 ] main:2::line:12::plot:21 [ main::j#2 ] )
|
||||
//SEG51 [24] return [ ] ( main:2::line:7::plot:18 [ main::i#2 line::l#2 ] main:2::line:12::plot:18 [ main::j#2 line::l#2 ] main:2::line:7::plot:20 [ main::i#2 ] main:2::line:12::plot:20 [ main::j#2 ] )
|
||||
rts
|
||||
}
|
||||
|
||||
REGISTER UPLIFT POTENTIAL REGISTERS
|
||||
Statement [19] (byte~) line::$1 ← (byte) line::l#2 + (byte/signed byte/word/signed word) 20 [ line::$1 ] ( main:2::line:7 [ main::i#2 line::$1 ] main:2::line:12 [ main::j#2 line::$1 ] ) always clobbers reg byte a
|
||||
Statement [19] (byte) plot::x#1 ← (byte) line::l#2 + (byte/signed byte/word/signed word) 20 [ plot::x#1 ] ( main:2::line:7 [ main::i#2 plot::x#1 ] main:2::line:12 [ main::j#2 plot::x#1 ] ) always clobbers reg byte a
|
||||
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
|
||||
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:3 [ main::j#2 main::j#1 ]
|
||||
Statement [24] *((const byte*) SCREEN#0 + (byte) plot::x#2) ← (byte) '*' [ ] ( main:2::line:7::plot:18 [ main::i#2 line::l#2 ] main:2::line:12::plot:18 [ main::j#2 line::l#2 ] main:2::line:7::plot:21 [ main::i#2 ] main:2::line:12::plot:21 [ main::j#2 ] ) always clobbers reg byte a
|
||||
Statement [23] *((const byte*) SCREEN#0 + (byte) plot::x#2) ← (byte) '*' [ ] ( main:2::line:7::plot:18 [ main::i#2 line::l#2 ] main:2::line:12::plot:18 [ main::j#2 line::l#2 ] main:2::line:7::plot:20 [ main::i#2 ] main:2::line:12::plot:20 [ main::j#2 ] ) always clobbers reg byte a
|
||||
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:4 [ line::l#2 line::l#0 line::l#1 ]
|
||||
Statement [19] (byte~) line::$1 ← (byte) line::l#2 + (byte/signed byte/word/signed word) 20 [ line::$1 ] ( main:2::line:7 [ main::i#2 line::$1 ] main:2::line:12 [ main::j#2 line::$1 ] ) always clobbers reg byte a
|
||||
Statement [24] *((const byte*) SCREEN#0 + (byte) plot::x#2) ← (byte) '*' [ ] ( main:2::line:7::plot:18 [ main::i#2 line::l#2 ] main:2::line:12::plot:18 [ main::j#2 line::l#2 ] main:2::line:7::plot:21 [ main::i#2 ] main:2::line:12::plot:21 [ main::j#2 ] ) always clobbers reg byte a
|
||||
Statement [19] (byte) plot::x#1 ← (byte) line::l#2 + (byte/signed byte/word/signed word) 20 [ plot::x#1 ] ( main:2::line:7 [ main::i#2 plot::x#1 ] main:2::line:12 [ main::j#2 plot::x#1 ] ) always clobbers reg byte a
|
||||
Statement [23] *((const byte*) SCREEN#0 + (byte) plot::x#2) ← (byte) '*' [ ] ( main:2::line:7::plot:18 [ main::i#2 line::l#2 ] main:2::line:12::plot:18 [ main::j#2 line::l#2 ] main:2::line:7::plot:20 [ main::i#2 ] main:2::line:12::plot:20 [ main::j#2 ] ) always clobbers reg byte a
|
||||
Potential registers zp ZP_BYTE:2 [ main::i#2 main::i#1 ] : zp ZP_BYTE:2 , reg byte x , reg byte y ,
|
||||
Potential registers zp ZP_BYTE:3 [ main::j#2 main::j#1 ] : zp ZP_BYTE:3 , reg byte x , reg byte y ,
|
||||
Potential registers zp ZP_BYTE:4 [ line::l#2 line::l#0 line::l#1 ] : zp ZP_BYTE:4 , reg byte x , reg byte y ,
|
||||
Potential registers zp ZP_BYTE:5 [ plot::x#2 plot::x#0 plot::x#1 ] : zp ZP_BYTE:5 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp ZP_BYTE:6 [ line::$1 ] : zp ZP_BYTE:6 , reg byte a , reg byte x , reg byte y ,
|
||||
|
||||
REGISTER UPLIFT SCOPES
|
||||
Uplift Scope [line] 52.67: zp ZP_BYTE:4 [ line::l#2 line::l#0 line::l#1 ] 4: zp ZP_BYTE:6 [ line::$1 ]
|
||||
Uplift Scope [main] 27.5: zp ZP_BYTE:2 [ main::i#2 main::i#1 ] 27.5: zp ZP_BYTE:3 [ main::j#2 main::j#1 ]
|
||||
Uplift Scope [line] 52.67: zp ZP_BYTE:4 [ line::l#2 line::l#0 line::l#1 ]
|
||||
Uplift Scope [plot] 14: zp ZP_BYTE:5 [ plot::x#2 plot::x#0 plot::x#1 ]
|
||||
Uplift Scope []
|
||||
|
||||
Uplifting [line] best 651 combination reg byte y [ line::l#2 line::l#0 line::l#1 ] reg byte a [ line::$1 ]
|
||||
Uplifting [main] best 411 combination reg byte y [ main::i#2 main::i#1 ] reg byte y [ main::j#2 main::j#1 ]
|
||||
Uplifting [main] best 475 combination reg byte y [ main::i#2 main::i#1 ] reg byte y [ main::j#2 main::j#1 ]
|
||||
Uplifting [line] best 411 combination reg byte y [ line::l#2 line::l#0 line::l#1 ]
|
||||
Uplifting [plot] best 406 combination reg byte a [ plot::x#2 plot::x#0 plot::x#1 ]
|
||||
Uplifting [] best 406 combination
|
||||
Removing instruction jmp b3
|
||||
@ -1670,37 +1645,35 @@ line: {
|
||||
//SEG37 [17] (byte) plot::x#0 ← (byte) line::l#2 [ line::l#2 plot::x#0 ] ( main:2::line:7 [ main::i#2 line::l#2 plot::x#0 ] main:2::line:12 [ main::j#2 line::l#2 plot::x#0 ] ) -- vbuaa=vbuyy
|
||||
tya
|
||||
//SEG38 [18] call plot param-assignment [ line::l#2 ] ( main:2::line:7 [ main::i#2 line::l#2 ] main:2::line:12 [ main::j#2 line::l#2 ] )
|
||||
//SEG39 [23] phi from line to plot [phi:line->plot]
|
||||
//SEG39 [22] phi from line to plot [phi:line->plot]
|
||||
plot_from_line:
|
||||
//SEG40 [23] phi (byte) plot::x#2 = (byte) plot::x#0 [phi:line->plot#0] -- register_copy
|
||||
//SEG40 [22] phi (byte) plot::x#2 = (byte) plot::x#0 [phi:line->plot#0] -- register_copy
|
||||
jsr plot
|
||||
//SEG41 line::@1
|
||||
b1:
|
||||
//SEG42 [19] (byte~) line::$1 ← (byte) line::l#2 + (byte/signed byte/word/signed word) 20 [ line::$1 ] ( main:2::line:7 [ main::i#2 line::$1 ] main:2::line:12 [ main::j#2 line::$1 ] ) -- vbuaa=vbuyy_plus_vbuc1
|
||||
//SEG42 [19] (byte) plot::x#1 ← (byte) line::l#2 + (byte/signed byte/word/signed word) 20 [ plot::x#1 ] ( main:2::line:7 [ main::i#2 plot::x#1 ] main:2::line:12 [ main::j#2 plot::x#1 ] ) -- vbuaa=vbuyy_plus_vbuc1
|
||||
tya
|
||||
clc
|
||||
adc #$14
|
||||
//SEG43 [20] (byte) plot::x#1 ← (byte~) line::$1 [ plot::x#1 ] ( main:2::line:7 [ main::i#2 plot::x#1 ] main:2::line:12 [ main::j#2 plot::x#1 ] )
|
||||
// (byte) plot::x#1 = (byte~) line::$1 // register copy reg byte a
|
||||
//SEG44 [21] call plot param-assignment [ ] ( main:2::line:7 [ main::i#2 ] main:2::line:12 [ main::j#2 ] )
|
||||
//SEG45 [23] phi from line::@1 to plot [phi:line::@1->plot]
|
||||
//SEG43 [20] call plot param-assignment [ ] ( main:2::line:7 [ main::i#2 ] main:2::line:12 [ main::j#2 ] )
|
||||
//SEG44 [22] phi from line::@1 to plot [phi:line::@1->plot]
|
||||
plot_from_b1:
|
||||
//SEG46 [23] phi (byte) plot::x#2 = (byte) plot::x#1 [phi:line::@1->plot#0] -- register_copy
|
||||
//SEG45 [22] phi (byte) plot::x#2 = (byte) plot::x#1 [phi:line::@1->plot#0] -- register_copy
|
||||
jsr plot
|
||||
//SEG47 line::@return
|
||||
//SEG46 line::@return
|
||||
breturn:
|
||||
//SEG48 [22] return [ ] ( main:2::line:7 [ main::i#2 ] main:2::line:12 [ main::j#2 ] )
|
||||
//SEG47 [21] return [ ] ( main:2::line:7 [ main::i#2 ] main:2::line:12 [ main::j#2 ] )
|
||||
rts
|
||||
}
|
||||
//SEG49 plot
|
||||
//SEG48 plot
|
||||
plot: {
|
||||
//SEG50 [24] *((const byte*) SCREEN#0 + (byte) plot::x#2) ← (byte) '*' [ ] ( main:2::line:7::plot:18 [ main::i#2 line::l#2 ] main:2::line:12::plot:18 [ main::j#2 line::l#2 ] main:2::line:7::plot:21 [ main::i#2 ] main:2::line:12::plot:21 [ main::j#2 ] ) -- vwuc1_derefidx_vbuaa=vbuc2
|
||||
//SEG49 [23] *((const byte*) SCREEN#0 + (byte) plot::x#2) ← (byte) '*' [ ] ( main:2::line:7::plot:18 [ main::i#2 line::l#2 ] main:2::line:12::plot:18 [ main::j#2 line::l#2 ] main:2::line:7::plot:20 [ main::i#2 ] main:2::line:12::plot:20 [ main::j#2 ] ) -- vwuc1_derefidx_vbuaa=vbuc2
|
||||
tax
|
||||
lda #'*'
|
||||
sta SCREEN,x
|
||||
//SEG51 plot::@return
|
||||
//SEG50 plot::@return
|
||||
breturn:
|
||||
//SEG52 [25] return [ ] ( main:2::line:7::plot:18 [ main::i#2 line::l#2 ] main:2::line:12::plot:18 [ main::j#2 line::l#2 ] main:2::line:7::plot:21 [ main::i#2 ] main:2::line:12::plot:21 [ main::j#2 ] )
|
||||
//SEG51 [24] return [ ] ( main:2::line:7::plot:18 [ main::i#2 line::l#2 ] main:2::line:12::plot:18 [ main::j#2 line::l#2 ] main:2::line:7::plot:20 [ main::i#2 ] main:2::line:12::plot:20 [ main::j#2 ] )
|
||||
rts
|
||||
}
|
||||
|
||||
@ -1788,37 +1761,35 @@ line: {
|
||||
//SEG37 [17] (byte) plot::x#0 ← (byte) line::l#2 [ line::l#2 plot::x#0 ] ( main:2::line:7 [ main::i#2 line::l#2 plot::x#0 ] main:2::line:12 [ main::j#2 line::l#2 plot::x#0 ] ) -- vbuaa=vbuyy
|
||||
tya
|
||||
//SEG38 [18] call plot param-assignment [ line::l#2 ] ( main:2::line:7 [ main::i#2 line::l#2 ] main:2::line:12 [ main::j#2 line::l#2 ] )
|
||||
//SEG39 [23] phi from line to plot [phi:line->plot]
|
||||
//SEG39 [22] phi from line to plot [phi:line->plot]
|
||||
plot_from_line:
|
||||
//SEG40 [23] phi (byte) plot::x#2 = (byte) plot::x#0 [phi:line->plot#0] -- register_copy
|
||||
//SEG40 [22] phi (byte) plot::x#2 = (byte) plot::x#0 [phi:line->plot#0] -- register_copy
|
||||
jsr plot
|
||||
//SEG41 line::@1
|
||||
b1:
|
||||
//SEG42 [19] (byte~) line::$1 ← (byte) line::l#2 + (byte/signed byte/word/signed word) 20 [ line::$1 ] ( main:2::line:7 [ main::i#2 line::$1 ] main:2::line:12 [ main::j#2 line::$1 ] ) -- vbuaa=vbuyy_plus_vbuc1
|
||||
//SEG42 [19] (byte) plot::x#1 ← (byte) line::l#2 + (byte/signed byte/word/signed word) 20 [ plot::x#1 ] ( main:2::line:7 [ main::i#2 plot::x#1 ] main:2::line:12 [ main::j#2 plot::x#1 ] ) -- vbuaa=vbuyy_plus_vbuc1
|
||||
tya
|
||||
clc
|
||||
adc #$14
|
||||
//SEG43 [20] (byte) plot::x#1 ← (byte~) line::$1 [ plot::x#1 ] ( main:2::line:7 [ main::i#2 plot::x#1 ] main:2::line:12 [ main::j#2 plot::x#1 ] )
|
||||
// (byte) plot::x#1 = (byte~) line::$1 // register copy reg byte a
|
||||
//SEG44 [21] call plot param-assignment [ ] ( main:2::line:7 [ main::i#2 ] main:2::line:12 [ main::j#2 ] )
|
||||
//SEG45 [23] phi from line::@1 to plot [phi:line::@1->plot]
|
||||
//SEG43 [20] call plot param-assignment [ ] ( main:2::line:7 [ main::i#2 ] main:2::line:12 [ main::j#2 ] )
|
||||
//SEG44 [22] phi from line::@1 to plot [phi:line::@1->plot]
|
||||
plot_from_b1:
|
||||
//SEG46 [23] phi (byte) plot::x#2 = (byte) plot::x#1 [phi:line::@1->plot#0] -- register_copy
|
||||
//SEG45 [22] phi (byte) plot::x#2 = (byte) plot::x#1 [phi:line::@1->plot#0] -- register_copy
|
||||
jsr plot
|
||||
//SEG47 line::@return
|
||||
//SEG46 line::@return
|
||||
breturn:
|
||||
//SEG48 [22] return [ ] ( main:2::line:7 [ main::i#2 ] main:2::line:12 [ main::j#2 ] )
|
||||
//SEG47 [21] return [ ] ( main:2::line:7 [ main::i#2 ] main:2::line:12 [ main::j#2 ] )
|
||||
rts
|
||||
}
|
||||
//SEG49 plot
|
||||
//SEG48 plot
|
||||
plot: {
|
||||
//SEG50 [24] *((const byte*) SCREEN#0 + (byte) plot::x#2) ← (byte) '*' [ ] ( main:2::line:7::plot:18 [ main::i#2 line::l#2 ] main:2::line:12::plot:18 [ main::j#2 line::l#2 ] main:2::line:7::plot:21 [ main::i#2 ] main:2::line:12::plot:21 [ main::j#2 ] ) -- vwuc1_derefidx_vbuaa=vbuc2
|
||||
//SEG49 [23] *((const byte*) SCREEN#0 + (byte) plot::x#2) ← (byte) '*' [ ] ( main:2::line:7::plot:18 [ main::i#2 line::l#2 ] main:2::line:12::plot:18 [ main::j#2 line::l#2 ] main:2::line:7::plot:20 [ main::i#2 ] main:2::line:12::plot:20 [ main::j#2 ] ) -- vwuc1_derefidx_vbuaa=vbuc2
|
||||
tax
|
||||
lda #'*'
|
||||
sta SCREEN,x
|
||||
//SEG51 plot::@return
|
||||
//SEG50 plot::@return
|
||||
breturn:
|
||||
//SEG52 [25] return [ ] ( main:2::line:7::plot:18 [ main::i#2 line::l#2 ] main:2::line:12::plot:18 [ main::j#2 line::l#2 ] main:2::line:7::plot:21 [ main::i#2 ] main:2::line:12::plot:21 [ main::j#2 ] )
|
||||
//SEG51 [24] return [ ] ( main:2::line:7::plot:18 [ main::i#2 line::l#2 ] main:2::line:12::plot:18 [ main::j#2 line::l#2 ] main:2::line:7::plot:20 [ main::i#2 ] main:2::line:12::plot:20 [ main::j#2 ] )
|
||||
rts
|
||||
}
|
||||
|
||||
@ -1903,32 +1874,30 @@ line: {
|
||||
//SEG37 [17] (byte) plot::x#0 ← (byte) line::l#2 [ line::l#2 plot::x#0 ] ( main:2::line:7 [ main::i#2 line::l#2 plot::x#0 ] main:2::line:12 [ main::j#2 line::l#2 plot::x#0 ] ) -- vbuaa=vbuyy
|
||||
tya
|
||||
//SEG38 [18] call plot param-assignment [ line::l#2 ] ( main:2::line:7 [ main::i#2 line::l#2 ] main:2::line:12 [ main::j#2 line::l#2 ] )
|
||||
//SEG39 [23] phi from line to plot [phi:line->plot]
|
||||
//SEG40 [23] phi (byte) plot::x#2 = (byte) plot::x#0 [phi:line->plot#0] -- register_copy
|
||||
//SEG39 [22] phi from line to plot [phi:line->plot]
|
||||
//SEG40 [22] phi (byte) plot::x#2 = (byte) plot::x#0 [phi:line->plot#0] -- register_copy
|
||||
jsr plot
|
||||
//SEG41 line::@1
|
||||
//SEG42 [19] (byte~) line::$1 ← (byte) line::l#2 + (byte/signed byte/word/signed word) 20 [ line::$1 ] ( main:2::line:7 [ main::i#2 line::$1 ] main:2::line:12 [ main::j#2 line::$1 ] ) -- vbuaa=vbuyy_plus_vbuc1
|
||||
//SEG42 [19] (byte) plot::x#1 ← (byte) line::l#2 + (byte/signed byte/word/signed word) 20 [ plot::x#1 ] ( main:2::line:7 [ main::i#2 plot::x#1 ] main:2::line:12 [ main::j#2 plot::x#1 ] ) -- vbuaa=vbuyy_plus_vbuc1
|
||||
tya
|
||||
clc
|
||||
adc #$14
|
||||
//SEG43 [20] (byte) plot::x#1 ← (byte~) line::$1 [ plot::x#1 ] ( main:2::line:7 [ main::i#2 plot::x#1 ] main:2::line:12 [ main::j#2 plot::x#1 ] )
|
||||
// (byte) plot::x#1 = (byte~) line::$1 // register copy reg byte a
|
||||
//SEG44 [21] call plot param-assignment [ ] ( main:2::line:7 [ main::i#2 ] main:2::line:12 [ main::j#2 ] )
|
||||
//SEG45 [23] phi from line::@1 to plot [phi:line::@1->plot]
|
||||
//SEG46 [23] phi (byte) plot::x#2 = (byte) plot::x#1 [phi:line::@1->plot#0] -- register_copy
|
||||
//SEG43 [20] call plot param-assignment [ ] ( main:2::line:7 [ main::i#2 ] main:2::line:12 [ main::j#2 ] )
|
||||
//SEG44 [22] phi from line::@1 to plot [phi:line::@1->plot]
|
||||
//SEG45 [22] phi (byte) plot::x#2 = (byte) plot::x#1 [phi:line::@1->plot#0] -- register_copy
|
||||
jsr plot
|
||||
//SEG47 line::@return
|
||||
//SEG48 [22] return [ ] ( main:2::line:7 [ main::i#2 ] main:2::line:12 [ main::j#2 ] )
|
||||
//SEG46 line::@return
|
||||
//SEG47 [21] return [ ] ( main:2::line:7 [ main::i#2 ] main:2::line:12 [ main::j#2 ] )
|
||||
rts
|
||||
}
|
||||
//SEG49 plot
|
||||
//SEG48 plot
|
||||
plot: {
|
||||
//SEG50 [24] *((const byte*) SCREEN#0 + (byte) plot::x#2) ← (byte) '*' [ ] ( main:2::line:7::plot:18 [ main::i#2 line::l#2 ] main:2::line:12::plot:18 [ main::j#2 line::l#2 ] main:2::line:7::plot:21 [ main::i#2 ] main:2::line:12::plot:21 [ main::j#2 ] ) -- vwuc1_derefidx_vbuaa=vbuc2
|
||||
//SEG49 [23] *((const byte*) SCREEN#0 + (byte) plot::x#2) ← (byte) '*' [ ] ( main:2::line:7::plot:18 [ main::i#2 line::l#2 ] main:2::line:12::plot:18 [ main::j#2 line::l#2 ] main:2::line:7::plot:20 [ main::i#2 ] main:2::line:12::plot:20 [ main::j#2 ] ) -- vwuc1_derefidx_vbuaa=vbuc2
|
||||
tax
|
||||
lda #'*'
|
||||
sta SCREEN,x
|
||||
//SEG51 plot::@return
|
||||
//SEG52 [25] return [ ] ( main:2::line:7::plot:18 [ main::i#2 line::l#2 ] main:2::line:12::plot:18 [ main::j#2 line::l#2 ] main:2::line:7::plot:21 [ main::i#2 ] main:2::line:12::plot:21 [ main::j#2 ] )
|
||||
//SEG50 plot::@return
|
||||
//SEG51 [24] return [ ] ( main:2::line:7::plot:18 [ main::i#2 line::l#2 ] main:2::line:12::plot:18 [ main::j#2 line::l#2 ] main:2::line:7::plot:20 [ main::i#2 ] main:2::line:12::plot:20 [ main::j#2 ] )
|
||||
rts
|
||||
}
|
||||
|
||||
@ -1999,32 +1968,30 @@ line: {
|
||||
//SEG37 [17] (byte) plot::x#0 ← (byte) line::l#2 [ line::l#2 plot::x#0 ] ( main:2::line:7 [ main::i#2 line::l#2 plot::x#0 ] main:2::line:12 [ main::j#2 line::l#2 plot::x#0 ] ) -- vbuaa=vbuyy
|
||||
tya
|
||||
//SEG38 [18] call plot param-assignment [ line::l#2 ] ( main:2::line:7 [ main::i#2 line::l#2 ] main:2::line:12 [ main::j#2 line::l#2 ] )
|
||||
//SEG39 [23] phi from line to plot [phi:line->plot]
|
||||
//SEG40 [23] phi (byte) plot::x#2 = (byte) plot::x#0 [phi:line->plot#0] -- register_copy
|
||||
//SEG39 [22] phi from line to plot [phi:line->plot]
|
||||
//SEG40 [22] phi (byte) plot::x#2 = (byte) plot::x#0 [phi:line->plot#0] -- register_copy
|
||||
jsr plot
|
||||
//SEG41 line::@1
|
||||
//SEG42 [19] (byte~) line::$1 ← (byte) line::l#2 + (byte/signed byte/word/signed word) 20 [ line::$1 ] ( main:2::line:7 [ main::i#2 line::$1 ] main:2::line:12 [ main::j#2 line::$1 ] ) -- vbuaa=vbuyy_plus_vbuc1
|
||||
//SEG42 [19] (byte) plot::x#1 ← (byte) line::l#2 + (byte/signed byte/word/signed word) 20 [ plot::x#1 ] ( main:2::line:7 [ main::i#2 plot::x#1 ] main:2::line:12 [ main::j#2 plot::x#1 ] ) -- vbuaa=vbuyy_plus_vbuc1
|
||||
tya
|
||||
clc
|
||||
adc #$14
|
||||
//SEG43 [20] (byte) plot::x#1 ← (byte~) line::$1 [ plot::x#1 ] ( main:2::line:7 [ main::i#2 plot::x#1 ] main:2::line:12 [ main::j#2 plot::x#1 ] )
|
||||
// (byte) plot::x#1 = (byte~) line::$1 // register copy reg byte a
|
||||
//SEG44 [21] call plot param-assignment [ ] ( main:2::line:7 [ main::i#2 ] main:2::line:12 [ main::j#2 ] )
|
||||
//SEG45 [23] phi from line::@1 to plot [phi:line::@1->plot]
|
||||
//SEG46 [23] phi (byte) plot::x#2 = (byte) plot::x#1 [phi:line::@1->plot#0] -- register_copy
|
||||
//SEG43 [20] call plot param-assignment [ ] ( main:2::line:7 [ main::i#2 ] main:2::line:12 [ main::j#2 ] )
|
||||
//SEG44 [22] phi from line::@1 to plot [phi:line::@1->plot]
|
||||
//SEG45 [22] phi (byte) plot::x#2 = (byte) plot::x#1 [phi:line::@1->plot#0] -- register_copy
|
||||
jsr plot
|
||||
//SEG47 line::@return
|
||||
//SEG48 [22] return [ ] ( main:2::line:7 [ main::i#2 ] main:2::line:12 [ main::j#2 ] )
|
||||
//SEG46 line::@return
|
||||
//SEG47 [21] return [ ] ( main:2::line:7 [ main::i#2 ] main:2::line:12 [ main::j#2 ] )
|
||||
rts
|
||||
}
|
||||
//SEG49 plot
|
||||
//SEG48 plot
|
||||
plot: {
|
||||
//SEG50 [24] *((const byte*) SCREEN#0 + (byte) plot::x#2) ← (byte) '*' [ ] ( main:2::line:7::plot:18 [ main::i#2 line::l#2 ] main:2::line:12::plot:18 [ main::j#2 line::l#2 ] main:2::line:7::plot:21 [ main::i#2 ] main:2::line:12::plot:21 [ main::j#2 ] ) -- vwuc1_derefidx_vbuaa=vbuc2
|
||||
//SEG49 [23] *((const byte*) SCREEN#0 + (byte) plot::x#2) ← (byte) '*' [ ] ( main:2::line:7::plot:18 [ main::i#2 line::l#2 ] main:2::line:12::plot:18 [ main::j#2 line::l#2 ] main:2::line:7::plot:20 [ main::i#2 ] main:2::line:12::plot:20 [ main::j#2 ] ) -- vwuc1_derefidx_vbuaa=vbuc2
|
||||
tax
|
||||
lda #'*'
|
||||
sta SCREEN,x
|
||||
//SEG51 plot::@return
|
||||
//SEG52 [25] return [ ] ( main:2::line:7::plot:18 [ main::i#2 line::l#2 ] main:2::line:12::plot:18 [ main::j#2 line::l#2 ] main:2::line:7::plot:21 [ main::i#2 ] main:2::line:12::plot:21 [ main::j#2 ] )
|
||||
//SEG50 plot::@return
|
||||
//SEG51 [24] return [ ] ( main:2::line:7::plot:18 [ main::i#2 line::l#2 ] main:2::line:12::plot:18 [ main::j#2 line::l#2 ] main:2::line:7::plot:20 [ main::i#2 ] main:2::line:12::plot:20 [ main::j#2 ] )
|
||||
rts
|
||||
}
|
||||
|
||||
@ -2035,7 +2002,6 @@ FINAL SYMBOL TABLE
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(void()) line((byte) line::l)
|
||||
(byte~) line::$1 reg byte a 4.0
|
||||
(label) line::@1
|
||||
(label) line::@return
|
||||
(byte) line::l
|
||||
@ -2065,7 +2031,6 @@ reg byte y [ main::i#2 main::i#1 ]
|
||||
reg byte y [ main::j#2 main::j#1 ]
|
||||
reg byte y [ line::l#2 line::l#0 line::l#1 ]
|
||||
reg byte a [ plot::x#2 plot::x#0 plot::x#1 ]
|
||||
reg byte a [ line::$1 ]
|
||||
|
||||
FINAL CODE
|
||||
//SEG0 Basic Upstart
|
||||
@ -2131,32 +2096,30 @@ line: {
|
||||
//SEG37 [17] (byte) plot::x#0 ← (byte) line::l#2 [ line::l#2 plot::x#0 ] ( main:2::line:7 [ main::i#2 line::l#2 plot::x#0 ] main:2::line:12 [ main::j#2 line::l#2 plot::x#0 ] ) -- vbuaa=vbuyy
|
||||
tya
|
||||
//SEG38 [18] call plot param-assignment [ line::l#2 ] ( main:2::line:7 [ main::i#2 line::l#2 ] main:2::line:12 [ main::j#2 line::l#2 ] )
|
||||
//SEG39 [23] phi from line to plot [phi:line->plot]
|
||||
//SEG40 [23] phi (byte) plot::x#2 = (byte) plot::x#0 [phi:line->plot#0] -- register_copy
|
||||
//SEG39 [22] phi from line to plot [phi:line->plot]
|
||||
//SEG40 [22] phi (byte) plot::x#2 = (byte) plot::x#0 [phi:line->plot#0] -- register_copy
|
||||
jsr plot
|
||||
//SEG41 line::@1
|
||||
//SEG42 [19] (byte~) line::$1 ← (byte) line::l#2 + (byte/signed byte/word/signed word) 20 [ line::$1 ] ( main:2::line:7 [ main::i#2 line::$1 ] main:2::line:12 [ main::j#2 line::$1 ] ) -- vbuaa=vbuyy_plus_vbuc1
|
||||
//SEG42 [19] (byte) plot::x#1 ← (byte) line::l#2 + (byte/signed byte/word/signed word) 20 [ plot::x#1 ] ( main:2::line:7 [ main::i#2 plot::x#1 ] main:2::line:12 [ main::j#2 plot::x#1 ] ) -- vbuaa=vbuyy_plus_vbuc1
|
||||
tya
|
||||
clc
|
||||
adc #$14
|
||||
//SEG43 [20] (byte) plot::x#1 ← (byte~) line::$1 [ plot::x#1 ] ( main:2::line:7 [ main::i#2 plot::x#1 ] main:2::line:12 [ main::j#2 plot::x#1 ] )
|
||||
// (byte) plot::x#1 = (byte~) line::$1 // register copy reg byte a
|
||||
//SEG44 [21] call plot param-assignment [ ] ( main:2::line:7 [ main::i#2 ] main:2::line:12 [ main::j#2 ] )
|
||||
//SEG45 [23] phi from line::@1 to plot [phi:line::@1->plot]
|
||||
//SEG46 [23] phi (byte) plot::x#2 = (byte) plot::x#1 [phi:line::@1->plot#0] -- register_copy
|
||||
//SEG43 [20] call plot param-assignment [ ] ( main:2::line:7 [ main::i#2 ] main:2::line:12 [ main::j#2 ] )
|
||||
//SEG44 [22] phi from line::@1 to plot [phi:line::@1->plot]
|
||||
//SEG45 [22] phi (byte) plot::x#2 = (byte) plot::x#1 [phi:line::@1->plot#0] -- register_copy
|
||||
jsr plot
|
||||
//SEG47 line::@return
|
||||
//SEG48 [22] return [ ] ( main:2::line:7 [ main::i#2 ] main:2::line:12 [ main::j#2 ] )
|
||||
//SEG46 line::@return
|
||||
//SEG47 [21] return [ ] ( main:2::line:7 [ main::i#2 ] main:2::line:12 [ main::j#2 ] )
|
||||
rts
|
||||
}
|
||||
//SEG49 plot
|
||||
//SEG48 plot
|
||||
plot: {
|
||||
//SEG50 [24] *((const byte*) SCREEN#0 + (byte) plot::x#2) ← (byte) '*' [ ] ( main:2::line:7::plot:18 [ main::i#2 line::l#2 ] main:2::line:12::plot:18 [ main::j#2 line::l#2 ] main:2::line:7::plot:21 [ main::i#2 ] main:2::line:12::plot:21 [ main::j#2 ] ) -- vwuc1_derefidx_vbuaa=vbuc2
|
||||
//SEG49 [23] *((const byte*) SCREEN#0 + (byte) plot::x#2) ← (byte) '*' [ ] ( main:2::line:7::plot:18 [ main::i#2 line::l#2 ] main:2::line:12::plot:18 [ main::j#2 line::l#2 ] main:2::line:7::plot:20 [ main::i#2 ] main:2::line:12::plot:20 [ main::j#2 ] ) -- vwuc1_derefidx_vbuaa=vbuc2
|
||||
tax
|
||||
lda #'*'
|
||||
sta SCREEN,x
|
||||
//SEG51 plot::@return
|
||||
//SEG52 [25] return [ ] ( main:2::line:7::plot:18 [ main::i#2 line::l#2 ] main:2::line:12::plot:18 [ main::j#2 line::l#2 ] main:2::line:7::plot:21 [ main::i#2 ] main:2::line:12::plot:21 [ main::j#2 ] )
|
||||
//SEG50 plot::@return
|
||||
//SEG51 [24] return [ ] ( main:2::line:7::plot:18 [ main::i#2 line::l#2 ] main:2::line:12::plot:18 [ main::j#2 line::l#2 ] main:2::line:7::plot:20 [ main::i#2 ] main:2::line:12::plot:20 [ main::j#2 ] )
|
||||
rts
|
||||
}
|
||||
|
||||
|
@ -4,7 +4,6 @@
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(void()) line((byte) line::l)
|
||||
(byte~) line::$1 reg byte a 4.0
|
||||
(label) line::@1
|
||||
(label) line::@return
|
||||
(byte) line::l
|
||||
@ -34,4 +33,3 @@ reg byte y [ main::i#2 main::i#1 ]
|
||||
reg byte y [ main::j#2 main::j#1 ]
|
||||
reg byte y [ line::l#2 line::l#0 line::l#1 ]
|
||||
reg byte a [ plot::x#2 plot::x#0 plot::x#1 ]
|
||||
reg byte a [ line::$1 ]
|
||||
|
@ -9,23 +9,23 @@
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @2
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call ln param-assignment [ ln::$0 ] ( main:2 [ ln::$0 ] )
|
||||
[5] call ln param-assignment [ line#13 ] ( main:2 [ line#13 ] )
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main
|
||||
[6] (byte) char#2 ← ++ (byte~) ln::$0 [ ln::$0 ] ( main:2 [ ln::$0 ] )
|
||||
[7] call ln param-assignment [ ln::$0 ] ( main:2 [ ln::$0 ] )
|
||||
[6] (byte) char#2 ← ++ (byte) line#13 [ line#13 ] ( main:2 [ line#13 ] )
|
||||
[7] call ln param-assignment [ line#13 ] ( main:2 [ line#13 ] )
|
||||
to:main::@2
|
||||
main::@2: scope:[main] from main::@1
|
||||
[8] (byte) char#4 ← ++ (byte~) ln::$0 [ ln::$0 ] ( main:2 [ ln::$0 ] )
|
||||
[8] (byte) char#4 ← ++ (byte) line#13 [ line#13 ] ( main:2 [ line#13 ] )
|
||||
[9] call ln param-assignment [ ] ( main:2 [ ] )
|
||||
to:main::@return
|
||||
main::@return: scope:[main] from main::@2
|
||||
[10] return [ ] ( main:2 [ ] )
|
||||
to:@return
|
||||
ln: scope:[ln] from main main::@1 main::@2
|
||||
[11] (byte) line#12 ← phi( main/(byte/signed byte/word/signed word) 64 main::@1/(byte~) ln::$0 main::@2/(byte~) ln::$0 ) [ line#12 ] ( main:2::ln:5 [ line#12 ] main:2::ln:7 [ line#12 ] main:2::ln:9 [ line#12 ] )
|
||||
[12] (byte~) ln::$0 ← (byte) line#12 + (byte/signed byte/word/signed word) 2 [ ln::$0 ] ( main:2::ln:5 [ ln::$0 ] main:2::ln:7 [ ln::$0 ] main:2::ln:9 [ ln::$0 ] )
|
||||
[11] (byte) line#12 ← phi( main/(byte/signed byte/word/signed word) 64 main::@1/(byte) line#13 main::@2/(byte) line#13 ) [ line#12 ] ( main:2::ln:5 [ line#12 ] main:2::ln:7 [ line#12 ] main:2::ln:9 [ line#12 ] )
|
||||
[12] (byte) line#13 ← (byte) line#12 + (byte/signed byte/word/signed word) 2 [ line#13 ] ( main:2::ln:5 [ line#13 ] main:2::ln:7 [ line#13 ] main:2::ln:9 [ line#13 ] )
|
||||
to:ln::@return
|
||||
ln::@return: scope:[ln] from ln
|
||||
[13] return [ ln::$0 ] ( main:2::ln:5 [ ln::$0 ] main:2::ln:7 [ ln::$0 ] main:2::ln:9 [ ln::$0 ] )
|
||||
[13] return [ line#13 ] ( main:2::ln:5 [ line#13 ] main:2::ln:7 [ line#13 ] main:2::ln:9 [ line#13 ] )
|
||||
to:@return
|
||||
|
@ -363,118 +363,50 @@ Not aliassing across scopes: char#11 char#8
|
||||
Not aliassing across scopes: line#10 line#6
|
||||
Not aliassing across scopes: char#12 char#8
|
||||
Not aliassing across scopes: line#12 line#15
|
||||
Not aliassing across scopes: line#5 ln::$0
|
||||
Not aliassing across scopes: line#14 line#4
|
||||
Not aliassing across scopes: char#15 char#6
|
||||
Alias candidate removed (byte) char#0
|
||||
Alias candidate removed (byte) char#7
|
||||
Alias (byte) char#17 = (byte) line#0 (byte) line#16
|
||||
Alias (byte) line#0 = (byte) char#0 (byte) line#16 (byte) char#17
|
||||
Alias (byte) line#1 = (byte) line#8
|
||||
Alias (byte) char#1 = (byte) char#10
|
||||
Alias (byte) line#2 = (byte) line#9
|
||||
Alias (byte) char#11 = (byte) char#3
|
||||
Alias (byte) line#10 = (byte) line#3 (byte) line#11 (byte) line#4
|
||||
Alias (byte) char#12 = (byte) char#5 (byte) char#13 (byte) char#6
|
||||
Alias (byte) char#14 = (byte) line#5 (byte) line#13 (byte) line#6 (byte) char#8
|
||||
Alias (byte) line#13 = (byte) line#5 (byte~) ln::$0 (byte) char#7 (byte) char#14 (byte) line#6 (byte) char#8
|
||||
Alias (byte) line#14 = (byte) line#7
|
||||
Alias (byte) char#15 = (byte) char#9
|
||||
Succesful SSA optimization Pass2AliasElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte) char#17 ← (byte/signed byte/word/signed word) 64
|
||||
(byte) char#0 ← (byte) char#17
|
||||
(byte) line#0 ← (byte/signed byte/word/signed word) 64
|
||||
to:@2
|
||||
main: scope:[main] from @2
|
||||
(byte) char#16 ← phi( @2/(byte) char#17 )
|
||||
(byte) line#15 ← phi( @2/(byte) char#17 )
|
||||
(byte) char#16 ← phi( @2/(byte) line#0 )
|
||||
(byte) line#15 ← phi( @2/(byte) line#0 )
|
||||
call ln param-assignment
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main
|
||||
(byte) char#1 ← phi( main/(byte) char#14 )
|
||||
(byte) line#1 ← phi( main/(byte) char#14 )
|
||||
(byte) char#1 ← phi( main/(byte) line#13 )
|
||||
(byte) line#1 ← phi( main/(byte) line#13 )
|
||||
(byte) char#2 ← ++ (byte) char#1
|
||||
call ln param-assignment
|
||||
to:main::@2
|
||||
main::@2: scope:[main] from main::@1
|
||||
(byte) char#11 ← phi( main::@1/(byte) char#14 )
|
||||
(byte) line#2 ← phi( main::@1/(byte) char#14 )
|
||||
(byte) char#11 ← phi( main::@1/(byte) line#13 )
|
||||
(byte) line#2 ← phi( main::@1/(byte) line#13 )
|
||||
(byte) char#4 ← ++ (byte) char#11
|
||||
call ln param-assignment
|
||||
to:main::@3
|
||||
main::@3: scope:[main] from main::@2
|
||||
(byte) char#12 ← phi( main::@2/(byte) char#14 )
|
||||
(byte) line#10 ← phi( main::@2/(byte) char#14 )
|
||||
(byte) char#12 ← phi( main::@2/(byte) line#13 )
|
||||
(byte) line#10 ← phi( main::@2/(byte) line#13 )
|
||||
to:main::@return
|
||||
main::@return: scope:[main] from main::@3
|
||||
return
|
||||
to:@return
|
||||
ln: scope:[ln] from main main::@1 main::@2
|
||||
(byte) line#12 ← phi( main/(byte) line#15 main::@1/(byte) line#1 main::@2/(byte) line#2 )
|
||||
(byte~) ln::$0 ← (byte) line#12 + (byte/signed byte/word/signed word) 2
|
||||
(byte) char#14 ← (byte~) ln::$0
|
||||
(byte) char#7 ← (byte) char#14
|
||||
to:ln::@return
|
||||
ln::@return: scope:[ln] from ln
|
||||
(byte) char#14 ← phi( ln/(byte) char#7 )
|
||||
return
|
||||
to:@return
|
||||
@2: scope:[] from @begin
|
||||
(byte) char#17 ← phi( @begin/(byte) char#0 )
|
||||
call main param-assignment
|
||||
to:@3
|
||||
@3: scope:[] from @2
|
||||
(byte) char#15 ← phi( @2/(byte) char#12 )
|
||||
(byte) line#14 ← phi( @2/(byte) line#10 )
|
||||
to:@end
|
||||
@end: scope:[] from @3
|
||||
|
||||
Not aliassing across scopes: line#15 char#17
|
||||
Not aliassing across scopes: char#16 char#17
|
||||
Not aliassing across scopes: line#1 char#14
|
||||
Not aliassing across scopes: char#1 char#14
|
||||
Not aliassing across scopes: line#2 char#14
|
||||
Not aliassing across scopes: char#11 char#14
|
||||
Not aliassing across scopes: line#10 char#14
|
||||
Not aliassing across scopes: char#12 char#14
|
||||
Not aliassing across scopes: line#12 line#15
|
||||
Not aliassing across scopes: char#14 ln::$0
|
||||
Not aliassing across scopes: line#14 line#10
|
||||
Not aliassing across scopes: char#15 char#12
|
||||
Alias (byte) char#0 = (byte) char#17
|
||||
Alias (byte) char#14 = (byte) char#7
|
||||
Succesful SSA optimization Pass2AliasElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte) char#0 ← (byte/signed byte/word/signed word) 64
|
||||
to:@2
|
||||
main: scope:[main] from @2
|
||||
(byte) char#16 ← phi( @2/(byte) char#0 )
|
||||
(byte) line#15 ← phi( @2/(byte) char#0 )
|
||||
call ln param-assignment
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main
|
||||
(byte) char#1 ← phi( main/(byte) char#14 )
|
||||
(byte) line#1 ← phi( main/(byte) char#14 )
|
||||
(byte) char#2 ← ++ (byte) char#1
|
||||
call ln param-assignment
|
||||
to:main::@2
|
||||
main::@2: scope:[main] from main::@1
|
||||
(byte) char#11 ← phi( main::@1/(byte) char#14 )
|
||||
(byte) line#2 ← phi( main::@1/(byte) char#14 )
|
||||
(byte) char#4 ← ++ (byte) char#11
|
||||
call ln param-assignment
|
||||
to:main::@3
|
||||
main::@3: scope:[main] from main::@2
|
||||
(byte) char#12 ← phi( main::@2/(byte) char#14 )
|
||||
(byte) line#10 ← phi( main::@2/(byte) char#14 )
|
||||
to:main::@return
|
||||
main::@return: scope:[main] from main::@3
|
||||
return
|
||||
to:@return
|
||||
ln: scope:[ln] from main main::@1 main::@2
|
||||
(byte) line#12 ← phi( main/(byte) line#15 main::@1/(byte) line#1 main::@2/(byte) line#2 )
|
||||
(byte~) ln::$0 ← (byte) line#12 + (byte/signed byte/word/signed word) 2
|
||||
(byte) char#14 ← (byte~) ln::$0
|
||||
(byte) line#13 ← (byte) line#12 + (byte/signed byte/word/signed word) 2
|
||||
to:ln::@return
|
||||
ln::@return: scope:[ln] from ln
|
||||
return
|
||||
@ -488,42 +420,41 @@ ln::@return: scope:[ln] from ln
|
||||
to:@end
|
||||
@end: scope:[] from @3
|
||||
|
||||
Not aliassing across scopes: line#15 char#0
|
||||
Not aliassing across scopes: char#16 char#0
|
||||
Not aliassing across scopes: line#1 char#14
|
||||
Not aliassing across scopes: char#1 char#14
|
||||
Not aliassing across scopes: line#2 char#14
|
||||
Not aliassing across scopes: char#11 char#14
|
||||
Not aliassing across scopes: line#10 char#14
|
||||
Not aliassing across scopes: char#12 char#14
|
||||
Not aliassing across scopes: line#15 line#0
|
||||
Not aliassing across scopes: char#16 line#0
|
||||
Not aliassing across scopes: line#1 line#13
|
||||
Not aliassing across scopes: char#1 line#13
|
||||
Not aliassing across scopes: line#2 line#13
|
||||
Not aliassing across scopes: char#11 line#13
|
||||
Not aliassing across scopes: line#10 line#13
|
||||
Not aliassing across scopes: char#12 line#13
|
||||
Not aliassing across scopes: line#12 line#15
|
||||
Not aliassing across scopes: char#14 ln::$0
|
||||
Not aliassing across scopes: line#14 line#10
|
||||
Not aliassing across scopes: char#15 char#12
|
||||
Redundant Phi (byte) line#15 (byte) char#0
|
||||
Redundant Phi (byte) char#16 (byte) char#0
|
||||
Redundant Phi (byte) line#1 (byte) char#14
|
||||
Redundant Phi (byte) char#1 (byte) char#14
|
||||
Redundant Phi (byte) line#2 (byte) char#14
|
||||
Redundant Phi (byte) char#11 (byte) char#14
|
||||
Redundant Phi (byte) line#10 (byte) char#14
|
||||
Redundant Phi (byte) char#12 (byte) char#14
|
||||
Redundant Phi (byte) line#15 (byte) line#0
|
||||
Redundant Phi (byte) char#16 (byte) line#0
|
||||
Redundant Phi (byte) line#1 (byte) line#13
|
||||
Redundant Phi (byte) char#1 (byte) line#13
|
||||
Redundant Phi (byte) line#2 (byte) line#13
|
||||
Redundant Phi (byte) char#11 (byte) line#13
|
||||
Redundant Phi (byte) line#10 (byte) line#13
|
||||
Redundant Phi (byte) char#12 (byte) line#13
|
||||
Redundant Phi (byte) line#14 (byte) line#10
|
||||
Redundant Phi (byte) char#15 (byte) char#12
|
||||
Succesful SSA optimization Pass2RedundantPhiElimination
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
(byte) char#0 ← (byte/signed byte/word/signed word) 64
|
||||
(byte) line#0 ← (byte/signed byte/word/signed word) 64
|
||||
to:@2
|
||||
main: scope:[main] from @2
|
||||
call ln param-assignment
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main
|
||||
(byte) char#2 ← ++ (byte) char#14
|
||||
(byte) char#2 ← ++ (byte) line#13
|
||||
call ln param-assignment
|
||||
to:main::@2
|
||||
main::@2: scope:[main] from main::@1
|
||||
(byte) char#4 ← ++ (byte) char#14
|
||||
(byte) char#4 ← ++ (byte) line#13
|
||||
call ln param-assignment
|
||||
to:main::@3
|
||||
main::@3: scope:[main] from main::@2
|
||||
@ -532,9 +463,8 @@ main::@return: scope:[main] from main::@3
|
||||
return
|
||||
to:@return
|
||||
ln: scope:[ln] from main main::@1 main::@2
|
||||
(byte) line#12 ← phi( main/(byte) char#0 main::@1/(byte) char#14 main::@2/(byte) char#14 )
|
||||
(byte~) ln::$0 ← (byte) line#12 + (byte/signed byte/word/signed word) 2
|
||||
(byte) char#14 ← (byte~) ln::$0
|
||||
(byte) line#12 ← phi( main/(byte) line#0 main::@1/(byte) line#13 main::@2/(byte) line#13 )
|
||||
(byte) line#13 ← (byte) line#12 + (byte/signed byte/word/signed word) 2
|
||||
to:ln::@return
|
||||
ln::@return: scope:[ln] from ln
|
||||
return
|
||||
@ -546,7 +476,7 @@ ln::@return: scope:[ln] from ln
|
||||
to:@end
|
||||
@end: scope:[] from @3
|
||||
|
||||
Constant (const byte) char#0 = 64
|
||||
Constant (const byte) line#0 = 64
|
||||
Succesful SSA optimization Pass2ConstantIdentification
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
@ -555,11 +485,11 @@ main: scope:[main] from @2
|
||||
call ln param-assignment
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main
|
||||
(byte) char#2 ← ++ (byte) char#14
|
||||
(byte) char#2 ← ++ (byte) line#13
|
||||
call ln param-assignment
|
||||
to:main::@2
|
||||
main::@2: scope:[main] from main::@1
|
||||
(byte) char#4 ← ++ (byte) char#14
|
||||
(byte) char#4 ← ++ (byte) line#13
|
||||
call ln param-assignment
|
||||
to:main::@3
|
||||
main::@3: scope:[main] from main::@2
|
||||
@ -568,9 +498,8 @@ main::@return: scope:[main] from main::@3
|
||||
return
|
||||
to:@return
|
||||
ln: scope:[ln] from main main::@1 main::@2
|
||||
(byte) line#12 ← phi( main/(const byte) char#0 main::@1/(byte) char#14 main::@2/(byte) char#14 )
|
||||
(byte~) ln::$0 ← (byte) line#12 + (byte/signed byte/word/signed word) 2
|
||||
(byte) char#14 ← (byte~) ln::$0
|
||||
(byte) line#12 ← phi( main/(const byte) line#0 main::@1/(byte) line#13 main::@2/(byte) line#13 )
|
||||
(byte) line#13 ← (byte) line#12 + (byte/signed byte/word/signed word) 2
|
||||
to:ln::@return
|
||||
ln::@return: scope:[ln] from ln
|
||||
return
|
||||
@ -592,20 +521,19 @@ main: scope:[main] from @2
|
||||
call ln param-assignment
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main
|
||||
(byte) char#2 ← ++ (byte) char#14
|
||||
(byte) char#2 ← ++ (byte) line#13
|
||||
call ln param-assignment
|
||||
to:main::@2
|
||||
main::@2: scope:[main] from main::@1
|
||||
(byte) char#4 ← ++ (byte) char#14
|
||||
(byte) char#4 ← ++ (byte) line#13
|
||||
call ln param-assignment
|
||||
to:main::@return
|
||||
main::@return: scope:[main] from main::@2
|
||||
return
|
||||
to:@return
|
||||
ln: scope:[ln] from main main::@1 main::@2
|
||||
(byte) line#12 ← phi( main/(const byte) char#0 main::@1/(byte) char#14 main::@2/(byte) char#14 )
|
||||
(byte~) ln::$0 ← (byte) line#12 + (byte/signed byte/word/signed word) 2
|
||||
(byte) char#14 ← (byte~) ln::$0
|
||||
(byte) line#12 ← phi( main/(const byte) line#0 main::@1/(byte) line#13 main::@2/(byte) line#13 )
|
||||
(byte) line#13 ← (byte) line#12 + (byte/signed byte/word/signed word) 2
|
||||
to:ln::@return
|
||||
ln::@return: scope:[ln] from ln
|
||||
return
|
||||
@ -615,12 +543,9 @@ ln::@return: scope:[ln] from ln
|
||||
to:@end
|
||||
@end: scope:[] from @2
|
||||
|
||||
Not aliassing across scopes: char#14 ln::$0
|
||||
Not aliassing across scopes: char#14 ln::$0
|
||||
Inlining constant with var siblings (const byte) char#0
|
||||
Inlining constant with var siblings (const byte) char#0
|
||||
Inlining constant with var siblings (const byte) char#0
|
||||
Constant inlined char#0 = (byte/signed byte/word/signed word) 64
|
||||
Inlining constant with var siblings (const byte) line#0
|
||||
Inlining constant with var siblings (const byte) line#0
|
||||
Constant inlined line#0 = (byte/signed byte/word/signed word) 64
|
||||
Succesful SSA optimization Pass2ConstantInlining
|
||||
CONTROL FLOW GRAPH
|
||||
@begin: scope:[] from
|
||||
@ -629,20 +554,19 @@ main: scope:[main] from @2
|
||||
call ln param-assignment
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main
|
||||
(byte) char#2 ← ++ (byte) char#14
|
||||
(byte) char#2 ← ++ (byte) line#13
|
||||
call ln param-assignment
|
||||
to:main::@2
|
||||
main::@2: scope:[main] from main::@1
|
||||
(byte) char#4 ← ++ (byte) char#14
|
||||
(byte) char#4 ← ++ (byte) line#13
|
||||
call ln param-assignment
|
||||
to:main::@return
|
||||
main::@return: scope:[main] from main::@2
|
||||
return
|
||||
to:@return
|
||||
ln: scope:[ln] from main main::@1 main::@2
|
||||
(byte) line#12 ← phi( main/(byte/signed byte/word/signed word) 64 main::@1/(byte) char#14 main::@2/(byte) char#14 )
|
||||
(byte~) ln::$0 ← (byte) line#12 + (byte/signed byte/word/signed word) 2
|
||||
(byte) char#14 ← (byte~) ln::$0
|
||||
(byte) line#12 ← phi( main/(byte/signed byte/word/signed word) 64 main::@1/(byte) line#13 main::@2/(byte) line#13 )
|
||||
(byte) line#13 ← (byte) line#12 + (byte/signed byte/word/signed word) 2
|
||||
to:ln::@return
|
||||
ln::@return: scope:[ln] from ln
|
||||
return
|
||||
@ -657,13 +581,12 @@ FINAL SYMBOL TABLE
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte) char
|
||||
(byte) char#14
|
||||
(byte) char#2
|
||||
(byte) char#4
|
||||
(byte) line
|
||||
(byte) line#12
|
||||
(byte) line#13
|
||||
(void()) ln()
|
||||
(byte~) ln::$0
|
||||
(label) ln::@return
|
||||
(void()) main()
|
||||
(label) main::@1
|
||||
@ -683,22 +606,21 @@ main: scope:[main] from @2
|
||||
call ln param-assignment
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main
|
||||
(byte) char#2 ← ++ (byte) char#14
|
||||
(byte~) char#18 ← (byte) char#14
|
||||
(byte) char#2 ← ++ (byte) line#13
|
||||
(byte~) line#17 ← (byte) line#13
|
||||
call ln param-assignment
|
||||
to:main::@2
|
||||
main::@2: scope:[main] from main::@1
|
||||
(byte) char#4 ← ++ (byte) char#14
|
||||
(byte~) char#19 ← (byte) char#14
|
||||
(byte) char#4 ← ++ (byte) line#13
|
||||
(byte~) line#18 ← (byte) line#13
|
||||
call ln param-assignment
|
||||
to:main::@return
|
||||
main::@return: scope:[main] from main::@2
|
||||
return
|
||||
to:@return
|
||||
ln: scope:[ln] from main main::@1 main::@2
|
||||
(byte) line#12 ← phi( main/(byte/signed byte/word/signed word) 64 main::@1/(byte~) char#18 main::@2/(byte~) char#19 )
|
||||
(byte~) ln::$0 ← (byte) line#12 + (byte/signed byte/word/signed word) 2
|
||||
(byte) char#14 ← (byte~) ln::$0
|
||||
(byte) line#12 ← phi( main/(byte/signed byte/word/signed word) 64 main::@1/(byte~) line#17 main::@2/(byte~) line#18 )
|
||||
(byte) line#13 ← (byte) line#12 + (byte/signed byte/word/signed word) 2
|
||||
to:ln::@return
|
||||
ln::@return: scope:[ln] from ln
|
||||
return
|
||||
@ -727,34 +649,32 @@ CONTROL FLOW GRAPH - LIVE RANGES FOUND
|
||||
[3] phi() [ ]
|
||||
main: scope:[main] from @2
|
||||
[4] phi() [ ]
|
||||
[5] call ln param-assignment [ char#14 ]
|
||||
[5] call ln param-assignment [ line#13 ]
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main
|
||||
[6] (byte) char#2 ← ++ (byte) char#14 [ char#14 ]
|
||||
[7] (byte~) char#18 ← (byte) char#14 [ char#18 ]
|
||||
[8] call ln param-assignment [ char#14 ]
|
||||
[6] (byte) char#2 ← ++ (byte) line#13 [ line#13 ]
|
||||
[7] (byte~) line#17 ← (byte) line#13 [ line#17 ]
|
||||
[8] call ln param-assignment [ line#13 ]
|
||||
to:main::@2
|
||||
main::@2: scope:[main] from main::@1
|
||||
[9] (byte) char#4 ← ++ (byte) char#14 [ char#14 ]
|
||||
[10] (byte~) char#19 ← (byte) char#14 [ char#19 ]
|
||||
[9] (byte) char#4 ← ++ (byte) line#13 [ line#13 ]
|
||||
[10] (byte~) line#18 ← (byte) line#13 [ line#18 ]
|
||||
[11] call ln param-assignment [ ]
|
||||
to:main::@return
|
||||
main::@return: scope:[main] from main::@2
|
||||
[12] return [ ]
|
||||
to:@return
|
||||
ln: scope:[ln] from main main::@1 main::@2
|
||||
[13] (byte) line#12 ← phi( main/(byte/signed byte/word/signed word) 64 main::@1/(byte~) char#18 main::@2/(byte~) char#19 ) [ line#12 ]
|
||||
[14] (byte~) ln::$0 ← (byte) line#12 + (byte/signed byte/word/signed word) 2 [ ln::$0 ]
|
||||
[15] (byte) char#14 ← (byte~) ln::$0 [ char#14 ]
|
||||
[13] (byte) line#12 ← phi( main/(byte/signed byte/word/signed word) 64 main::@1/(byte~) line#17 main::@2/(byte~) line#18 ) [ line#12 ]
|
||||
[14] (byte) line#13 ← (byte) line#12 + (byte/signed byte/word/signed word) 2 [ line#13 ]
|
||||
to:ln::@return
|
||||
ln::@return: scope:[ln] from ln
|
||||
[16] return [ char#14 ]
|
||||
[15] return [ line#13 ]
|
||||
to:@return
|
||||
|
||||
Created 1 initial phi equivalence classes
|
||||
Coalesced [7] char#18 ← char#14
|
||||
Coalesced (already) [10] char#19 ← char#14
|
||||
Coalesced [15] char#14 ← ln::$0
|
||||
Coalesced [7] line#17 ← line#13
|
||||
Coalesced (already) [10] line#18 ← line#13
|
||||
Coalesced down to 1 phi equivalence classes
|
||||
Block Sequence Planned @begin @2 @end main main::@1 main::@2 main::@return ln ln::@return
|
||||
Adding NOP phi() at start of @begin
|
||||
@ -776,25 +696,25 @@ CONTROL FLOW GRAPH - BEFORE EFFECTIVE LIVE RANGES
|
||||
[3] phi() [ ]
|
||||
main: scope:[main] from @2
|
||||
[4] phi() [ ]
|
||||
[5] call ln param-assignment [ ln::$0 ]
|
||||
[5] call ln param-assignment [ line#13 ]
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main
|
||||
[6] (byte) char#2 ← ++ (byte~) ln::$0 [ ln::$0 ]
|
||||
[7] call ln param-assignment [ ln::$0 ]
|
||||
[6] (byte) char#2 ← ++ (byte) line#13 [ line#13 ]
|
||||
[7] call ln param-assignment [ line#13 ]
|
||||
to:main::@2
|
||||
main::@2: scope:[main] from main::@1
|
||||
[8] (byte) char#4 ← ++ (byte~) ln::$0 [ ln::$0 ]
|
||||
[8] (byte) char#4 ← ++ (byte) line#13 [ line#13 ]
|
||||
[9] call ln param-assignment [ ]
|
||||
to:main::@return
|
||||
main::@return: scope:[main] from main::@2
|
||||
[10] return [ ]
|
||||
to:@return
|
||||
ln: scope:[ln] from main main::@1 main::@2
|
||||
[11] (byte) line#12 ← phi( main/(byte/signed byte/word/signed word) 64 main::@1/(byte~) ln::$0 main::@2/(byte~) ln::$0 ) [ line#12 ]
|
||||
[12] (byte~) ln::$0 ← (byte) line#12 + (byte/signed byte/word/signed word) 2 [ ln::$0 ]
|
||||
[11] (byte) line#12 ← phi( main/(byte/signed byte/word/signed word) 64 main::@1/(byte) line#13 main::@2/(byte) line#13 ) [ line#12 ]
|
||||
[12] (byte) line#13 ← (byte) line#12 + (byte/signed byte/word/signed word) 2 [ line#13 ]
|
||||
to:ln::@return
|
||||
ln::@return: scope:[ln] from ln
|
||||
[13] return [ ln::$0 ]
|
||||
[13] return [ line#13 ]
|
||||
to:@return
|
||||
|
||||
CONTROL FLOW GRAPH - PHI MEM COALESCED
|
||||
@ -809,25 +729,25 @@ CONTROL FLOW GRAPH - PHI MEM COALESCED
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @2
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call ln param-assignment [ ln::$0 ] ( main:2 [ ln::$0 ] )
|
||||
[5] call ln param-assignment [ line#13 ] ( main:2 [ line#13 ] )
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main
|
||||
[6] (byte) char#2 ← ++ (byte~) ln::$0 [ ln::$0 ] ( main:2 [ ln::$0 ] )
|
||||
[7] call ln param-assignment [ ln::$0 ] ( main:2 [ ln::$0 ] )
|
||||
[6] (byte) char#2 ← ++ (byte) line#13 [ line#13 ] ( main:2 [ line#13 ] )
|
||||
[7] call ln param-assignment [ line#13 ] ( main:2 [ line#13 ] )
|
||||
to:main::@2
|
||||
main::@2: scope:[main] from main::@1
|
||||
[8] (byte) char#4 ← ++ (byte~) ln::$0 [ ln::$0 ] ( main:2 [ ln::$0 ] )
|
||||
[8] (byte) char#4 ← ++ (byte) line#13 [ line#13 ] ( main:2 [ line#13 ] )
|
||||
[9] call ln param-assignment [ ] ( main:2 [ ] )
|
||||
to:main::@return
|
||||
main::@return: scope:[main] from main::@2
|
||||
[10] return [ ] ( main:2 [ ] )
|
||||
to:@return
|
||||
ln: scope:[ln] from main main::@1 main::@2
|
||||
[11] (byte) line#12 ← phi( main/(byte/signed byte/word/signed word) 64 main::@1/(byte~) ln::$0 main::@2/(byte~) ln::$0 ) [ line#12 ] ( main:2::ln:5 [ line#12 ] main:2::ln:7 [ line#12 ] main:2::ln:9 [ line#12 ] )
|
||||
[12] (byte~) ln::$0 ← (byte) line#12 + (byte/signed byte/word/signed word) 2 [ ln::$0 ] ( main:2::ln:5 [ ln::$0 ] main:2::ln:7 [ ln::$0 ] main:2::ln:9 [ ln::$0 ] )
|
||||
[11] (byte) line#12 ← phi( main/(byte/signed byte/word/signed word) 64 main::@1/(byte) line#13 main::@2/(byte) line#13 ) [ line#12 ] ( main:2::ln:5 [ line#12 ] main:2::ln:7 [ line#12 ] main:2::ln:9 [ line#12 ] )
|
||||
[12] (byte) line#13 ← (byte) line#12 + (byte/signed byte/word/signed word) 2 [ line#13 ] ( main:2::ln:5 [ line#13 ] main:2::ln:7 [ line#13 ] main:2::ln:9 [ line#13 ] )
|
||||
to:ln::@return
|
||||
ln::@return: scope:[ln] from ln
|
||||
[13] return [ ln::$0 ] ( main:2::ln:5 [ ln::$0 ] main:2::ln:7 [ ln::$0 ] main:2::ln:9 [ ln::$0 ] )
|
||||
[13] return [ line#13 ] ( main:2::ln:5 [ line#13 ] main:2::ln:7 [ line#13 ] main:2::ln:9 [ line#13 ] )
|
||||
to:@return
|
||||
|
||||
DOMINATORS
|
||||
@ -855,19 +775,19 @@ VARIABLE REGISTER WEIGHTS
|
||||
(byte) char#4 20.0
|
||||
(byte) line
|
||||
(byte) line#12 6.0
|
||||
(byte) line#13 1.6666666666666665
|
||||
(void()) ln()
|
||||
(byte~) ln::$0 1.6666666666666665
|
||||
(void()) main()
|
||||
|
||||
Initial phi equivalence classes
|
||||
[ line#12 ln::$0 ]
|
||||
[ line#12 line#13 ]
|
||||
Added variable char#2 to zero page equivalence class [ char#2 ]
|
||||
Added variable char#4 to zero page equivalence class [ char#4 ]
|
||||
Complete equivalence classes
|
||||
[ line#12 ln::$0 ]
|
||||
[ line#12 line#13 ]
|
||||
[ char#2 ]
|
||||
[ char#4 ]
|
||||
Allocated zp ZP_BYTE:2 [ line#12 ln::$0 ]
|
||||
Allocated zp ZP_BYTE:2 [ line#12 line#13 ]
|
||||
Allocated zp ZP_BYTE:3 [ char#2 ]
|
||||
Allocated zp ZP_BYTE:4 [ char#4 ]
|
||||
INITIAL ASM
|
||||
@ -897,7 +817,7 @@ bend_from_b2:
|
||||
bend:
|
||||
//SEG9 main
|
||||
main: {
|
||||
//SEG10 [5] call ln param-assignment [ ln::$0 ] ( main:2 [ ln::$0 ] )
|
||||
//SEG10 [5] call ln param-assignment [ line#13 ] ( main:2 [ line#13 ] )
|
||||
//SEG11 [11] phi from main to ln [phi:main->ln]
|
||||
ln_from_main:
|
||||
//SEG12 [11] phi (byte) line#12 = (byte/signed byte/word/signed word) 64 [phi:main->ln#0] -- vbuz1=vbuc1
|
||||
@ -907,26 +827,26 @@ main: {
|
||||
jmp b1
|
||||
//SEG13 main::@1
|
||||
b1:
|
||||
//SEG14 [6] (byte) char#2 ← ++ (byte~) ln::$0 [ ln::$0 ] ( main:2 [ ln::$0 ] ) -- vbuz1=_inc_vbuz2
|
||||
lda ln._0
|
||||
//SEG14 [6] (byte) char#2 ← ++ (byte) line#13 [ line#13 ] ( main:2 [ line#13 ] ) -- vbuz1=_inc_vbuz2
|
||||
lda line
|
||||
sta char
|
||||
inc char
|
||||
//SEG15 [7] call ln param-assignment [ ln::$0 ] ( main:2 [ ln::$0 ] )
|
||||
//SEG15 [7] call ln param-assignment [ line#13 ] ( main:2 [ line#13 ] )
|
||||
//SEG16 [11] phi from main::@1 to ln [phi:main::@1->ln]
|
||||
ln_from_b1:
|
||||
//SEG17 [11] phi (byte) line#12 = (byte~) ln::$0 [phi:main::@1->ln#0] -- register_copy
|
||||
//SEG17 [11] phi (byte) line#12 = (byte) line#13 [phi:main::@1->ln#0] -- register_copy
|
||||
jsr ln
|
||||
jmp b2
|
||||
//SEG18 main::@2
|
||||
b2:
|
||||
//SEG19 [8] (byte) char#4 ← ++ (byte~) ln::$0 [ ln::$0 ] ( main:2 [ ln::$0 ] ) -- vbuz1=_inc_vbuz2
|
||||
lda ln._0
|
||||
//SEG19 [8] (byte) char#4 ← ++ (byte) line#13 [ line#13 ] ( main:2 [ line#13 ] ) -- vbuz1=_inc_vbuz2
|
||||
lda line
|
||||
sta char_4
|
||||
inc char_4
|
||||
//SEG20 [9] call ln param-assignment [ ] ( main:2 [ ] )
|
||||
//SEG21 [11] phi from main::@2 to ln [phi:main::@2->ln]
|
||||
ln_from_b2:
|
||||
//SEG22 [11] phi (byte) line#12 = (byte~) ln::$0 [phi:main::@2->ln#0] -- register_copy
|
||||
//SEG22 [11] phi (byte) line#12 = (byte) line#13 [phi:main::@2->ln#0] -- register_copy
|
||||
jsr ln
|
||||
jmp breturn
|
||||
//SEG23 main::@return
|
||||
@ -936,31 +856,30 @@ main: {
|
||||
}
|
||||
//SEG25 ln
|
||||
ln: {
|
||||
.label _0 = 2
|
||||
//SEG26 [12] (byte~) ln::$0 ← (byte) line#12 + (byte/signed byte/word/signed word) 2 [ ln::$0 ] ( main:2::ln:5 [ ln::$0 ] main:2::ln:7 [ ln::$0 ] main:2::ln:9 [ ln::$0 ] ) -- vbuz1=vbuz1_plus_vbuc1
|
||||
lda _0
|
||||
//SEG26 [12] (byte) line#13 ← (byte) line#12 + (byte/signed byte/word/signed word) 2 [ line#13 ] ( main:2::ln:5 [ line#13 ] main:2::ln:7 [ line#13 ] main:2::ln:9 [ line#13 ] ) -- vbuz1=vbuz1_plus_vbuc1
|
||||
lda line
|
||||
clc
|
||||
adc #2
|
||||
sta _0
|
||||
sta line
|
||||
jmp breturn
|
||||
//SEG27 ln::@return
|
||||
breturn:
|
||||
//SEG28 [13] return [ ln::$0 ] ( main:2::ln:5 [ ln::$0 ] main:2::ln:7 [ ln::$0 ] main:2::ln:9 [ ln::$0 ] )
|
||||
//SEG28 [13] return [ line#13 ] ( main:2::ln:5 [ line#13 ] main:2::ln:7 [ line#13 ] main:2::ln:9 [ line#13 ] )
|
||||
rts
|
||||
}
|
||||
|
||||
REGISTER UPLIFT POTENTIAL REGISTERS
|
||||
Statement [12] (byte~) ln::$0 ← (byte) line#12 + (byte/signed byte/word/signed word) 2 [ ln::$0 ] ( main:2::ln:5 [ ln::$0 ] main:2::ln:7 [ ln::$0 ] main:2::ln:9 [ ln::$0 ] ) always clobbers reg byte a
|
||||
Potential registers zp ZP_BYTE:2 [ line#12 ln::$0 ] : zp ZP_BYTE:2 , reg byte a , reg byte x , reg byte y ,
|
||||
Statement [12] (byte) line#13 ← (byte) line#12 + (byte/signed byte/word/signed word) 2 [ line#13 ] ( main:2::ln:5 [ line#13 ] main:2::ln:7 [ line#13 ] main:2::ln:9 [ line#13 ] ) always clobbers reg byte a
|
||||
Potential registers zp ZP_BYTE:2 [ line#12 line#13 ] : zp ZP_BYTE:2 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp ZP_BYTE:3 [ char#2 ] : zp ZP_BYTE:3 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp ZP_BYTE:4 [ char#4 ] : zp ZP_BYTE:4 , reg byte a , reg byte x , reg byte y ,
|
||||
|
||||
REGISTER UPLIFT SCOPES
|
||||
Uplift Scope [] 20: zp ZP_BYTE:3 [ char#2 ] 20: zp ZP_BYTE:4 [ char#4 ] 7.67: zp ZP_BYTE:2 [ line#12 ln::$0 ]
|
||||
Uplift Scope [] 20: zp ZP_BYTE:3 [ char#2 ] 20: zp ZP_BYTE:4 [ char#4 ] 7.67: zp ZP_BYTE:2 [ line#12 line#13 ]
|
||||
Uplift Scope [main]
|
||||
Uplift Scope [ln]
|
||||
|
||||
Uplifting [] best 76 combination zp ZP_BYTE:3 [ char#2 ] zp ZP_BYTE:4 [ char#4 ] reg byte a [ line#12 ln::$0 ]
|
||||
Uplifting [] best 76 combination zp ZP_BYTE:3 [ char#2 ] zp ZP_BYTE:4 [ char#4 ] reg byte a [ line#12 line#13 ]
|
||||
Uplifting [main] best 76 combination
|
||||
Uplifting [ln] best 76 combination
|
||||
Attempting to uplift remaining variables inzp ZP_BYTE:3 [ char#2 ]
|
||||
@ -999,7 +918,7 @@ bend_from_b2:
|
||||
bend:
|
||||
//SEG9 main
|
||||
main: {
|
||||
//SEG10 [5] call ln param-assignment [ ln::$0 ] ( main:2 [ ln::$0 ] )
|
||||
//SEG10 [5] call ln param-assignment [ line#13 ] ( main:2 [ line#13 ] )
|
||||
//SEG11 [11] phi from main to ln [phi:main->ln]
|
||||
ln_from_main:
|
||||
//SEG12 [11] phi (byte) line#12 = (byte/signed byte/word/signed word) 64 [phi:main->ln#0] -- vbuaa=vbuc1
|
||||
@ -1007,23 +926,23 @@ main: {
|
||||
jsr ln
|
||||
//SEG13 main::@1
|
||||
b1:
|
||||
//SEG14 [6] (byte) char#2 ← ++ (byte~) ln::$0 [ ln::$0 ] ( main:2 [ ln::$0 ] ) -- vbuz1=_inc_vbuaa
|
||||
//SEG14 [6] (byte) char#2 ← ++ (byte) line#13 [ line#13 ] ( main:2 [ line#13 ] ) -- vbuz1=_inc_vbuaa
|
||||
sta char
|
||||
inc char
|
||||
//SEG15 [7] call ln param-assignment [ ln::$0 ] ( main:2 [ ln::$0 ] )
|
||||
//SEG15 [7] call ln param-assignment [ line#13 ] ( main:2 [ line#13 ] )
|
||||
//SEG16 [11] phi from main::@1 to ln [phi:main::@1->ln]
|
||||
ln_from_b1:
|
||||
//SEG17 [11] phi (byte) line#12 = (byte~) ln::$0 [phi:main::@1->ln#0] -- register_copy
|
||||
//SEG17 [11] phi (byte) line#12 = (byte) line#13 [phi:main::@1->ln#0] -- register_copy
|
||||
jsr ln
|
||||
//SEG18 main::@2
|
||||
b2:
|
||||
//SEG19 [8] (byte) char#4 ← ++ (byte~) ln::$0 [ ln::$0 ] ( main:2 [ ln::$0 ] ) -- vbuz1=_inc_vbuaa
|
||||
//SEG19 [8] (byte) char#4 ← ++ (byte) line#13 [ line#13 ] ( main:2 [ line#13 ] ) -- vbuz1=_inc_vbuaa
|
||||
sta char
|
||||
inc char
|
||||
//SEG20 [9] call ln param-assignment [ ] ( main:2 [ ] )
|
||||
//SEG21 [11] phi from main::@2 to ln [phi:main::@2->ln]
|
||||
ln_from_b2:
|
||||
//SEG22 [11] phi (byte) line#12 = (byte~) ln::$0 [phi:main::@2->ln#0] -- register_copy
|
||||
//SEG22 [11] phi (byte) line#12 = (byte) line#13 [phi:main::@2->ln#0] -- register_copy
|
||||
jsr ln
|
||||
//SEG23 main::@return
|
||||
breturn:
|
||||
@ -1032,12 +951,12 @@ main: {
|
||||
}
|
||||
//SEG25 ln
|
||||
ln: {
|
||||
//SEG26 [12] (byte~) ln::$0 ← (byte) line#12 + (byte/signed byte/word/signed word) 2 [ ln::$0 ] ( main:2::ln:5 [ ln::$0 ] main:2::ln:7 [ ln::$0 ] main:2::ln:9 [ ln::$0 ] ) -- vbuaa=vbuaa_plus_vbuc1
|
||||
//SEG26 [12] (byte) line#13 ← (byte) line#12 + (byte/signed byte/word/signed word) 2 [ line#13 ] ( main:2::ln:5 [ line#13 ] main:2::ln:7 [ line#13 ] main:2::ln:9 [ line#13 ] ) -- vbuaa=vbuaa_plus_vbuc1
|
||||
clc
|
||||
adc #2
|
||||
//SEG27 ln::@return
|
||||
breturn:
|
||||
//SEG28 [13] return [ ln::$0 ] ( main:2::ln:5 [ ln::$0 ] main:2::ln:7 [ ln::$0 ] main:2::ln:9 [ ln::$0 ] )
|
||||
//SEG28 [13] return [ line#13 ] ( main:2::ln:5 [ line#13 ] main:2::ln:7 [ line#13 ] main:2::ln:9 [ line#13 ] )
|
||||
rts
|
||||
}
|
||||
|
||||
@ -1065,7 +984,7 @@ b2:
|
||||
bend:
|
||||
//SEG9 main
|
||||
main: {
|
||||
//SEG10 [5] call ln param-assignment [ ln::$0 ] ( main:2 [ ln::$0 ] )
|
||||
//SEG10 [5] call ln param-assignment [ line#13 ] ( main:2 [ line#13 ] )
|
||||
//SEG11 [11] phi from main to ln [phi:main->ln]
|
||||
ln_from_main:
|
||||
//SEG12 [11] phi (byte) line#12 = (byte/signed byte/word/signed word) 64 [phi:main->ln#0] -- vbuaa=vbuc1
|
||||
@ -1073,23 +992,23 @@ main: {
|
||||
jsr ln
|
||||
//SEG13 main::@1
|
||||
b1:
|
||||
//SEG14 [6] (byte) char#2 ← ++ (byte~) ln::$0 [ ln::$0 ] ( main:2 [ ln::$0 ] ) -- vbuz1=_inc_vbuaa
|
||||
//SEG14 [6] (byte) char#2 ← ++ (byte) line#13 [ line#13 ] ( main:2 [ line#13 ] ) -- vbuz1=_inc_vbuaa
|
||||
sta char
|
||||
inc char
|
||||
//SEG15 [7] call ln param-assignment [ ln::$0 ] ( main:2 [ ln::$0 ] )
|
||||
//SEG15 [7] call ln param-assignment [ line#13 ] ( main:2 [ line#13 ] )
|
||||
//SEG16 [11] phi from main::@1 to ln [phi:main::@1->ln]
|
||||
ln_from_b1:
|
||||
//SEG17 [11] phi (byte) line#12 = (byte~) ln::$0 [phi:main::@1->ln#0] -- register_copy
|
||||
//SEG17 [11] phi (byte) line#12 = (byte) line#13 [phi:main::@1->ln#0] -- register_copy
|
||||
jsr ln
|
||||
//SEG18 main::@2
|
||||
b2:
|
||||
//SEG19 [8] (byte) char#4 ← ++ (byte~) ln::$0 [ ln::$0 ] ( main:2 [ ln::$0 ] ) -- vbuz1=_inc_vbuaa
|
||||
//SEG19 [8] (byte) char#4 ← ++ (byte) line#13 [ line#13 ] ( main:2 [ line#13 ] ) -- vbuz1=_inc_vbuaa
|
||||
sta char
|
||||
inc char
|
||||
//SEG20 [9] call ln param-assignment [ ] ( main:2 [ ] )
|
||||
//SEG21 [11] phi from main::@2 to ln [phi:main::@2->ln]
|
||||
ln_from_b2:
|
||||
//SEG22 [11] phi (byte) line#12 = (byte~) ln::$0 [phi:main::@2->ln#0] -- register_copy
|
||||
//SEG22 [11] phi (byte) line#12 = (byte) line#13 [phi:main::@2->ln#0] -- register_copy
|
||||
jsr ln
|
||||
//SEG23 main::@return
|
||||
breturn:
|
||||
@ -1098,12 +1017,12 @@ main: {
|
||||
}
|
||||
//SEG25 ln
|
||||
ln: {
|
||||
//SEG26 [12] (byte~) ln::$0 ← (byte) line#12 + (byte/signed byte/word/signed word) 2 [ ln::$0 ] ( main:2::ln:5 [ ln::$0 ] main:2::ln:7 [ ln::$0 ] main:2::ln:9 [ ln::$0 ] ) -- vbuaa=vbuaa_plus_vbuc1
|
||||
//SEG26 [12] (byte) line#13 ← (byte) line#12 + (byte/signed byte/word/signed word) 2 [ line#13 ] ( main:2::ln:5 [ line#13 ] main:2::ln:7 [ line#13 ] main:2::ln:9 [ line#13 ] ) -- vbuaa=vbuaa_plus_vbuc1
|
||||
clc
|
||||
adc #2
|
||||
//SEG27 ln::@return
|
||||
breturn:
|
||||
//SEG28 [13] return [ ln::$0 ] ( main:2::ln:5 [ ln::$0 ] main:2::ln:7 [ ln::$0 ] main:2::ln:9 [ ln::$0 ] )
|
||||
//SEG28 [13] return [ line#13 ] ( main:2::ln:5 [ line#13 ] main:2::ln:7 [ line#13 ] main:2::ln:9 [ line#13 ] )
|
||||
rts
|
||||
}
|
||||
|
||||
@ -1134,26 +1053,26 @@ ASSEMBLER
|
||||
//SEG8 @end
|
||||
//SEG9 main
|
||||
main: {
|
||||
//SEG10 [5] call ln param-assignment [ ln::$0 ] ( main:2 [ ln::$0 ] )
|
||||
//SEG10 [5] call ln param-assignment [ line#13 ] ( main:2 [ line#13 ] )
|
||||
//SEG11 [11] phi from main to ln [phi:main->ln]
|
||||
//SEG12 [11] phi (byte) line#12 = (byte/signed byte/word/signed word) 64 [phi:main->ln#0] -- vbuaa=vbuc1
|
||||
lda #$40
|
||||
jsr ln
|
||||
//SEG13 main::@1
|
||||
//SEG14 [6] (byte) char#2 ← ++ (byte~) ln::$0 [ ln::$0 ] ( main:2 [ ln::$0 ] ) -- vbuz1=_inc_vbuaa
|
||||
//SEG14 [6] (byte) char#2 ← ++ (byte) line#13 [ line#13 ] ( main:2 [ line#13 ] ) -- vbuz1=_inc_vbuaa
|
||||
sta char
|
||||
inc char
|
||||
//SEG15 [7] call ln param-assignment [ ln::$0 ] ( main:2 [ ln::$0 ] )
|
||||
//SEG15 [7] call ln param-assignment [ line#13 ] ( main:2 [ line#13 ] )
|
||||
//SEG16 [11] phi from main::@1 to ln [phi:main::@1->ln]
|
||||
//SEG17 [11] phi (byte) line#12 = (byte~) ln::$0 [phi:main::@1->ln#0] -- register_copy
|
||||
//SEG17 [11] phi (byte) line#12 = (byte) line#13 [phi:main::@1->ln#0] -- register_copy
|
||||
jsr ln
|
||||
//SEG18 main::@2
|
||||
//SEG19 [8] (byte) char#4 ← ++ (byte~) ln::$0 [ ln::$0 ] ( main:2 [ ln::$0 ] ) -- vbuz1=_inc_vbuaa
|
||||
//SEG19 [8] (byte) char#4 ← ++ (byte) line#13 [ line#13 ] ( main:2 [ line#13 ] ) -- vbuz1=_inc_vbuaa
|
||||
sta char
|
||||
inc char
|
||||
//SEG20 [9] call ln param-assignment [ ] ( main:2 [ ] )
|
||||
//SEG21 [11] phi from main::@2 to ln [phi:main::@2->ln]
|
||||
//SEG22 [11] phi (byte) line#12 = (byte~) ln::$0 [phi:main::@2->ln#0] -- register_copy
|
||||
//SEG22 [11] phi (byte) line#12 = (byte) line#13 [phi:main::@2->ln#0] -- register_copy
|
||||
jsr ln
|
||||
//SEG23 main::@return
|
||||
//SEG24 [10] return [ ] ( main:2 [ ] )
|
||||
@ -1161,11 +1080,11 @@ main: {
|
||||
}
|
||||
//SEG25 ln
|
||||
ln: {
|
||||
//SEG26 [12] (byte~) ln::$0 ← (byte) line#12 + (byte/signed byte/word/signed word) 2 [ ln::$0 ] ( main:2::ln:5 [ ln::$0 ] main:2::ln:7 [ ln::$0 ] main:2::ln:9 [ ln::$0 ] ) -- vbuaa=vbuaa_plus_vbuc1
|
||||
//SEG26 [12] (byte) line#13 ← (byte) line#12 + (byte/signed byte/word/signed word) 2 [ line#13 ] ( main:2::ln:5 [ line#13 ] main:2::ln:7 [ line#13 ] main:2::ln:9 [ line#13 ] ) -- vbuaa=vbuaa_plus_vbuc1
|
||||
clc
|
||||
adc #2
|
||||
//SEG27 ln::@return
|
||||
//SEG28 [13] return [ ln::$0 ] ( main:2::ln:5 [ ln::$0 ] main:2::ln:7 [ ln::$0 ] main:2::ln:9 [ ln::$0 ] )
|
||||
//SEG28 [13] return [ line#13 ] ( main:2::ln:5 [ line#13 ] main:2::ln:7 [ line#13 ] main:2::ln:9 [ line#13 ] )
|
||||
rts
|
||||
}
|
||||
|
||||
@ -1178,15 +1097,15 @@ FINAL SYMBOL TABLE
|
||||
(byte) char#4 char zp ZP_BYTE:2 20.0
|
||||
(byte) line
|
||||
(byte) line#12 reg byte a 6.0
|
||||
(byte) line#13 reg byte a 1.6666666666666665
|
||||
(void()) ln()
|
||||
(byte~) ln::$0 reg byte a 1.6666666666666665
|
||||
(label) ln::@return
|
||||
(void()) main()
|
||||
(label) main::@1
|
||||
(label) main::@2
|
||||
(label) main::@return
|
||||
|
||||
reg byte a [ line#12 ln::$0 ]
|
||||
reg byte a [ line#12 line#13 ]
|
||||
zp ZP_BYTE:2 [ char#2 char#4 ]
|
||||
|
||||
FINAL CODE
|
||||
@ -1206,26 +1125,26 @@ FINAL CODE
|
||||
//SEG8 @end
|
||||
//SEG9 main
|
||||
main: {
|
||||
//SEG10 [5] call ln param-assignment [ ln::$0 ] ( main:2 [ ln::$0 ] )
|
||||
//SEG10 [5] call ln param-assignment [ line#13 ] ( main:2 [ line#13 ] )
|
||||
//SEG11 [11] phi from main to ln [phi:main->ln]
|
||||
//SEG12 [11] phi (byte) line#12 = (byte/signed byte/word/signed word) 64 [phi:main->ln#0] -- vbuaa=vbuc1
|
||||
lda #$40
|
||||
jsr ln
|
||||
//SEG13 main::@1
|
||||
//SEG14 [6] (byte) char#2 ← ++ (byte~) ln::$0 [ ln::$0 ] ( main:2 [ ln::$0 ] ) -- vbuz1=_inc_vbuaa
|
||||
//SEG14 [6] (byte) char#2 ← ++ (byte) line#13 [ line#13 ] ( main:2 [ line#13 ] ) -- vbuz1=_inc_vbuaa
|
||||
sta char
|
||||
inc char
|
||||
//SEG15 [7] call ln param-assignment [ ln::$0 ] ( main:2 [ ln::$0 ] )
|
||||
//SEG15 [7] call ln param-assignment [ line#13 ] ( main:2 [ line#13 ] )
|
||||
//SEG16 [11] phi from main::@1 to ln [phi:main::@1->ln]
|
||||
//SEG17 [11] phi (byte) line#12 = (byte~) ln::$0 [phi:main::@1->ln#0] -- register_copy
|
||||
//SEG17 [11] phi (byte) line#12 = (byte) line#13 [phi:main::@1->ln#0] -- register_copy
|
||||
jsr ln
|
||||
//SEG18 main::@2
|
||||
//SEG19 [8] (byte) char#4 ← ++ (byte~) ln::$0 [ ln::$0 ] ( main:2 [ ln::$0 ] ) -- vbuz1=_inc_vbuaa
|
||||
//SEG19 [8] (byte) char#4 ← ++ (byte) line#13 [ line#13 ] ( main:2 [ line#13 ] ) -- vbuz1=_inc_vbuaa
|
||||
sta char
|
||||
inc char
|
||||
//SEG20 [9] call ln param-assignment [ ] ( main:2 [ ] )
|
||||
//SEG21 [11] phi from main::@2 to ln [phi:main::@2->ln]
|
||||
//SEG22 [11] phi (byte) line#12 = (byte~) ln::$0 [phi:main::@2->ln#0] -- register_copy
|
||||
//SEG22 [11] phi (byte) line#12 = (byte) line#13 [phi:main::@2->ln#0] -- register_copy
|
||||
jsr ln
|
||||
//SEG23 main::@return
|
||||
//SEG24 [10] return [ ] ( main:2 [ ] )
|
||||
@ -1233,11 +1152,11 @@ main: {
|
||||
}
|
||||
//SEG25 ln
|
||||
ln: {
|
||||
//SEG26 [12] (byte~) ln::$0 ← (byte) line#12 + (byte/signed byte/word/signed word) 2 [ ln::$0 ] ( main:2::ln:5 [ ln::$0 ] main:2::ln:7 [ ln::$0 ] main:2::ln:9 [ ln::$0 ] ) -- vbuaa=vbuaa_plus_vbuc1
|
||||
//SEG26 [12] (byte) line#13 ← (byte) line#12 + (byte/signed byte/word/signed word) 2 [ line#13 ] ( main:2::ln:5 [ line#13 ] main:2::ln:7 [ line#13 ] main:2::ln:9 [ line#13 ] ) -- vbuaa=vbuaa_plus_vbuc1
|
||||
clc
|
||||
adc #2
|
||||
//SEG27 ln::@return
|
||||
//SEG28 [13] return [ ln::$0 ] ( main:2::ln:5 [ ln::$0 ] main:2::ln:7 [ ln::$0 ] main:2::ln:9 [ ln::$0 ] )
|
||||
//SEG28 [13] return [ line#13 ] ( main:2::ln:5 [ line#13 ] main:2::ln:7 [ line#13 ] main:2::ln:9 [ line#13 ] )
|
||||
rts
|
||||
}
|
||||
|
||||
|
@ -6,13 +6,13 @@
|
||||
(byte) char#4 char zp ZP_BYTE:2 20.0
|
||||
(byte) line
|
||||
(byte) line#12 reg byte a 6.0
|
||||
(byte) line#13 reg byte a 1.6666666666666665
|
||||
(void()) ln()
|
||||
(byte~) ln::$0 reg byte a 1.6666666666666665
|
||||
(label) ln::@return
|
||||
(void()) main()
|
||||
(label) main::@1
|
||||
(label) main::@2
|
||||
(label) main::@return
|
||||
|
||||
reg byte a [ line#12 ln::$0 ]
|
||||
reg byte a [ line#12 line#13 ]
|
||||
zp ZP_BYTE:2 [ char#2 char#4 ]
|
||||
|
@ -22,9 +22,9 @@ main: {
|
||||
lda #>$400
|
||||
sta line_cursor+1
|
||||
jsr print_ln
|
||||
lda print_ln._0
|
||||
lda line_cursor
|
||||
sta char_cursor
|
||||
lda print_ln._0+1
|
||||
lda line_cursor+1
|
||||
sta char_cursor+1
|
||||
lda #<msg2
|
||||
sta print_str.str
|
||||
@ -32,9 +32,9 @@ main: {
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
jsr print_ln
|
||||
lda print_ln._0
|
||||
lda line_cursor
|
||||
sta char_cursor
|
||||
lda print_ln._0+1
|
||||
lda line_cursor+1
|
||||
sta char_cursor+1
|
||||
lda #<msg3
|
||||
sta print_str.str
|
||||
@ -45,20 +45,19 @@ main: {
|
||||
rts
|
||||
}
|
||||
print_ln: {
|
||||
.label _0 = 2
|
||||
b1:
|
||||
lda _0
|
||||
lda line_cursor
|
||||
clc
|
||||
adc #$28
|
||||
sta _0
|
||||
sta line_cursor
|
||||
bcc !+
|
||||
inc _0+1
|
||||
inc line_cursor+1
|
||||
!:
|
||||
lda _0+1
|
||||
lda line_cursor+1
|
||||
cmp char_cursor+1
|
||||
bcc b1
|
||||
bne !+
|
||||
lda _0
|
||||
lda line_cursor
|
||||
cmp char_cursor
|
||||
bcc b1
|
||||
!:
|
||||
|
@ -13,52 +13,52 @@ main: scope:[main] from @6
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main
|
||||
[6] phi() [ char_cursor#13 ] ( main:2 [ char_cursor#13 ] )
|
||||
[7] call print_ln param-assignment [ print_ln::$0 ] ( main:2 [ print_ln::$0 ] )
|
||||
[7] call print_ln param-assignment [ line_cursor#1 ] ( main:2 [ line_cursor#1 ] )
|
||||
to:main::@2
|
||||
main::@2: scope:[main] from main::@1
|
||||
[8] (byte*~) char_cursor#34 ← (byte*~) print_ln::$0 [ char_cursor#34 print_ln::$0 ] ( main:2 [ char_cursor#34 print_ln::$0 ] )
|
||||
[9] call print_str param-assignment [ print_ln::$0 char_cursor#13 ] ( main:2 [ print_ln::$0 char_cursor#13 ] )
|
||||
[8] (byte*~) char_cursor#31 ← (byte*) line_cursor#1 [ char_cursor#31 line_cursor#1 ] ( main:2 [ char_cursor#31 line_cursor#1 ] )
|
||||
[9] call print_str param-assignment [ line_cursor#1 char_cursor#13 ] ( main:2 [ line_cursor#1 char_cursor#13 ] )
|
||||
to:main::@3
|
||||
main::@3: scope:[main] from main::@2
|
||||
[10] phi() [ print_ln::$0 char_cursor#13 ] ( main:2 [ print_ln::$0 char_cursor#13 ] )
|
||||
[11] call print_ln param-assignment [ print_ln::$0 ] ( main:2 [ print_ln::$0 ] )
|
||||
[10] phi() [ line_cursor#1 char_cursor#13 ] ( main:2 [ line_cursor#1 char_cursor#13 ] )
|
||||
[11] call print_ln param-assignment [ line_cursor#1 ] ( main:2 [ line_cursor#1 ] )
|
||||
to:main::@4
|
||||
main::@4: scope:[main] from main::@3
|
||||
[12] (byte*~) char_cursor#35 ← (byte*~) print_ln::$0 [ print_ln::$0 char_cursor#35 ] ( main:2 [ print_ln::$0 char_cursor#35 ] )
|
||||
[13] call print_str param-assignment [ print_ln::$0 char_cursor#13 ] ( main:2 [ print_ln::$0 char_cursor#13 ] )
|
||||
[12] (byte*~) char_cursor#32 ← (byte*) line_cursor#1 [ line_cursor#1 char_cursor#32 ] ( main:2 [ line_cursor#1 char_cursor#32 ] )
|
||||
[13] call print_str param-assignment [ line_cursor#1 char_cursor#13 ] ( main:2 [ line_cursor#1 char_cursor#13 ] )
|
||||
to:main::@5
|
||||
main::@5: scope:[main] from main::@4
|
||||
[14] phi() [ print_ln::$0 char_cursor#13 ] ( main:2 [ print_ln::$0 char_cursor#13 ] )
|
||||
[14] phi() [ line_cursor#1 char_cursor#13 ] ( main:2 [ line_cursor#1 char_cursor#13 ] )
|
||||
[15] call print_ln param-assignment [ ] ( main:2 [ ] )
|
||||
to:main::@return
|
||||
main::@return: scope:[main] from main::@5
|
||||
[16] return [ ] ( main:2 [ ] )
|
||||
to:@return
|
||||
print_ln: scope:[print_ln] from main::@1 main::@3 main::@5
|
||||
[17] (byte*) line_cursor#16 ← phi( main::@1/((byte*))(word/signed word) 1024 main::@3/(byte*~) print_ln::$0 main::@5/(byte*~) print_ln::$0 ) [ line_cursor#16 char_cursor#13 ] ( main:2::print_ln:7 [ line_cursor#16 char_cursor#13 ] main:2::print_ln:11 [ line_cursor#16 char_cursor#13 ] main:2::print_ln:15 [ line_cursor#16 char_cursor#13 ] )
|
||||
[17] (byte*) line_cursor#16 ← phi( main::@1/((byte*))(word/signed word) 1024 main::@3/(byte*) line_cursor#1 main::@5/(byte*) line_cursor#1 ) [ line_cursor#16 char_cursor#13 ] ( main:2::print_ln:7 [ line_cursor#16 char_cursor#13 ] main:2::print_ln:11 [ line_cursor#16 char_cursor#13 ] main:2::print_ln:15 [ line_cursor#16 char_cursor#13 ] )
|
||||
to:print_ln::@1
|
||||
print_ln::@1: scope:[print_ln] from print_ln print_ln::@1
|
||||
[18] (byte*) line_cursor#8 ← phi( print_ln/(byte*) line_cursor#16 print_ln::@1/(byte*~) print_ln::$0 ) [ line_cursor#8 char_cursor#13 ] ( main:2::print_ln:7 [ line_cursor#8 char_cursor#13 ] main:2::print_ln:11 [ line_cursor#8 char_cursor#13 ] main:2::print_ln:15 [ line_cursor#8 char_cursor#13 ] )
|
||||
[19] (byte*~) print_ln::$0 ← (byte*) line_cursor#8 + (byte/signed byte/word/signed word) 40 [ print_ln::$0 char_cursor#13 ] ( main:2::print_ln:7 [ print_ln::$0 char_cursor#13 ] main:2::print_ln:11 [ print_ln::$0 char_cursor#13 ] main:2::print_ln:15 [ print_ln::$0 char_cursor#13 ] )
|
||||
[20] if((byte*~) print_ln::$0<(byte*) char_cursor#13) goto print_ln::@1 [ print_ln::$0 char_cursor#13 ] ( main:2::print_ln:7 [ print_ln::$0 char_cursor#13 ] main:2::print_ln:11 [ print_ln::$0 char_cursor#13 ] main:2::print_ln:15 [ print_ln::$0 char_cursor#13 ] )
|
||||
[18] (byte*) line_cursor#8 ← phi( print_ln/(byte*) line_cursor#16 print_ln::@1/(byte*) line_cursor#1 ) [ line_cursor#8 char_cursor#13 ] ( main:2::print_ln:7 [ line_cursor#8 char_cursor#13 ] main:2::print_ln:11 [ line_cursor#8 char_cursor#13 ] main:2::print_ln:15 [ line_cursor#8 char_cursor#13 ] )
|
||||
[19] (byte*) line_cursor#1 ← (byte*) line_cursor#8 + (byte/signed byte/word/signed word) 40 [ line_cursor#1 char_cursor#13 ] ( main:2::print_ln:7 [ line_cursor#1 char_cursor#13 ] main:2::print_ln:11 [ line_cursor#1 char_cursor#13 ] main:2::print_ln:15 [ line_cursor#1 char_cursor#13 ] )
|
||||
[20] if((byte*) line_cursor#1<(byte*) char_cursor#13) goto print_ln::@1 [ line_cursor#1 char_cursor#13 ] ( main:2::print_ln:7 [ line_cursor#1 char_cursor#13 ] main:2::print_ln:11 [ line_cursor#1 char_cursor#13 ] main:2::print_ln:15 [ line_cursor#1 char_cursor#13 ] )
|
||||
to:print_ln::@return
|
||||
print_ln::@return: scope:[print_ln] from print_ln::@1
|
||||
[21] return [ print_ln::$0 ] ( main:2::print_ln:7 [ print_ln::$0 ] main:2::print_ln:11 [ print_ln::$0 ] main:2::print_ln:15 [ print_ln::$0 ] )
|
||||
[21] return [ line_cursor#1 ] ( main:2::print_ln:7 [ line_cursor#1 ] main:2::print_ln:11 [ line_cursor#1 ] main:2::print_ln:15 [ line_cursor#1 ] )
|
||||
to:@return
|
||||
print_str: scope:[print_str] from main main::@2 main::@4
|
||||
[22] (byte*) char_cursor#29 ← phi( main/((byte*))(word/signed word) 1024 main::@2/(byte*~) char_cursor#34 main::@4/(byte*~) char_cursor#35 ) [ print_str::str#6 char_cursor#29 ] ( main:2::print_str:5 [ print_str::str#6 char_cursor#29 ] main:2::print_str:9 [ print_ln::$0 print_str::str#6 char_cursor#29 ] main:2::print_str:13 [ print_ln::$0 print_str::str#6 char_cursor#29 ] )
|
||||
[22] (byte*) print_str::str#6 ← phi( main/(const byte[]) msg#0 main::@2/(const byte[]) msg2#0 main::@4/(const byte[]) msg3#0 ) [ print_str::str#6 char_cursor#29 ] ( main:2::print_str:5 [ print_str::str#6 char_cursor#29 ] main:2::print_str:9 [ print_ln::$0 print_str::str#6 char_cursor#29 ] main:2::print_str:13 [ print_ln::$0 print_str::str#6 char_cursor#29 ] )
|
||||
[22] (byte*) char_cursor#29 ← phi( main/((byte*))(word/signed word) 1024 main::@2/(byte*~) char_cursor#31 main::@4/(byte*~) char_cursor#32 ) [ print_str::str#6 char_cursor#29 ] ( main:2::print_str:5 [ print_str::str#6 char_cursor#29 ] main:2::print_str:9 [ line_cursor#1 print_str::str#6 char_cursor#29 ] main:2::print_str:13 [ line_cursor#1 print_str::str#6 char_cursor#29 ] )
|
||||
[22] (byte*) print_str::str#6 ← phi( main/(const byte[]) msg#0 main::@2/(const byte[]) msg2#0 main::@4/(const byte[]) msg3#0 ) [ print_str::str#6 char_cursor#29 ] ( main:2::print_str:5 [ print_str::str#6 char_cursor#29 ] main:2::print_str:9 [ line_cursor#1 print_str::str#6 char_cursor#29 ] main:2::print_str:13 [ line_cursor#1 print_str::str#6 char_cursor#29 ] )
|
||||
to:print_str::@1
|
||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||
[23] (byte*) char_cursor#13 ← phi( print_str/(byte*) char_cursor#29 print_str::@2/(byte*) char_cursor#1 ) [ char_cursor#13 print_str::str#4 ] ( main:2::print_str:5 [ char_cursor#13 print_str::str#4 ] main:2::print_str:9 [ print_ln::$0 char_cursor#13 print_str::str#4 ] main:2::print_str:13 [ print_ln::$0 char_cursor#13 print_str::str#4 ] )
|
||||
[23] (byte*) print_str::str#4 ← phi( print_str/(byte*) print_str::str#6 print_str::@2/(byte*) print_str::str#0 ) [ char_cursor#13 print_str::str#4 ] ( main:2::print_str:5 [ char_cursor#13 print_str::str#4 ] main:2::print_str:9 [ print_ln::$0 char_cursor#13 print_str::str#4 ] main:2::print_str:13 [ print_ln::$0 char_cursor#13 print_str::str#4 ] )
|
||||
[24] if(*((byte*) print_str::str#4)!=(byte) '@') goto print_str::@2 [ char_cursor#13 print_str::str#4 ] ( main:2::print_str:5 [ char_cursor#13 print_str::str#4 ] main:2::print_str:9 [ print_ln::$0 char_cursor#13 print_str::str#4 ] main:2::print_str:13 [ print_ln::$0 char_cursor#13 print_str::str#4 ] )
|
||||
[23] (byte*) char_cursor#13 ← phi( print_str/(byte*) char_cursor#29 print_str::@2/(byte*) char_cursor#1 ) [ char_cursor#13 print_str::str#4 ] ( main:2::print_str:5 [ char_cursor#13 print_str::str#4 ] main:2::print_str:9 [ line_cursor#1 char_cursor#13 print_str::str#4 ] main:2::print_str:13 [ line_cursor#1 char_cursor#13 print_str::str#4 ] )
|
||||
[23] (byte*) print_str::str#4 ← phi( print_str/(byte*) print_str::str#6 print_str::@2/(byte*) print_str::str#0 ) [ char_cursor#13 print_str::str#4 ] ( main:2::print_str:5 [ char_cursor#13 print_str::str#4 ] main:2::print_str:9 [ line_cursor#1 char_cursor#13 print_str::str#4 ] main:2::print_str:13 [ line_cursor#1 char_cursor#13 print_str::str#4 ] )
|
||||
[24] if(*((byte*) print_str::str#4)!=(byte) '@') goto print_str::@2 [ char_cursor#13 print_str::str#4 ] ( main:2::print_str:5 [ char_cursor#13 print_str::str#4 ] main:2::print_str:9 [ line_cursor#1 char_cursor#13 print_str::str#4 ] main:2::print_str:13 [ line_cursor#1 char_cursor#13 print_str::str#4 ] )
|
||||
to:print_str::@return
|
||||
print_str::@return: scope:[print_str] from print_str::@1
|
||||
[25] return [ char_cursor#13 ] ( main:2::print_str:5 [ char_cursor#13 ] main:2::print_str:9 [ print_ln::$0 char_cursor#13 ] main:2::print_str:13 [ print_ln::$0 char_cursor#13 ] )
|
||||
[25] return [ char_cursor#13 ] ( main:2::print_str:5 [ char_cursor#13 ] main:2::print_str:9 [ line_cursor#1 char_cursor#13 ] main:2::print_str:13 [ line_cursor#1 char_cursor#13 ] )
|
||||
to:@return
|
||||
print_str::@2: scope:[print_str] from print_str::@1
|
||||
[26] *((byte*) char_cursor#13) ← *((byte*) print_str::str#4) [ char_cursor#13 print_str::str#4 ] ( main:2::print_str:5 [ char_cursor#13 print_str::str#4 ] main:2::print_str:9 [ print_ln::$0 char_cursor#13 print_str::str#4 ] main:2::print_str:13 [ print_ln::$0 char_cursor#13 print_str::str#4 ] )
|
||||
[27] (byte*) char_cursor#1 ← ++ (byte*) char_cursor#13 [ print_str::str#4 char_cursor#1 ] ( main:2::print_str:5 [ print_str::str#4 char_cursor#1 ] main:2::print_str:9 [ print_ln::$0 print_str::str#4 char_cursor#1 ] main:2::print_str:13 [ print_ln::$0 print_str::str#4 char_cursor#1 ] )
|
||||
[28] (byte*) print_str::str#0 ← ++ (byte*) print_str::str#4 [ print_str::str#0 char_cursor#1 ] ( main:2::print_str:5 [ print_str::str#0 char_cursor#1 ] main:2::print_str:9 [ print_ln::$0 print_str::str#0 char_cursor#1 ] main:2::print_str:13 [ print_ln::$0 print_str::str#0 char_cursor#1 ] )
|
||||
[26] *((byte*) char_cursor#13) ← *((byte*) print_str::str#4) [ char_cursor#13 print_str::str#4 ] ( main:2::print_str:5 [ char_cursor#13 print_str::str#4 ] main:2::print_str:9 [ line_cursor#1 char_cursor#13 print_str::str#4 ] main:2::print_str:13 [ line_cursor#1 char_cursor#13 print_str::str#4 ] )
|
||||
[27] (byte*) char_cursor#1 ← ++ (byte*) char_cursor#13 [ print_str::str#4 char_cursor#1 ] ( main:2::print_str:5 [ print_str::str#4 char_cursor#1 ] main:2::print_str:9 [ line_cursor#1 print_str::str#4 char_cursor#1 ] main:2::print_str:13 [ line_cursor#1 print_str::str#4 char_cursor#1 ] )
|
||||
[28] (byte*) print_str::str#0 ← ++ (byte*) print_str::str#4 [ print_str::str#0 char_cursor#1 ] ( main:2::print_str:5 [ print_str::str#0 char_cursor#1 ] main:2::print_str:9 [ line_cursor#1 print_str::str#0 char_cursor#1 ] main:2::print_str:13 [ line_cursor#1 print_str::str#0 char_cursor#1 ] )
|
||||
to:print_str::@1
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -5,9 +5,10 @@
|
||||
(byte*) char_cursor#1 char_cursor zp ZP_WORD:6 11.0
|
||||
(byte*) char_cursor#13 char_cursor zp ZP_WORD:6 3.2857142857142856
|
||||
(byte*) char_cursor#29 char_cursor zp ZP_WORD:6 6.0
|
||||
(byte*~) char_cursor#34 char_cursor zp ZP_WORD:6 4.0
|
||||
(byte*~) char_cursor#35 char_cursor zp ZP_WORD:6 4.0
|
||||
(byte*~) char_cursor#31 char_cursor zp ZP_WORD:6 4.0
|
||||
(byte*~) char_cursor#32 char_cursor zp ZP_WORD:6 4.0
|
||||
(byte*) line_cursor
|
||||
(byte*) line_cursor#1 line_cursor zp ZP_WORD:2 3.7272727272727275
|
||||
(byte*) line_cursor#16 line_cursor zp ZP_WORD:2 6.0
|
||||
(byte*) line_cursor#8 line_cursor zp ZP_WORD:2 24.0
|
||||
(void()) main()
|
||||
@ -24,7 +25,6 @@
|
||||
(byte[]) msg3
|
||||
(const byte[]) msg3#0 msg3 = (string) "hello 2017! @"
|
||||
(void()) print_ln()
|
||||
(byte*~) print_ln::$0 $0 zp ZP_WORD:2 3.7272727272727275
|
||||
(label) print_ln::@1
|
||||
(label) print_ln::@return
|
||||
(void()) print_str((byte*) print_str::str)
|
||||
@ -36,6 +36,6 @@
|
||||
(byte*) print_str::str#4 str zp ZP_WORD:4 11.5
|
||||
(byte*) print_str::str#6 str zp ZP_WORD:4 2.0
|
||||
|
||||
zp ZP_WORD:2 [ line_cursor#8 line_cursor#16 print_ln::$0 ]
|
||||
zp ZP_WORD:2 [ line_cursor#8 line_cursor#16 line_cursor#1 ]
|
||||
zp ZP_WORD:4 [ print_str::str#4 print_str::str#6 print_str::str#0 ]
|
||||
zp ZP_WORD:6 [ char_cursor#13 char_cursor#29 char_cursor#34 char_cursor#35 char_cursor#1 ]
|
||||
zp ZP_WORD:6 [ char_cursor#13 char_cursor#29 char_cursor#31 char_cursor#32 char_cursor#1 ]
|
||||
|
@ -50,12 +50,10 @@ scroll_soft: {
|
||||
}
|
||||
scroll_bit: {
|
||||
.label _4 = 9
|
||||
.label _5 = 3
|
||||
.label c = 9
|
||||
.label sc = 5
|
||||
lsr current_bit
|
||||
lda current_bit
|
||||
lsr
|
||||
sta current_bit
|
||||
bne b1
|
||||
jsr next_char
|
||||
sta c
|
||||
@ -70,10 +68,10 @@ scroll_bit: {
|
||||
lda #<CHARGEN
|
||||
clc
|
||||
adc _4
|
||||
sta _5
|
||||
sta current_chargen
|
||||
lda #>CHARGEN
|
||||
adc _4+1
|
||||
sta _5+1
|
||||
sta current_chargen+1
|
||||
lda #$80
|
||||
sta current_bit
|
||||
b1:
|
||||
|
@ -51,107 +51,105 @@ scroll_soft::@return: scope:[scroll_soft] from scroll_soft::@1
|
||||
[20] return [ scroll#10 current_bit#12 nxt#14 current_chargen#11 ] ( main:2::scroll_soft:10 [ scroll#10 current_bit#12 nxt#14 current_chargen#11 ] )
|
||||
to:@return
|
||||
scroll_bit: scope:[scroll_bit] from scroll_soft::@2
|
||||
[21] (byte~) scroll_bit::$0 ← (byte) current_bit#29 >> (byte/signed byte/word/signed word) 1 [ nxt#31 current_chargen#27 scroll_bit::$0 ] ( main:2::scroll_soft:10::scroll_bit:17 [ nxt#31 current_chargen#27 scroll_bit::$0 ] )
|
||||
[22] (byte) current_bit#5 ← (byte~) scroll_bit::$0 [ nxt#31 current_chargen#27 current_bit#5 ] ( main:2::scroll_soft:10::scroll_bit:17 [ nxt#31 current_chargen#27 current_bit#5 ] )
|
||||
[23] if((byte) current_bit#5!=(byte/signed byte/word/signed word) 0) goto scroll_bit::@1 [ nxt#31 current_chargen#27 current_bit#5 ] ( main:2::scroll_soft:10::scroll_bit:17 [ nxt#31 current_chargen#27 current_bit#5 ] )
|
||||
[21] (byte) current_bit#5 ← (byte) current_bit#29 >> (byte/signed byte/word/signed word) 1 [ nxt#31 current_chargen#27 current_bit#5 ] ( main:2::scroll_soft:10::scroll_bit:17 [ nxt#31 current_chargen#27 current_bit#5 ] )
|
||||
[22] if((byte) current_bit#5!=(byte/signed byte/word/signed word) 0) goto scroll_bit::@1 [ nxt#31 current_chargen#27 current_bit#5 ] ( main:2::scroll_soft:10::scroll_bit:17 [ nxt#31 current_chargen#27 current_bit#5 ] )
|
||||
to:scroll_bit::@4
|
||||
scroll_bit::@4: scope:[scroll_bit] from scroll_bit
|
||||
[24] phi() [ nxt#31 ] ( main:2::scroll_soft:10::scroll_bit:17 [ nxt#31 ] )
|
||||
[25] call next_char param-assignment [ next_char::c#2 nxt#19 ] ( main:2::scroll_soft:10::scroll_bit:17 [ next_char::c#2 nxt#19 ] )
|
||||
[26] (byte) next_char::return#0 ← (byte) next_char::c#2 [ next_char::return#0 nxt#19 ] ( main:2::scroll_soft:10::scroll_bit:17 [ next_char::return#0 nxt#19 ] )
|
||||
[23] phi() [ nxt#31 ] ( main:2::scroll_soft:10::scroll_bit:17 [ nxt#31 ] )
|
||||
[24] call next_char param-assignment [ next_char::return#1 nxt#19 ] ( main:2::scroll_soft:10::scroll_bit:17 [ next_char::return#1 nxt#19 ] )
|
||||
[25] (byte) next_char::return#0 ← (byte) next_char::return#1 [ next_char::return#0 nxt#19 ] ( main:2::scroll_soft:10::scroll_bit:17 [ next_char::return#0 nxt#19 ] )
|
||||
to:scroll_bit::@8
|
||||
scroll_bit::@8: scope:[scroll_bit] from scroll_bit::@4
|
||||
[27] (byte~) scroll_bit::$3 ← (byte) next_char::return#0 [ scroll_bit::$3 nxt#19 ] ( main:2::scroll_soft:10::scroll_bit:17 [ scroll_bit::$3 nxt#19 ] )
|
||||
[28] (word) scroll_bit::c#0 ← ((word)) (byte~) scroll_bit::$3 [ scroll_bit::c#0 nxt#19 ] ( main:2::scroll_soft:10::scroll_bit:17 [ scroll_bit::c#0 nxt#19 ] )
|
||||
[29] (word~) scroll_bit::$4 ← (word) scroll_bit::c#0 << (byte/signed byte/word/signed word) 3 [ scroll_bit::$4 nxt#19 ] ( main:2::scroll_soft:10::scroll_bit:17 [ scroll_bit::$4 nxt#19 ] )
|
||||
[30] (byte*~) scroll_bit::$5 ← (const byte*) CHARGEN#0 + (word~) scroll_bit::$4 [ scroll_bit::$5 nxt#19 ] ( main:2::scroll_soft:10::scroll_bit:17 [ scroll_bit::$5 nxt#19 ] )
|
||||
[31] (byte*) current_chargen#5 ← (byte*~) scroll_bit::$5 [ current_chargen#5 nxt#19 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_chargen#5 nxt#19 ] )
|
||||
[26] (byte~) scroll_bit::$3 ← (byte) next_char::return#0 [ scroll_bit::$3 nxt#19 ] ( main:2::scroll_soft:10::scroll_bit:17 [ scroll_bit::$3 nxt#19 ] )
|
||||
[27] (word) scroll_bit::c#0 ← ((word)) (byte~) scroll_bit::$3 [ scroll_bit::c#0 nxt#19 ] ( main:2::scroll_soft:10::scroll_bit:17 [ scroll_bit::c#0 nxt#19 ] )
|
||||
[28] (word~) scroll_bit::$4 ← (word) scroll_bit::c#0 << (byte/signed byte/word/signed word) 3 [ scroll_bit::$4 nxt#19 ] ( main:2::scroll_soft:10::scroll_bit:17 [ scroll_bit::$4 nxt#19 ] )
|
||||
[29] (byte*) current_chargen#5 ← (const byte*) CHARGEN#0 + (word~) scroll_bit::$4 [ current_chargen#5 nxt#19 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_chargen#5 nxt#19 ] )
|
||||
to:scroll_bit::@1
|
||||
scroll_bit::@1: scope:[scroll_bit] from scroll_bit scroll_bit::@8
|
||||
[32] (byte*) nxt#36 ← phi( scroll_bit/(byte*) nxt#31 scroll_bit::@8/(byte*) nxt#19 ) [ current_bit#21 nxt#36 current_chargen#19 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_bit#21 nxt#36 current_chargen#19 ] )
|
||||
[32] (byte) current_bit#21 ← phi( scroll_bit/(byte) current_bit#5 scroll_bit::@8/(byte/word/signed word) 128 ) [ current_bit#21 nxt#36 current_chargen#19 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_bit#21 nxt#36 current_chargen#19 ] )
|
||||
[32] (byte*) current_chargen#19 ← phi( scroll_bit/(byte*) current_chargen#27 scroll_bit::@8/(byte*) current_chargen#5 ) [ current_bit#21 nxt#36 current_chargen#19 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_bit#21 nxt#36 current_chargen#19 ] )
|
||||
[33] call scroll_hard param-assignment [ current_bit#21 nxt#36 current_chargen#19 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_bit#21 nxt#36 current_chargen#19 ] )
|
||||
[30] (byte*) nxt#36 ← phi( scroll_bit/(byte*) nxt#31 scroll_bit::@8/(byte*) nxt#19 ) [ current_bit#21 nxt#36 current_chargen#19 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_bit#21 nxt#36 current_chargen#19 ] )
|
||||
[30] (byte) current_bit#21 ← phi( scroll_bit/(byte) current_bit#5 scroll_bit::@8/(byte/word/signed word) 128 ) [ current_bit#21 nxt#36 current_chargen#19 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_bit#21 nxt#36 current_chargen#19 ] )
|
||||
[30] (byte*) current_chargen#19 ← phi( scroll_bit/(byte*) current_chargen#27 scroll_bit::@8/(byte*) current_chargen#5 ) [ current_bit#21 nxt#36 current_chargen#19 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_bit#21 nxt#36 current_chargen#19 ] )
|
||||
[31] call scroll_hard param-assignment [ current_bit#21 nxt#36 current_chargen#19 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_bit#21 nxt#36 current_chargen#19 ] )
|
||||
to:scroll_bit::@7
|
||||
scroll_bit::@7: scope:[scroll_bit] from scroll_bit::@1
|
||||
asm { sei }
|
||||
[35] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word) 50 [ current_bit#21 nxt#36 current_chargen#19 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_bit#21 nxt#36 current_chargen#19 ] )
|
||||
[33] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word) 50 [ current_bit#21 nxt#36 current_chargen#19 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_bit#21 nxt#36 current_chargen#19 ] )
|
||||
to:scroll_bit::@2
|
||||
scroll_bit::@2: scope:[scroll_bit] from scroll_bit::@3 scroll_bit::@7
|
||||
[36] (byte*) scroll_bit::sc#2 ← phi( scroll_bit::@3/(byte*) scroll_bit::sc#1 scroll_bit::@7/(const byte*) SCREEN#0+(byte/signed byte/word/signed word) 40+(byte/signed byte/word/signed word) 39 ) [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 ] )
|
||||
[36] (byte) scroll_bit::r#2 ← phi( scroll_bit::@3/(byte) scroll_bit::r#1 scroll_bit::@7/(byte/signed byte/word/signed word) 0 ) [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 ] )
|
||||
[37] (byte) scroll_bit::bits#0 ← (byte*) current_chargen#19 *idx (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 ] )
|
||||
[38] (byte~) scroll_bit::$10 ← (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::$10 ] ( 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::$10 ] )
|
||||
[39] if((byte~) scroll_bit::$10==(byte/signed byte/word/signed word) 0) goto scroll_bit::@3 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 ] )
|
||||
[34] (byte*) scroll_bit::sc#2 ← phi( scroll_bit::@3/(byte*) scroll_bit::sc#1 scroll_bit::@7/(const byte*) SCREEN#0+(byte/signed byte/word/signed word) 40+(byte/signed byte/word/signed word) 39 ) [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 ] )
|
||||
[34] (byte) scroll_bit::r#2 ← phi( scroll_bit::@3/(byte) scroll_bit::r#1 scroll_bit::@7/(byte/signed byte/word/signed word) 0 ) [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 ] )
|
||||
[35] (byte) scroll_bit::bits#0 ← (byte*) current_chargen#19 *idx (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 ] )
|
||||
[36] (byte~) scroll_bit::$10 ← (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::$10 ] ( 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::$10 ] )
|
||||
[37] if((byte~) scroll_bit::$10==(byte/signed byte/word/signed word) 0) goto scroll_bit::@3 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 ] )
|
||||
to:scroll_bit::@5
|
||||
scroll_bit::@5: scope:[scroll_bit] from scroll_bit::@2
|
||||
[40] phi() [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 ] )
|
||||
[38] phi() [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 ] )
|
||||
to:scroll_bit::@3
|
||||
scroll_bit::@3: scope:[scroll_bit] from scroll_bit::@2 scroll_bit::@5
|
||||
[41] (byte) scroll_bit::b#2 ← phi( scroll_bit::@2/(byte) ' ' scroll_bit::@5/(byte/word/signed word) 128+(byte) ' ' ) [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 scroll_bit::b#2 ] ( 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::b#2 ] )
|
||||
[42] *((byte*) scroll_bit::sc#2) ← (byte) scroll_bit::b#2 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 ] )
|
||||
[43] (byte*) scroll_bit::sc#1 ← (byte*) scroll_bit::sc#2 + (byte/signed byte/word/signed word) 40 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#1 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#1 ] )
|
||||
[44] (byte) scroll_bit::r#1 ← ++ (byte) scroll_bit::r#2 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#1 scroll_bit::sc#1 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#1 scroll_bit::sc#1 ] )
|
||||
[45] if((byte) scroll_bit::r#1!=(byte/signed byte/word/signed word) 8) goto scroll_bit::@2 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#1 scroll_bit::sc#1 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#1 scroll_bit::sc#1 ] )
|
||||
[39] (byte) scroll_bit::b#2 ← phi( scroll_bit::@2/(byte) ' ' scroll_bit::@5/(byte/word/signed word) 128+(byte) ' ' ) [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 scroll_bit::b#2 ] ( 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::b#2 ] )
|
||||
[40] *((byte*) scroll_bit::sc#2) ← (byte) scroll_bit::b#2 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#2 ] )
|
||||
[41] (byte*) scroll_bit::sc#1 ← (byte*) scroll_bit::sc#2 + (byte/signed byte/word/signed word) 40 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#1 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#2 scroll_bit::sc#1 ] )
|
||||
[42] (byte) scroll_bit::r#1 ← ++ (byte) scroll_bit::r#2 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#1 scroll_bit::sc#1 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#1 scroll_bit::sc#1 ] )
|
||||
[43] if((byte) scroll_bit::r#1!=(byte/signed byte/word/signed word) 8) goto scroll_bit::@2 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#1 scroll_bit::sc#1 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_bit#21 nxt#36 current_chargen#19 scroll_bit::r#1 scroll_bit::sc#1 ] )
|
||||
to:scroll_bit::@6
|
||||
scroll_bit::@6: scope:[scroll_bit] from scroll_bit::@3
|
||||
[46] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word) 55 [ current_bit#21 nxt#36 current_chargen#19 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_bit#21 nxt#36 current_chargen#19 ] )
|
||||
[44] *((const byte*) PROCPORT#0) ← (byte/signed byte/word/signed word) 55 [ current_bit#21 nxt#36 current_chargen#19 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_bit#21 nxt#36 current_chargen#19 ] )
|
||||
asm { cli }
|
||||
to:scroll_bit::@return
|
||||
scroll_bit::@return: scope:[scroll_bit] from scroll_bit::@6
|
||||
[48] return [ current_bit#21 nxt#36 current_chargen#19 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_bit#21 nxt#36 current_chargen#19 ] )
|
||||
[46] return [ current_bit#21 nxt#36 current_chargen#19 ] ( main:2::scroll_soft:10::scroll_bit:17 [ current_bit#21 nxt#36 current_chargen#19 ] )
|
||||
to:@return
|
||||
scroll_hard: scope:[scroll_hard] from scroll_bit::@1
|
||||
[49] phi() [ ] ( main:2::scroll_soft:10::scroll_bit:17::scroll_hard:33 [ current_bit#21 nxt#36 current_chargen#19 ] )
|
||||
[47] phi() [ ] ( main:2::scroll_soft:10::scroll_bit:17::scroll_hard:31 [ current_bit#21 nxt#36 current_chargen#19 ] )
|
||||
to:scroll_hard::@1
|
||||
scroll_hard::@1: scope:[scroll_hard] from scroll_hard scroll_hard::@1
|
||||
[50] (byte) scroll_hard::i#2 ← phi( scroll_hard/(byte/signed byte/word/signed word) 0 scroll_hard::@1/(byte) scroll_hard::i#1 ) [ scroll_hard::i#2 ] ( main:2::scroll_soft:10::scroll_bit:17::scroll_hard:33 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] )
|
||||
[51] (byte~) scroll_hard::$17 ← (const byte[]) scroll_hard::line0#0+(byte/signed byte/word/signed word) 1 *idx (byte) scroll_hard::i#2 [ scroll_hard::i#2 scroll_hard::$17 ] ( main:2::scroll_soft:10::scroll_bit:17::scroll_hard:33 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 scroll_hard::$17 ] )
|
||||
[52] *((const byte[]) scroll_hard::line0#0 + (byte) scroll_hard::i#2) ← (byte~) scroll_hard::$17 [ scroll_hard::i#2 ] ( main:2::scroll_soft:10::scroll_bit:17::scroll_hard:33 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] )
|
||||
[53] (byte~) scroll_hard::$19 ← (const byte[]) scroll_hard::line1#0+(byte/signed byte/word/signed word) 1 *idx (byte) scroll_hard::i#2 [ scroll_hard::i#2 scroll_hard::$19 ] ( main:2::scroll_soft:10::scroll_bit:17::scroll_hard:33 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 scroll_hard::$19 ] )
|
||||
[54] *((const byte[]) scroll_hard::line1#0 + (byte) scroll_hard::i#2) ← (byte~) scroll_hard::$19 [ scroll_hard::i#2 ] ( main:2::scroll_soft:10::scroll_bit:17::scroll_hard:33 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] )
|
||||
[55] (byte~) scroll_hard::$21 ← (const byte[]) scroll_hard::line2#0+(byte/signed byte/word/signed word) 1 *idx (byte) scroll_hard::i#2 [ scroll_hard::i#2 scroll_hard::$21 ] ( main:2::scroll_soft:10::scroll_bit:17::scroll_hard:33 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 scroll_hard::$21 ] )
|
||||
[56] *((const byte[]) scroll_hard::line2#0 + (byte) scroll_hard::i#2) ← (byte~) scroll_hard::$21 [ scroll_hard::i#2 ] ( main:2::scroll_soft:10::scroll_bit:17::scroll_hard:33 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] )
|
||||
[57] (byte~) scroll_hard::$23 ← (const byte[]) scroll_hard::line3#0+(byte/signed byte/word/signed word) 1 *idx (byte) scroll_hard::i#2 [ scroll_hard::i#2 scroll_hard::$23 ] ( main:2::scroll_soft:10::scroll_bit:17::scroll_hard:33 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 scroll_hard::$23 ] )
|
||||
[58] *((const byte[]) scroll_hard::line3#0 + (byte) scroll_hard::i#2) ← (byte~) scroll_hard::$23 [ scroll_hard::i#2 ] ( main:2::scroll_soft:10::scroll_bit:17::scroll_hard:33 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] )
|
||||
[59] (byte~) scroll_hard::$25 ← (const byte[]) scroll_hard::line4#0+(byte/signed byte/word/signed word) 1 *idx (byte) scroll_hard::i#2 [ scroll_hard::i#2 scroll_hard::$25 ] ( main:2::scroll_soft:10::scroll_bit:17::scroll_hard:33 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 scroll_hard::$25 ] )
|
||||
[60] *((const byte[]) scroll_hard::line4#0 + (byte) scroll_hard::i#2) ← (byte~) scroll_hard::$25 [ scroll_hard::i#2 ] ( main:2::scroll_soft:10::scroll_bit:17::scroll_hard:33 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] )
|
||||
[61] (byte~) scroll_hard::$27 ← (const byte[]) scroll_hard::line5#0+(byte/signed byte/word/signed word) 1 *idx (byte) scroll_hard::i#2 [ scroll_hard::i#2 scroll_hard::$27 ] ( main:2::scroll_soft:10::scroll_bit:17::scroll_hard:33 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 scroll_hard::$27 ] )
|
||||
[62] *((const byte[]) scroll_hard::line5#0 + (byte) scroll_hard::i#2) ← (byte~) scroll_hard::$27 [ scroll_hard::i#2 ] ( main:2::scroll_soft:10::scroll_bit:17::scroll_hard:33 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] )
|
||||
[63] (byte~) scroll_hard::$29 ← (const byte[]) scroll_hard::line6#0+(byte/signed byte/word/signed word) 1 *idx (byte) scroll_hard::i#2 [ scroll_hard::i#2 scroll_hard::$29 ] ( main:2::scroll_soft:10::scroll_bit:17::scroll_hard:33 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 scroll_hard::$29 ] )
|
||||
[64] *((const byte[]) scroll_hard::line6#0 + (byte) scroll_hard::i#2) ← (byte~) scroll_hard::$29 [ scroll_hard::i#2 ] ( main:2::scroll_soft:10::scroll_bit:17::scroll_hard:33 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] )
|
||||
[65] (byte~) scroll_hard::$31 ← (const byte[]) scroll_hard::line7#0+(byte/signed byte/word/signed word) 1 *idx (byte) scroll_hard::i#2 [ scroll_hard::i#2 scroll_hard::$31 ] ( main:2::scroll_soft:10::scroll_bit:17::scroll_hard:33 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 scroll_hard::$31 ] )
|
||||
[66] *((const byte[]) scroll_hard::line7#0 + (byte) scroll_hard::i#2) ← (byte~) scroll_hard::$31 [ scroll_hard::i#2 ] ( main:2::scroll_soft:10::scroll_bit:17::scroll_hard:33 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] )
|
||||
[67] (byte) scroll_hard::i#1 ← ++ (byte) scroll_hard::i#2 [ scroll_hard::i#1 ] ( main:2::scroll_soft:10::scroll_bit:17::scroll_hard:33 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#1 ] )
|
||||
[68] if((byte) scroll_hard::i#1!=(byte/signed byte/word/signed word) 39) goto scroll_hard::@1 [ scroll_hard::i#1 ] ( main:2::scroll_soft:10::scroll_bit:17::scroll_hard:33 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#1 ] )
|
||||
[48] (byte) scroll_hard::i#2 ← phi( scroll_hard/(byte/signed byte/word/signed word) 0 scroll_hard::@1/(byte) scroll_hard::i#1 ) [ scroll_hard::i#2 ] ( main:2::scroll_soft:10::scroll_bit:17::scroll_hard:31 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] )
|
||||
[49] (byte~) scroll_hard::$17 ← (const byte[]) scroll_hard::line0#0+(byte/signed byte/word/signed word) 1 *idx (byte) scroll_hard::i#2 [ scroll_hard::i#2 scroll_hard::$17 ] ( main:2::scroll_soft:10::scroll_bit:17::scroll_hard:31 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 scroll_hard::$17 ] )
|
||||
[50] *((const byte[]) scroll_hard::line0#0 + (byte) scroll_hard::i#2) ← (byte~) scroll_hard::$17 [ scroll_hard::i#2 ] ( main:2::scroll_soft:10::scroll_bit:17::scroll_hard:31 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] )
|
||||
[51] (byte~) scroll_hard::$19 ← (const byte[]) scroll_hard::line1#0+(byte/signed byte/word/signed word) 1 *idx (byte) scroll_hard::i#2 [ scroll_hard::i#2 scroll_hard::$19 ] ( main:2::scroll_soft:10::scroll_bit:17::scroll_hard:31 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 scroll_hard::$19 ] )
|
||||
[52] *((const byte[]) scroll_hard::line1#0 + (byte) scroll_hard::i#2) ← (byte~) scroll_hard::$19 [ scroll_hard::i#2 ] ( main:2::scroll_soft:10::scroll_bit:17::scroll_hard:31 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] )
|
||||
[53] (byte~) scroll_hard::$21 ← (const byte[]) scroll_hard::line2#0+(byte/signed byte/word/signed word) 1 *idx (byte) scroll_hard::i#2 [ scroll_hard::i#2 scroll_hard::$21 ] ( main:2::scroll_soft:10::scroll_bit:17::scroll_hard:31 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 scroll_hard::$21 ] )
|
||||
[54] *((const byte[]) scroll_hard::line2#0 + (byte) scroll_hard::i#2) ← (byte~) scroll_hard::$21 [ scroll_hard::i#2 ] ( main:2::scroll_soft:10::scroll_bit:17::scroll_hard:31 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] )
|
||||
[55] (byte~) scroll_hard::$23 ← (const byte[]) scroll_hard::line3#0+(byte/signed byte/word/signed word) 1 *idx (byte) scroll_hard::i#2 [ scroll_hard::i#2 scroll_hard::$23 ] ( main:2::scroll_soft:10::scroll_bit:17::scroll_hard:31 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 scroll_hard::$23 ] )
|
||||
[56] *((const byte[]) scroll_hard::line3#0 + (byte) scroll_hard::i#2) ← (byte~) scroll_hard::$23 [ scroll_hard::i#2 ] ( main:2::scroll_soft:10::scroll_bit:17::scroll_hard:31 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] )
|
||||
[57] (byte~) scroll_hard::$25 ← (const byte[]) scroll_hard::line4#0+(byte/signed byte/word/signed word) 1 *idx (byte) scroll_hard::i#2 [ scroll_hard::i#2 scroll_hard::$25 ] ( main:2::scroll_soft:10::scroll_bit:17::scroll_hard:31 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 scroll_hard::$25 ] )
|
||||
[58] *((const byte[]) scroll_hard::line4#0 + (byte) scroll_hard::i#2) ← (byte~) scroll_hard::$25 [ scroll_hard::i#2 ] ( main:2::scroll_soft:10::scroll_bit:17::scroll_hard:31 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] )
|
||||
[59] (byte~) scroll_hard::$27 ← (const byte[]) scroll_hard::line5#0+(byte/signed byte/word/signed word) 1 *idx (byte) scroll_hard::i#2 [ scroll_hard::i#2 scroll_hard::$27 ] ( main:2::scroll_soft:10::scroll_bit:17::scroll_hard:31 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 scroll_hard::$27 ] )
|
||||
[60] *((const byte[]) scroll_hard::line5#0 + (byte) scroll_hard::i#2) ← (byte~) scroll_hard::$27 [ scroll_hard::i#2 ] ( main:2::scroll_soft:10::scroll_bit:17::scroll_hard:31 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] )
|
||||
[61] (byte~) scroll_hard::$29 ← (const byte[]) scroll_hard::line6#0+(byte/signed byte/word/signed word) 1 *idx (byte) scroll_hard::i#2 [ scroll_hard::i#2 scroll_hard::$29 ] ( main:2::scroll_soft:10::scroll_bit:17::scroll_hard:31 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 scroll_hard::$29 ] )
|
||||
[62] *((const byte[]) scroll_hard::line6#0 + (byte) scroll_hard::i#2) ← (byte~) scroll_hard::$29 [ scroll_hard::i#2 ] ( main:2::scroll_soft:10::scroll_bit:17::scroll_hard:31 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] )
|
||||
[63] (byte~) scroll_hard::$31 ← (const byte[]) scroll_hard::line7#0+(byte/signed byte/word/signed word) 1 *idx (byte) scroll_hard::i#2 [ scroll_hard::i#2 scroll_hard::$31 ] ( main:2::scroll_soft:10::scroll_bit:17::scroll_hard:31 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 scroll_hard::$31 ] )
|
||||
[64] *((const byte[]) scroll_hard::line7#0 + (byte) scroll_hard::i#2) ← (byte~) scroll_hard::$31 [ scroll_hard::i#2 ] ( main:2::scroll_soft:10::scroll_bit:17::scroll_hard:31 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#2 ] )
|
||||
[65] (byte) scroll_hard::i#1 ← ++ (byte) scroll_hard::i#2 [ scroll_hard::i#1 ] ( main:2::scroll_soft:10::scroll_bit:17::scroll_hard:31 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#1 ] )
|
||||
[66] if((byte) scroll_hard::i#1!=(byte/signed byte/word/signed word) 39) goto scroll_hard::@1 [ scroll_hard::i#1 ] ( main:2::scroll_soft:10::scroll_bit:17::scroll_hard:31 [ current_bit#21 nxt#36 current_chargen#19 scroll_hard::i#1 ] )
|
||||
to:scroll_hard::@return
|
||||
scroll_hard::@return: scope:[scroll_hard] from scroll_hard::@1
|
||||
[69] return [ ] ( main:2::scroll_soft:10::scroll_bit:17::scroll_hard:33 [ current_bit#21 nxt#36 current_chargen#19 ] )
|
||||
[67] return [ ] ( main:2::scroll_soft:10::scroll_bit:17::scroll_hard:31 [ current_bit#21 nxt#36 current_chargen#19 ] )
|
||||
to:@return
|
||||
next_char: scope:[next_char] from scroll_bit::@4
|
||||
[70] (byte) next_char::c#0 ← *((byte*) nxt#31) [ nxt#31 next_char::c#0 ] ( main:2::scroll_soft:10::scroll_bit:17::next_char:25 [ nxt#31 next_char::c#0 ] )
|
||||
[71] if((byte) next_char::c#0!=(byte) '@') goto next_char::@1 [ nxt#31 next_char::c#0 ] ( main:2::scroll_soft:10::scroll_bit:17::next_char:25 [ nxt#31 next_char::c#0 ] )
|
||||
[68] (byte) next_char::c#0 ← *((byte*) nxt#31) [ nxt#31 next_char::c#0 ] ( main:2::scroll_soft:10::scroll_bit:17::next_char:24 [ nxt#31 next_char::c#0 ] )
|
||||
[69] if((byte) next_char::c#0!=(byte) '@') goto next_char::@1 [ nxt#31 next_char::c#0 ] ( main:2::scroll_soft:10::scroll_bit:17::next_char:24 [ nxt#31 next_char::c#0 ] )
|
||||
to:next_char::@2
|
||||
next_char::@2: scope:[next_char] from next_char
|
||||
[72] (byte) next_char::c#1 ← *((const byte*) TEXT#0) [ next_char::c#1 ] ( main:2::scroll_soft:10::scroll_bit:17::next_char:25 [ next_char::c#1 ] )
|
||||
[70] (byte) next_char::c#1 ← *((const byte*) TEXT#0) [ next_char::c#1 ] ( main:2::scroll_soft:10::scroll_bit:17::next_char:24 [ next_char::c#1 ] )
|
||||
to:next_char::@1
|
||||
next_char::@1: scope:[next_char] from next_char next_char::@2
|
||||
[73] (byte) next_char::c#2 ← phi( next_char/(byte) next_char::c#0 next_char::@2/(byte) next_char::c#1 ) [ next_char::c#2 nxt#18 ] ( main:2::scroll_soft:10::scroll_bit:17::next_char:25 [ next_char::c#2 nxt#18 ] )
|
||||
[73] (byte*) nxt#18 ← phi( next_char/(byte*) nxt#31 next_char::@2/(const byte*) TEXT#0 ) [ next_char::c#2 nxt#18 ] ( main:2::scroll_soft:10::scroll_bit:17::next_char:25 [ next_char::c#2 nxt#18 ] )
|
||||
[74] (byte*) nxt#19 ← ++ (byte*) nxt#18 [ next_char::c#2 nxt#19 ] ( main:2::scroll_soft:10::scroll_bit:17::next_char:25 [ next_char::c#2 nxt#19 ] )
|
||||
[71] (byte) next_char::return#1 ← phi( next_char/(byte) next_char::c#0 next_char::@2/(byte) next_char::c#1 ) [ next_char::return#1 nxt#18 ] ( main:2::scroll_soft:10::scroll_bit:17::next_char:24 [ next_char::return#1 nxt#18 ] )
|
||||
[71] (byte*) nxt#18 ← phi( next_char/(byte*) nxt#31 next_char::@2/(const byte*) TEXT#0 ) [ next_char::return#1 nxt#18 ] ( main:2::scroll_soft:10::scroll_bit:17::next_char:24 [ next_char::return#1 nxt#18 ] )
|
||||
[72] (byte*) nxt#19 ← ++ (byte*) nxt#18 [ next_char::return#1 nxt#19 ] ( main:2::scroll_soft:10::scroll_bit:17::next_char:24 [ next_char::return#1 nxt#19 ] )
|
||||
to:next_char::@return
|
||||
next_char::@return: scope:[next_char] from next_char::@1
|
||||
[75] return [ next_char::c#2 nxt#19 ] ( main:2::scroll_soft:10::scroll_bit:17::next_char:25 [ next_char::c#2 nxt#19 ] )
|
||||
[73] return [ next_char::return#1 nxt#19 ] ( main:2::scroll_soft:10::scroll_bit:17::next_char:24 [ next_char::return#1 nxt#19 ] )
|
||||
to:@return
|
||||
fillscreen: scope:[fillscreen] from main
|
||||
[76] phi() [ ] ( main:2::fillscreen:5 [ ] )
|
||||
[74] phi() [ ] ( main:2::fillscreen:5 [ ] )
|
||||
to:fillscreen::@1
|
||||
fillscreen::@1: scope:[fillscreen] from fillscreen fillscreen::@1
|
||||
[77] (byte*) fillscreen::cursor#2 ← phi( fillscreen/(const byte*) SCREEN#0 fillscreen::@1/(byte*) fillscreen::cursor#1 ) [ fillscreen::cursor#2 ] ( main:2::fillscreen:5 [ fillscreen::cursor#2 ] )
|
||||
[78] *((byte*) fillscreen::cursor#2) ← (const byte) fillscreen::fill#0 [ fillscreen::cursor#2 ] ( main:2::fillscreen:5 [ fillscreen::cursor#2 ] )
|
||||
[79] (byte*) fillscreen::cursor#1 ← ++ (byte*) fillscreen::cursor#2 [ fillscreen::cursor#1 ] ( main:2::fillscreen:5 [ fillscreen::cursor#1 ] )
|
||||
[80] if((byte*) fillscreen::cursor#1<(const byte*) SCREEN#0+(word/signed word) 1000) goto fillscreen::@1 [ fillscreen::cursor#1 ] ( main:2::fillscreen:5 [ fillscreen::cursor#1 ] )
|
||||
[75] (byte*) fillscreen::cursor#2 ← phi( fillscreen/(const byte*) SCREEN#0 fillscreen::@1/(byte*) fillscreen::cursor#1 ) [ fillscreen::cursor#2 ] ( main:2::fillscreen:5 [ fillscreen::cursor#2 ] )
|
||||
[76] *((byte*) fillscreen::cursor#2) ← (const byte) fillscreen::fill#0 [ fillscreen::cursor#2 ] ( main:2::fillscreen:5 [ fillscreen::cursor#2 ] )
|
||||
[77] (byte*) fillscreen::cursor#1 ← ++ (byte*) fillscreen::cursor#2 [ fillscreen::cursor#1 ] ( main:2::fillscreen:5 [ fillscreen::cursor#1 ] )
|
||||
[78] if((byte*) fillscreen::cursor#1<(const byte*) SCREEN#0+(word/signed word) 1000) goto fillscreen::@1 [ fillscreen::cursor#1 ] ( main:2::fillscreen:5 [ fillscreen::cursor#1 ] )
|
||||
to:fillscreen::@return
|
||||
fillscreen::@return: scope:[fillscreen] from fillscreen::@1
|
||||
[81] return [ ] ( main:2::fillscreen:5 [ ] )
|
||||
[79] return [ ] ( main:2::fillscreen:5 [ ] )
|
||||
to:@return
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -23,7 +23,7 @@
|
||||
(byte*) current_chargen
|
||||
(byte*) current_chargen#11 current_chargen zp ZP_WORD:3 2.5
|
||||
(byte*) current_chargen#19 current_chargen zp ZP_WORD:3 0.9444444444444444
|
||||
(byte*) current_chargen#27 current_chargen zp ZP_WORD:3 1.5
|
||||
(byte*) current_chargen#27 current_chargen zp ZP_WORD:3 1.666666666666667
|
||||
(byte*) current_chargen#5 current_chargen zp ZP_WORD:3 4.0
|
||||
(void()) fillscreen((byte*) fillscreen::screen , (byte) fillscreen::fill)
|
||||
(label) fillscreen::@1
|
||||
@ -47,25 +47,23 @@
|
||||
(byte) next_char::c
|
||||
(byte) next_char::c#0 reg byte a 3.0
|
||||
(byte) next_char::c#1 reg byte a 4.0
|
||||
(byte) next_char::c#2 reg byte a 1.5
|
||||
(byte) next_char::return
|
||||
(byte) next_char::return#0 reg byte a 4.0
|
||||
(byte) next_char::return#1 reg byte a 1.5
|
||||
(byte*) nxt
|
||||
(byte*) nxt#14 nxt zp ZP_WORD:7 2.5
|
||||
(byte*) nxt#18 nxt zp ZP_WORD:7 4.0
|
||||
(byte*) nxt#19 nxt zp ZP_WORD:7 0.4444444444444444
|
||||
(byte*) nxt#31 nxt zp ZP_WORD:7 1.4615384615384612
|
||||
(byte*) nxt#19 nxt zp ZP_WORD:7 0.5
|
||||
(byte*) nxt#31 nxt zp ZP_WORD:7 1.5833333333333335
|
||||
(byte*) nxt#36 nxt zp ZP_WORD:7 0.3333333333333333
|
||||
(byte) scroll
|
||||
(byte) scroll#10 reg byte x 2.5
|
||||
(byte) scroll#18 reg byte x 3.25
|
||||
(byte) scroll#3 reg byte x 3.0
|
||||
(void()) scroll_bit()
|
||||
(byte~) scroll_bit::$0 reg byte a 4.0
|
||||
(byte~) scroll_bit::$10 reg byte a 22.0
|
||||
(byte~) scroll_bit::$3 reg byte a 4.0
|
||||
(word~) scroll_bit::$4 $4 zp ZP_WORD:9 4.0
|
||||
(byte*~) scroll_bit::$5 $5 zp ZP_WORD:3 4.0
|
||||
(label) scroll_bit::@1
|
||||
(label) scroll_bit::@2
|
||||
(label) scroll_bit::@3
|
||||
@ -124,14 +122,13 @@
|
||||
|
||||
reg byte x [ scroll#18 scroll#10 scroll#3 ]
|
||||
zp ZP_BYTE:2 [ current_bit#29 current_bit#12 current_bit#21 current_bit#5 ]
|
||||
zp ZP_WORD:3 [ current_chargen#27 current_chargen#11 current_chargen#19 current_chargen#5 fillscreen::cursor#2 fillscreen::cursor#1 scroll_bit::$5 ]
|
||||
zp ZP_WORD:3 [ current_chargen#27 current_chargen#11 current_chargen#19 current_chargen#5 fillscreen::cursor#2 fillscreen::cursor#1 ]
|
||||
reg byte x [ scroll_bit::r#2 scroll_bit::r#1 ]
|
||||
zp ZP_WORD:5 [ scroll_bit::sc#2 scroll_bit::sc#1 ]
|
||||
reg byte a [ scroll_bit::b#2 ]
|
||||
reg byte x [ scroll_hard::i#2 scroll_hard::i#1 ]
|
||||
zp ZP_WORD:7 [ nxt#18 nxt#31 nxt#14 nxt#36 nxt#19 ]
|
||||
reg byte a [ next_char::c#2 next_char::c#0 next_char::c#1 ]
|
||||
reg byte a [ scroll_bit::$0 ]
|
||||
reg byte a [ next_char::return#1 next_char::c#0 next_char::c#1 ]
|
||||
reg byte a [ next_char::return#0 ]
|
||||
reg byte a [ scroll_bit::$3 ]
|
||||
zp ZP_WORD:9 [ scroll_bit::c#0 scroll_bit::$4 ]
|
||||
|
213
src/main/java/dk/camelot64/kickc/test/ref/signed-words.asm
Normal file
213
src/main/java/dk/camelot64/kickc/test/ref/signed-words.asm
Normal file
@ -0,0 +1,213 @@
|
||||
.pc = $801 "Basic"
|
||||
:BasicUpstart(main)
|
||||
.pc = $80d "Program"
|
||||
.const SPRITES_XPOS = $d000
|
||||
.const SPRITES_YPOS = $d001
|
||||
.const SPRITES_XMSB = $d010
|
||||
.const RASTER = $d012
|
||||
.const SPRITES_ENABLE = $d015
|
||||
.const SPRITES_EXPAND_Y = $d017
|
||||
.const SPRITES_EXPAND_X = $d01d
|
||||
.const SPRITES_COLS = $d027
|
||||
.const WHITE = 1
|
||||
.const SCREEN = $400
|
||||
.const SPRITE = $2000
|
||||
.const g = -5
|
||||
.const SPRITES_PTR = SCREEN+$3f8
|
||||
.label yvel_init = 4
|
||||
.label yvel = 4
|
||||
.label yvel_9 = 6
|
||||
.label xpos = 8
|
||||
.label ypos = $a
|
||||
.label yvel_10 = 6
|
||||
.label xvel = 2
|
||||
.label yvel_12 = 6
|
||||
.label yvel_22 = 6
|
||||
jsr main
|
||||
main: {
|
||||
jsr init
|
||||
lda #$64
|
||||
sta yvel_init
|
||||
lda #0
|
||||
sta yvel_init+1
|
||||
lda #$c8
|
||||
sta xvel
|
||||
lda #0
|
||||
sta xvel+1
|
||||
sta ypos
|
||||
sta ypos+1
|
||||
sta xpos
|
||||
sta xpos+1
|
||||
lda #$64
|
||||
sta yvel_12
|
||||
lda #0
|
||||
sta yvel_12+1
|
||||
b2:
|
||||
lda RASTER
|
||||
cmp #$ff
|
||||
bne b2
|
||||
jsr anim
|
||||
jmp b2
|
||||
}
|
||||
anim: {
|
||||
.label _10 = $e
|
||||
.label _12 = $10
|
||||
.label sprite_x = $e
|
||||
.label sprite_y = $10
|
||||
lda ypos+1
|
||||
bpl b1
|
||||
sec
|
||||
lda xvel
|
||||
eor #$ff
|
||||
adc #0
|
||||
sta xvel
|
||||
lda xvel+1
|
||||
eor #$ff
|
||||
adc #0
|
||||
sta xvel+1
|
||||
lda yvel_init
|
||||
sec
|
||||
sbc #<$a
|
||||
sta yvel_init
|
||||
lda yvel_init+1
|
||||
sbc #>$a
|
||||
sta yvel_init+1
|
||||
lda yvel_init
|
||||
cmp #<-$c8
|
||||
lda yvel_init+1
|
||||
sbc #>-$c8
|
||||
bvc !+
|
||||
eor #$80
|
||||
!:
|
||||
bpl b2
|
||||
lda #$c8
|
||||
sta yvel
|
||||
lda #0
|
||||
sta yvel+1
|
||||
b2:
|
||||
lda yvel
|
||||
sta yvel_22
|
||||
lda yvel+1
|
||||
sta yvel_22+1
|
||||
lda #0
|
||||
sta ypos
|
||||
sta ypos+1
|
||||
sta xpos
|
||||
sta xpos+1
|
||||
b1:
|
||||
lda yvel_10
|
||||
clc
|
||||
adc #<g
|
||||
sta yvel_10
|
||||
lda yvel_10+1
|
||||
adc #>g
|
||||
sta yvel_10+1
|
||||
lda xpos
|
||||
clc
|
||||
adc xvel
|
||||
sta xpos
|
||||
lda xpos+1
|
||||
adc xvel+1
|
||||
sta xpos+1
|
||||
lda ypos
|
||||
clc
|
||||
adc yvel_10
|
||||
sta ypos
|
||||
lda ypos+1
|
||||
adc yvel_10+1
|
||||
sta ypos+1
|
||||
lda xpos
|
||||
sta $ff
|
||||
lda xpos+1
|
||||
sta _10
|
||||
lda #0
|
||||
bit xpos+1
|
||||
bpl !+
|
||||
lda #$ff
|
||||
!:
|
||||
sta _10+1
|
||||
rol $ff
|
||||
rol _10
|
||||
rol _10+1
|
||||
lda sprite_x
|
||||
clc
|
||||
adc #<$a0
|
||||
sta sprite_x
|
||||
lda sprite_x+1
|
||||
adc #>$a0
|
||||
sta sprite_x+1
|
||||
lda ypos
|
||||
sta $ff
|
||||
lda ypos+1
|
||||
sta _12
|
||||
lda #0
|
||||
bit ypos+1
|
||||
bpl !+
|
||||
lda #$ff
|
||||
!:
|
||||
sta _12+1
|
||||
rol $ff
|
||||
rol _12
|
||||
rol _12+1
|
||||
rol $ff
|
||||
rol _12
|
||||
rol _12+1
|
||||
rol $ff
|
||||
rol _12
|
||||
rol _12+1
|
||||
lda #<$e6
|
||||
sec
|
||||
sbc sprite_y
|
||||
sta sprite_y
|
||||
lda #>$e6
|
||||
sbc sprite_y+1
|
||||
sta sprite_y+1
|
||||
lda sprite_x
|
||||
sta SPRITES_XPOS+0
|
||||
lda sprite_y
|
||||
sta SPRITES_YPOS+0
|
||||
lda sprite_x+1
|
||||
sta SPRITES_XMSB
|
||||
rts
|
||||
}
|
||||
init: {
|
||||
.label sc = $c
|
||||
lda #1
|
||||
sta SPRITES_ENABLE
|
||||
lda #0
|
||||
sta SPRITES_EXPAND_X
|
||||
sta SPRITES_EXPAND_Y
|
||||
lda #$64
|
||||
sta SPRITES_XPOS+0
|
||||
sta SPRITES_YPOS+0
|
||||
lda #WHITE
|
||||
sta SPRITES_COLS+0
|
||||
lda #$ff & SPRITE/$40
|
||||
sta SPRITES_PTR+0
|
||||
lda #<SCREEN
|
||||
sta sc
|
||||
lda #>SCREEN
|
||||
sta sc+1
|
||||
b1:
|
||||
ldy #0
|
||||
lda #' '
|
||||
sta (sc),y
|
||||
inc sc
|
||||
bne !+
|
||||
inc sc+1
|
||||
!:
|
||||
lda sc+1
|
||||
cmp #>SCREEN+$3e8
|
||||
bne b1
|
||||
lda sc
|
||||
cmp #<SCREEN+$3e8
|
||||
bne b1
|
||||
ldx #0
|
||||
b2:
|
||||
lda #$ff
|
||||
sta SPRITE,x
|
||||
inx
|
||||
cpx #$40
|
||||
bne b2
|
||||
rts
|
||||
}
|
93
src/main/java/dk/camelot64/kickc/test/ref/signed-words.cfg
Normal file
93
src/main/java/dk/camelot64/kickc/test/ref/signed-words.cfg
Normal file
@ -0,0 +1,93 @@
|
||||
@begin: scope:[] from
|
||||
[0] phi() [ ] ( )
|
||||
to:@3
|
||||
@3: scope:[] from @begin
|
||||
[1] phi() [ ] ( )
|
||||
[2] call main param-assignment [ ] ( )
|
||||
to:@end
|
||||
@end: scope:[] from @3
|
||||
[3] phi() [ ] ( )
|
||||
main: scope:[main] from @3
|
||||
[4] phi() [ ] ( main:2 [ ] )
|
||||
[5] call init param-assignment [ ] ( main:2 [ ] )
|
||||
to:main::@2
|
||||
main::@2: scope:[main] from main main::@2 main::@6
|
||||
[6] (signed word) yvel_init#13 ← phi( main::@6/(signed word) yvel_init#11 main/(byte/signed byte/word/signed word) 100 ) [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ( main:2 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] )
|
||||
[6] (signed word) xvel#12 ← phi( main::@6/(signed word) xvel#10 main/(byte/word/signed word) 200 ) [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ( main:2 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] )
|
||||
[6] (signed word) ypos#13 ← phi( main::@6/(signed word) ypos#11 main/(byte/signed byte/word/signed word) 0 ) [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ( main:2 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] )
|
||||
[6] (signed word) xpos#12 ← phi( main::@6/(signed word) xpos#10 main/(byte/signed byte/word/signed word) 0 ) [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ( main:2 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] )
|
||||
[6] (signed word) yvel#12 ← phi( main::@6/(signed word) yvel#10 main/(byte/signed byte/word/signed word) 100 ) [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ( main:2 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] )
|
||||
[7] if(*((const byte*) RASTER#0)!=(byte/word/signed word) 255) goto main::@2 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ( main:2 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] )
|
||||
to:main::@3
|
||||
main::@3: scope:[main] from main::@2
|
||||
[8] phi() [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ( main:2 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] )
|
||||
[9] call anim param-assignment [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 ] ( main:2 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 ] )
|
||||
to:main::@6
|
||||
main::@6: scope:[main] from main::@3
|
||||
[10] if(true) goto main::@2 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 ] ( main:2 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 ] )
|
||||
to:main::@return
|
||||
main::@return: scope:[main] from main::@6
|
||||
[11] return [ ] ( main:2 [ ] )
|
||||
to:@return
|
||||
anim: scope:[anim] from main::@3
|
||||
[12] if((signed word) ypos#13>=(byte/signed byte/word/signed word) 0) goto anim::@1 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] ( main:2::anim:9 [ yvel#12 xpos#12 ypos#13 xvel#12 yvel_init#13 ] )
|
||||
to:anim::@3
|
||||
anim::@3: scope:[anim] from anim
|
||||
[13] (signed word) xvel#14 ← - (signed word) xvel#12 [ yvel_init#13 xvel#14 ] ( main:2::anim:9 [ yvel_init#13 xvel#14 ] )
|
||||
[14] (signed word) yvel_init#3 ← (signed word) yvel_init#13 - (byte/signed byte/word/signed word) 10 [ xvel#14 yvel_init#3 ] ( main:2::anim:9 [ xvel#14 yvel_init#3 ] )
|
||||
[15] if((signed word) yvel_init#3>=-(byte/word/signed word) 200) goto anim::@5 [ xvel#14 yvel_init#3 ] ( main:2::anim:9 [ xvel#14 yvel_init#3 ] )
|
||||
to:anim::@2
|
||||
anim::@2: scope:[anim] from anim::@3 anim::@5
|
||||
[16] (signed word) yvel#4 ← phi( anim::@5/(signed word) yvel_init#3 anim::@3/(byte/word/signed word) 200 ) [ xvel#14 yvel#4 ] ( main:2::anim:9 [ xvel#14 yvel#4 ] )
|
||||
[17] (signed word~) yvel#22 ← (signed word) yvel#4 [ xvel#14 yvel#4 yvel#22 ] ( main:2::anim:9 [ xvel#14 yvel#4 yvel#22 ] )
|
||||
to:anim::@1
|
||||
anim::@1: scope:[anim] from anim anim::@2
|
||||
[18] (signed word) yvel_init#11 ← phi( anim/(signed word) yvel_init#13 anim::@2/(signed word) yvel#4 ) [ xvel#10 yvel_init#11 yvel#9 xpos#9 ypos#10 ] ( main:2::anim:9 [ xvel#10 yvel_init#11 yvel#9 xpos#9 ypos#10 ] )
|
||||
[18] (signed word) ypos#10 ← phi( anim/(signed word) ypos#13 anim::@2/(byte/signed byte/word/signed word) 0 ) [ xvel#10 yvel_init#11 yvel#9 xpos#9 ypos#10 ] ( main:2::anim:9 [ xvel#10 yvel_init#11 yvel#9 xpos#9 ypos#10 ] )
|
||||
[18] (signed word) xvel#10 ← phi( anim/(signed word) xvel#12 anim::@2/(signed word) xvel#14 ) [ xvel#10 yvel_init#11 yvel#9 xpos#9 ypos#10 ] ( main:2::anim:9 [ xvel#10 yvel_init#11 yvel#9 xpos#9 ypos#10 ] )
|
||||
[18] (signed word) xpos#9 ← phi( anim/(signed word) xpos#12 anim::@2/(byte/signed byte/word/signed word) 0 ) [ xvel#10 yvel_init#11 yvel#9 xpos#9 ypos#10 ] ( main:2::anim:9 [ xvel#10 yvel_init#11 yvel#9 xpos#9 ypos#10 ] )
|
||||
[18] (signed word) yvel#9 ← phi( anim/(signed word) yvel#12 anim::@2/(signed word~) yvel#22 ) [ xvel#10 yvel_init#11 yvel#9 xpos#9 ypos#10 ] ( main:2::anim:9 [ xvel#10 yvel_init#11 yvel#9 xpos#9 ypos#10 ] )
|
||||
[19] (signed word) yvel#10 ← (signed word) yvel#9 + (const signed word) g#0 [ yvel#10 xvel#10 yvel_init#11 xpos#9 ypos#10 ] ( main:2::anim:9 [ yvel#10 xvel#10 yvel_init#11 xpos#9 ypos#10 ] )
|
||||
[20] (signed word) xpos#10 ← (signed word) xpos#9 + (signed word) xvel#10 [ yvel#10 xpos#10 xvel#10 yvel_init#11 ypos#10 ] ( main:2::anim:9 [ yvel#10 xpos#10 xvel#10 yvel_init#11 ypos#10 ] )
|
||||
[21] (signed word) ypos#11 ← (signed word) ypos#10 + (signed word) yvel#10 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 ] ( main:2::anim:9 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 ] )
|
||||
[22] (signed word~) anim::$10 ← (signed word) xpos#10 >> (byte/signed byte/word/signed word) 7 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::$10 ] ( main:2::anim:9 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::$10 ] )
|
||||
[23] (signed word) anim::sprite_x#0 ← (signed word~) anim::$10 + (byte/word/signed word) 160 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::sprite_x#0 ] ( main:2::anim:9 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::sprite_x#0 ] )
|
||||
[24] (signed word~) anim::$12 ← (signed word) ypos#11 >> (byte/signed byte/word/signed word) 5 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::sprite_x#0 anim::$12 ] ( main:2::anim:9 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::sprite_x#0 anim::$12 ] )
|
||||
[25] (signed word) anim::sprite_y#0 ← (byte/word/signed word) 230 - (signed word~) anim::$12 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::sprite_x#0 anim::sprite_y#0 ] ( main:2::anim:9 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::sprite_x#0 anim::sprite_y#0 ] )
|
||||
[26] (byte~) anim::$14 ← ((byte)) (signed word) anim::sprite_x#0 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::sprite_x#0 anim::sprite_y#0 anim::$14 ] ( main:2::anim:9 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::sprite_x#0 anim::sprite_y#0 anim::$14 ] )
|
||||
[27] *((const byte*) SPRITES_XPOS#0+(byte/signed byte/word/signed word) 0) ← (byte~) anim::$14 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::sprite_x#0 anim::sprite_y#0 ] ( main:2::anim:9 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::sprite_x#0 anim::sprite_y#0 ] )
|
||||
[28] (byte~) anim::$15 ← ((byte)) (signed word) anim::sprite_y#0 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::sprite_x#0 anim::$15 ] ( main:2::anim:9 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::sprite_x#0 anim::$15 ] )
|
||||
[29] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word) 0) ← (byte~) anim::$15 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::sprite_x#0 ] ( main:2::anim:9 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::sprite_x#0 ] )
|
||||
[30] (byte~) anim::$16 ← > (signed word) anim::sprite_x#0 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::$16 ] ( main:2::anim:9 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 anim::$16 ] )
|
||||
[31] *((const byte*) SPRITES_XMSB#0) ← (byte~) anim::$16 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 ] ( main:2::anim:9 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 ] )
|
||||
to:anim::@return
|
||||
anim::@return: scope:[anim] from anim::@1
|
||||
[32] return [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 ] ( main:2::anim:9 [ yvel#10 xpos#10 ypos#11 xvel#10 yvel_init#11 ] )
|
||||
to:@return
|
||||
anim::@5: scope:[anim] from anim::@3
|
||||
[33] phi() [ xvel#14 yvel_init#3 ] ( main:2::anim:9 [ xvel#14 yvel_init#3 ] )
|
||||
to:anim::@2
|
||||
init: scope:[init] from main
|
||||
[34] *((const byte*) SPRITES_ENABLE#0) ← (byte/signed byte/word/signed word) 1 [ ] ( main:2::init:5 [ ] )
|
||||
[35] *((const byte*) SPRITES_EXPAND_X#0) ← (byte/signed byte/word/signed word) 0 [ ] ( main:2::init:5 [ ] )
|
||||
[36] *((const byte*) SPRITES_EXPAND_Y#0) ← (byte/signed byte/word/signed word) 0 [ ] ( main:2::init:5 [ ] )
|
||||
[37] *((const byte*) SPRITES_XPOS#0+(byte/signed byte/word/signed word) 0) ← (byte/signed byte/word/signed word) 100 [ ] ( main:2::init:5 [ ] )
|
||||
[38] *((const byte*) SPRITES_YPOS#0+(byte/signed byte/word/signed word) 0) ← (byte/signed byte/word/signed word) 100 [ ] ( main:2::init:5 [ ] )
|
||||
[39] *((const byte*) SPRITES_COLS#0+(byte/signed byte/word/signed word) 0) ← (const byte) WHITE#0 [ ] ( main:2::init:5 [ ] )
|
||||
[40] *((const byte*) SPRITES_PTR#0+(byte/signed byte/word/signed word) 0) ← ((byte))(const byte*) SPRITE#0/(byte/signed byte/word/signed word) 64 [ ] ( main:2::init:5 [ ] )
|
||||
to:init::@1
|
||||
init::@1: scope:[init] from init init::@1
|
||||
[41] (byte*) init::sc#2 ← phi( init/(const byte*) SCREEN#0 init::@1/(byte*) init::sc#1 ) [ init::sc#2 ] ( main:2::init:5 [ init::sc#2 ] )
|
||||
[42] *((byte*) init::sc#2) ← (byte) ' ' [ init::sc#2 ] ( main:2::init:5 [ init::sc#2 ] )
|
||||
[43] (byte*) init::sc#1 ← ++ (byte*) init::sc#2 [ init::sc#1 ] ( main:2::init:5 [ init::sc#1 ] )
|
||||
[44] if((byte*) init::sc#1!=(const byte*) SCREEN#0+(word/signed word) 1000) goto init::@1 [ init::sc#1 ] ( main:2::init:5 [ init::sc#1 ] )
|
||||
to:init::@2
|
||||
init::@2: scope:[init] from init::@1 init::@2
|
||||
[45] (byte) init::i#2 ← phi( init::@2/(byte) init::i#1 init::@1/(byte/signed byte/word/signed word) 0 ) [ init::i#2 ] ( main:2::init:5 [ init::i#2 ] )
|
||||
[46] *((const byte*) SPRITE#0 + (byte) init::i#2) ← (byte/word/signed word) 255 [ init::i#2 ] ( main:2::init:5 [ init::i#2 ] )
|
||||
[47] (byte) init::i#1 ← ++ (byte) init::i#2 [ init::i#1 ] ( main:2::init:5 [ init::i#1 ] )
|
||||
[48] if((byte) init::i#1!=(byte/signed byte/word/signed word) 64) goto init::@2 [ init::i#1 ] ( main:2::init:5 [ init::i#1 ] )
|
||||
to:init::@return
|
||||
init::@return: scope:[init] from init::@2
|
||||
[49] return [ ] ( main:2::init:5 [ ] )
|
||||
to:@return
|
8758
src/main/java/dk/camelot64/kickc/test/ref/signed-words.log
Normal file
8758
src/main/java/dk/camelot64/kickc/test/ref/signed-words.log
Normal file
File diff suppressed because it is too large
Load Diff
94
src/main/java/dk/camelot64/kickc/test/ref/signed-words.sym
Normal file
94
src/main/java/dk/camelot64/kickc/test/ref/signed-words.sym
Normal file
@ -0,0 +1,94 @@
|
||||
(label) @3
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(byte*) RASTER
|
||||
(const byte*) RASTER#0 RASTER = ((byte*))(word) 53266
|
||||
(byte*) SCREEN
|
||||
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word) 1024
|
||||
(byte*) SPRITE
|
||||
(const byte*) SPRITE#0 SPRITE = ((byte*))(word/signed word) 8192
|
||||
(byte*) SPRITES_COLS
|
||||
(const byte*) SPRITES_COLS#0 SPRITES_COLS = ((byte*))(word) 53287
|
||||
(byte*) SPRITES_ENABLE
|
||||
(const byte*) SPRITES_ENABLE#0 SPRITES_ENABLE = ((byte*))(word) 53269
|
||||
(byte*) SPRITES_EXPAND_X
|
||||
(const byte*) SPRITES_EXPAND_X#0 SPRITES_EXPAND_X = ((byte*))(word) 53277
|
||||
(byte*) SPRITES_EXPAND_Y
|
||||
(const byte*) SPRITES_EXPAND_Y#0 SPRITES_EXPAND_Y = ((byte*))(word) 53271
|
||||
(byte*) SPRITES_PTR
|
||||
(const byte*) SPRITES_PTR#0 SPRITES_PTR = (const byte*) SCREEN#0+(word/signed word) 1016
|
||||
(byte*) SPRITES_XMSB
|
||||
(const byte*) SPRITES_XMSB#0 SPRITES_XMSB = ((byte*))(word) 53264
|
||||
(byte*) SPRITES_XPOS
|
||||
(const byte*) SPRITES_XPOS#0 SPRITES_XPOS = ((byte*))(word) 53248
|
||||
(byte*) SPRITES_YPOS
|
||||
(const byte*) SPRITES_YPOS#0 SPRITES_YPOS = ((byte*))(word) 53249
|
||||
(byte) WHITE
|
||||
(const byte) WHITE#0 WHITE = (byte/signed byte/word/signed word) 1
|
||||
(void()) anim()
|
||||
(signed word~) anim::$10 $10 zp ZP_WORD:14 4.0
|
||||
(signed word~) anim::$12 $12 zp ZP_WORD:16 4.0
|
||||
(byte~) anim::$14 reg byte a 4.0
|
||||
(byte~) anim::$15 reg byte a 4.0
|
||||
(byte~) anim::$16 reg byte a 4.0
|
||||
(label) anim::@1
|
||||
(label) anim::@2
|
||||
(label) anim::@3
|
||||
(label) anim::@5
|
||||
(label) anim::@return
|
||||
(signed word) anim::sprite_x
|
||||
(signed word) anim::sprite_x#0 sprite_x zp ZP_WORD:14 0.8571428571428571
|
||||
(signed word) anim::sprite_y
|
||||
(signed word) anim::sprite_y#0 sprite_y zp ZP_WORD:16 1.3333333333333333
|
||||
(signed word) g
|
||||
(const signed word) g#0 g = -(byte/signed byte/word/signed word) 5
|
||||
(void()) init()
|
||||
(label) init::@1
|
||||
(label) init::@2
|
||||
(label) init::@return
|
||||
(byte) init::i
|
||||
(byte) init::i#1 reg byte x 16.5
|
||||
(byte) init::i#2 reg byte x 16.5
|
||||
(byte*) init::sc
|
||||
(byte*) init::sc#1 sc zp ZP_WORD:12 16.5
|
||||
(byte*) init::sc#2 sc zp ZP_WORD:12 16.5
|
||||
(void()) main()
|
||||
(label) main::@2
|
||||
(label) main::@3
|
||||
(label) main::@6
|
||||
(label) main::@return
|
||||
(signed word) xpos
|
||||
(signed word) xpos#10 xpos zp ZP_WORD:8 0.9999999999999999
|
||||
(signed word) xpos#12 xpos zp ZP_WORD:8 3.25
|
||||
(signed word) xpos#9 xpos zp ZP_WORD:8 2.0
|
||||
(signed word) xvel
|
||||
(signed word) xvel#10 xvel zp ZP_WORD:2 1.0
|
||||
(signed word) xvel#12 xvel zp ZP_WORD:2 3.75
|
||||
(signed word) xvel#14 xvel zp ZP_WORD:2 0.6666666666666666
|
||||
(signed word) ypos
|
||||
(signed word) ypos#10 ypos zp ZP_WORD:10 1.3333333333333333
|
||||
(signed word) ypos#11 ypos zp ZP_WORD:10 1.0714285714285714
|
||||
(signed word) ypos#13 ypos zp ZP_WORD:10 3.75
|
||||
(signed word) yvel
|
||||
(signed word) yvel#10 yvel#10 zp ZP_WORD:6 0.9375
|
||||
(signed word) yvel#12 yvel#12 zp ZP_WORD:6 3.25
|
||||
(signed word~) yvel#22 yvel#22 zp ZP_WORD:6 4.0
|
||||
(signed word) yvel#4 yvel zp ZP_WORD:4 3.0
|
||||
(signed word) yvel#9 yvel#9 zp ZP_WORD:6 6.0
|
||||
(signed word) yvel_init
|
||||
(signed word) yvel_init#11 yvel_init zp ZP_WORD:4 0.8823529411764707
|
||||
(signed word) yvel_init#13 yvel_init zp ZP_WORD:4 3.0
|
||||
(signed word) yvel_init#3 yvel_init zp ZP_WORD:4 2.0
|
||||
|
||||
zp ZP_WORD:2 [ xvel#12 xvel#10 xvel#14 ]
|
||||
zp ZP_WORD:4 [ yvel_init#13 yvel_init#11 yvel#4 yvel_init#3 ]
|
||||
zp ZP_WORD:6 [ yvel#9 yvel#12 yvel#10 yvel#22 ]
|
||||
zp ZP_WORD:8 [ xpos#9 xpos#12 xpos#10 ]
|
||||
zp ZP_WORD:10 [ ypos#10 ypos#13 ypos#11 ]
|
||||
zp ZP_WORD:12 [ init::sc#2 init::sc#1 ]
|
||||
reg byte x [ init::i#2 init::i#1 ]
|
||||
zp ZP_WORD:14 [ anim::$10 anim::sprite_x#0 ]
|
||||
zp ZP_WORD:16 [ anim::$12 anim::sprite_y#0 ]
|
||||
reg byte a [ anim::$14 ]
|
||||
reg byte a [ anim::$15 ]
|
||||
reg byte a [ anim::$16 ]
|
@ -3,13 +3,11 @@
|
||||
.pc = $80d "Program"
|
||||
.const memLo = $fe
|
||||
.const memHi = $ff
|
||||
.label char_cursor = 5
|
||||
.label line_cursor = 3
|
||||
.label char_cursor = 5
|
||||
jsr main
|
||||
main: {
|
||||
.const f_2pi = $e2e5
|
||||
.label _3 = 9
|
||||
.label _12 = 9
|
||||
.label i = 2
|
||||
lda #<$4fb
|
||||
sta setFAC.w
|
||||
@ -34,9 +32,9 @@ main: {
|
||||
sta i
|
||||
b1:
|
||||
lda i
|
||||
sta _3
|
||||
sta setFAC.w
|
||||
lda #0
|
||||
sta _3+1
|
||||
sta setFAC.w+1
|
||||
jsr setFAC
|
||||
lda #<f_2pi
|
||||
sta mulFACbyMEM.mem
|
||||
@ -70,29 +68,28 @@ main: {
|
||||
bne b17
|
||||
rts
|
||||
b17:
|
||||
lda print_ln._0
|
||||
lda line_cursor
|
||||
sta char_cursor
|
||||
lda print_ln._0+1
|
||||
lda line_cursor+1
|
||||
sta char_cursor+1
|
||||
jmp b1
|
||||
f_i: .byte 0, 0, 0, 0, 0
|
||||
f_127: .byte 0, 0, 0, 0, 0
|
||||
}
|
||||
print_ln: {
|
||||
.label _0 = 3
|
||||
b1:
|
||||
lda _0
|
||||
lda line_cursor
|
||||
clc
|
||||
adc #$28
|
||||
sta _0
|
||||
sta line_cursor
|
||||
bcc !+
|
||||
inc _0+1
|
||||
inc line_cursor+1
|
||||
!:
|
||||
lda _0+1
|
||||
lda line_cursor+1
|
||||
cmp char_cursor+1
|
||||
bcc b1
|
||||
bne !+
|
||||
lda _0
|
||||
lda line_cursor
|
||||
cmp char_cursor
|
||||
bcc b1
|
||||
!:
|
||||
@ -191,12 +188,11 @@ divMEMbyFAC: {
|
||||
rts
|
||||
}
|
||||
setFAC: {
|
||||
.label _0 = 7
|
||||
.label w = 9
|
||||
lda w
|
||||
sta _0
|
||||
sta prepareMEM.mem
|
||||
lda w+1
|
||||
sta _0+1
|
||||
sta prepareMEM.mem+1
|
||||
jsr prepareMEM
|
||||
ldy $fe
|
||||
lda $ff
|
||||
|
@ -20,196 +20,189 @@ main::@4: scope:[main] from main::@3
|
||||
[9] call setMEMtoFAC param-assignment [ ] ( main:2 [ ] )
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main::@17 main::@4
|
||||
[10] (byte*) line_cursor#13 ← phi( main::@17/(byte*~) print_ln::$0 main::@4/((byte*))(word/signed word) 1024 ) [ main::i#10 char_cursor#32 line_cursor#13 ] ( main:2 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
[10] (byte*) line_cursor#13 ← phi( main::@17/(byte*) line_cursor#1 main::@4/((byte*))(word/signed word) 1024 ) [ main::i#10 char_cursor#32 line_cursor#13 ] ( main:2 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
[10] (byte*) char_cursor#32 ← phi( main::@17/(byte*~) char_cursor#48 main::@4/((byte*))(word/signed word) 1024 ) [ main::i#10 char_cursor#32 line_cursor#13 ] ( main:2 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
[10] (byte) main::i#10 ← phi( main::@17/(byte) main::i#1 main::@4/(byte/signed byte/word/signed word) 1 ) [ main::i#10 char_cursor#32 line_cursor#13 ] ( main:2 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
[11] (word~) main::$3 ← ((word)) (byte) main::i#10 [ main::i#10 char_cursor#32 line_cursor#13 main::$3 ] ( main:2 [ main::i#10 char_cursor#32 line_cursor#13 main::$3 ] )
|
||||
[12] (word) setFAC::w#1 ← (word~) main::$3 [ main::i#10 char_cursor#32 line_cursor#13 setFAC::w#1 ] ( main:2 [ main::i#10 char_cursor#32 line_cursor#13 setFAC::w#1 ] )
|
||||
[13] call setFAC param-assignment [ main::i#10 char_cursor#32 line_cursor#13 ] ( main:2 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
[11] (word) setFAC::w#1 ← ((word)) (byte) main::i#10 [ main::i#10 char_cursor#32 line_cursor#13 setFAC::w#1 ] ( main:2 [ main::i#10 char_cursor#32 line_cursor#13 setFAC::w#1 ] )
|
||||
[12] call setFAC param-assignment [ main::i#10 char_cursor#32 line_cursor#13 ] ( main:2 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
to:main::@6
|
||||
main::@6: scope:[main] from main::@1
|
||||
[14] phi() [ main::i#10 char_cursor#32 line_cursor#13 ] ( main:2 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
[15] call mulFACbyMEM param-assignment [ main::i#10 char_cursor#32 line_cursor#13 ] ( main:2 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
[13] phi() [ main::i#10 char_cursor#32 line_cursor#13 ] ( main:2 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
[14] call mulFACbyMEM param-assignment [ main::i#10 char_cursor#32 line_cursor#13 ] ( main:2 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
to:main::@7
|
||||
main::@7: scope:[main] from main::@6
|
||||
[16] phi() [ main::i#10 char_cursor#32 line_cursor#13 ] ( main:2 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
[17] call setMEMtoFAC param-assignment [ main::i#10 char_cursor#32 line_cursor#13 ] ( main:2 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
[15] phi() [ main::i#10 char_cursor#32 line_cursor#13 ] ( main:2 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
[16] call setMEMtoFAC param-assignment [ main::i#10 char_cursor#32 line_cursor#13 ] ( main:2 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
to:main::@8
|
||||
main::@8: scope:[main] from main::@7
|
||||
[18] phi() [ main::i#10 char_cursor#32 line_cursor#13 ] ( main:2 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
[19] call setFAC param-assignment [ main::i#10 char_cursor#32 line_cursor#13 ] ( main:2 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
[17] phi() [ main::i#10 char_cursor#32 line_cursor#13 ] ( main:2 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
[18] call setFAC param-assignment [ main::i#10 char_cursor#32 line_cursor#13 ] ( main:2 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
to:main::@9
|
||||
main::@9: scope:[main] from main::@8
|
||||
[20] phi() [ main::i#10 char_cursor#32 line_cursor#13 ] ( main:2 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
[21] call divMEMbyFAC param-assignment [ main::i#10 char_cursor#32 line_cursor#13 ] ( main:2 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
[19] phi() [ main::i#10 char_cursor#32 line_cursor#13 ] ( main:2 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
[20] call divMEMbyFAC param-assignment [ main::i#10 char_cursor#32 line_cursor#13 ] ( main:2 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
to:main::@10
|
||||
main::@10: scope:[main] from main::@9
|
||||
[22] phi() [ main::i#10 char_cursor#32 line_cursor#13 ] ( main:2 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
[23] call sinFAC param-assignment [ main::i#10 char_cursor#32 line_cursor#13 ] ( main:2 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
[21] phi() [ main::i#10 char_cursor#32 line_cursor#13 ] ( main:2 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
[22] call sinFAC param-assignment [ main::i#10 char_cursor#32 line_cursor#13 ] ( main:2 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
to:main::@11
|
||||
main::@11: scope:[main] from main::@10
|
||||
[24] phi() [ main::i#10 char_cursor#32 line_cursor#13 ] ( main:2 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
[25] call mulFACbyMEM param-assignment [ main::i#10 char_cursor#32 line_cursor#13 ] ( main:2 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
[23] phi() [ main::i#10 char_cursor#32 line_cursor#13 ] ( main:2 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
[24] call mulFACbyMEM param-assignment [ main::i#10 char_cursor#32 line_cursor#13 ] ( main:2 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
to:main::@12
|
||||
main::@12: scope:[main] from main::@11
|
||||
[26] phi() [ main::i#10 char_cursor#32 line_cursor#13 ] ( main:2 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
[27] call addMEMtoFAC param-assignment [ main::i#10 char_cursor#32 line_cursor#13 ] ( main:2 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
[25] phi() [ main::i#10 char_cursor#32 line_cursor#13 ] ( main:2 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
[26] call addMEMtoFAC param-assignment [ main::i#10 char_cursor#32 line_cursor#13 ] ( main:2 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
to:main::@13
|
||||
main::@13: scope:[main] from main::@12
|
||||
[28] phi() [ main::i#10 char_cursor#32 line_cursor#13 ] ( main:2 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
[29] call getFAC param-assignment [ main::i#10 char_cursor#32 line_cursor#13 getFAC::return#0 ] ( main:2 [ main::i#10 char_cursor#32 line_cursor#13 getFAC::return#0 ] )
|
||||
[30] (word) getFAC::return#2 ← (word) getFAC::return#0 [ main::i#10 char_cursor#32 line_cursor#13 getFAC::return#2 ] ( main:2 [ main::i#10 char_cursor#32 line_cursor#13 getFAC::return#2 ] )
|
||||
[27] phi() [ main::i#10 char_cursor#32 line_cursor#13 ] ( main:2 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
[28] call getFAC param-assignment [ main::i#10 char_cursor#32 line_cursor#13 getFAC::return#0 ] ( main:2 [ main::i#10 char_cursor#32 line_cursor#13 getFAC::return#0 ] )
|
||||
[29] (word) getFAC::return#2 ← (word) getFAC::return#0 [ main::i#10 char_cursor#32 line_cursor#13 getFAC::return#2 ] ( main:2 [ main::i#10 char_cursor#32 line_cursor#13 getFAC::return#2 ] )
|
||||
to:main::@14
|
||||
main::@14: scope:[main] from main::@13
|
||||
[31] (word~) main::$12 ← (word) getFAC::return#2 [ main::i#10 char_cursor#32 line_cursor#13 main::$12 ] ( main:2 [ main::i#10 char_cursor#32 line_cursor#13 main::$12 ] )
|
||||
[32] (word) print_word::w#0 ← (word~) main::$12 [ main::i#10 char_cursor#32 line_cursor#13 print_word::w#0 ] ( main:2 [ main::i#10 char_cursor#32 line_cursor#13 print_word::w#0 ] )
|
||||
[33] call print_word param-assignment [ main::i#10 line_cursor#13 char_cursor#10 ] ( main:2 [ main::i#10 line_cursor#13 char_cursor#10 ] )
|
||||
[30] (word) print_word::w#0 ← (word) getFAC::return#2 [ main::i#10 char_cursor#32 line_cursor#13 print_word::w#0 ] ( main:2 [ main::i#10 char_cursor#32 line_cursor#13 print_word::w#0 ] )
|
||||
[31] call print_word param-assignment [ main::i#10 line_cursor#13 char_cursor#10 ] ( main:2 [ main::i#10 line_cursor#13 char_cursor#10 ] )
|
||||
to:main::@15
|
||||
main::@15: scope:[main] from main::@14
|
||||
[34] phi() [ main::i#10 line_cursor#13 char_cursor#10 ] ( main:2 [ main::i#10 line_cursor#13 char_cursor#10 ] )
|
||||
[35] call print_ln param-assignment [ main::i#10 print_ln::$0 ] ( main:2 [ main::i#10 print_ln::$0 ] )
|
||||
[32] phi() [ main::i#10 line_cursor#13 char_cursor#10 ] ( main:2 [ main::i#10 line_cursor#13 char_cursor#10 ] )
|
||||
[33] call print_ln param-assignment [ main::i#10 line_cursor#1 ] ( main:2 [ main::i#10 line_cursor#1 ] )
|
||||
to:main::@16
|
||||
main::@16: scope:[main] from main::@15
|
||||
[36] (byte) main::i#1 ← ++ (byte) main::i#10 [ main::i#1 print_ln::$0 ] ( main:2 [ main::i#1 print_ln::$0 ] )
|
||||
[37] if((byte) main::i#1!=(byte/signed byte/word/signed word) 26) goto main::@17 [ main::i#1 print_ln::$0 ] ( main:2 [ main::i#1 print_ln::$0 ] )
|
||||
[34] (byte) main::i#1 ← ++ (byte) main::i#10 [ main::i#1 line_cursor#1 ] ( main:2 [ main::i#1 line_cursor#1 ] )
|
||||
[35] if((byte) main::i#1!=(byte/signed byte/word/signed word) 26) goto main::@17 [ main::i#1 line_cursor#1 ] ( main:2 [ main::i#1 line_cursor#1 ] )
|
||||
to:main::@return
|
||||
main::@return: scope:[main] from main::@16
|
||||
[38] return [ ] ( main:2 [ ] )
|
||||
[36] return [ ] ( main:2 [ ] )
|
||||
to:@return
|
||||
main::@17: scope:[main] from main::@16
|
||||
[39] (byte*~) char_cursor#48 ← (byte*~) print_ln::$0 [ main::i#1 char_cursor#48 print_ln::$0 ] ( main:2 [ main::i#1 char_cursor#48 print_ln::$0 ] )
|
||||
[37] (byte*~) char_cursor#48 ← (byte*) line_cursor#1 [ main::i#1 char_cursor#48 line_cursor#1 ] ( main:2 [ main::i#1 char_cursor#48 line_cursor#1 ] )
|
||||
to:main::@1
|
||||
print_ln: scope:[print_ln] from main::@15
|
||||
[40] phi() [ line_cursor#13 char_cursor#10 ] ( main:2::print_ln:35 [ main::i#10 line_cursor#13 char_cursor#10 ] )
|
||||
[38] phi() [ line_cursor#13 char_cursor#10 ] ( main:2::print_ln:33 [ main::i#10 line_cursor#13 char_cursor#10 ] )
|
||||
to:print_ln::@1
|
||||
print_ln::@1: scope:[print_ln] from print_ln print_ln::@1
|
||||
[41] (byte*) line_cursor#6 ← phi( print_ln/(byte*) line_cursor#13 print_ln::@1/(byte*~) print_ln::$0 ) [ line_cursor#6 char_cursor#10 ] ( main:2::print_ln:35 [ main::i#10 line_cursor#6 char_cursor#10 ] )
|
||||
[42] (byte*~) print_ln::$0 ← (byte*) line_cursor#6 + (byte/signed byte/word/signed word) 40 [ print_ln::$0 char_cursor#10 ] ( main:2::print_ln:35 [ main::i#10 print_ln::$0 char_cursor#10 ] )
|
||||
[43] if((byte*~) print_ln::$0<(byte*) char_cursor#10) goto print_ln::@1 [ print_ln::$0 char_cursor#10 ] ( main:2::print_ln:35 [ main::i#10 print_ln::$0 char_cursor#10 ] )
|
||||
[39] (byte*) line_cursor#6 ← phi( print_ln/(byte*) line_cursor#13 print_ln::@1/(byte*) line_cursor#1 ) [ line_cursor#6 char_cursor#10 ] ( main:2::print_ln:33 [ main::i#10 line_cursor#6 char_cursor#10 ] )
|
||||
[40] (byte*) line_cursor#1 ← (byte*) line_cursor#6 + (byte/signed byte/word/signed word) 40 [ line_cursor#1 char_cursor#10 ] ( main:2::print_ln:33 [ main::i#10 line_cursor#1 char_cursor#10 ] )
|
||||
[41] if((byte*) line_cursor#1<(byte*) char_cursor#10) goto print_ln::@1 [ line_cursor#1 char_cursor#10 ] ( main:2::print_ln:33 [ main::i#10 line_cursor#1 char_cursor#10 ] )
|
||||
to:print_ln::@return
|
||||
print_ln::@return: scope:[print_ln] from print_ln::@1
|
||||
[44] return [ print_ln::$0 ] ( main:2::print_ln:35 [ main::i#10 print_ln::$0 ] )
|
||||
[42] return [ line_cursor#1 ] ( main:2::print_ln:33 [ main::i#10 line_cursor#1 ] )
|
||||
to:@return
|
||||
print_word: scope:[print_word] from main::@14
|
||||
[45] (byte~) print_word::$0 ← > (word) print_word::w#0 [ char_cursor#32 print_word::w#0 print_word::$0 ] ( main:2::print_word:33 [ main::i#10 line_cursor#13 char_cursor#32 print_word::w#0 print_word::$0 ] )
|
||||
[46] (byte) print_byte::b#0 ← (byte~) print_word::$0 [ char_cursor#32 print_word::w#0 print_byte::b#0 ] ( main:2::print_word:33 [ main::i#10 line_cursor#13 char_cursor#32 print_word::w#0 print_byte::b#0 ] )
|
||||
[47] call print_byte param-assignment [ print_word::w#0 char_cursor#10 ] ( main:2::print_word:33 [ main::i#10 line_cursor#13 print_word::w#0 char_cursor#10 ] )
|
||||
[43] (byte) print_byte::b#0 ← > (word) print_word::w#0 [ char_cursor#32 print_word::w#0 print_byte::b#0 ] ( main:2::print_word:31 [ main::i#10 line_cursor#13 char_cursor#32 print_word::w#0 print_byte::b#0 ] )
|
||||
[44] call print_byte param-assignment [ print_word::w#0 char_cursor#10 ] ( main:2::print_word:31 [ main::i#10 line_cursor#13 print_word::w#0 char_cursor#10 ] )
|
||||
to:print_word::@1
|
||||
print_word::@1: scope:[print_word] from print_word
|
||||
[48] (byte~) print_word::$2 ← < (word) print_word::w#0 [ char_cursor#10 print_word::$2 ] ( main:2::print_word:33 [ main::i#10 line_cursor#13 char_cursor#10 print_word::$2 ] )
|
||||
[49] (byte) print_byte::b#1 ← (byte~) print_word::$2 [ char_cursor#10 print_byte::b#1 ] ( main:2::print_word:33 [ main::i#10 line_cursor#13 char_cursor#10 print_byte::b#1 ] )
|
||||
[50] call print_byte param-assignment [ char_cursor#10 ] ( main:2::print_word:33 [ main::i#10 line_cursor#13 char_cursor#10 ] )
|
||||
[45] (byte) print_byte::b#1 ← < (word) print_word::w#0 [ char_cursor#10 print_byte::b#1 ] ( main:2::print_word:31 [ main::i#10 line_cursor#13 char_cursor#10 print_byte::b#1 ] )
|
||||
[46] call print_byte param-assignment [ char_cursor#10 ] ( main:2::print_word:31 [ main::i#10 line_cursor#13 char_cursor#10 ] )
|
||||
to:print_word::@return
|
||||
print_word::@return: scope:[print_word] from print_word::@1
|
||||
[51] return [ char_cursor#10 ] ( main:2::print_word:33 [ main::i#10 line_cursor#13 char_cursor#10 ] )
|
||||
[47] return [ char_cursor#10 ] ( main:2::print_word:31 [ main::i#10 line_cursor#13 char_cursor#10 ] )
|
||||
to:@return
|
||||
print_byte: scope:[print_byte] from print_word print_word::@1
|
||||
[52] (byte*) char_cursor#31 ← phi( print_word/(byte*) char_cursor#32 print_word::@1/(byte*) char_cursor#10 ) [ print_byte::b#2 char_cursor#31 ] ( main:2::print_word:33::print_byte:47 [ main::i#10 line_cursor#13 print_word::w#0 print_byte::b#2 char_cursor#31 ] main:2::print_word:33::print_byte:50 [ main::i#10 line_cursor#13 print_byte::b#2 char_cursor#31 ] )
|
||||
[52] (byte) print_byte::b#2 ← phi( print_word/(byte) print_byte::b#0 print_word::@1/(byte) print_byte::b#1 ) [ print_byte::b#2 char_cursor#31 ] ( main:2::print_word:33::print_byte:47 [ main::i#10 line_cursor#13 print_word::w#0 print_byte::b#2 char_cursor#31 ] main:2::print_word:33::print_byte:50 [ main::i#10 line_cursor#13 print_byte::b#2 char_cursor#31 ] )
|
||||
[53] (byte~) print_byte::$0 ← (byte) print_byte::b#2 >> (byte/signed byte/word/signed word) 4 [ print_byte::b#2 char_cursor#31 print_byte::$0 ] ( main:2::print_word:33::print_byte:47 [ main::i#10 line_cursor#13 print_word::w#0 print_byte::b#2 char_cursor#31 print_byte::$0 ] main:2::print_word:33::print_byte:50 [ main::i#10 line_cursor#13 print_byte::b#2 char_cursor#31 print_byte::$0 ] )
|
||||
[54] (byte~) print_byte::$1 ← (const byte[]) print_byte::hextab#0 *idx (byte~) print_byte::$0 [ print_byte::b#2 char_cursor#31 print_byte::$1 ] ( main:2::print_word:33::print_byte:47 [ main::i#10 line_cursor#13 print_word::w#0 print_byte::b#2 char_cursor#31 print_byte::$1 ] main:2::print_word:33::print_byte:50 [ main::i#10 line_cursor#13 print_byte::b#2 char_cursor#31 print_byte::$1 ] )
|
||||
[55] (byte) print_char::ch#0 ← (byte~) print_byte::$1 [ print_byte::b#2 char_cursor#31 print_char::ch#0 ] ( main:2::print_word:33::print_byte:47 [ main::i#10 line_cursor#13 print_word::w#0 print_byte::b#2 char_cursor#31 print_char::ch#0 ] main:2::print_word:33::print_byte:50 [ main::i#10 line_cursor#13 print_byte::b#2 char_cursor#31 print_char::ch#0 ] )
|
||||
[56] call print_char param-assignment [ char_cursor#10 print_byte::b#2 ] ( main:2::print_word:33::print_byte:47 [ main::i#10 line_cursor#13 print_word::w#0 char_cursor#10 print_byte::b#2 ] main:2::print_word:33::print_byte:50 [ main::i#10 line_cursor#13 char_cursor#10 print_byte::b#2 ] )
|
||||
[48] (byte*) char_cursor#31 ← phi( print_word/(byte*) char_cursor#32 print_word::@1/(byte*) char_cursor#10 ) [ print_byte::b#2 char_cursor#31 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 line_cursor#13 print_word::w#0 print_byte::b#2 char_cursor#31 ] main:2::print_word:31::print_byte:46 [ main::i#10 line_cursor#13 print_byte::b#2 char_cursor#31 ] )
|
||||
[48] (byte) print_byte::b#2 ← phi( print_word/(byte) print_byte::b#0 print_word::@1/(byte) print_byte::b#1 ) [ print_byte::b#2 char_cursor#31 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 line_cursor#13 print_word::w#0 print_byte::b#2 char_cursor#31 ] main:2::print_word:31::print_byte:46 [ main::i#10 line_cursor#13 print_byte::b#2 char_cursor#31 ] )
|
||||
[49] (byte~) print_byte::$0 ← (byte) print_byte::b#2 >> (byte/signed byte/word/signed word) 4 [ print_byte::b#2 char_cursor#31 print_byte::$0 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 line_cursor#13 print_word::w#0 print_byte::b#2 char_cursor#31 print_byte::$0 ] main:2::print_word:31::print_byte:46 [ main::i#10 line_cursor#13 print_byte::b#2 char_cursor#31 print_byte::$0 ] )
|
||||
[50] (byte) print_char::ch#0 ← (const byte[]) print_byte::hextab#0 *idx (byte~) print_byte::$0 [ print_byte::b#2 char_cursor#31 print_char::ch#0 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 line_cursor#13 print_word::w#0 print_byte::b#2 char_cursor#31 print_char::ch#0 ] main:2::print_word:31::print_byte:46 [ main::i#10 line_cursor#13 print_byte::b#2 char_cursor#31 print_char::ch#0 ] )
|
||||
[51] call print_char param-assignment [ char_cursor#10 print_byte::b#2 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 line_cursor#13 print_word::w#0 char_cursor#10 print_byte::b#2 ] main:2::print_word:31::print_byte:46 [ main::i#10 line_cursor#13 char_cursor#10 print_byte::b#2 ] )
|
||||
to:print_byte::@1
|
||||
print_byte::@1: scope:[print_byte] from print_byte
|
||||
[57] (byte~) print_byte::$3 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word) 15 [ char_cursor#10 print_byte::$3 ] ( main:2::print_word:33::print_byte:47 [ main::i#10 line_cursor#13 print_word::w#0 char_cursor#10 print_byte::$3 ] main:2::print_word:33::print_byte:50 [ main::i#10 line_cursor#13 char_cursor#10 print_byte::$3 ] )
|
||||
[58] (byte~) print_byte::$4 ← (const byte[]) print_byte::hextab#0 *idx (byte~) print_byte::$3 [ char_cursor#10 print_byte::$4 ] ( main:2::print_word:33::print_byte:47 [ main::i#10 line_cursor#13 print_word::w#0 char_cursor#10 print_byte::$4 ] main:2::print_word:33::print_byte:50 [ main::i#10 line_cursor#13 char_cursor#10 print_byte::$4 ] )
|
||||
[59] (byte) print_char::ch#1 ← (byte~) print_byte::$4 [ char_cursor#10 print_char::ch#1 ] ( main:2::print_word:33::print_byte:47 [ main::i#10 line_cursor#13 print_word::w#0 char_cursor#10 print_char::ch#1 ] main:2::print_word:33::print_byte:50 [ main::i#10 line_cursor#13 char_cursor#10 print_char::ch#1 ] )
|
||||
[60] call print_char param-assignment [ char_cursor#10 ] ( main:2::print_word:33::print_byte:47 [ main::i#10 line_cursor#13 print_word::w#0 char_cursor#10 ] main:2::print_word:33::print_byte:50 [ main::i#10 line_cursor#13 char_cursor#10 ] )
|
||||
[52] (byte~) print_byte::$3 ← (byte) print_byte::b#2 & (byte/signed byte/word/signed word) 15 [ char_cursor#10 print_byte::$3 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 line_cursor#13 print_word::w#0 char_cursor#10 print_byte::$3 ] main:2::print_word:31::print_byte:46 [ main::i#10 line_cursor#13 char_cursor#10 print_byte::$3 ] )
|
||||
[53] (byte) print_char::ch#1 ← (const byte[]) print_byte::hextab#0 *idx (byte~) print_byte::$3 [ char_cursor#10 print_char::ch#1 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 line_cursor#13 print_word::w#0 char_cursor#10 print_char::ch#1 ] main:2::print_word:31::print_byte:46 [ main::i#10 line_cursor#13 char_cursor#10 print_char::ch#1 ] )
|
||||
[54] call print_char param-assignment [ char_cursor#10 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 line_cursor#13 print_word::w#0 char_cursor#10 ] main:2::print_word:31::print_byte:46 [ main::i#10 line_cursor#13 char_cursor#10 ] )
|
||||
to:print_byte::@return
|
||||
print_byte::@return: scope:[print_byte] from print_byte::@1
|
||||
[61] return [ char_cursor#10 ] ( main:2::print_word:33::print_byte:47 [ main::i#10 line_cursor#13 print_word::w#0 char_cursor#10 ] main:2::print_word:33::print_byte:50 [ main::i#10 line_cursor#13 char_cursor#10 ] )
|
||||
[55] return [ char_cursor#10 ] ( main:2::print_word:31::print_byte:44 [ main::i#10 line_cursor#13 print_word::w#0 char_cursor#10 ] main:2::print_word:31::print_byte:46 [ main::i#10 line_cursor#13 char_cursor#10 ] )
|
||||
to:@return
|
||||
print_char: scope:[print_char] from print_byte print_byte::@1
|
||||
[62] (byte*) char_cursor#23 ← phi( print_byte/(byte*) char_cursor#31 print_byte::@1/(byte*) char_cursor#10 ) [ print_char::ch#2 char_cursor#23 ] ( main:2::print_word:33::print_byte:47::print_char:56 [ main::i#10 line_cursor#13 print_word::w#0 print_byte::b#2 print_char::ch#2 char_cursor#23 ] main:2::print_word:33::print_byte:50::print_char:56 [ main::i#10 line_cursor#13 print_byte::b#2 print_char::ch#2 char_cursor#23 ] main:2::print_word:33::print_byte:47::print_char:60 [ main::i#10 line_cursor#13 print_word::w#0 print_char::ch#2 char_cursor#23 ] main:2::print_word:33::print_byte:50::print_char:60 [ main::i#10 line_cursor#13 print_char::ch#2 char_cursor#23 ] )
|
||||
[62] (byte) print_char::ch#2 ← phi( print_byte/(byte) print_char::ch#0 print_byte::@1/(byte) print_char::ch#1 ) [ print_char::ch#2 char_cursor#23 ] ( main:2::print_word:33::print_byte:47::print_char:56 [ main::i#10 line_cursor#13 print_word::w#0 print_byte::b#2 print_char::ch#2 char_cursor#23 ] main:2::print_word:33::print_byte:50::print_char:56 [ main::i#10 line_cursor#13 print_byte::b#2 print_char::ch#2 char_cursor#23 ] main:2::print_word:33::print_byte:47::print_char:60 [ main::i#10 line_cursor#13 print_word::w#0 print_char::ch#2 char_cursor#23 ] main:2::print_word:33::print_byte:50::print_char:60 [ main::i#10 line_cursor#13 print_char::ch#2 char_cursor#23 ] )
|
||||
[63] *((byte*) char_cursor#23) ← (byte) print_char::ch#2 [ char_cursor#23 ] ( main:2::print_word:33::print_byte:47::print_char:56 [ main::i#10 line_cursor#13 print_word::w#0 print_byte::b#2 char_cursor#23 ] main:2::print_word:33::print_byte:50::print_char:56 [ main::i#10 line_cursor#13 print_byte::b#2 char_cursor#23 ] main:2::print_word:33::print_byte:47::print_char:60 [ main::i#10 line_cursor#13 print_word::w#0 char_cursor#23 ] main:2::print_word:33::print_byte:50::print_char:60 [ main::i#10 line_cursor#13 char_cursor#23 ] )
|
||||
[64] (byte*) char_cursor#10 ← ++ (byte*) char_cursor#23 [ char_cursor#10 ] ( main:2::print_word:33::print_byte:47::print_char:56 [ main::i#10 line_cursor#13 print_word::w#0 print_byte::b#2 char_cursor#10 ] main:2::print_word:33::print_byte:50::print_char:56 [ main::i#10 line_cursor#13 print_byte::b#2 char_cursor#10 ] main:2::print_word:33::print_byte:47::print_char:60 [ main::i#10 line_cursor#13 print_word::w#0 char_cursor#10 ] main:2::print_word:33::print_byte:50::print_char:60 [ main::i#10 line_cursor#13 char_cursor#10 ] )
|
||||
[56] (byte*) char_cursor#23 ← phi( print_byte/(byte*) char_cursor#31 print_byte::@1/(byte*) char_cursor#10 ) [ print_char::ch#2 char_cursor#23 ] ( main:2::print_word:31::print_byte:44::print_char:51 [ main::i#10 line_cursor#13 print_word::w#0 print_byte::b#2 print_char::ch#2 char_cursor#23 ] main:2::print_word:31::print_byte:46::print_char:51 [ main::i#10 line_cursor#13 print_byte::b#2 print_char::ch#2 char_cursor#23 ] main:2::print_word:31::print_byte:44::print_char:54 [ main::i#10 line_cursor#13 print_word::w#0 print_char::ch#2 char_cursor#23 ] main:2::print_word:31::print_byte:46::print_char:54 [ main::i#10 line_cursor#13 print_char::ch#2 char_cursor#23 ] )
|
||||
[56] (byte) print_char::ch#2 ← phi( print_byte/(byte) print_char::ch#0 print_byte::@1/(byte) print_char::ch#1 ) [ print_char::ch#2 char_cursor#23 ] ( main:2::print_word:31::print_byte:44::print_char:51 [ main::i#10 line_cursor#13 print_word::w#0 print_byte::b#2 print_char::ch#2 char_cursor#23 ] main:2::print_word:31::print_byte:46::print_char:51 [ main::i#10 line_cursor#13 print_byte::b#2 print_char::ch#2 char_cursor#23 ] main:2::print_word:31::print_byte:44::print_char:54 [ main::i#10 line_cursor#13 print_word::w#0 print_char::ch#2 char_cursor#23 ] main:2::print_word:31::print_byte:46::print_char:54 [ main::i#10 line_cursor#13 print_char::ch#2 char_cursor#23 ] )
|
||||
[57] *((byte*) char_cursor#23) ← (byte) print_char::ch#2 [ char_cursor#23 ] ( main:2::print_word:31::print_byte:44::print_char:51 [ main::i#10 line_cursor#13 print_word::w#0 print_byte::b#2 char_cursor#23 ] main:2::print_word:31::print_byte:46::print_char:51 [ main::i#10 line_cursor#13 print_byte::b#2 char_cursor#23 ] main:2::print_word:31::print_byte:44::print_char:54 [ main::i#10 line_cursor#13 print_word::w#0 char_cursor#23 ] main:2::print_word:31::print_byte:46::print_char:54 [ main::i#10 line_cursor#13 char_cursor#23 ] )
|
||||
[58] (byte*) char_cursor#10 ← ++ (byte*) char_cursor#23 [ char_cursor#10 ] ( main:2::print_word:31::print_byte:44::print_char:51 [ main::i#10 line_cursor#13 print_word::w#0 print_byte::b#2 char_cursor#10 ] main:2::print_word:31::print_byte:46::print_char:51 [ main::i#10 line_cursor#13 print_byte::b#2 char_cursor#10 ] main:2::print_word:31::print_byte:44::print_char:54 [ main::i#10 line_cursor#13 print_word::w#0 char_cursor#10 ] main:2::print_word:31::print_byte:46::print_char:54 [ main::i#10 line_cursor#13 char_cursor#10 ] )
|
||||
to:print_char::@return
|
||||
print_char::@return: scope:[print_char] from print_char
|
||||
[65] return [ char_cursor#10 ] ( main:2::print_word:33::print_byte:47::print_char:56 [ main::i#10 line_cursor#13 print_word::w#0 print_byte::b#2 char_cursor#10 ] main:2::print_word:33::print_byte:50::print_char:56 [ main::i#10 line_cursor#13 print_byte::b#2 char_cursor#10 ] main:2::print_word:33::print_byte:47::print_char:60 [ main::i#10 line_cursor#13 print_word::w#0 char_cursor#10 ] main:2::print_word:33::print_byte:50::print_char:60 [ main::i#10 line_cursor#13 char_cursor#10 ] )
|
||||
[59] return [ char_cursor#10 ] ( main:2::print_word:31::print_byte:44::print_char:51 [ main::i#10 line_cursor#13 print_word::w#0 print_byte::b#2 char_cursor#10 ] main:2::print_word:31::print_byte:46::print_char:51 [ main::i#10 line_cursor#13 print_byte::b#2 char_cursor#10 ] main:2::print_word:31::print_byte:44::print_char:54 [ main::i#10 line_cursor#13 print_word::w#0 char_cursor#10 ] main:2::print_word:31::print_byte:46::print_char:54 [ main::i#10 line_cursor#13 char_cursor#10 ] )
|
||||
to:@return
|
||||
getFAC: scope:[getFAC] from main::@13
|
||||
asm { jsr$b1aasty$festa$ff }
|
||||
[67] (word) getFAC::w#1 ← (byte/signed byte/word/signed word) 0 lo= *((const byte*) memLo#0) [ getFAC::w#1 ] ( main:2::getFAC:29 [ main::i#10 char_cursor#32 line_cursor#13 getFAC::w#1 ] )
|
||||
[68] (word) getFAC::return#0 ← (word) getFAC::w#1 hi= *((const byte*) memHi#0) [ getFAC::return#0 ] ( main:2::getFAC:29 [ main::i#10 char_cursor#32 line_cursor#13 getFAC::return#0 ] )
|
||||
[61] (word) getFAC::w#1 ← (byte/signed byte/word/signed word) 0 lo= *((const byte*) memLo#0) [ getFAC::w#1 ] ( main:2::getFAC:28 [ main::i#10 char_cursor#32 line_cursor#13 getFAC::w#1 ] )
|
||||
[62] (word) getFAC::return#0 ← (word) getFAC::w#1 hi= *((const byte*) memHi#0) [ getFAC::return#0 ] ( main:2::getFAC:28 [ main::i#10 char_cursor#32 line_cursor#13 getFAC::return#0 ] )
|
||||
to:getFAC::@return
|
||||
getFAC::@return: scope:[getFAC] from getFAC
|
||||
[69] return [ getFAC::return#0 ] ( main:2::getFAC:29 [ main::i#10 char_cursor#32 line_cursor#13 getFAC::return#0 ] )
|
||||
[63] return [ getFAC::return#0 ] ( main:2::getFAC:28 [ main::i#10 char_cursor#32 line_cursor#13 getFAC::return#0 ] )
|
||||
to:@return
|
||||
addMEMtoFAC: scope:[addMEMtoFAC] from main::@12
|
||||
[70] phi() [ ] ( main:2::addMEMtoFAC:27 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
[71] call prepareMEM param-assignment [ ] ( main:2::addMEMtoFAC:27 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
[64] phi() [ ] ( main:2::addMEMtoFAC:26 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
[65] call prepareMEM param-assignment [ ] ( main:2::addMEMtoFAC:26 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
to:addMEMtoFAC::@1
|
||||
addMEMtoFAC::@1: scope:[addMEMtoFAC] from addMEMtoFAC
|
||||
asm { lda$feldy$ffjsr$b867 }
|
||||
to:addMEMtoFAC::@return
|
||||
addMEMtoFAC::@return: scope:[addMEMtoFAC] from addMEMtoFAC::@1
|
||||
[73] return [ ] ( main:2::addMEMtoFAC:27 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
[67] return [ ] ( main:2::addMEMtoFAC:26 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
to:@return
|
||||
prepareMEM: scope:[prepareMEM] from addMEMtoFAC divMEMbyFAC mulFACbyMEM setFAC setMEMtoFAC
|
||||
[74] (byte*) prepareMEM::mem#5 ← phi( addMEMtoFAC/(const byte[]) main::f_127#0 divMEMbyFAC/(const byte[]) main::f_i#0 mulFACbyMEM/(byte*) prepareMEM::mem#4 setFAC/(byte*) prepareMEM::mem#0 setMEMtoFAC/(byte*) prepareMEM::mem#1 ) [ prepareMEM::mem#5 ] ( main:2::addMEMtoFAC:27::prepareMEM:71 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::mulFACbyMEM:15::prepareMEM:82 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::mulFACbyMEM:25::prepareMEM:82 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::divMEMbyFAC:21::prepareMEM:88 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::setFAC:5::prepareMEM:94 [ prepareMEM::mem#5 ] main:2::setFAC:13::prepareMEM:94 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::setFAC:19::prepareMEM:94 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::setMEMtoFAC:9::prepareMEM:99 [ prepareMEM::mem#5 ] main:2::setMEMtoFAC:17::prepareMEM:99 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] )
|
||||
[75] (byte~) prepareMEM::$0 ← < (byte*) prepareMEM::mem#5 [ prepareMEM::mem#5 prepareMEM::$0 ] ( main:2::addMEMtoFAC:27::prepareMEM:71 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 prepareMEM::$0 ] main:2::mulFACbyMEM:15::prepareMEM:82 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 prepareMEM::$0 ] main:2::mulFACbyMEM:25::prepareMEM:82 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 prepareMEM::$0 ] main:2::divMEMbyFAC:21::prepareMEM:88 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 prepareMEM::$0 ] main:2::setFAC:5::prepareMEM:94 [ prepareMEM::mem#5 prepareMEM::$0 ] main:2::setFAC:13::prepareMEM:94 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 prepareMEM::$0 ] main:2::setFAC:19::prepareMEM:94 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 prepareMEM::$0 ] main:2::setMEMtoFAC:9::prepareMEM:99 [ prepareMEM::mem#5 prepareMEM::$0 ] main:2::setMEMtoFAC:17::prepareMEM:99 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 prepareMEM::$0 ] )
|
||||
[76] *((const byte*) memLo#0) ← (byte~) prepareMEM::$0 [ prepareMEM::mem#5 ] ( main:2::addMEMtoFAC:27::prepareMEM:71 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::mulFACbyMEM:15::prepareMEM:82 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::mulFACbyMEM:25::prepareMEM:82 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::divMEMbyFAC:21::prepareMEM:88 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::setFAC:5::prepareMEM:94 [ prepareMEM::mem#5 ] main:2::setFAC:13::prepareMEM:94 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::setFAC:19::prepareMEM:94 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::setMEMtoFAC:9::prepareMEM:99 [ prepareMEM::mem#5 ] main:2::setMEMtoFAC:17::prepareMEM:99 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] )
|
||||
[77] (byte~) prepareMEM::$1 ← > (byte*) prepareMEM::mem#5 [ prepareMEM::$1 ] ( main:2::addMEMtoFAC:27::prepareMEM:71 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::$1 ] main:2::mulFACbyMEM:15::prepareMEM:82 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::$1 ] main:2::mulFACbyMEM:25::prepareMEM:82 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::$1 ] main:2::divMEMbyFAC:21::prepareMEM:88 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::$1 ] main:2::setFAC:5::prepareMEM:94 [ prepareMEM::$1 ] main:2::setFAC:13::prepareMEM:94 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::$1 ] main:2::setFAC:19::prepareMEM:94 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::$1 ] main:2::setMEMtoFAC:9::prepareMEM:99 [ prepareMEM::$1 ] main:2::setMEMtoFAC:17::prepareMEM:99 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::$1 ] )
|
||||
[78] *((const byte*) memHi#0) ← (byte~) prepareMEM::$1 [ ] ( main:2::addMEMtoFAC:27::prepareMEM:71 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::mulFACbyMEM:15::prepareMEM:82 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::mulFACbyMEM:25::prepareMEM:82 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::divMEMbyFAC:21::prepareMEM:88 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::setFAC:5::prepareMEM:94 [ ] main:2::setFAC:13::prepareMEM:94 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::setFAC:19::prepareMEM:94 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::setMEMtoFAC:9::prepareMEM:99 [ ] main:2::setMEMtoFAC:17::prepareMEM:99 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
[68] (byte*) prepareMEM::mem#5 ← phi( addMEMtoFAC/(const byte[]) main::f_127#0 divMEMbyFAC/(const byte[]) main::f_i#0 mulFACbyMEM/(byte*) prepareMEM::mem#4 setFAC/(byte*) prepareMEM::mem#0 setMEMtoFAC/(byte*) prepareMEM::mem#1 ) [ prepareMEM::mem#5 ] ( main:2::addMEMtoFAC:26::prepareMEM:65 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::mulFACbyMEM:14::prepareMEM:76 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::mulFACbyMEM:24::prepareMEM:76 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::divMEMbyFAC:20::prepareMEM:82 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::setFAC:5::prepareMEM:87 [ prepareMEM::mem#5 ] main:2::setFAC:12::prepareMEM:87 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::setFAC:18::prepareMEM:87 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::setMEMtoFAC:9::prepareMEM:92 [ prepareMEM::mem#5 ] main:2::setMEMtoFAC:16::prepareMEM:92 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] )
|
||||
[69] (byte~) prepareMEM::$0 ← < (byte*) prepareMEM::mem#5 [ prepareMEM::mem#5 prepareMEM::$0 ] ( main:2::addMEMtoFAC:26::prepareMEM:65 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 prepareMEM::$0 ] main:2::mulFACbyMEM:14::prepareMEM:76 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 prepareMEM::$0 ] main:2::mulFACbyMEM:24::prepareMEM:76 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 prepareMEM::$0 ] main:2::divMEMbyFAC:20::prepareMEM:82 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 prepareMEM::$0 ] main:2::setFAC:5::prepareMEM:87 [ prepareMEM::mem#5 prepareMEM::$0 ] main:2::setFAC:12::prepareMEM:87 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 prepareMEM::$0 ] main:2::setFAC:18::prepareMEM:87 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 prepareMEM::$0 ] main:2::setMEMtoFAC:9::prepareMEM:92 [ prepareMEM::mem#5 prepareMEM::$0 ] main:2::setMEMtoFAC:16::prepareMEM:92 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 prepareMEM::$0 ] )
|
||||
[70] *((const byte*) memLo#0) ← (byte~) prepareMEM::$0 [ prepareMEM::mem#5 ] ( main:2::addMEMtoFAC:26::prepareMEM:65 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::mulFACbyMEM:14::prepareMEM:76 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::mulFACbyMEM:24::prepareMEM:76 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::divMEMbyFAC:20::prepareMEM:82 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::setFAC:5::prepareMEM:87 [ prepareMEM::mem#5 ] main:2::setFAC:12::prepareMEM:87 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::setFAC:18::prepareMEM:87 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] main:2::setMEMtoFAC:9::prepareMEM:92 [ prepareMEM::mem#5 ] main:2::setMEMtoFAC:16::prepareMEM:92 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#5 ] )
|
||||
[71] (byte~) prepareMEM::$1 ← > (byte*) prepareMEM::mem#5 [ prepareMEM::$1 ] ( main:2::addMEMtoFAC:26::prepareMEM:65 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::$1 ] main:2::mulFACbyMEM:14::prepareMEM:76 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::$1 ] main:2::mulFACbyMEM:24::prepareMEM:76 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::$1 ] main:2::divMEMbyFAC:20::prepareMEM:82 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::$1 ] main:2::setFAC:5::prepareMEM:87 [ prepareMEM::$1 ] main:2::setFAC:12::prepareMEM:87 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::$1 ] main:2::setFAC:18::prepareMEM:87 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::$1 ] main:2::setMEMtoFAC:9::prepareMEM:92 [ prepareMEM::$1 ] main:2::setMEMtoFAC:16::prepareMEM:92 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::$1 ] )
|
||||
[72] *((const byte*) memHi#0) ← (byte~) prepareMEM::$1 [ ] ( main:2::addMEMtoFAC:26::prepareMEM:65 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::mulFACbyMEM:14::prepareMEM:76 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::mulFACbyMEM:24::prepareMEM:76 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::divMEMbyFAC:20::prepareMEM:82 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::setFAC:5::prepareMEM:87 [ ] main:2::setFAC:12::prepareMEM:87 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::setFAC:18::prepareMEM:87 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::setMEMtoFAC:9::prepareMEM:92 [ ] main:2::setMEMtoFAC:16::prepareMEM:92 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
to:prepareMEM::@return
|
||||
prepareMEM::@return: scope:[prepareMEM] from prepareMEM
|
||||
[79] return [ ] ( main:2::addMEMtoFAC:27::prepareMEM:71 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::mulFACbyMEM:15::prepareMEM:82 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::mulFACbyMEM:25::prepareMEM:82 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::divMEMbyFAC:21::prepareMEM:88 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::setFAC:5::prepareMEM:94 [ ] main:2::setFAC:13::prepareMEM:94 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::setFAC:19::prepareMEM:94 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::setMEMtoFAC:9::prepareMEM:99 [ ] main:2::setMEMtoFAC:17::prepareMEM:99 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
[73] return [ ] ( main:2::addMEMtoFAC:26::prepareMEM:65 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::mulFACbyMEM:14::prepareMEM:76 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::mulFACbyMEM:24::prepareMEM:76 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::divMEMbyFAC:20::prepareMEM:82 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::setFAC:5::prepareMEM:87 [ ] main:2::setFAC:12::prepareMEM:87 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::setFAC:18::prepareMEM:87 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::setMEMtoFAC:9::prepareMEM:92 [ ] main:2::setMEMtoFAC:16::prepareMEM:92 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
to:@return
|
||||
mulFACbyMEM: scope:[mulFACbyMEM] from main::@11 main::@6
|
||||
[80] (byte*) mulFACbyMEM::mem#2 ← phi( main::@11/(const byte[]) main::f_127#0 main::@6/(const byte*) main::f_2pi#0 ) [ mulFACbyMEM::mem#2 ] ( main:2::mulFACbyMEM:15 [ main::i#10 char_cursor#32 line_cursor#13 mulFACbyMEM::mem#2 ] main:2::mulFACbyMEM:25 [ main::i#10 char_cursor#32 line_cursor#13 mulFACbyMEM::mem#2 ] )
|
||||
[81] (byte*) prepareMEM::mem#4 ← (byte*) mulFACbyMEM::mem#2 [ prepareMEM::mem#4 ] ( main:2::mulFACbyMEM:15 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#4 ] main:2::mulFACbyMEM:25 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#4 ] )
|
||||
[82] call prepareMEM param-assignment [ ] ( main:2::mulFACbyMEM:15 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::mulFACbyMEM:25 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
[74] (byte*) mulFACbyMEM::mem#2 ← phi( main::@11/(const byte[]) main::f_127#0 main::@6/(const byte*) main::f_2pi#0 ) [ mulFACbyMEM::mem#2 ] ( main:2::mulFACbyMEM:14 [ main::i#10 char_cursor#32 line_cursor#13 mulFACbyMEM::mem#2 ] main:2::mulFACbyMEM:24 [ main::i#10 char_cursor#32 line_cursor#13 mulFACbyMEM::mem#2 ] )
|
||||
[75] (byte*) prepareMEM::mem#4 ← (byte*) mulFACbyMEM::mem#2 [ prepareMEM::mem#4 ] ( main:2::mulFACbyMEM:14 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#4 ] main:2::mulFACbyMEM:24 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#4 ] )
|
||||
[76] call prepareMEM param-assignment [ ] ( main:2::mulFACbyMEM:14 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::mulFACbyMEM:24 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
to:mulFACbyMEM::@1
|
||||
mulFACbyMEM::@1: scope:[mulFACbyMEM] from mulFACbyMEM
|
||||
asm { lda$feldy$ffjsr$ba28 }
|
||||
to:mulFACbyMEM::@return
|
||||
mulFACbyMEM::@return: scope:[mulFACbyMEM] from mulFACbyMEM::@1
|
||||
[84] return [ ] ( main:2::mulFACbyMEM:15 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::mulFACbyMEM:25 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
[78] return [ ] ( main:2::mulFACbyMEM:14 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::mulFACbyMEM:24 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
to:@return
|
||||
sinFAC: scope:[sinFAC] from main::@10
|
||||
asm { jsr$e26b }
|
||||
to:sinFAC::@return
|
||||
sinFAC::@return: scope:[sinFAC] from sinFAC
|
||||
[86] return [ ] ( main:2::sinFAC:23 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
[80] return [ ] ( main:2::sinFAC:22 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
to:@return
|
||||
divMEMbyFAC: scope:[divMEMbyFAC] from main::@9
|
||||
[87] phi() [ ] ( main:2::divMEMbyFAC:21 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
[88] call prepareMEM param-assignment [ ] ( main:2::divMEMbyFAC:21 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
[81] phi() [ ] ( main:2::divMEMbyFAC:20 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
[82] call prepareMEM param-assignment [ ] ( main:2::divMEMbyFAC:20 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
to:divMEMbyFAC::@1
|
||||
divMEMbyFAC::@1: scope:[divMEMbyFAC] from divMEMbyFAC
|
||||
asm { lda$feldy$ffjsr$bb0f }
|
||||
to:divMEMbyFAC::@return
|
||||
divMEMbyFAC::@return: scope:[divMEMbyFAC] from divMEMbyFAC::@1
|
||||
[90] return [ ] ( main:2::divMEMbyFAC:21 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
[84] return [ ] ( main:2::divMEMbyFAC:20 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
to:@return
|
||||
setFAC: scope:[setFAC] from main main::@1 main::@8
|
||||
[91] (word) setFAC::w#3 ← phi( main/(word/signed word) 1275 main::@1/(word) setFAC::w#1 main::@8/(byte/signed byte/word/signed word) 25 ) [ setFAC::w#3 ] ( main:2::setFAC:5 [ setFAC::w#3 ] main:2::setFAC:13 [ main::i#10 char_cursor#32 line_cursor#13 setFAC::w#3 ] main:2::setFAC:19 [ main::i#10 char_cursor#32 line_cursor#13 setFAC::w#3 ] )
|
||||
[92] (byte*~) setFAC::$0 ← ((byte*)) (word) setFAC::w#3 [ setFAC::$0 ] ( main:2::setFAC:5 [ setFAC::$0 ] main:2::setFAC:13 [ main::i#10 char_cursor#32 line_cursor#13 setFAC::$0 ] main:2::setFAC:19 [ main::i#10 char_cursor#32 line_cursor#13 setFAC::$0 ] )
|
||||
[93] (byte*) prepareMEM::mem#0 ← (byte*~) setFAC::$0 [ prepareMEM::mem#0 ] ( main:2::setFAC:5 [ prepareMEM::mem#0 ] main:2::setFAC:13 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#0 ] main:2::setFAC:19 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#0 ] )
|
||||
[94] call prepareMEM param-assignment [ ] ( main:2::setFAC:5 [ ] main:2::setFAC:13 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::setFAC:19 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
[85] (word) setFAC::w#3 ← phi( main/(word/signed word) 1275 main::@1/(word) setFAC::w#1 main::@8/(byte/signed byte/word/signed word) 25 ) [ setFAC::w#3 ] ( main:2::setFAC:5 [ setFAC::w#3 ] main:2::setFAC:12 [ main::i#10 char_cursor#32 line_cursor#13 setFAC::w#3 ] main:2::setFAC:18 [ main::i#10 char_cursor#32 line_cursor#13 setFAC::w#3 ] )
|
||||
[86] (byte*) prepareMEM::mem#0 ← ((byte*)) (word) setFAC::w#3 [ prepareMEM::mem#0 ] ( main:2::setFAC:5 [ prepareMEM::mem#0 ] main:2::setFAC:12 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#0 ] main:2::setFAC:18 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#0 ] )
|
||||
[87] call prepareMEM param-assignment [ ] ( main:2::setFAC:5 [ ] main:2::setFAC:12 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::setFAC:18 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
to:setFAC::@1
|
||||
setFAC::@1: scope:[setFAC] from setFAC
|
||||
asm { ldy$felda$ffjsr$b391 }
|
||||
to:setFAC::@return
|
||||
setFAC::@return: scope:[setFAC] from setFAC::@1
|
||||
[96] return [ ] ( main:2::setFAC:5 [ ] main:2::setFAC:13 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::setFAC:19 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
[89] return [ ] ( main:2::setFAC:5 [ ] main:2::setFAC:12 [ main::i#10 char_cursor#32 line_cursor#13 ] main:2::setFAC:18 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
to:@return
|
||||
setMEMtoFAC: scope:[setMEMtoFAC] from main::@4 main::@7
|
||||
[97] (byte*) setMEMtoFAC::mem#2 ← phi( main::@4/(const byte[]) main::f_127#0 main::@7/(const byte[]) main::f_i#0 ) [ setMEMtoFAC::mem#2 ] ( main:2::setMEMtoFAC:9 [ setMEMtoFAC::mem#2 ] main:2::setMEMtoFAC:17 [ main::i#10 char_cursor#32 line_cursor#13 setMEMtoFAC::mem#2 ] )
|
||||
[98] (byte*) prepareMEM::mem#1 ← (byte*) setMEMtoFAC::mem#2 [ prepareMEM::mem#1 ] ( main:2::setMEMtoFAC:9 [ prepareMEM::mem#1 ] main:2::setMEMtoFAC:17 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#1 ] )
|
||||
[99] call prepareMEM param-assignment [ ] ( main:2::setMEMtoFAC:9 [ ] main:2::setMEMtoFAC:17 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
[90] (byte*) setMEMtoFAC::mem#2 ← phi( main::@4/(const byte[]) main::f_127#0 main::@7/(const byte[]) main::f_i#0 ) [ setMEMtoFAC::mem#2 ] ( main:2::setMEMtoFAC:9 [ setMEMtoFAC::mem#2 ] main:2::setMEMtoFAC:16 [ main::i#10 char_cursor#32 line_cursor#13 setMEMtoFAC::mem#2 ] )
|
||||
[91] (byte*) prepareMEM::mem#1 ← (byte*) setMEMtoFAC::mem#2 [ prepareMEM::mem#1 ] ( main:2::setMEMtoFAC:9 [ prepareMEM::mem#1 ] main:2::setMEMtoFAC:16 [ main::i#10 char_cursor#32 line_cursor#13 prepareMEM::mem#1 ] )
|
||||
[92] call prepareMEM param-assignment [ ] ( main:2::setMEMtoFAC:9 [ ] main:2::setMEMtoFAC:16 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
to:setMEMtoFAC::@1
|
||||
setMEMtoFAC::@1: scope:[setMEMtoFAC] from setMEMtoFAC
|
||||
asm { ldx$feldy$ffjsr$bbd4 }
|
||||
to:setMEMtoFAC::@return
|
||||
setMEMtoFAC::@return: scope:[setMEMtoFAC] from setMEMtoFAC::@1
|
||||
[101] return [ ] ( main:2::setMEMtoFAC:9 [ ] main:2::setMEMtoFAC:17 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
[94] return [ ] ( main:2::setMEMtoFAC:9 [ ] main:2::setMEMtoFAC:16 [ main::i#10 char_cursor#32 line_cursor#13 ] )
|
||||
to:@return
|
||||
divFACby10: scope:[divFACby10] from main::@3
|
||||
asm { jsr$bafe }
|
||||
to:divFACby10::@return
|
||||
divFACby10::@return: scope:[divFACby10] from divFACby10
|
||||
[103] return [ ] ( main:2::divFACby10:7 [ ] )
|
||||
[96] return [ ] ( main:2::divFACby10:7 [ ] )
|
||||
to:@return
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -6,10 +6,10 @@
|
||||
(label) addMEMtoFAC::@return
|
||||
(byte*) addMEMtoFAC::mem
|
||||
(byte*) char_cursor
|
||||
(byte*) char_cursor#10 char_cursor zp ZP_WORD:5 5.631578947368422
|
||||
(byte*) char_cursor#10 char_cursor zp ZP_WORD:5 6.2941176470588225
|
||||
(byte*) char_cursor#23 char_cursor zp ZP_WORD:5 4.0
|
||||
(byte*) char_cursor#31 char_cursor zp ZP_WORD:5 1.5
|
||||
(byte*) char_cursor#32 char_cursor zp ZP_WORD:5 0.52
|
||||
(byte*) char_cursor#31 char_cursor zp ZP_WORD:5 2.0
|
||||
(byte*) char_cursor#32 char_cursor zp ZP_WORD:5 0.5909090909090909
|
||||
(byte*~) char_cursor#48 char_cursor zp ZP_WORD:5 22.0
|
||||
(void()) divFACby10()
|
||||
(label) divFACby10::@return
|
||||
@ -25,11 +25,10 @@
|
||||
(word) getFAC::w
|
||||
(word) getFAC::w#1 w zp ZP_WORD:9 4.0
|
||||
(byte*) line_cursor
|
||||
(byte*) line_cursor#13 line_cursor zp ZP_WORD:3 0.5
|
||||
(byte*) line_cursor#1 line_cursor zp ZP_WORD:3 46.42857142857143
|
||||
(byte*) line_cursor#13 line_cursor zp ZP_WORD:3 0.5416666666666666
|
||||
(byte*) line_cursor#6 line_cursor zp ZP_WORD:3 204.0
|
||||
(void()) main()
|
||||
(word~) main::$12 $12 zp ZP_WORD:9 22.0
|
||||
(word~) main::$3 $3 zp ZP_WORD:9 22.0
|
||||
(label) main::@1
|
||||
(label) main::@10
|
||||
(label) main::@11
|
||||
@ -54,7 +53,7 @@
|
||||
(const byte[]) main::f_i#0 f_i = { (byte/signed byte/word/signed word) 0, (byte/signed byte/word/signed word) 0, (byte/signed byte/word/signed word) 0, (byte/signed byte/word/signed word) 0, (byte/signed byte/word/signed word) 0 }
|
||||
(byte) main::i
|
||||
(byte) main::i#1 i zp ZP_BYTE:2 11.0
|
||||
(byte) main::i#10 i zp ZP_BYTE:2 1.2692307692307692
|
||||
(byte) main::i#10 i zp ZP_BYTE:2 1.375
|
||||
(byte*) memHi
|
||||
(const byte*) memHi#0 memHi = ((byte*))(byte/word/signed word) 255
|
||||
(byte*) memLo
|
||||
@ -75,15 +74,13 @@
|
||||
(byte*) prepareMEM::mem#5 mem zp ZP_WORD:7 3.333333333333333
|
||||
(void()) print_byte((byte) print_byte::b)
|
||||
(byte~) print_byte::$0 reg byte y 4.0
|
||||
(byte~) print_byte::$1 reg byte a 4.0
|
||||
(byte~) print_byte::$3 reg byte a 4.0
|
||||
(byte~) print_byte::$4 reg byte a 4.0
|
||||
(label) print_byte::@1
|
||||
(label) print_byte::@return
|
||||
(byte) print_byte::b
|
||||
(byte) print_byte::b#0 reg byte x 4.0
|
||||
(byte) print_byte::b#1 reg byte x 4.0
|
||||
(byte) print_byte::b#2 reg byte x 1.6
|
||||
(byte) print_byte::b#2 reg byte x 2.0
|
||||
(byte[]) print_byte::hextab
|
||||
(const byte[]) print_byte::hextab#0 hextab = { (byte) '0', (byte) '1', (byte) '2', (byte) '3', (byte) '4', (byte) '5', (byte) '6', (byte) '7', (byte) '8', (byte) '9', (byte) 'a', (byte) 'b', (byte) 'c', (byte) 'd', (byte) 'e', (byte) 'f' }
|
||||
(void()) print_char((byte) print_char::ch)
|
||||
@ -93,18 +90,14 @@
|
||||
(byte) print_char::ch#1 reg byte a 4.0
|
||||
(byte) print_char::ch#2 reg byte a 6.0
|
||||
(void()) print_ln()
|
||||
(byte*~) print_ln::$0 $0 zp ZP_WORD:3 46.42857142857143
|
||||
(label) print_ln::@1
|
||||
(label) print_ln::@return
|
||||
(void()) print_word((word) print_word::w)
|
||||
(byte~) print_word::$0 reg byte a 4.0
|
||||
(byte~) print_word::$2 reg byte a 4.0
|
||||
(label) print_word::@1
|
||||
(label) print_word::@return
|
||||
(word) print_word::w
|
||||
(word) print_word::w#0 w zp ZP_WORD:9 3.75
|
||||
(word) print_word::w#0 w zp ZP_WORD:9 5.0
|
||||
(void()) setFAC((word) setFAC::w)
|
||||
(byte*~) setFAC::$0 $0 zp ZP_WORD:7 4.0
|
||||
(label) setFAC::@1
|
||||
(label) setFAC::@return
|
||||
(word) setFAC::w
|
||||
@ -119,17 +112,13 @@
|
||||
(label) sinFAC::@return
|
||||
|
||||
zp ZP_BYTE:2 [ main::i#10 main::i#1 ]
|
||||
zp ZP_WORD:3 [ line_cursor#6 line_cursor#13 print_ln::$0 ]
|
||||
zp ZP_WORD:3 [ line_cursor#6 line_cursor#13 line_cursor#1 ]
|
||||
reg byte x [ print_byte::b#2 print_byte::b#0 print_byte::b#1 ]
|
||||
reg byte a [ print_char::ch#2 print_char::ch#0 print_char::ch#1 ]
|
||||
zp ZP_WORD:5 [ char_cursor#23 char_cursor#31 char_cursor#32 char_cursor#48 char_cursor#10 ]
|
||||
zp ZP_WORD:7 [ prepareMEM::mem#5 prepareMEM::mem#4 prepareMEM::mem#0 prepareMEM::mem#1 mulFACbyMEM::mem#2 setMEMtoFAC::mem#2 setFAC::$0 ]
|
||||
zp ZP_WORD:9 [ setFAC::w#3 setFAC::w#1 main::$3 getFAC::return#2 main::$12 print_word::w#0 getFAC::w#1 getFAC::return#0 ]
|
||||
reg byte a [ print_word::$0 ]
|
||||
reg byte a [ print_word::$2 ]
|
||||
zp ZP_WORD:7 [ prepareMEM::mem#5 prepareMEM::mem#4 prepareMEM::mem#0 prepareMEM::mem#1 mulFACbyMEM::mem#2 setMEMtoFAC::mem#2 ]
|
||||
zp ZP_WORD:9 [ setFAC::w#3 setFAC::w#1 getFAC::return#2 print_word::w#0 getFAC::w#1 getFAC::return#0 ]
|
||||
reg byte y [ print_byte::$0 ]
|
||||
reg byte a [ print_byte::$1 ]
|
||||
reg byte a [ print_byte::$3 ]
|
||||
reg byte a [ print_byte::$4 ]
|
||||
reg byte a [ prepareMEM::$0 ]
|
||||
reg byte a [ prepareMEM::$1 ]
|
||||
|
@ -1,21 +1,21 @@
|
||||
.pc = $801 "Basic"
|
||||
:BasicUpstart(main)
|
||||
.pc = $80d "Program"
|
||||
.const memLo = $fe
|
||||
.const memHi = $ff
|
||||
.const PROCPORT = 1
|
||||
.const CHARGEN = $d000
|
||||
.const SCREEN = $400
|
||||
.const COLS = $d800
|
||||
.const RASTER = $d012
|
||||
.const BORDERCOL = $d020
|
||||
.const SPRITES_XPOS = $d000
|
||||
.const SPRITES_YPOS = $d001
|
||||
.const SPRITES_XMSB = $d010
|
||||
.const RASTER = $d012
|
||||
.const SPRITES_ENABLE = $d015
|
||||
.const SPRITES_EXPAND_Y = $d017
|
||||
.const SPRITES_EXPAND_X = $d01d
|
||||
.const BORDERCOL = $d020
|
||||
.const SPRITES_COLS = $d027
|
||||
.const COLS = $d800
|
||||
.const memLo = $fe
|
||||
.const memHi = $ff
|
||||
.const SCREEN = $400
|
||||
.const sinlen_x = $dd
|
||||
.const sintab_x = $1000
|
||||
.const sinlen_y = $c5
|
||||
@ -193,28 +193,24 @@ clear_screen: {
|
||||
}
|
||||
gen_sintab: {
|
||||
.const f_2pi = $e2e5
|
||||
.label _0 = $e
|
||||
.label _3 = $e
|
||||
.label _13 = $e
|
||||
.label _17 = $e
|
||||
.label _23 = $e
|
||||
.label i = 2
|
||||
.label min = 2
|
||||
.label length = 3
|
||||
.label sintab = 8
|
||||
txa
|
||||
sta _0
|
||||
sta setFAC.w
|
||||
lda #0
|
||||
sta _0+1
|
||||
sta setFAC.w+1
|
||||
jsr setFAC
|
||||
jsr setARGtoFAC
|
||||
lda #0
|
||||
tax
|
||||
tay
|
||||
lda min
|
||||
sta _3
|
||||
sta setFAC.w
|
||||
txa
|
||||
sta _3+1
|
||||
sta setFAC.w+1
|
||||
jsr setFAC
|
||||
lda #<f_min
|
||||
sta setMEMtoFAC.mem
|
||||
@ -257,9 +253,9 @@ gen_sintab: {
|
||||
sta i
|
||||
b1:
|
||||
lda i
|
||||
sta _13
|
||||
sta setFAC.w
|
||||
lda #0
|
||||
sta _13+1
|
||||
sta setFAC.w+1
|
||||
jsr setFAC
|
||||
lda #<f_2pi
|
||||
sta mulFACbyMEM.mem
|
||||
@ -272,9 +268,9 @@ gen_sintab: {
|
||||
sta setMEMtoFAC.mem+1
|
||||
jsr setMEMtoFAC
|
||||
lda length
|
||||
sta _17
|
||||
sta setFAC.w
|
||||
lda #0
|
||||
sta _17+1
|
||||
sta setFAC.w+1
|
||||
jsr setFAC
|
||||
lda #<f_i
|
||||
sta divMEMbyFAC.mem
|
||||
@ -379,12 +375,11 @@ divMEMbyFAC: {
|
||||
rts
|
||||
}
|
||||
setFAC: {
|
||||
.label _0 = $c
|
||||
.label w = $e
|
||||
lda w
|
||||
sta _0
|
||||
sta prepareMEM.mem
|
||||
lda w+1
|
||||
sta _0+1
|
||||
sta prepareMEM.mem+1
|
||||
jsr prepareMEM
|
||||
ldy $fe
|
||||
lda $ff
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -138,12 +138,8 @@
|
||||
(byte) gen_chargen_sprite::y#1 y zp ZP_BYTE:3 151.5
|
||||
(byte) gen_chargen_sprite::y#2 y zp ZP_BYTE:3 13.173913043478262
|
||||
(void()) gen_sintab((byte*) gen_sintab::sintab , (byte) gen_sintab::length , (byte) gen_sintab::min , (byte) gen_sintab::max)
|
||||
(word~) gen_sintab::$0 $0 zp ZP_WORD:14 4.0
|
||||
(word~) gen_sintab::$13 $13 zp ZP_WORD:14 22.0
|
||||
(word~) gen_sintab::$17 $17 zp ZP_WORD:14 22.0
|
||||
(word~) gen_sintab::$23 $23 zp ZP_WORD:14 22.0
|
||||
(byte~) gen_sintab::$24 reg byte a 22.0
|
||||
(word~) gen_sintab::$3 $3 zp ZP_WORD:14 4.0
|
||||
(label) gen_sintab::@1
|
||||
(label) gen_sintab::@10
|
||||
(label) gen_sintab::@11
|
||||
@ -176,17 +172,16 @@
|
||||
(const byte[]) gen_sintab::f_min#0 f_min = { (byte/signed byte/word/signed word) 0, (byte/signed byte/word/signed word) 0, (byte/signed byte/word/signed word) 0, (byte/signed byte/word/signed word) 0, (byte/signed byte/word/signed word) 0 }
|
||||
(byte) gen_sintab::i
|
||||
(byte) gen_sintab::i#1 i zp ZP_BYTE:2 16.5
|
||||
(byte) gen_sintab::i#10 i zp ZP_BYTE:2 1.6923076923076923
|
||||
(byte) gen_sintab::i#10 i zp ZP_BYTE:2 1.8333333333333333
|
||||
(byte) gen_sintab::length
|
||||
(byte) gen_sintab::length#10 length zp ZP_BYTE:3 0.4074074074074074
|
||||
(byte) gen_sintab::length#10 length zp ZP_BYTE:3 0.44
|
||||
(byte) gen_sintab::max
|
||||
(byte) gen_sintab::max#2 reg byte x 2.0
|
||||
(byte) gen_sintab::min
|
||||
(byte) gen_sintab::min#2 min zp ZP_BYTE:2 0.2857142857142857
|
||||
(byte) gen_sintab::min#2 min zp ZP_BYTE:2 0.3333333333333333
|
||||
(byte*) gen_sintab::sintab
|
||||
(byte*) gen_sintab::sintab#12 sintab zp ZP_WORD:8 0.2037037037037037
|
||||
(byte*) gen_sintab::sintab#12 sintab zp ZP_WORD:8 0.22
|
||||
(void()) gen_sprites()
|
||||
(byte~) gen_sprites::$0 reg byte a 22.0
|
||||
(label) gen_sprites::@1
|
||||
(label) gen_sprites::@3
|
||||
(label) gen_sprites::@return
|
||||
@ -194,10 +189,10 @@
|
||||
(const byte[]) gen_sprites::cml#0 cml = (string) "camelot"
|
||||
(byte) gen_sprites::i
|
||||
(byte) gen_sprites::i#1 i zp ZP_BYTE:2 16.5
|
||||
(byte) gen_sprites::i#2 i zp ZP_BYTE:2 5.5
|
||||
(byte) gen_sprites::i#2 i zp ZP_BYTE:2 6.6000000000000005
|
||||
(byte*) gen_sprites::spr
|
||||
(byte*) gen_sprites::spr#1 spr zp ZP_WORD:8 7.333333333333333
|
||||
(byte*) gen_sprites::spr#2 spr zp ZP_WORD:8 6.6000000000000005
|
||||
(byte*) gen_sprites::spr#2 spr zp ZP_WORD:8 8.25
|
||||
(word()) getFAC()
|
||||
(label) getFAC::@return
|
||||
(word) getFAC::return
|
||||
@ -267,11 +262,11 @@
|
||||
(byte*) progress_cursor
|
||||
(byte*) progress_cursor#10 progress_cursor zp ZP_WORD:10 4.0
|
||||
(byte*) progress_cursor#11 progress_cursor zp ZP_WORD:10 2.4285714285714284
|
||||
(byte*) progress_cursor#34 progress_cursor zp ZP_WORD:10 0.6551724137931035
|
||||
(byte*) progress_cursor#34 progress_cursor zp ZP_WORD:10 0.7037037037037037
|
||||
(byte) progress_idx
|
||||
(byte) progress_idx#10 progress_idx zp ZP_BYTE:4 3.0
|
||||
(byte) progress_idx#12 progress_idx zp ZP_BYTE:4 2.142857142857143
|
||||
(byte) progress_idx#34 progress_idx zp ZP_BYTE:4 0.52
|
||||
(byte) progress_idx#34 progress_idx zp ZP_BYTE:4 0.5652173913043479
|
||||
(void()) progress_inc()
|
||||
(byte~) progress_inc::$2 reg byte a 4.0
|
||||
(byte~) progress_inc::$3 reg byte a 4.0
|
||||
@ -283,11 +278,10 @@
|
||||
(void()) progress_init((byte*) progress_init::line)
|
||||
(label) progress_init::@return
|
||||
(byte*) progress_init::line
|
||||
(byte*) progress_init::line#2 line zp ZP_WORD:10 0.0625
|
||||
(byte*) progress_init::line#2 line zp ZP_WORD:10 0.06666666666666667
|
||||
(void()) setARGtoFAC()
|
||||
(label) setARGtoFAC::@return
|
||||
(void()) setFAC((word) setFAC::w)
|
||||
(byte*~) setFAC::$0 $0 zp ZP_WORD:12 4.0
|
||||
(label) setFAC::@1
|
||||
(label) setFAC::@return
|
||||
(word) setFAC::w
|
||||
@ -335,8 +329,8 @@ reg byte x [ init::i#2 init::i#1 ]
|
||||
zp ZP_WORD:8 [ clear_screen::sc#2 clear_screen::sc#1 gen_sintab::sintab#12 gen_sprites::spr#2 gen_sprites::spr#1 ]
|
||||
reg byte x [ gen_sintab::max#2 ]
|
||||
zp ZP_WORD:10 [ progress_cursor#34 progress_init::line#2 progress_cursor#11 progress_cursor#10 gen_chargen_sprite::sprite#3 gen_chargen_sprite::sprite#10 gen_chargen_sprite::sprite#11 gen_chargen_sprite::sprite#0 gen_chargen_sprite::sprite#2 gen_chargen_sprite::sprite#4 gen_chargen_sprite::sprite#1 ]
|
||||
zp ZP_WORD:12 [ addMEMtoFAC::mem#2 prepareMEM::mem#5 prepareMEM::mem#2 prepareMEM::mem#3 prepareMEM::mem#4 prepareMEM::mem#0 prepareMEM::mem#1 mulFACbyMEM::mem#2 divMEMbyFAC::mem#2 setMEMtoFAC::mem#5 setFAC::$0 gen_chargen_sprite::chargen#0 ]
|
||||
zp ZP_WORD:14 [ setFAC::w#5 setFAC::w#0 setFAC::w#3 setFAC::w#4 setFAC::w#1 anim::x#0 gen_sintab::$0 gen_sintab::$3 gen_sintab::$13 gen_sintab::$17 getFAC::return#2 gen_sintab::$23 getFAC::w#1 getFAC::return#0 gen_chargen_sprite::$0 gen_chargen_sprite::$1 ]
|
||||
zp ZP_WORD:12 [ addMEMtoFAC::mem#2 prepareMEM::mem#5 prepareMEM::mem#2 prepareMEM::mem#3 prepareMEM::mem#4 prepareMEM::mem#0 prepareMEM::mem#1 mulFACbyMEM::mem#2 divMEMbyFAC::mem#2 setMEMtoFAC::mem#5 gen_chargen_sprite::chargen#0 ]
|
||||
zp ZP_WORD:14 [ setFAC::w#5 setFAC::w#0 setFAC::w#3 setFAC::w#4 setFAC::w#1 anim::x#0 getFAC::return#2 gen_sintab::$23 getFAC::w#1 getFAC::return#0 gen_chargen_sprite::$0 gen_chargen_sprite::$1 ]
|
||||
reg byte y [ gen_chargen_sprite::s_gen_cnt#3 gen_chargen_sprite::s_gen_cnt#4 gen_chargen_sprite::s_gen_cnt#5 gen_chargen_sprite::s_gen_cnt#1 ]
|
||||
reg byte x [ gen_chargen_sprite::b#2 gen_chargen_sprite::b#1 ]
|
||||
reg byte y [ place_sprites::j#2 place_sprites::j#1 ]
|
||||
@ -351,7 +345,6 @@ reg byte a [ progress_inc::$2 ]
|
||||
reg byte a [ progress_inc::$3 ]
|
||||
reg byte a [ prepareMEM::$0 ]
|
||||
reg byte a [ prepareMEM::$1 ]
|
||||
reg byte a [ gen_sprites::$0 ]
|
||||
reg byte x [ gen_chargen_sprite::ch#0 ]
|
||||
reg byte a [ gen_chargen_sprite::$4 ]
|
||||
reg byte a [ gen_chargen_sprite::$7 ]
|
||||
|
@ -156,7 +156,7 @@ findcol::@16: scope:[findcol] from findcol::@7
|
||||
[82] (byte) findcol::mincol#1 ← (const byte[]) COLS#0 *idx (byte) findcol::i#10 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::diff#6 findcol::mincol#1 ] ( main:2::render:7::findcol:56 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::diff#6 findcol::mincol#1 ] )
|
||||
to:findcol::@8
|
||||
findcol::@8: scope:[findcol] from findcol::@16 findcol::@21
|
||||
[83] (byte) findcol::mindiff#11 ← phi( findcol::@16/(byte) findcol::diff#6 findcol::@21/(byte~) findcol::mindiff#14 ) [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#2 findcol::mindiff#11 ] ( main:2::render:7::findcol:56 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#2 findcol::mindiff#11 ] )
|
||||
[83] (byte) findcol::mindiff#11 ← phi( findcol::@16/(byte) findcol::diff#6 findcol::@21/(byte~) findcol::mindiff#15 ) [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#2 findcol::mindiff#11 ] ( main:2::render:7::findcol:56 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#2 findcol::mindiff#11 ] )
|
||||
[83] (byte) findcol::mincol#2 ← phi( findcol::@16/(byte) findcol::mincol#1 findcol::@21/(byte) findcol::mincol#10 ) [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#2 findcol::mindiff#11 ] ( main:2::render:7::findcol:56 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#2 findcol::mindiff#11 ] )
|
||||
[84] (byte) findcol::i#1 ← ++ (byte) findcol::i#10 [ findcol::x#0 findcol::y#0 findcol::i#1 findcol::mincol#2 findcol::mindiff#11 ] ( main:2::render:7::findcol:56 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#1 findcol::mincol#2 findcol::mindiff#11 ] )
|
||||
[85] if((byte) findcol::i#1<(const byte) numpoints#0) goto findcol::@19 [ findcol::x#0 findcol::y#0 findcol::i#1 findcol::mincol#2 findcol::mindiff#11 ] ( main:2::render:7::findcol:56 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#1 findcol::mincol#2 findcol::mindiff#11 ] )
|
||||
@ -165,7 +165,7 @@ findcol::@19: scope:[findcol] from findcol::@8
|
||||
[86] (byte~) findcol::mindiff#13 ← (byte) findcol::mindiff#11 [ findcol::x#0 findcol::y#0 findcol::i#1 findcol::mindiff#13 findcol::mincol#2 ] ( main:2::render:7::findcol:56 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#1 findcol::mindiff#13 findcol::mincol#2 ] )
|
||||
to:findcol::@1
|
||||
findcol::@21: scope:[findcol] from findcol::@7
|
||||
[87] (byte~) findcol::mindiff#14 ← (byte) findcol::mindiff#10 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#10 findcol::mindiff#14 ] ( main:2::render:7::findcol:56 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#10 findcol::mindiff#14 ] )
|
||||
[87] (byte~) findcol::mindiff#15 ← (byte) findcol::mindiff#10 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#10 findcol::mindiff#15 ] ( main:2::render:7::findcol:56 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#10 findcol::mindiff#15 ] )
|
||||
to:findcol::@8
|
||||
findcol::@6: scope:[findcol] from findcol::@5
|
||||
[88] (byte~) findcol::$14 ← (byte) findcol::y#0 - (byte) findcol::yp#0 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$14 ] ( main:2::render:7::findcol:56 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$14 ] )
|
||||
|
@ -6436,7 +6436,7 @@ findcol::@9: scope:[findcol] from findcol::@1
|
||||
if((byte) findcol::y#0!=(byte) findcol::yp#0) goto findcol::@2
|
||||
to:findcol::@return
|
||||
findcol::@return: scope:[findcol] from findcol::@20 findcol::@9
|
||||
(byte) findcol::return#2 ← phi( findcol::@9/(byte/signed byte/word/signed word) 0 findcol::@20/(byte~) findcol::mincol#15 )
|
||||
(byte) findcol::return#2 ← phi( findcol::@9/(byte/signed byte/word/signed word) 0 findcol::@20/(byte~) findcol::return#6 )
|
||||
return
|
||||
to:@return
|
||||
findcol::@2: scope:[findcol] from findcol::@1 findcol::@9
|
||||
@ -6461,17 +6461,17 @@ findcol::@7: scope:[findcol] from findcol::@14 findcol::@6
|
||||
to:findcol::@16
|
||||
findcol::@16: scope:[findcol] from findcol::@7
|
||||
(byte) findcol::mincol#1 ← (const byte[]) COLS#0 *idx (byte) findcol::i#10
|
||||
(byte~) findcol::mincol#16 ← (byte) findcol::mincol#1
|
||||
(byte~) findcol::diff#13 ← (byte) findcol::diff#6
|
||||
(byte~) findcol::mincol#15 ← (byte) findcol::mincol#1
|
||||
(byte~) findcol::mindiff#14 ← (byte) findcol::diff#6
|
||||
to:findcol::@8
|
||||
findcol::@8: scope:[findcol] from findcol::@16 findcol::@21
|
||||
(byte) findcol::mindiff#11 ← phi( findcol::@16/(byte~) findcol::diff#13 findcol::@21/(byte~) findcol::mindiff#14 )
|
||||
(byte) findcol::mincol#2 ← phi( findcol::@16/(byte~) findcol::mincol#16 findcol::@21/(byte~) findcol::mincol#17 )
|
||||
(byte) findcol::mindiff#11 ← phi( findcol::@16/(byte~) findcol::mindiff#14 findcol::@21/(byte~) findcol::mindiff#15 )
|
||||
(byte) findcol::mincol#2 ← phi( findcol::@16/(byte~) findcol::mincol#15 findcol::@21/(byte~) findcol::mincol#16 )
|
||||
(byte) findcol::i#1 ← ++ (byte) findcol::i#10
|
||||
if((byte) findcol::i#1<(const byte) numpoints#0) goto findcol::@19
|
||||
to:findcol::@20
|
||||
findcol::@20: scope:[findcol] from findcol::@8
|
||||
(byte~) findcol::mincol#15 ← (byte) findcol::mincol#2
|
||||
(byte~) findcol::return#6 ← (byte) findcol::mincol#2
|
||||
to:findcol::@return
|
||||
findcol::@19: scope:[findcol] from findcol::@8
|
||||
(byte~) findcol::i#14 ← (byte) findcol::i#1
|
||||
@ -6479,8 +6479,8 @@ findcol::@19: scope:[findcol] from findcol::@8
|
||||
(byte~) findcol::mincol#14 ← (byte) findcol::mincol#2
|
||||
to:findcol::@1
|
||||
findcol::@21: scope:[findcol] from findcol::@7
|
||||
(byte~) findcol::mincol#17 ← (byte) findcol::mincol#10
|
||||
(byte~) findcol::mindiff#14 ← (byte) findcol::mindiff#10
|
||||
(byte~) findcol::mincol#16 ← (byte) findcol::mincol#10
|
||||
(byte~) findcol::mindiff#15 ← (byte) findcol::mindiff#10
|
||||
to:findcol::@8
|
||||
findcol::@6: scope:[findcol] from findcol::@5
|
||||
(byte~) findcol::$14 ← (byte) findcol::y#0 - (byte) findcol::yp#0
|
||||
@ -6679,7 +6679,7 @@ findcol::@9: scope:[findcol] from findcol::@1
|
||||
[74] if((byte) findcol::y#0!=(byte) findcol::yp#0) goto findcol::@2 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::xp#0 findcol::yp#0 ]
|
||||
to:findcol::@return
|
||||
findcol::@return: scope:[findcol] from findcol::@20 findcol::@9
|
||||
[75] (byte) findcol::return#2 ← phi( findcol::@9/(byte/signed byte/word/signed word) 0 findcol::@20/(byte~) findcol::mincol#15 ) [ findcol::return#2 ]
|
||||
[75] (byte) findcol::return#2 ← phi( findcol::@9/(byte/signed byte/word/signed word) 0 findcol::@20/(byte~) findcol::return#6 ) [ findcol::return#2 ]
|
||||
[76] return [ findcol::return#2 ]
|
||||
to:@return
|
||||
findcol::@2: scope:[findcol] from findcol::@1 findcol::@9
|
||||
@ -6704,17 +6704,17 @@ findcol::@7: scope:[findcol] from findcol::@14 findcol::@6
|
||||
to:findcol::@16
|
||||
findcol::@16: scope:[findcol] from findcol::@7
|
||||
[87] (byte) findcol::mincol#1 ← (const byte[]) COLS#0 *idx (byte) findcol::i#10 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::diff#6 findcol::mincol#1 ]
|
||||
[88] (byte~) findcol::mincol#16 ← (byte) findcol::mincol#1 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::diff#6 findcol::mincol#16 ]
|
||||
[89] (byte~) findcol::diff#13 ← (byte) findcol::diff#6 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#16 findcol::diff#13 ]
|
||||
[88] (byte~) findcol::mincol#15 ← (byte) findcol::mincol#1 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::diff#6 findcol::mincol#15 ]
|
||||
[89] (byte~) findcol::mindiff#14 ← (byte) findcol::diff#6 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#15 findcol::mindiff#14 ]
|
||||
to:findcol::@8
|
||||
findcol::@8: scope:[findcol] from findcol::@16 findcol::@21
|
||||
[90] (byte) findcol::mindiff#11 ← phi( findcol::@16/(byte~) findcol::diff#13 findcol::@21/(byte~) findcol::mindiff#14 ) [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#2 findcol::mindiff#11 ]
|
||||
[90] (byte) findcol::mincol#2 ← phi( findcol::@16/(byte~) findcol::mincol#16 findcol::@21/(byte~) findcol::mincol#17 ) [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#2 findcol::mindiff#11 ]
|
||||
[90] (byte) findcol::mindiff#11 ← phi( findcol::@16/(byte~) findcol::mindiff#14 findcol::@21/(byte~) findcol::mindiff#15 ) [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#2 findcol::mindiff#11 ]
|
||||
[90] (byte) findcol::mincol#2 ← phi( findcol::@16/(byte~) findcol::mincol#15 findcol::@21/(byte~) findcol::mincol#16 ) [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#2 findcol::mindiff#11 ]
|
||||
[91] (byte) findcol::i#1 ← ++ (byte) findcol::i#10 [ findcol::x#0 findcol::y#0 findcol::mincol#2 findcol::mindiff#11 findcol::i#1 ]
|
||||
[92] if((byte) findcol::i#1<(const byte) numpoints#0) goto findcol::@19 [ findcol::x#0 findcol::y#0 findcol::mincol#2 findcol::mindiff#11 findcol::i#1 ]
|
||||
to:findcol::@20
|
||||
findcol::@20: scope:[findcol] from findcol::@8
|
||||
[93] (byte~) findcol::mincol#15 ← (byte) findcol::mincol#2 [ findcol::mincol#15 ]
|
||||
[93] (byte~) findcol::return#6 ← (byte) findcol::mincol#2 [ findcol::return#6 ]
|
||||
to:findcol::@return
|
||||
findcol::@19: scope:[findcol] from findcol::@8
|
||||
[94] (byte~) findcol::i#14 ← (byte) findcol::i#1 [ findcol::x#0 findcol::y#0 findcol::i#14 findcol::mincol#2 findcol::mindiff#11 ]
|
||||
@ -6722,8 +6722,8 @@ findcol::@19: scope:[findcol] from findcol::@8
|
||||
[96] (byte~) findcol::mincol#14 ← (byte) findcol::mincol#2 [ findcol::x#0 findcol::y#0 findcol::i#14 findcol::mindiff#13 findcol::mincol#14 ]
|
||||
to:findcol::@1
|
||||
findcol::@21: scope:[findcol] from findcol::@7
|
||||
[97] (byte~) findcol::mincol#17 ← (byte) findcol::mincol#10 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#17 ]
|
||||
[98] (byte~) findcol::mindiff#14 ← (byte) findcol::mindiff#10 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#17 findcol::mindiff#14 ]
|
||||
[97] (byte~) findcol::mincol#16 ← (byte) findcol::mincol#10 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#16 ]
|
||||
[98] (byte~) findcol::mindiff#15 ← (byte) findcol::mindiff#10 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#16 findcol::mindiff#15 ]
|
||||
to:findcol::@8
|
||||
findcol::@6: scope:[findcol] from findcol::@5
|
||||
[99] (byte~) findcol::$14 ← (byte) findcol::y#0 - (byte) findcol::yp#0 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$14 ]
|
||||
@ -6756,14 +6756,14 @@ Coalesced [67] render::colline#6 ← render::colline#1
|
||||
Coalesced [68] render::x#4 ← render::x#1
|
||||
Coalesced [79] findcol::diff#9 ← findcol::diff#1
|
||||
Coalesced [84] findcol::diff#11 ← findcol::diff#3
|
||||
Coalesced [88] findcol::mincol#16 ← findcol::mincol#1
|
||||
Coalesced [89] findcol::diff#13 ← findcol::diff#6
|
||||
Coalesced [93] findcol::mincol#15 ← findcol::mincol#2
|
||||
Coalesced [88] findcol::mincol#15 ← findcol::mincol#1
|
||||
Coalesced [89] findcol::mindiff#14 ← findcol::diff#6
|
||||
Coalesced [93] findcol::return#6 ← findcol::mincol#2
|
||||
Coalesced [94] findcol::i#14 ← findcol::i#1
|
||||
Not coalescing [95] findcol::mindiff#13 ← findcol::mindiff#11
|
||||
Coalesced [96] findcol::mincol#14 ← findcol::mincol#2
|
||||
Coalesced (already) [97] findcol::mincol#17 ← findcol::mincol#10
|
||||
Not coalescing [98] findcol::mindiff#14 ← findcol::mindiff#10
|
||||
Coalesced (already) [97] findcol::mincol#16 ← findcol::mincol#10
|
||||
Not coalescing [98] findcol::mindiff#15 ← findcol::mindiff#10
|
||||
Coalesced [101] findcol::diff#12 ← findcol::diff#2
|
||||
Coalesced [103] findcol::diff#10 ← findcol::diff#0
|
||||
Coalesced [110] initscreen::screen#3 ← initscreen::screen#1
|
||||
@ -6954,7 +6954,7 @@ findcol::@16: scope:[findcol] from findcol::@7
|
||||
[82] (byte) findcol::mincol#1 ← (const byte[]) COLS#0 *idx (byte) findcol::i#10 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::diff#6 findcol::mincol#1 ]
|
||||
to:findcol::@8
|
||||
findcol::@8: scope:[findcol] from findcol::@16 findcol::@21
|
||||
[83] (byte) findcol::mindiff#11 ← phi( findcol::@16/(byte) findcol::diff#6 findcol::@21/(byte~) findcol::mindiff#14 ) [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#2 findcol::mindiff#11 ]
|
||||
[83] (byte) findcol::mindiff#11 ← phi( findcol::@16/(byte) findcol::diff#6 findcol::@21/(byte~) findcol::mindiff#15 ) [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#2 findcol::mindiff#11 ]
|
||||
[83] (byte) findcol::mincol#2 ← phi( findcol::@16/(byte) findcol::mincol#1 findcol::@21/(byte) findcol::mincol#10 ) [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#2 findcol::mindiff#11 ]
|
||||
[84] (byte) findcol::i#1 ← ++ (byte) findcol::i#10 [ findcol::x#0 findcol::y#0 findcol::i#1 findcol::mincol#2 findcol::mindiff#11 ]
|
||||
[85] if((byte) findcol::i#1<(const byte) numpoints#0) goto findcol::@19 [ findcol::x#0 findcol::y#0 findcol::i#1 findcol::mincol#2 findcol::mindiff#11 ]
|
||||
@ -6963,7 +6963,7 @@ findcol::@19: scope:[findcol] from findcol::@8
|
||||
[86] (byte~) findcol::mindiff#13 ← (byte) findcol::mindiff#11 [ findcol::x#0 findcol::y#0 findcol::i#1 findcol::mindiff#13 findcol::mincol#2 ]
|
||||
to:findcol::@1
|
||||
findcol::@21: scope:[findcol] from findcol::@7
|
||||
[87] (byte~) findcol::mindiff#14 ← (byte) findcol::mindiff#10 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#10 findcol::mindiff#14 ]
|
||||
[87] (byte~) findcol::mindiff#15 ← (byte) findcol::mindiff#10 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#10 findcol::mindiff#15 ]
|
||||
to:findcol::@8
|
||||
findcol::@6: scope:[findcol] from findcol::@5
|
||||
[88] (byte~) findcol::$14 ← (byte) findcol::y#0 - (byte) findcol::yp#0 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$14 ]
|
||||
@ -7144,7 +7144,7 @@ findcol::@16: scope:[findcol] from findcol::@7
|
||||
[82] (byte) findcol::mincol#1 ← (const byte[]) COLS#0 *idx (byte) findcol::i#10 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::diff#6 findcol::mincol#1 ] ( main:2::render:7::findcol:56 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::diff#6 findcol::mincol#1 ] )
|
||||
to:findcol::@8
|
||||
findcol::@8: scope:[findcol] from findcol::@16 findcol::@21
|
||||
[83] (byte) findcol::mindiff#11 ← phi( findcol::@16/(byte) findcol::diff#6 findcol::@21/(byte~) findcol::mindiff#14 ) [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#2 findcol::mindiff#11 ] ( main:2::render:7::findcol:56 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#2 findcol::mindiff#11 ] )
|
||||
[83] (byte) findcol::mindiff#11 ← phi( findcol::@16/(byte) findcol::diff#6 findcol::@21/(byte~) findcol::mindiff#15 ) [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#2 findcol::mindiff#11 ] ( main:2::render:7::findcol:56 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#2 findcol::mindiff#11 ] )
|
||||
[83] (byte) findcol::mincol#2 ← phi( findcol::@16/(byte) findcol::mincol#1 findcol::@21/(byte) findcol::mincol#10 ) [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#2 findcol::mindiff#11 ] ( main:2::render:7::findcol:56 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#2 findcol::mindiff#11 ] )
|
||||
[84] (byte) findcol::i#1 ← ++ (byte) findcol::i#10 [ findcol::x#0 findcol::y#0 findcol::i#1 findcol::mincol#2 findcol::mindiff#11 ] ( main:2::render:7::findcol:56 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#1 findcol::mincol#2 findcol::mindiff#11 ] )
|
||||
[85] if((byte) findcol::i#1<(const byte) numpoints#0) goto findcol::@19 [ findcol::x#0 findcol::y#0 findcol::i#1 findcol::mincol#2 findcol::mindiff#11 ] ( main:2::render:7::findcol:56 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#1 findcol::mincol#2 findcol::mindiff#11 ] )
|
||||
@ -7153,7 +7153,7 @@ findcol::@19: scope:[findcol] from findcol::@8
|
||||
[86] (byte~) findcol::mindiff#13 ← (byte) findcol::mindiff#11 [ findcol::x#0 findcol::y#0 findcol::i#1 findcol::mindiff#13 findcol::mincol#2 ] ( main:2::render:7::findcol:56 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#1 findcol::mindiff#13 findcol::mincol#2 ] )
|
||||
to:findcol::@1
|
||||
findcol::@21: scope:[findcol] from findcol::@7
|
||||
[87] (byte~) findcol::mindiff#14 ← (byte) findcol::mindiff#10 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#10 findcol::mindiff#14 ] ( main:2::render:7::findcol:56 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#10 findcol::mindiff#14 ] )
|
||||
[87] (byte~) findcol::mindiff#15 ← (byte) findcol::mindiff#10 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#10 findcol::mindiff#15 ] ( main:2::render:7::findcol:56 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#10 findcol::mindiff#15 ] )
|
||||
to:findcol::@8
|
||||
findcol::@6: scope:[findcol] from findcol::@5
|
||||
[88] (byte~) findcol::$14 ← (byte) findcol::y#0 - (byte) findcol::yp#0 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$14 ] ( main:2::render:7::findcol:56 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mindiff#10 findcol::mincol#10 findcol::diff#4 findcol::$14 ] )
|
||||
@ -7306,7 +7306,7 @@ VARIABLE REGISTER WEIGHTS
|
||||
(byte) findcol::mindiff#10 1875.1875
|
||||
(byte) findcol::mindiff#11 10001.0
|
||||
(byte~) findcol::mindiff#13 20002.0
|
||||
(byte~) findcol::mindiff#14 20002.0
|
||||
(byte~) findcol::mindiff#15 20002.0
|
||||
(byte) findcol::return
|
||||
(byte) findcol::return#0 2002.0
|
||||
(byte) findcol::return#2 3667.333333333333
|
||||
@ -7345,7 +7345,7 @@ Initial phi equivalence classes
|
||||
[ findcol::mindiff#10 findcol::mindiff#13 ]
|
||||
[ findcol::return#2 findcol::mincol#10 findcol::mincol#2 findcol::mincol#1 ]
|
||||
[ findcol::diff#4 findcol::diff#1 findcol::diff#0 ]
|
||||
[ findcol::mindiff#11 findcol::diff#6 findcol::diff#3 findcol::diff#2 findcol::mindiff#14 ]
|
||||
[ findcol::mindiff#11 findcol::diff#6 findcol::diff#3 findcol::diff#2 findcol::mindiff#15 ]
|
||||
[ initscreen::screen#2 initscreen::screen#1 ]
|
||||
Added variable animate::$0 to zero page equivalence class [ animate::$0 ]
|
||||
Added variable animate::$1 to zero page equivalence class [ animate::$1 ]
|
||||
@ -7383,7 +7383,7 @@ Complete equivalence classes
|
||||
[ findcol::mindiff#10 findcol::mindiff#13 ]
|
||||
[ findcol::return#2 findcol::mincol#10 findcol::mincol#2 findcol::mincol#1 ]
|
||||
[ findcol::diff#4 findcol::diff#1 findcol::diff#0 ]
|
||||
[ findcol::mindiff#11 findcol::diff#6 findcol::diff#3 findcol::diff#2 findcol::mindiff#14 ]
|
||||
[ findcol::mindiff#11 findcol::diff#6 findcol::diff#3 findcol::diff#2 findcol::mindiff#15 ]
|
||||
[ initscreen::screen#2 initscreen::screen#1 ]
|
||||
[ animate::$0 ]
|
||||
[ animate::$1 ]
|
||||
@ -7420,7 +7420,7 @@ Allocated zp ZP_BYTE:6 [ findcol::i#10 findcol::i#1 ]
|
||||
Allocated zp ZP_BYTE:7 [ findcol::mindiff#10 findcol::mindiff#13 ]
|
||||
Allocated zp ZP_BYTE:8 [ findcol::return#2 findcol::mincol#10 findcol::mincol#2 findcol::mincol#1 ]
|
||||
Allocated zp ZP_BYTE:9 [ findcol::diff#4 findcol::diff#1 findcol::diff#0 ]
|
||||
Allocated zp ZP_BYTE:10 [ findcol::mindiff#11 findcol::diff#6 findcol::diff#3 findcol::diff#2 findcol::mindiff#14 ]
|
||||
Allocated zp ZP_BYTE:10 [ findcol::mindiff#11 findcol::diff#6 findcol::diff#3 findcol::diff#2 findcol::mindiff#15 ]
|
||||
Allocated zp ZP_WORD:11 [ initscreen::screen#2 initscreen::screen#1 ]
|
||||
Allocated zp ZP_BYTE:13 [ animate::$0 ]
|
||||
Allocated zp ZP_BYTE:14 [ animate::$1 ]
|
||||
@ -7811,7 +7811,7 @@ findcol: {
|
||||
.label diff_6 = $a
|
||||
.label mindiff = 7
|
||||
.label mindiff_11 = $a
|
||||
.label mindiff_14 = $a
|
||||
.label mindiff_15 = $a
|
||||
//SEG104 [67] phi from findcol to findcol::@1 [phi:findcol->findcol::@1]
|
||||
b1_from_findcol:
|
||||
//SEG105 [67] phi (byte) findcol::mincol#10 = (byte/signed byte/word/signed word) 0 [phi:findcol->findcol::@1#0] -- vbuz1=vbuc1
|
||||
@ -7942,9 +7942,9 @@ findcol: {
|
||||
jmp b1
|
||||
//SEG149 findcol::@21
|
||||
b21:
|
||||
//SEG150 [87] (byte~) findcol::mindiff#14 ← (byte) findcol::mindiff#10 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#10 findcol::mindiff#14 ] ( main:2::render:7::findcol:56 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#10 findcol::mindiff#14 ] ) -- vbuz1=vbuz2
|
||||
//SEG150 [87] (byte~) findcol::mindiff#15 ← (byte) findcol::mindiff#10 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#10 findcol::mindiff#15 ] ( main:2::render:7::findcol:56 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#10 findcol::mindiff#15 ] ) -- vbuz1=vbuz2
|
||||
lda mindiff
|
||||
sta mindiff_14
|
||||
sta mindiff_15
|
||||
jmp b8_from_b21
|
||||
//SEG151 findcol::@6
|
||||
b6:
|
||||
@ -8063,7 +8063,7 @@ Potential registers zp ZP_BYTE:6 [ findcol::i#10 findcol::i#1 ] : zp ZP_BYTE:6 ,
|
||||
Potential registers zp ZP_BYTE:7 [ findcol::mindiff#10 findcol::mindiff#13 ] : zp ZP_BYTE:7 , reg byte x , reg byte y ,
|
||||
Potential registers zp ZP_BYTE:8 [ findcol::return#2 findcol::mincol#10 findcol::mincol#2 findcol::mincol#1 ] : zp ZP_BYTE:8 , reg byte x , reg byte y ,
|
||||
Potential registers zp ZP_BYTE:9 [ findcol::diff#4 findcol::diff#1 findcol::diff#0 ] : zp ZP_BYTE:9 , reg byte x , reg byte y ,
|
||||
Potential registers zp ZP_BYTE:10 [ findcol::mindiff#11 findcol::diff#6 findcol::diff#3 findcol::diff#2 findcol::mindiff#14 ] : zp ZP_BYTE:10 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp ZP_BYTE:10 [ findcol::mindiff#11 findcol::diff#6 findcol::diff#3 findcol::diff#2 findcol::mindiff#15 ] : zp ZP_BYTE:10 , reg byte a , reg byte x , reg byte y ,
|
||||
Potential registers zp ZP_WORD:11 [ initscreen::screen#2 initscreen::screen#1 ] : zp ZP_WORD:11 ,
|
||||
Potential registers zp ZP_BYTE:13 [ animate::$0 ] : zp ZP_BYTE:13 , reg byte a , reg byte x , reg byte y , reg byte alu ,
|
||||
Potential registers zp ZP_BYTE:14 [ animate::$1 ] : zp ZP_BYTE:14 , reg byte a , reg byte x , reg byte y ,
|
||||
@ -8095,7 +8095,7 @@ Potential registers zp ZP_BYTE:39 [ findcol::$12 ] : zp ZP_BYTE:39 , reg byte a
|
||||
Potential registers zp ZP_BYTE:40 [ findcol::$14 ] : zp ZP_BYTE:40 , reg byte a , reg byte x , reg byte y ,
|
||||
|
||||
REGISTER UPLIFT SCOPES
|
||||
Uplift Scope [findcol] 83,341.67: zp ZP_BYTE:10 [ findcol::mindiff#11 findcol::diff#6 findcol::diff#3 findcol::diff#2 findcol::mindiff#14 ] 50,005: zp ZP_BYTE:9 [ findcol::diff#4 findcol::diff#1 findcol::diff#0 ] 34,846.92: zp ZP_BYTE:8 [ findcol::return#2 findcol::mincol#10 findcol::mincol#2 findcol::mincol#1 ] 21,877.19: zp ZP_BYTE:7 [ findcol::mindiff#10 findcol::mindiff#13 ] 20,002: zp ZP_BYTE:39 [ findcol::$12 ] 20,002: zp ZP_BYTE:40 [ findcol::$14 ] 12,632.84: zp ZP_BYTE:6 [ findcol::i#10 findcol::i#1 ] 10,001: zp ZP_BYTE:37 [ findcol::xp#0 ] 6,250.62: zp ZP_BYTE:38 [ findcol::yp#0 ] 2,002: zp ZP_BYTE:35 [ findcol::return#0 ] 1,708.54: zp ZP_BYTE:34 [ findcol::y#0 ] 1,640.2: zp ZP_BYTE:33 [ findcol::x#0 ]
|
||||
Uplift Scope [findcol] 83,341.67: zp ZP_BYTE:10 [ findcol::mindiff#11 findcol::diff#6 findcol::diff#3 findcol::diff#2 findcol::mindiff#15 ] 50,005: zp ZP_BYTE:9 [ findcol::diff#4 findcol::diff#1 findcol::diff#0 ] 34,846.92: zp ZP_BYTE:8 [ findcol::return#2 findcol::mincol#10 findcol::mincol#2 findcol::mincol#1 ] 21,877.19: zp ZP_BYTE:7 [ findcol::mindiff#10 findcol::mindiff#13 ] 20,002: zp ZP_BYTE:39 [ findcol::$12 ] 20,002: zp ZP_BYTE:40 [ findcol::$14 ] 12,632.84: zp ZP_BYTE:6 [ findcol::i#10 findcol::i#1 ] 10,001: zp ZP_BYTE:37 [ findcol::xp#0 ] 6,250.62: zp ZP_BYTE:38 [ findcol::yp#0 ] 2,002: zp ZP_BYTE:35 [ findcol::return#0 ] 1,708.54: zp ZP_BYTE:34 [ findcol::y#0 ] 1,640.2: zp ZP_BYTE:33 [ findcol::x#0 ]
|
||||
Uplift Scope [render] 2,073.5: zp ZP_BYTE:5 [ render::x#2 render::x#1 ] 2,002: zp ZP_BYTE:36 [ render::col#0 ] 260.86: zp ZP_BYTE:2 [ render::y#4 render::y#1 ] 187.63: zp ZP_WORD:3 [ render::colline#5 render::colline#1 ]
|
||||
Uplift Scope [animate] 4: zp ZP_BYTE:13 [ animate::$0 ] 4: zp ZP_BYTE:14 [ animate::$1 ] 4: zp ZP_BYTE:15 [ animate::$2 ] 4: zp ZP_BYTE:16 [ animate::$5 ] 4: zp ZP_BYTE:17 [ animate::$6 ] 4: zp ZP_BYTE:18 [ animate::$7 ] 4: zp ZP_BYTE:19 [ animate::$10 ] 4: zp ZP_BYTE:20 [ animate::$11 ] 4: zp ZP_BYTE:21 [ animate::$12 ] 4: zp ZP_BYTE:22 [ animate::$15 ] 4: zp ZP_BYTE:23 [ animate::$16 ] 4: zp ZP_BYTE:24 [ animate::$17 ] 4: zp ZP_BYTE:25 [ animate::$20 ] 4: zp ZP_BYTE:26 [ animate::$21 ] 4: zp ZP_BYTE:27 [ animate::$22 ] 4: zp ZP_BYTE:28 [ animate::$25 ] 4: zp ZP_BYTE:29 [ animate::$26 ] 4: zp ZP_BYTE:30 [ animate::$27 ] 4: zp ZP_BYTE:31 [ animate::$30 ] 4: zp ZP_BYTE:32 [ animate::$31 ]
|
||||
Uplift Scope [initscreen] 33: zp ZP_WORD:11 [ initscreen::screen#2 initscreen::screen#1 ]
|
||||
@ -8103,7 +8103,7 @@ Uplift Scope [main]
|
||||
Uplift Scope []
|
||||
|
||||
Uplift attempts [findcol] 10000/2239488 (limiting to 10000)
|
||||
Uplifting [findcol] best 1714313 combination reg byte a [ findcol::mindiff#11 findcol::diff#6 findcol::diff#3 findcol::diff#2 findcol::mindiff#14 ] zp ZP_BYTE:9 [ findcol::diff#4 findcol::diff#1 findcol::diff#0 ] reg byte y [ findcol::return#2 findcol::mincol#10 findcol::mincol#2 findcol::mincol#1 ] zp ZP_BYTE:7 [ findcol::mindiff#10 findcol::mindiff#13 ] reg byte a [ findcol::$12 ] reg byte a [ findcol::$14 ] reg byte x [ findcol::i#10 findcol::i#1 ] zp ZP_BYTE:37 [ findcol::xp#0 ] zp ZP_BYTE:38 [ findcol::yp#0 ] zp ZP_BYTE:35 [ findcol::return#0 ] zp ZP_BYTE:34 [ findcol::y#0 ] zp ZP_BYTE:33 [ findcol::x#0 ]
|
||||
Uplifting [findcol] best 1714313 combination reg byte a [ findcol::mindiff#11 findcol::diff#6 findcol::diff#3 findcol::diff#2 findcol::mindiff#15 ] zp ZP_BYTE:9 [ findcol::diff#4 findcol::diff#1 findcol::diff#0 ] reg byte y [ findcol::return#2 findcol::mincol#10 findcol::mincol#2 findcol::mincol#1 ] zp ZP_BYTE:7 [ findcol::mindiff#10 findcol::mindiff#13 ] reg byte a [ findcol::$12 ] reg byte a [ findcol::$14 ] reg byte x [ findcol::i#10 findcol::i#1 ] zp ZP_BYTE:37 [ findcol::xp#0 ] zp ZP_BYTE:38 [ findcol::yp#0 ] zp ZP_BYTE:35 [ findcol::return#0 ] zp ZP_BYTE:34 [ findcol::y#0 ] zp ZP_BYTE:33 [ findcol::x#0 ]
|
||||
Limited combination testing to 10000 combinations of 2239488 possible.
|
||||
Uplifting [render] best 1708313 combination zp ZP_BYTE:5 [ render::x#2 render::x#1 ] reg byte a [ render::col#0 ] zp ZP_BYTE:2 [ render::y#4 render::y#1 ] zp ZP_WORD:3 [ render::colline#5 render::colline#1 ]
|
||||
Uplifting [initscreen] best 1708313 combination zp ZP_WORD:11 [ initscreen::screen#2 initscreen::screen#1 ]
|
||||
@ -8577,7 +8577,7 @@ findcol: {
|
||||
jmp b1
|
||||
//SEG149 findcol::@21
|
||||
b21:
|
||||
//SEG150 [87] (byte~) findcol::mindiff#14 ← (byte) findcol::mindiff#10 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#10 findcol::mindiff#14 ] ( main:2::render:7::findcol:56 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#10 findcol::mindiff#14 ] ) -- vbuaa=vbuz1
|
||||
//SEG150 [87] (byte~) findcol::mindiff#15 ← (byte) findcol::mindiff#10 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#10 findcol::mindiff#15 ] ( main:2::render:7::findcol:56 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#10 findcol::mindiff#15 ] ) -- vbuaa=vbuz1
|
||||
lda mindiff
|
||||
jmp b8_from_b21
|
||||
//SEG151 findcol::@6
|
||||
@ -9011,7 +9011,7 @@ findcol: {
|
||||
jmp b1
|
||||
//SEG149 findcol::@21
|
||||
b21:
|
||||
//SEG150 [87] (byte~) findcol::mindiff#14 ← (byte) findcol::mindiff#10 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#10 findcol::mindiff#14 ] ( main:2::render:7::findcol:56 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#10 findcol::mindiff#14 ] ) -- vbuaa=vbuz1
|
||||
//SEG150 [87] (byte~) findcol::mindiff#15 ← (byte) findcol::mindiff#10 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#10 findcol::mindiff#15 ] ( main:2::render:7::findcol:56 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#10 findcol::mindiff#15 ] ) -- vbuaa=vbuz1
|
||||
lda mindiff
|
||||
jmp b8_from_b21
|
||||
//SEG151 findcol::@6
|
||||
@ -9448,7 +9448,7 @@ findcol: {
|
||||
jmp b1
|
||||
//SEG149 findcol::@21
|
||||
b21:
|
||||
//SEG150 [87] (byte~) findcol::mindiff#14 ← (byte) findcol::mindiff#10 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#10 findcol::mindiff#14 ] ( main:2::render:7::findcol:56 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#10 findcol::mindiff#14 ] ) -- vbuaa=vbuz1
|
||||
//SEG150 [87] (byte~) findcol::mindiff#15 ← (byte) findcol::mindiff#10 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#10 findcol::mindiff#15 ] ( main:2::render:7::findcol:56 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#10 findcol::mindiff#15 ] ) -- vbuaa=vbuz1
|
||||
lda mindiff
|
||||
jmp b8
|
||||
//SEG151 findcol::@6
|
||||
@ -9860,7 +9860,7 @@ findcol: {
|
||||
jmp b1
|
||||
//SEG149 findcol::@21
|
||||
b21:
|
||||
//SEG150 [87] (byte~) findcol::mindiff#14 ← (byte) findcol::mindiff#10 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#10 findcol::mindiff#14 ] ( main:2::render:7::findcol:56 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#10 findcol::mindiff#14 ] ) -- vbuaa=vbuz1
|
||||
//SEG150 [87] (byte~) findcol::mindiff#15 ← (byte) findcol::mindiff#10 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#10 findcol::mindiff#15 ] ( main:2::render:7::findcol:56 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#10 findcol::mindiff#15 ] ) -- vbuaa=vbuz1
|
||||
lda mindiff
|
||||
jmp b8
|
||||
//SEG151 findcol::@6
|
||||
@ -10243,7 +10243,7 @@ findcol: {
|
||||
jmp b1
|
||||
//SEG149 findcol::@21
|
||||
b21:
|
||||
//SEG150 [87] (byte~) findcol::mindiff#14 ← (byte) findcol::mindiff#10 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#10 findcol::mindiff#14 ] ( main:2::render:7::findcol:56 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#10 findcol::mindiff#14 ] ) -- vbuaa=vbuz1
|
||||
//SEG150 [87] (byte~) findcol::mindiff#15 ← (byte) findcol::mindiff#10 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#10 findcol::mindiff#15 ] ( main:2::render:7::findcol:56 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#10 findcol::mindiff#15 ] ) -- vbuaa=vbuz1
|
||||
lda mindiff
|
||||
jmp b8
|
||||
//SEG151 findcol::@6
|
||||
@ -10626,7 +10626,7 @@ findcol: {
|
||||
jmp b1
|
||||
//SEG149 findcol::@21
|
||||
b21:
|
||||
//SEG150 [87] (byte~) findcol::mindiff#14 ← (byte) findcol::mindiff#10 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#10 findcol::mindiff#14 ] ( main:2::render:7::findcol:56 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#10 findcol::mindiff#14 ] ) -- vbuaa=vbuz1
|
||||
//SEG150 [87] (byte~) findcol::mindiff#15 ← (byte) findcol::mindiff#10 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#10 findcol::mindiff#15 ] ( main:2::render:7::findcol:56 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#10 findcol::mindiff#15 ] ) -- vbuaa=vbuz1
|
||||
lda mindiff
|
||||
jmp b8
|
||||
//SEG151 findcol::@6
|
||||
@ -11005,7 +11005,7 @@ findcol: {
|
||||
jmp b1
|
||||
//SEG149 findcol::@21
|
||||
b21:
|
||||
//SEG150 [87] (byte~) findcol::mindiff#14 ← (byte) findcol::mindiff#10 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#10 findcol::mindiff#14 ] ( main:2::render:7::findcol:56 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#10 findcol::mindiff#14 ] ) -- vbuaa=vbuz1
|
||||
//SEG150 [87] (byte~) findcol::mindiff#15 ← (byte) findcol::mindiff#10 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#10 findcol::mindiff#15 ] ( main:2::render:7::findcol:56 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#10 findcol::mindiff#15 ] ) -- vbuaa=vbuz1
|
||||
lda mindiff
|
||||
jmp b8
|
||||
//SEG151 findcol::@6
|
||||
@ -11146,7 +11146,7 @@ FINAL SYMBOL TABLE
|
||||
(byte) findcol::mindiff#10 mindiff zp ZP_BYTE:6 1875.1875
|
||||
(byte) findcol::mindiff#11 reg byte a 10001.0
|
||||
(byte~) findcol::mindiff#13 mindiff zp ZP_BYTE:6 20002.0
|
||||
(byte~) findcol::mindiff#14 reg byte a 20002.0
|
||||
(byte~) findcol::mindiff#15 reg byte a 20002.0
|
||||
(byte) findcol::return
|
||||
(byte) findcol::return#0 reg byte a 2002.0
|
||||
(byte) findcol::return#2 reg byte y 3667.333333333333
|
||||
@ -11196,7 +11196,7 @@ reg byte x [ findcol::i#10 findcol::i#1 ]
|
||||
zp ZP_BYTE:6 [ findcol::mindiff#10 findcol::mindiff#13 ]
|
||||
reg byte y [ findcol::return#2 findcol::mincol#10 findcol::mincol#2 findcol::mincol#1 ]
|
||||
zp ZP_BYTE:7 [ findcol::diff#4 findcol::diff#1 findcol::diff#0 findcol::xp#0 ]
|
||||
reg byte a [ findcol::mindiff#11 findcol::diff#6 findcol::diff#3 findcol::diff#2 findcol::mindiff#14 ]
|
||||
reg byte a [ findcol::mindiff#11 findcol::diff#6 findcol::diff#3 findcol::diff#2 findcol::mindiff#15 ]
|
||||
reg byte a [ animate::$0 ]
|
||||
reg byte a [ animate::$1 ]
|
||||
reg byte a [ animate::$2 ]
|
||||
@ -11542,7 +11542,7 @@ findcol: {
|
||||
jmp b1
|
||||
//SEG149 findcol::@21
|
||||
b21:
|
||||
//SEG150 [87] (byte~) findcol::mindiff#14 ← (byte) findcol::mindiff#10 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#10 findcol::mindiff#14 ] ( main:2::render:7::findcol:56 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#10 findcol::mindiff#14 ] ) -- vbuaa=vbuz1
|
||||
//SEG150 [87] (byte~) findcol::mindiff#15 ← (byte) findcol::mindiff#10 [ findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#10 findcol::mindiff#15 ] ( main:2::render:7::findcol:56 [ render::y#4 render::colline#5 render::x#2 findcol::x#0 findcol::y#0 findcol::i#10 findcol::mincol#10 findcol::mindiff#15 ] ) -- vbuaa=vbuz1
|
||||
lda mindiff
|
||||
jmp b8
|
||||
//SEG151 findcol::@6
|
||||
|
@ -80,7 +80,7 @@
|
||||
(byte) findcol::mindiff#10 mindiff zp ZP_BYTE:6 1875.1875
|
||||
(byte) findcol::mindiff#11 reg byte a 10001.0
|
||||
(byte~) findcol::mindiff#13 mindiff zp ZP_BYTE:6 20002.0
|
||||
(byte~) findcol::mindiff#14 reg byte a 20002.0
|
||||
(byte~) findcol::mindiff#15 reg byte a 20002.0
|
||||
(byte) findcol::return
|
||||
(byte) findcol::return#0 reg byte a 2002.0
|
||||
(byte) findcol::return#2 reg byte y 3667.333333333333
|
||||
@ -130,7 +130,7 @@ reg byte x [ findcol::i#10 findcol::i#1 ]
|
||||
zp ZP_BYTE:6 [ findcol::mindiff#10 findcol::mindiff#13 ]
|
||||
reg byte y [ findcol::return#2 findcol::mincol#10 findcol::mincol#2 findcol::mincol#1 ]
|
||||
zp ZP_BYTE:7 [ findcol::diff#4 findcol::diff#1 findcol::diff#0 findcol::xp#0 ]
|
||||
reg byte a [ findcol::mindiff#11 findcol::diff#6 findcol::diff#3 findcol::diff#2 findcol::mindiff#14 ]
|
||||
reg byte a [ findcol::mindiff#11 findcol::diff#6 findcol::diff#3 findcol::diff#2 findcol::mindiff#15 ]
|
||||
reg byte a [ animate::$0 ]
|
||||
reg byte a [ animate::$1 ]
|
||||
reg byte a [ animate::$2 ]
|
||||
|
@ -5,35 +5,35 @@
|
||||
.const SCREEN2 = $400+$28
|
||||
jsr main
|
||||
main: {
|
||||
ldy #0
|
||||
ldx #0
|
||||
b1:
|
||||
tya
|
||||
tax
|
||||
inx
|
||||
tya
|
||||
txa
|
||||
tay
|
||||
iny
|
||||
txa
|
||||
clc
|
||||
adc #2
|
||||
sta sum.c
|
||||
jsr sum
|
||||
sta SCREEN,y
|
||||
tya
|
||||
tax
|
||||
inx
|
||||
tya
|
||||
sta SCREEN,x
|
||||
txa
|
||||
tay
|
||||
iny
|
||||
txa
|
||||
clc
|
||||
adc #2
|
||||
sta sum2.c
|
||||
jsr sum2
|
||||
sta SCREEN2,y
|
||||
iny
|
||||
cpy #$b
|
||||
sta SCREEN2,x
|
||||
inx
|
||||
cpx #$b
|
||||
bne b1
|
||||
rts
|
||||
}
|
||||
sum2: {
|
||||
.label c = 2
|
||||
sty $ff
|
||||
txa
|
||||
stx $ff
|
||||
tya
|
||||
clc
|
||||
adc $ff
|
||||
clc
|
||||
@ -42,8 +42,8 @@ sum2: {
|
||||
}
|
||||
sum: {
|
||||
.label c = 2
|
||||
sty $ff
|
||||
txa
|
||||
stx $ff
|
||||
tya
|
||||
clc
|
||||
adc $ff
|
||||
clc
|
||||
|
@ -12,45 +12,41 @@ main: scope:[main] from @3
|
||||
to:main::@1
|
||||
main::@1: scope:[main] from main main::@4
|
||||
[5] (byte) main::i#2 ← phi( main/(byte/signed byte/word/signed word) 0 main::@4/(byte) main::i#1 ) [ main::i#2 ] ( main:2 [ main::i#2 ] )
|
||||
[6] (byte~) main::$0 ← (byte) main::i#2 + (byte/signed byte/word/signed word) 1 [ main::i#2 main::$0 ] ( main:2 [ main::i#2 main::$0 ] )
|
||||
[7] (byte~) main::$1 ← (byte) main::i#2 + (byte/signed byte/word/signed word) 2 [ main::i#2 main::$0 main::$1 ] ( main:2 [ main::i#2 main::$0 main::$1 ] )
|
||||
[8] (byte) sum::a#0 ← (byte) main::i#2 [ main::i#2 main::$0 main::$1 sum::a#0 ] ( main:2 [ main::i#2 main::$0 main::$1 sum::a#0 ] )
|
||||
[9] (byte) sum::b#0 ← (byte~) main::$0 [ main::i#2 main::$1 sum::a#0 sum::b#0 ] ( main:2 [ main::i#2 main::$1 sum::a#0 sum::b#0 ] )
|
||||
[10] (byte) sum::c#0 ← (byte~) main::$1 [ main::i#2 sum::a#0 sum::b#0 sum::c#0 ] ( main:2 [ main::i#2 sum::a#0 sum::b#0 sum::c#0 ] )
|
||||
[11] call sum param-assignment [ main::i#2 sum::return#1 ] ( main:2 [ main::i#2 sum::return#1 ] )
|
||||
[12] (byte) sum::return#0 ← (byte) sum::return#1 [ main::i#2 sum::return#0 ] ( main:2 [ main::i#2 sum::return#0 ] )
|
||||
[6] (byte) sum::b#0 ← (byte) main::i#2 + (byte/signed byte/word/signed word) 1 [ main::i#2 sum::b#0 ] ( main:2 [ main::i#2 sum::b#0 ] )
|
||||
[7] (byte) sum::c#0 ← (byte) main::i#2 + (byte/signed byte/word/signed word) 2 [ main::i#2 sum::b#0 sum::c#0 ] ( main:2 [ main::i#2 sum::b#0 sum::c#0 ] )
|
||||
[8] (byte) sum::a#0 ← (byte) main::i#2 [ main::i#2 sum::b#0 sum::c#0 sum::a#0 ] ( main:2 [ main::i#2 sum::b#0 sum::c#0 sum::a#0 ] )
|
||||
[9] call sum param-assignment [ main::i#2 sum::return#1 ] ( main:2 [ main::i#2 sum::return#1 ] )
|
||||
[10] (byte) sum::return#0 ← (byte) sum::return#1 [ main::i#2 sum::return#0 ] ( main:2 [ main::i#2 sum::return#0 ] )
|
||||
to:main::@3
|
||||
main::@3: scope:[main] from main::@1
|
||||
[13] (byte~) main::$2 ← (byte) sum::return#0 [ main::i#2 main::$2 ] ( main:2 [ main::i#2 main::$2 ] )
|
||||
[14] *((const byte*) SCREEN#0 + (byte) main::i#2) ← (byte~) main::$2 [ main::i#2 ] ( main:2 [ main::i#2 ] )
|
||||
[15] (byte~) main::$3 ← (byte) main::i#2 + (byte/signed byte/word/signed word) 1 [ main::i#2 main::$3 ] ( main:2 [ main::i#2 main::$3 ] )
|
||||
[16] (byte~) main::$4 ← (byte) main::i#2 + (byte/signed byte/word/signed word) 2 [ main::i#2 main::$3 main::$4 ] ( main:2 [ main::i#2 main::$3 main::$4 ] )
|
||||
[17] (byte) sum2::a#0 ← (byte) main::i#2 [ main::i#2 main::$3 main::$4 sum2::a#0 ] ( main:2 [ main::i#2 main::$3 main::$4 sum2::a#0 ] )
|
||||
[18] (byte) sum2::b#0 ← (byte~) main::$3 [ main::i#2 main::$4 sum2::a#0 sum2::b#0 ] ( main:2 [ main::i#2 main::$4 sum2::a#0 sum2::b#0 ] )
|
||||
[19] (byte) sum2::c#0 ← (byte~) main::$4 [ main::i#2 sum2::a#0 sum2::b#0 sum2::c#0 ] ( main:2 [ main::i#2 sum2::a#0 sum2::b#0 sum2::c#0 ] )
|
||||
[20] call sum2 param-assignment [ main::i#2 sum2::return#1 ] ( main:2 [ main::i#2 sum2::return#1 ] )
|
||||
[21] (byte) sum2::return#0 ← (byte) sum2::return#1 [ main::i#2 sum2::return#0 ] ( main:2 [ main::i#2 sum2::return#0 ] )
|
||||
[11] (byte~) main::$2 ← (byte) sum::return#0 [ main::i#2 main::$2 ] ( main:2 [ main::i#2 main::$2 ] )
|
||||
[12] *((const byte*) SCREEN#0 + (byte) main::i#2) ← (byte~) main::$2 [ main::i#2 ] ( main:2 [ main::i#2 ] )
|
||||
[13] (byte) sum2::b#0 ← (byte) main::i#2 + (byte/signed byte/word/signed word) 1 [ main::i#2 sum2::b#0 ] ( main:2 [ main::i#2 sum2::b#0 ] )
|
||||
[14] (byte) sum2::c#0 ← (byte) main::i#2 + (byte/signed byte/word/signed word) 2 [ main::i#2 sum2::b#0 sum2::c#0 ] ( main:2 [ main::i#2 sum2::b#0 sum2::c#0 ] )
|
||||
[15] (byte) sum2::a#0 ← (byte) main::i#2 [ main::i#2 sum2::b#0 sum2::c#0 sum2::a#0 ] ( main:2 [ main::i#2 sum2::b#0 sum2::c#0 sum2::a#0 ] )
|
||||
[16] call sum2 param-assignment [ main::i#2 sum2::return#1 ] ( main:2 [ main::i#2 sum2::return#1 ] )
|
||||
[17] (byte) sum2::return#0 ← (byte) sum2::return#1 [ main::i#2 sum2::return#0 ] ( main:2 [ main::i#2 sum2::return#0 ] )
|
||||
to:main::@4
|
||||
main::@4: scope:[main] from main::@3
|
||||
[22] (byte~) main::$5 ← (byte) sum2::return#0 [ main::i#2 main::$5 ] ( main:2 [ main::i#2 main::$5 ] )
|
||||
[23] *((const byte*) SCREEN2#0 + (byte) main::i#2) ← (byte~) main::$5 [ main::i#2 ] ( main:2 [ main::i#2 ] )
|
||||
[24] (byte) main::i#1 ← ++ (byte) main::i#2 [ main::i#1 ] ( main:2 [ main::i#1 ] )
|
||||
[25] if((byte) main::i#1!=(byte/signed byte/word/signed word) 11) goto main::@1 [ main::i#1 ] ( main:2 [ main::i#1 ] )
|
||||
[18] (byte~) main::$5 ← (byte) sum2::return#0 [ main::i#2 main::$5 ] ( main:2 [ main::i#2 main::$5 ] )
|
||||
[19] *((const byte*) SCREEN2#0 + (byte) main::i#2) ← (byte~) main::$5 [ main::i#2 ] ( main:2 [ main::i#2 ] )
|
||||
[20] (byte) main::i#1 ← ++ (byte) main::i#2 [ main::i#1 ] ( main:2 [ main::i#1 ] )
|
||||
[21] if((byte) main::i#1!=(byte/signed byte/word/signed word) 11) goto main::@1 [ main::i#1 ] ( main:2 [ main::i#1 ] )
|
||||
to:main::@return
|
||||
main::@return: scope:[main] from main::@4
|
||||
[26] return [ ] ( main:2 [ ] )
|
||||
[22] return [ ] ( main:2 [ ] )
|
||||
to:@return
|
||||
sum2: scope:[sum2] from main::@3
|
||||
[27] (byte~) sum2::$0 ← (byte) sum2::a#0 + (byte) sum2::b#0 [ sum2::c#0 sum2::$0 ] ( main:2::sum2:20 [ main::i#2 sum2::c#0 sum2::$0 ] )
|
||||
[28] (byte) sum2::return#1 ← (byte~) sum2::$0 + (byte) sum2::c#0 [ sum2::return#1 ] ( main:2::sum2:20 [ main::i#2 sum2::return#1 ] )
|
||||
[23] (byte~) sum2::$0 ← (byte) sum2::a#0 + (byte) sum2::b#0 [ sum2::c#0 sum2::$0 ] ( main:2::sum2:16 [ main::i#2 sum2::c#0 sum2::$0 ] )
|
||||
[24] (byte) sum2::return#1 ← (byte~) sum2::$0 + (byte) sum2::c#0 [ sum2::return#1 ] ( main:2::sum2:16 [ main::i#2 sum2::return#1 ] )
|
||||
to:sum2::@return
|
||||
sum2::@return: scope:[sum2] from sum2
|
||||
[29] return [ sum2::return#1 ] ( main:2::sum2:20 [ main::i#2 sum2::return#1 ] )
|
||||
[25] return [ sum2::return#1 ] ( main:2::sum2:16 [ main::i#2 sum2::return#1 ] )
|
||||
to:@return
|
||||
sum: scope:[sum] from main::@1
|
||||
[30] (byte~) sum::$0 ← (byte) sum::a#0 + (byte) sum::b#0 [ sum::c#0 sum::$0 ] ( main:2::sum:11 [ main::i#2 sum::c#0 sum::$0 ] )
|
||||
[31] (byte) sum::return#1 ← (byte~) sum::$0 + (byte) sum::c#0 [ sum::return#1 ] ( main:2::sum:11 [ main::i#2 sum::return#1 ] )
|
||||
[26] (byte~) sum::$0 ← (byte) sum::a#0 + (byte) sum::b#0 [ sum::c#0 sum::$0 ] ( main:2::sum:9 [ main::i#2 sum::c#0 sum::$0 ] )
|
||||
[27] (byte) sum::return#1 ← (byte~) sum::$0 + (byte) sum::c#0 [ sum::return#1 ] ( main:2::sum:9 [ main::i#2 sum::return#1 ] )
|
||||
to:sum::@return
|
||||
sum::@return: scope:[sum] from sum
|
||||
[32] return [ sum::return#1 ] ( main:2::sum:11 [ main::i#2 sum::return#1 ] )
|
||||
[28] return [ sum::return#1 ] ( main:2::sum:9 [ main::i#2 sum::return#1 ] )
|
||||
to:@return
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -6,28 +6,24 @@
|
||||
(byte*) SCREEN2
|
||||
(const byte*) SCREEN2#0 SCREEN2 = ((byte*))(word/signed word) 1024+(byte/signed byte/word/signed word) 40
|
||||
(void()) main()
|
||||
(byte~) main::$0 reg byte x 7.333333333333333
|
||||
(byte~) main::$1 reg byte a 7.333333333333333
|
||||
(byte~) main::$2 reg byte a 22.0
|
||||
(byte~) main::$3 reg byte x 7.333333333333333
|
||||
(byte~) main::$4 reg byte a 7.333333333333333
|
||||
(byte~) main::$5 reg byte a 22.0
|
||||
(label) main::@1
|
||||
(label) main::@3
|
||||
(label) main::@4
|
||||
(label) main::@return
|
||||
(byte) main::i
|
||||
(byte) main::i#1 reg byte y 16.5
|
||||
(byte) main::i#2 reg byte y 5.789473684210527
|
||||
(byte) main::i#1 reg byte x 16.5
|
||||
(byte) main::i#2 reg byte x 7.333333333333333
|
||||
(byte()) sum((byte) sum::a , (byte) sum::b , (byte) sum::c)
|
||||
(byte~) sum::$0 reg byte a 4.0
|
||||
(label) sum::@return
|
||||
(byte) sum::a
|
||||
(byte) sum::a#0 reg byte y 4.333333333333333
|
||||
(byte) sum::a#0 reg byte x 13.0
|
||||
(byte) sum::b
|
||||
(byte) sum::b#0 reg byte x 6.5
|
||||
(byte) sum::b#0 reg byte y 4.333333333333333
|
||||
(byte) sum::c
|
||||
(byte) sum::c#0 c zp ZP_BYTE:2 6.5
|
||||
(byte) sum::c#0 c zp ZP_BYTE:2 4.333333333333333
|
||||
(byte) sum::return
|
||||
(byte) sum::return#0 reg byte a 22.0
|
||||
(byte) sum::return#1 reg byte a 4.333333333333333
|
||||
@ -35,27 +31,23 @@
|
||||
(byte~) sum2::$0 reg byte a 4.0
|
||||
(label) sum2::@return
|
||||
(byte) sum2::a
|
||||
(byte) sum2::a#0 reg byte y 4.333333333333333
|
||||
(byte) sum2::a#0 reg byte x 13.0
|
||||
(byte) sum2::b
|
||||
(byte) sum2::b#0 reg byte x 6.5
|
||||
(byte) sum2::b#0 reg byte y 4.333333333333333
|
||||
(byte) sum2::c
|
||||
(byte) sum2::c#0 c zp ZP_BYTE:2 6.5
|
||||
(byte) sum2::c#0 c zp ZP_BYTE:2 4.333333333333333
|
||||
(byte) sum2::return
|
||||
(byte) sum2::return#0 reg byte a 22.0
|
||||
(byte) sum2::return#1 reg byte a 4.333333333333333
|
||||
|
||||
reg byte y [ main::i#2 main::i#1 ]
|
||||
reg byte x [ main::$0 ]
|
||||
reg byte a [ main::$1 ]
|
||||
reg byte y [ sum::a#0 ]
|
||||
reg byte x [ sum::b#0 ]
|
||||
reg byte x [ main::i#2 main::i#1 ]
|
||||
reg byte y [ sum::b#0 ]
|
||||
zp ZP_BYTE:2 [ sum::c#0 sum2::c#0 ]
|
||||
reg byte x [ sum::a#0 ]
|
||||
reg byte a [ sum::return#0 ]
|
||||
reg byte a [ main::$2 ]
|
||||
reg byte x [ main::$3 ]
|
||||
reg byte a [ main::$4 ]
|
||||
reg byte y [ sum2::a#0 ]
|
||||
reg byte x [ sum2::b#0 ]
|
||||
reg byte y [ sum2::b#0 ]
|
||||
reg byte x [ sum2::a#0 ]
|
||||
reg byte a [ sum2::return#0 ]
|
||||
reg byte a [ main::$5 ]
|
||||
reg byte a [ sum2::$0 ]
|
||||
|
72
src/main/java/dk/camelot64/kickc/test/signed-words.kc
Normal file
72
src/main/java/dk/camelot64/kickc/test/signed-words.kc
Normal file
@ -0,0 +1,72 @@
|
||||
import "c64"
|
||||
|
||||
const byte* SCREEN = $0400;
|
||||
const byte* SPRITES_PTR = SCREEN+$3f8;
|
||||
const byte* SPRITE = $2000;
|
||||
|
||||
void main() {
|
||||
init();
|
||||
do {
|
||||
do { } while (*RASTER!=$ff);
|
||||
anim();
|
||||
} while(true);
|
||||
}
|
||||
|
||||
// Fill and show a sprite, clear the screen
|
||||
void init() {
|
||||
*SPRITES_ENABLE = %00000001;
|
||||
*SPRITES_EXPAND_X = 0;
|
||||
*SPRITES_EXPAND_Y = 0;
|
||||
SPRITES_XPOS[0] = 100;
|
||||
SPRITES_YPOS[0] = 100;
|
||||
SPRITES_COLS[0] = WHITE;
|
||||
SPRITES_PTR[0] = (byte)(SPRITE/$40);
|
||||
for(byte* sc=SCREEN; sc!=SCREEN+1000; sc++ ) {
|
||||
*sc = ' ';
|
||||
}
|
||||
for(byte i : 0..63) {
|
||||
SPRITE[i] = $ff;
|
||||
}
|
||||
}
|
||||
|
||||
signed word xpos = 0;
|
||||
signed word ypos = 0;
|
||||
|
||||
signed word yvel_init = 100;
|
||||
|
||||
signed word xvel = 200;
|
||||
signed word yvel = yvel_init;
|
||||
|
||||
const signed word g = -5;
|
||||
|
||||
void anim() {
|
||||
|
||||
// Check if the object has hit the ground
|
||||
if(ypos<0) {
|
||||
// Reset position
|
||||
xpos = 0;
|
||||
ypos = 0;
|
||||
// Modify initial velocities
|
||||
xvel = -xvel;
|
||||
yvel_init = yvel_init-10;
|
||||
if(yvel_init<-200) {
|
||||
// Reset y velocity
|
||||
yvel_init = 200;
|
||||
}
|
||||
yvel = yvel_init;
|
||||
}
|
||||
|
||||
// Move object
|
||||
yvel = yvel + g;
|
||||
xpos = xpos + xvel;
|
||||
ypos = ypos + yvel;
|
||||
|
||||
|
||||
signed word sprite_x = xpos>>7 + 160;
|
||||
signed word sprite_y = 230 - ypos>>5;
|
||||
|
||||
SPRITES_XPOS[0] = (byte)sprite_x;
|
||||
SPRITES_YPOS[0] = (byte)sprite_y;
|
||||
*SPRITES_XMSB = >sprite_x;
|
||||
|
||||
}
|
@ -1,25 +1,8 @@
|
||||
import "c64"
|
||||
import "basic-floats"
|
||||
import "print"
|
||||
|
||||
const byte* PROCPORT = $01;
|
||||
const byte* CHARGEN = $d000;
|
||||
const byte* SCREEN = $0400;
|
||||
const byte* COLS = $d800;
|
||||
|
||||
const byte* RASTER = $d012;
|
||||
const byte* BORDERCOL = $d020;
|
||||
|
||||
const byte* SPRITES_XPOS = $d000;
|
||||
const byte* SPRITES_YPOS = $d001;
|
||||
const byte* SPRITES_XMSB = $d010;
|
||||
const byte* SPRITES_ENABLE = $d015;
|
||||
const byte* SPRITES_EXPAND_Y = $d017;
|
||||
const byte* SPRITES_PRIORITY = $d01b;
|
||||
const byte* SPRITES_MC = $d01c;
|
||||
const byte* SPRITES_EXPAND_X = $d01d;
|
||||
const byte* SPRITES_MC1 = $d025;
|
||||
const byte* SPRITES_MC2 = $d026;
|
||||
const byte* SPRITES_COLS = $d027;
|
||||
|
||||
const byte sinlen_x = 221;
|
||||
const byte[] sintab_x = $1000;
|
||||
|
Loading…
x
Reference in New Issue
Block a user