1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2025-04-18 21:37:18 +00:00

Work in progress: eliminating SymbolType.STRING

This commit is contained in:
jespergravgaard 2020-02-06 22:20:53 +01:00
parent a231b7495f
commit fda0940062
104 changed files with 1321 additions and 1282 deletions
src
main/java/dk/camelot64/kickc
test/ref
c-types.cfgc-types.logc-types.symc64dtv-gfxexplorer.logconstants.cfgconstants.logconstants.sym
examples
fastmultiply-127.cfgfastmultiply-127.logfastmultiply-127.symfunction-pointer-noarg-call-10.cfgfunction-pointer-noarg-call-10.logfunction-pointer-noarg-call-10.syminline-string-2.loginline-string.cfginline-string.loginline-string.symlinegen.cfglinegen.loglinegen.symliteral-word-pointer-0.cfgliteral-word-pointer-0.logliteral-word-pointer-0.symmemcpy-1.cfgmemcpy-1.logmemcpy-1.sym
millfork-benchmarks
processor-port-test.cfgprocessor-port-test.logprocessor-port-test.symsandbox.cfgsandbox.logsandbox.symsemi-struct-1.cfgsemi-struct-1.logsemi-struct-1.symsemi-struct-2.cfgsemi-struct-2.logsemi-struct-2.symsieve.cfgsieve.logsieve.symsinusgen16.cfgsinusgen16.logsinusgen16.symsinusgen16b.cfgsinusgen16b.logsinusgen16b.symsinusgen8.cfgsinusgen8.logsinusgen8.symsinusgen8b.cfgsinusgen8b.logsinusgen8b.symsinusgenscale8.cfgsinusgenscale8.logsinusgenscale8.symstring-const-consolidation-noroot.logstring-const-consolidation.logstring-pointer-problem.cfgstring-pointer-problem.logstring-pointer-problem.symstruct-12.logstruct-ptr-22.cfgstruct-ptr-22.logstruct-ptr-22.symstruct-ptr-34.logtest-comparisons-sword.logtest-comparisons-word.logtest-comparisons.cfgtest-comparisons.logtest-comparisons.symtest-division.logtest-multiply-16bit.cfgtest-multiply-16bit.logtest-multiply-16bit.symtest-multiply-8bit.cfgtest-multiply-8bit.logtest-multiply-8bit.symtravis1.cfgtravis1.log

@ -33,8 +33,10 @@ public class Compiler {
/** Disable the entire register uplift. This will create significantly less optimized ASM since registers are not utilized. */
private boolean disableUplift = false;
/** Enable loop head constant optimization. It identified whenever a while()/for() has a constant condition on the first iteration and rewrites it.
* Currently the optimization is flaky and results in NPE's and wrong values in some programs. */
/**
* Enable loop head constant optimization. It identified whenever a while()/for() has a constant condition on the first iteration and rewrites it.
* Currently the optimization is flaky and results in NPE's and wrong values in some programs.
*/
private boolean enableLoopHeadConstant = false;
/** File name of link script to use (from command line parameter). */
@ -417,7 +419,8 @@ public class Compiler {
boolean stepOptimized = true;
while(stepOptimized) {
stepOptimized = optimization.step();
ssaOptimized = pass2LogOptimization(ssaOptimized, optimization, stepOptimized);
if(stepOptimized) ssaOptimized = true;
pass2LogOptimization(optimization, stepOptimized);
}
}
}
@ -434,21 +437,20 @@ public class Compiler {
for(PassStep optimization : optimizations) {
pass2AssertSSA();
boolean stepOptimized = optimization.step();
ssaOptimized = pass2LogOptimization(ssaOptimized, optimization, stepOptimized);
if(stepOptimized) ssaOptimized = true;
pass2LogOptimization(optimization, stepOptimized);
}
return ssaOptimized;
}
private boolean pass2LogOptimization(boolean ssaOptimized, PassStep optimization, boolean stepOptimized) {
private void pass2LogOptimization(PassStep optimization, boolean stepOptimized) {
if(stepOptimized) {
getLog().append("Successful SSA optimization " + optimization.getClass().getSimpleName() + "");
ssaOptimized = true;
if(getLog().isVerboseSSAOptimize()) {
getLog().append("CONTROL FLOW GRAPH");
getLog().append(program.getGraph().toString(program));
}
}
return ssaOptimized;
}
private void pass3Analysis() {
@ -552,7 +554,7 @@ public class Compiler {
new Pass4CodeGeneration(program, false, program.isWarnFragmentMissing()).generate();
new Pass4AssertNoCpuClobber(program).check();
getLog().append("\nINITIAL ASM");
getLog().append("Target platform is " + program.getTargetPlatform().getName() + " / " +program.getTargetCpu().getName().toUpperCase(Locale.ENGLISH));
getLog().append("Target platform is " + program.getTargetPlatform().getName() + " / " + program.getTargetCpu().getName().toUpperCase(Locale.ENGLISH));
getLog().append(program.getAsm().toString(new AsmProgram.AsmPrintState(true), program));
if(disableUplift) {

@ -9,6 +9,8 @@ import dk.camelot64.kickc.model.symbols.Procedure;
import dk.camelot64.kickc.model.symbols.Scope;
import dk.camelot64.kickc.model.symbols.Variable;
import dk.camelot64.kickc.model.types.SymbolType;
import dk.camelot64.kickc.model.types.SymbolTypePointer;
import dk.camelot64.kickc.model.values.ConstantInteger;
import dk.camelot64.kickc.model.values.ConstantString;
import dk.camelot64.kickc.model.values.RValue;
import dk.camelot64.kickc.model.values.Value;
@ -74,7 +76,9 @@ public class Pass1ExtractInlineStrings extends Pass1Base {
name = nameHint + nameHintIdx++;
}
}
Variable strConst = Variable.createConstant(name, SymbolType.STRING, blockScope, new ArraySpec(), constantString, blockScope.getSegmentData());
final long stringLength = constantString.getStringLength();
final ConstantInteger arraySize = new ConstantInteger(stringLength, stringLength<256?SymbolType.BYTE : SymbolType.WORD);
Variable strConst = Variable.createConstant(name, new SymbolTypePointer(SymbolType.BYTE), blockScope, new ArraySpec(arraySize), constantString, blockScope.getSegmentData());
blockScope.add(strConst);
if(getLog().isVerbosePass1CreateSsa()) {
getLog().append("Creating constant string variable for inline " + strConst.toString(getProgram()) + " \"" + constantString.getValue() + "\"");

@ -6,7 +6,6 @@ import dk.camelot64.kickc.model.iterator.ProgramValueIterator;
import dk.camelot64.kickc.model.symbols.ProgramScope;
import dk.camelot64.kickc.model.symbols.Symbol;
import dk.camelot64.kickc.model.symbols.Variable;
import dk.camelot64.kickc.model.types.SymbolType;
import dk.camelot64.kickc.model.values.*;
import java.util.*;
@ -91,7 +90,7 @@ public class Pass2ConstantInlining extends Pass2SsaOptimization {
Collection<Variable> allConstants = getProgram().getScope().getAllConstants(true);
for(Variable constant : allConstants) {
if(constant.getRef().isIntermediate()) {
if(!(constant.getType().equals(SymbolType.STRING)) && !(constant.getInitValue() instanceof ConstantArray) && !(constant.getInitValue() instanceof ConstantStructValue) && !(constant.getInitValue() instanceof StructZero)) {
if(!(constant.getInitValue() instanceof ConstantString) && !(constant.getInitValue() instanceof ConstantArray) && !(constant.getInitValue() instanceof ConstantStructValue) && !(constant.getInitValue() instanceof StructZero)) {
unnamed.put(constant.getConstantRef(), constant.getInitValue());
}
}
@ -114,7 +113,8 @@ public class Pass2ConstantInlining extends Pass2SsaOptimization {
if(((ConstantRef) constantValue).isIntermediate()) {
// The value is an intermediate constant - replace all uses of the intermediate with uses of the referrer instead.
aliases.put((ConstantRef) constant.getInitValue(), constant.getConstantRef());
constant.setInitValue(programScope.getConstant((ConstantRef) constantValue).getInitValue());
final ConstantValue initValue = programScope.getConstant((ConstantRef) constantValue).getInitValue();
constant.setInitValue(initValue);
} else {
aliases.put(constant.getConstantRef(), constant.getInitValue());
}

@ -105,9 +105,8 @@ public class Pass2ConstantStringConsolidation extends Pass2SsaOptimization {
modified = true;
}
}
if(getLog().isVerboseSSAOptimize()) {
if(modified) {
getLog().append("Consolidated constant strings into " + rootConstant);
}
return modified;
}

@ -165,7 +165,7 @@ print_byte::@return: scope:[print_byte] from print_byte::@1
(void()) print_str((byte*) print_str::str)
print_str: scope:[print_str] from testChar testInt testLong testShort
[70] (byte*) print_char_cursor#156 ← phi( testChar/(byte*) 1024 testInt/(byte*) print_char_cursor#160 testLong/(byte*) print_char_cursor#161 testShort/(byte*) print_char_cursor#162 )
[70] (byte*) print_str::str#7 ← phi( testChar/(const string) testChar::str testInt/(const string) testInt::str testLong/(const string) testLong::str testShort/(const string) testShort::str )
[70] (byte*) print_str::str#7 ← phi( testChar/(const byte*) testChar::str testInt/(const byte*) testInt::str testLong/(const byte*) testLong::str testShort/(const byte*) testShort::str )
to:print_str::@1
print_str::@1: scope:[print_str] from print_str print_str::@2
[71] (byte*) print_char_cursor#136 ← phi( print_str/(byte*) print_char_cursor#156 print_str::@2/(byte*) print_char_cursor#1 )

@ -488,7 +488,7 @@ main::@return: scope:[main] from main::@5
testChar: scope:[testChar] from main::@1
(byte*) print_line_cursor#66 ← phi( main::@1/(byte*) print_line_cursor#5 )
(byte*) print_char_cursor#151 ← phi( main::@1/(byte*) print_char_cursor#30 )
(byte*) print_str::str#1 ← (const string) testChar::str
(byte*) print_str::str#1 ← (const byte*) testChar::str
call print_str
to:testChar::@1
testChar::@1: scope:[testChar] from testChar
@ -550,7 +550,7 @@ testChar::@return: scope:[testChar] from testChar::@7
testShort: scope:[testShort] from main::@2
(byte*) print_line_cursor#67 ← phi( main::@2/(byte*) print_line_cursor#6 )
(byte*) print_char_cursor#152 ← phi( main::@2/(byte*) print_char_cursor#31 )
(byte*) print_str::str#2 ← (const string) testShort::str
(byte*) print_str::str#2 ← (const byte*) testShort::str
call print_str
to:testShort::@1
testShort::@1: scope:[testShort] from testShort
@ -612,7 +612,7 @@ testShort::@return: scope:[testShort] from testShort::@7
testInt: scope:[testInt] from main::@3
(byte*) print_line_cursor#68 ← phi( main::@3/(byte*) print_line_cursor#7 )
(byte*) print_char_cursor#153 ← phi( main::@3/(byte*) print_char_cursor#32 )
(byte*) print_str::str#3 ← (const string) testInt::str
(byte*) print_str::str#3 ← (const byte*) testInt::str
call print_str
to:testInt::@1
testInt::@1: scope:[testInt] from testInt
@ -674,7 +674,7 @@ testInt::@return: scope:[testInt] from testInt::@7
testLong: scope:[testLong] from main::@4
(byte*) print_line_cursor#69 ← phi( main::@4/(byte*) print_line_cursor#8 )
(byte*) print_char_cursor#154 ← phi( main::@4/(byte*) print_char_cursor#33 )
(byte*) print_str::str#4 ← (const string) testLong::str
(byte*) print_str::str#4 ← (const byte*) testLong::str
call print_str
to:testLong::@1
testLong::@1: scope:[testLong] from testLong
@ -1200,7 +1200,7 @@ SYMBOL TABLE SSA
(label) testChar::@return
(const byte) testChar::n = (byte) $e
(const signed byte) testChar::s = (signed byte) -$e
(const string) testChar::str[] = (string) "char: "
(const byte*) testChar::str[(byte) 7] = (string) "char: "
(const byte) testChar::u = (byte) $e
(void()) testInt()
(label) testInt::@1
@ -1213,7 +1213,7 @@ SYMBOL TABLE SSA
(label) testInt::@return
(const signed word) testInt::n = (signed word) -$578
(const signed word) testInt::s = (signed word) -$578
(const string) testInt::str[] = (string) "int: "
(const byte*) testInt::str[(byte) 6] = (string) "int: "
(const word) testInt::u = (word) $578
(void()) testLong()
(label) testLong::@1
@ -1226,7 +1226,7 @@ SYMBOL TABLE SSA
(label) testLong::@return
(const signed dword) testLong::n = (signed dword) -$222e0
(const signed dword) testLong::s = (signed dword) -$222e0
(const string) testLong::str[] = (string) "long: "
(const byte*) testLong::str[(byte) 7] = (string) "long: "
(const dword) testLong::u = (dword) $222e0
(void()) testShort()
(label) testShort::@1
@ -1239,7 +1239,7 @@ SYMBOL TABLE SSA
(label) testShort::@return
(const signed word) testShort::n = (signed word) -$578
(const signed word) testShort::s = (signed word) -$578
(const string) testShort::str[] = (string) "short: "
(const byte*) testShort::str[(byte) 8] = (string) "short: "
(const word) testShort::u = (word) $578
Adding number conversion cast (unumber) 0 in (bool~) memset::$0 ← (word) memset::num#1 > (number) 0
@ -1602,11 +1602,11 @@ Constant inlined print_char::ch#5 = (byte) ' '
Constant inlined print_char::ch#4 = (byte) '-'
Constant inlined print_char::ch#1 = (byte) ' '
Constant inlined print_char::ch#0 = (byte) '-'
Constant inlined print_str::str#4 = (const string) testLong::str
Constant inlined print_str::str#3 = (const string) testInt::str
Constant inlined print_str::str#2 = (const string) testShort::str
Constant inlined print_str::str#4 = (const byte*) testLong::str
Constant inlined print_str::str#3 = (const byte*) testInt::str
Constant inlined print_str::str#2 = (const byte*) testShort::str
Constant inlined memset::dst#0 = (byte*)(const void*) memset::str#0
Constant inlined print_str::str#1 = (const string) testChar::str
Constant inlined print_str::str#1 = (const byte*) testChar::str
Successful SSA optimization Pass2ConstantInlining
Added new block during phi lifting print_ln::@3(between print_ln::@1 and print_ln::@1)
Adding NOP phi() at start of @begin
@ -1953,7 +1953,7 @@ print_byte::@return: scope:[print_byte] from print_byte::@1
(void()) print_str((byte*) print_str::str)
print_str: scope:[print_str] from testChar testInt testLong testShort
[70] (byte*) print_char_cursor#156 ← phi( testChar/(byte*) 1024 testInt/(byte*) print_char_cursor#160 testLong/(byte*) print_char_cursor#161 testShort/(byte*) print_char_cursor#162 )
[70] (byte*) print_str::str#7 ← phi( testChar/(const string) testChar::str testInt/(const string) testInt::str testLong/(const string) testLong::str testShort/(const string) testShort::str )
[70] (byte*) print_str::str#7 ← phi( testChar/(const byte*) testChar::str testInt/(const byte*) testInt::str testLong/(const byte*) testLong::str testShort/(const byte*) testShort::str )
to:print_str::@1
print_str::@1: scope:[print_str] from print_str print_str::@2
[71] (byte*) print_char_cursor#136 ← phi( print_str/(byte*) print_char_cursor#156 print_str::@2/(byte*) print_char_cursor#1 )
@ -2331,7 +2331,7 @@ testLong: {
// [70] phi from testLong to print_str [phi:testLong->print_str]
print_str_from_testLong:
// [70] phi (byte*) print_char_cursor#156 = (byte*) print_char_cursor#161 [phi:testLong->print_str#0] -- register_copy
// [70] phi (byte*) print_str::str#7 = (const string) testLong::str [phi:testLong->print_str#1] -- pbuz1=pbuc1
// [70] phi (byte*) print_str::str#7 = (const byte*) testLong::str [phi:testLong->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -2744,7 +2744,7 @@ testInt: {
// [70] phi from testInt to print_str [phi:testInt->print_str]
print_str_from_testInt:
// [70] phi (byte*) print_char_cursor#156 = (byte*) print_char_cursor#160 [phi:testInt->print_str#0] -- register_copy
// [70] phi (byte*) print_str::str#7 = (const string) testInt::str [phi:testInt->print_str#1] -- pbuz1=pbuc1
// [70] phi (byte*) print_str::str#7 = (const byte*) testInt::str [phi:testInt->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -2921,7 +2921,7 @@ testShort: {
// [70] phi from testShort to print_str [phi:testShort->print_str]
print_str_from_testShort:
// [70] phi (byte*) print_char_cursor#156 = (byte*) print_char_cursor#162 [phi:testShort->print_str#0] -- register_copy
// [70] phi (byte*) print_str::str#7 = (const string) testShort::str [phi:testShort->print_str#1] -- pbuz1=pbuc1
// [70] phi (byte*) print_str::str#7 = (const byte*) testShort::str [phi:testShort->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -3027,7 +3027,7 @@ testChar: {
sta.z print_char_cursor
lda #>$400
sta.z print_char_cursor+1
// [70] phi (byte*) print_str::str#7 = (const string) testChar::str [phi:testChar->print_str#1] -- pbuz1=pbuc1
// [70] phi (byte*) print_str::str#7 = (const byte*) testChar::str [phi:testChar->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -3403,7 +3403,7 @@ testLong: {
// [70] phi from testLong to print_str [phi:testLong->print_str]
print_str_from_testLong:
// [70] phi (byte*) print_char_cursor#156 = (byte*) print_char_cursor#161 [phi:testLong->print_str#0] -- register_copy
// [70] phi (byte*) print_str::str#7 = (const string) testLong::str [phi:testLong->print_str#1] -- pbuz1=pbuc1
// [70] phi (byte*) print_str::str#7 = (const byte*) testLong::str [phi:testLong->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -3794,7 +3794,7 @@ testInt: {
// [70] phi from testInt to print_str [phi:testInt->print_str]
print_str_from_testInt:
// [70] phi (byte*) print_char_cursor#156 = (byte*) print_char_cursor#160 [phi:testInt->print_str#0] -- register_copy
// [70] phi (byte*) print_str::str#7 = (const string) testInt::str [phi:testInt->print_str#1] -- pbuz1=pbuc1
// [70] phi (byte*) print_str::str#7 = (const byte*) testInt::str [phi:testInt->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -3963,7 +3963,7 @@ testShort: {
// [70] phi from testShort to print_str [phi:testShort->print_str]
print_str_from_testShort:
// [70] phi (byte*) print_char_cursor#156 = (byte*) print_char_cursor#162 [phi:testShort->print_str#0] -- register_copy
// [70] phi (byte*) print_str::str#7 = (const string) testShort::str [phi:testShort->print_str#1] -- pbuz1=pbuc1
// [70] phi (byte*) print_str::str#7 = (const byte*) testShort::str [phi:testShort->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -4067,7 +4067,7 @@ testChar: {
sta.z print_char_cursor
lda #>$400
sta.z print_char_cursor+1
// [70] phi (byte*) print_str::str#7 = (const string) testChar::str [phi:testChar->print_str#1] -- pbuz1=pbuc1
// [70] phi (byte*) print_str::str#7 = (const byte*) testChar::str [phi:testChar->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -4603,7 +4603,7 @@ FINAL SYMBOL TABLE
(label) testChar::@return
(const byte) testChar::n = (byte) $e
(const signed byte) testChar::s = (signed byte) -$e
(const string) testChar::str[] = (string) "char: "
(const byte*) testChar::str[(byte) 7] = (string) "char: "
(const byte) testChar::u = (byte) $e
(void()) testInt()
(label) testInt::@1
@ -4615,7 +4615,7 @@ FINAL SYMBOL TABLE
(label) testInt::@return
(const signed word) testInt::n = (signed word) -$578
(const signed word) testInt::s = (signed word) -$578
(const string) testInt::str[] = (string) "int: "
(const byte*) testInt::str[(byte) 6] = (string) "int: "
(const word) testInt::u = (word) $578
(void()) testLong()
(label) testLong::@1
@ -4627,7 +4627,7 @@ FINAL SYMBOL TABLE
(label) testLong::@return
(const signed dword) testLong::n = (signed dword) -$222e0
(const signed dword) testLong::s = (signed dword) -$222e0
(const string) testLong::str[] = (string) "long: "
(const byte*) testLong::str[(byte) 7] = (string) "long: "
(const dword) testLong::u = (dword) $222e0
(void()) testShort()
(label) testShort::@1
@ -4639,7 +4639,7 @@ FINAL SYMBOL TABLE
(label) testShort::@return
(const signed word) testShort::n = (signed word) -$578
(const signed word) testShort::s = (signed word) -$578
(const string) testShort::str[] = (string) "short: "
(const byte*) testShort::str[(byte) 8] = (string) "short: "
(const word) testShort::u = (word) $578
zp[4]:2 [ print_sdword::dw#5 print_sdword::dw#0 print_sdword::dw#3 print_dword::dw#2 print_dword::dw#0 ]
@ -4717,7 +4717,7 @@ testLong: {
// [16] call print_str
// [70] phi from testLong to print_str [phi:testLong->print_str]
// [70] phi (byte*) print_char_cursor#156 = (byte*) print_char_cursor#161 [phi:testLong->print_str#0] -- register_copy
// [70] phi (byte*) print_str::str#7 = (const string) testLong::str [phi:testLong->print_str#1] -- pbuz1=pbuc1
// [70] phi (byte*) print_str::str#7 = (const byte*) testLong::str [phi:testLong->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -5070,7 +5070,7 @@ testInt: {
// [78] call print_str
// [70] phi from testInt to print_str [phi:testInt->print_str]
// [70] phi (byte*) print_char_cursor#156 = (byte*) print_char_cursor#160 [phi:testInt->print_str#0] -- register_copy
// [70] phi (byte*) print_str::str#7 = (const string) testInt::str [phi:testInt->print_str#1] -- pbuz1=pbuc1
// [70] phi (byte*) print_str::str#7 = (const byte*) testInt::str [phi:testInt->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -5211,7 +5211,7 @@ testShort: {
// [104] call print_str
// [70] phi from testShort to print_str [phi:testShort->print_str]
// [70] phi (byte*) print_char_cursor#156 = (byte*) print_char_cursor#162 [phi:testShort->print_str#0] -- register_copy
// [70] phi (byte*) print_str::str#7 = (const string) testShort::str [phi:testShort->print_str#1] -- pbuz1=pbuc1
// [70] phi (byte*) print_str::str#7 = (const byte*) testShort::str [phi:testShort->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -5296,7 +5296,7 @@ testChar: {
sta.z print_char_cursor
lda #>$400
sta.z print_char_cursor+1
// [70] phi (byte*) print_str::str#7 = (const string) testChar::str [phi:testChar->print_str#1] -- pbuz1=pbuc1
// [70] phi (byte*) print_str::str#7 = (const byte*) testChar::str [phi:testChar->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str

@ -123,7 +123,7 @@
(label) testChar::@return
(const byte) testChar::n = (byte) $e
(const signed byte) testChar::s = (signed byte) -$e
(const string) testChar::str[] = (string) "char: "
(const byte*) testChar::str[(byte) 7] = (string) "char: "
(const byte) testChar::u = (byte) $e
(void()) testInt()
(label) testInt::@1
@ -135,7 +135,7 @@
(label) testInt::@return
(const signed word) testInt::n = (signed word) -$578
(const signed word) testInt::s = (signed word) -$578
(const string) testInt::str[] = (string) "int: "
(const byte*) testInt::str[(byte) 6] = (string) "int: "
(const word) testInt::u = (word) $578
(void()) testLong()
(label) testLong::@1
@ -147,7 +147,7 @@
(label) testLong::@return
(const signed dword) testLong::n = (signed dword) -$222e0
(const signed dword) testLong::s = (signed dword) -$222e0
(const string) testLong::str[] = (string) "long: "
(const byte*) testLong::str[(byte) 7] = (string) "long: "
(const dword) testLong::u = (dword) $222e0
(void()) testShort()
(label) testShort::@1
@ -159,7 +159,7 @@
(label) testShort::@return
(const signed word) testShort::n = (signed word) -$578
(const signed word) testShort::s = (signed word) -$578
(const string) testShort::str[] = (string) "short: "
(const byte*) testShort::str[(byte) 8] = (string) "short: "
(const word) testShort::u = (word) $578
zp[4]:2 [ print_sdword::dw#5 print_sdword::dw#0 print_sdword::dw#3 print_dword::dw#2 print_dword::dw#0 ]

@ -1781,7 +1781,7 @@ render_preset_name: scope:[render_preset_name] from form_mode::@28 form_mode::@
if((bool~) render_preset_name::$0) goto render_preset_name::@1
to:render_preset_name::@23
render_preset_name::@1: scope:[render_preset_name] from render_preset_name
(byte*) render_preset_name::name#1 ← (const string) render_preset_name::$12
(byte*) render_preset_name::name#1 ← (const byte*) render_preset_name::$12
to:render_preset_name::@22
render_preset_name::@23: scope:[render_preset_name] from render_preset_name
(byte) render_preset_name::idx#3 ← phi( render_preset_name/(byte) render_preset_name::idx#2 )
@ -1789,7 +1789,7 @@ render_preset_name::@23: scope:[render_preset_name] from render_preset_name
if((bool~) render_preset_name::$1) goto render_preset_name::@2
to:render_preset_name::@24
render_preset_name::@2: scope:[render_preset_name] from render_preset_name::@23
(byte*) render_preset_name::name#2 ← (const string) render_preset_name::$13
(byte*) render_preset_name::name#2 ← (const byte*) render_preset_name::$13
to:render_preset_name::@22
render_preset_name::@24: scope:[render_preset_name] from render_preset_name::@23
(byte) render_preset_name::idx#4 ← phi( render_preset_name::@23/(byte) render_preset_name::idx#3 )
@ -1797,7 +1797,7 @@ render_preset_name::@24: scope:[render_preset_name] from render_preset_name::@2
if((bool~) render_preset_name::$2) goto render_preset_name::@3
to:render_preset_name::@25
render_preset_name::@3: scope:[render_preset_name] from render_preset_name::@24
(byte*) render_preset_name::name#3 ← (const string) render_preset_name::$14
(byte*) render_preset_name::name#3 ← (const byte*) render_preset_name::$14
to:render_preset_name::@22
render_preset_name::@25: scope:[render_preset_name] from render_preset_name::@24
(byte) render_preset_name::idx#5 ← phi( render_preset_name::@24/(byte) render_preset_name::idx#4 )
@ -1805,7 +1805,7 @@ render_preset_name::@25: scope:[render_preset_name] from render_preset_name::@2
if((bool~) render_preset_name::$3) goto render_preset_name::@4
to:render_preset_name::@26
render_preset_name::@4: scope:[render_preset_name] from render_preset_name::@25
(byte*) render_preset_name::name#4 ← (const string) render_preset_name::$15
(byte*) render_preset_name::name#4 ← (const byte*) render_preset_name::$15
to:render_preset_name::@22
render_preset_name::@26: scope:[render_preset_name] from render_preset_name::@25
(byte) render_preset_name::idx#6 ← phi( render_preset_name::@25/(byte) render_preset_name::idx#5 )
@ -1813,7 +1813,7 @@ render_preset_name::@26: scope:[render_preset_name] from render_preset_name::@2
if((bool~) render_preset_name::$4) goto render_preset_name::@5
to:render_preset_name::@27
render_preset_name::@5: scope:[render_preset_name] from render_preset_name::@26
(byte*) render_preset_name::name#5 ← (const string) render_preset_name::$16
(byte*) render_preset_name::name#5 ← (const byte*) render_preset_name::$16
to:render_preset_name::@22
render_preset_name::@27: scope:[render_preset_name] from render_preset_name::@26
(byte) render_preset_name::idx#7 ← phi( render_preset_name::@26/(byte) render_preset_name::idx#6 )
@ -1821,7 +1821,7 @@ render_preset_name::@27: scope:[render_preset_name] from render_preset_name::@2
if((bool~) render_preset_name::$5) goto render_preset_name::@6
to:render_preset_name::@28
render_preset_name::@6: scope:[render_preset_name] from render_preset_name::@27
(byte*) render_preset_name::name#6 ← (const string) render_preset_name::$17
(byte*) render_preset_name::name#6 ← (const byte*) render_preset_name::$17
to:render_preset_name::@22
render_preset_name::@28: scope:[render_preset_name] from render_preset_name::@27
(byte) render_preset_name::idx#8 ← phi( render_preset_name::@27/(byte) render_preset_name::idx#7 )
@ -1829,7 +1829,7 @@ render_preset_name::@28: scope:[render_preset_name] from render_preset_name::@2
if((bool~) render_preset_name::$6) goto render_preset_name::@7
to:render_preset_name::@29
render_preset_name::@7: scope:[render_preset_name] from render_preset_name::@28
(byte*) render_preset_name::name#7 ← (const string) render_preset_name::$18
(byte*) render_preset_name::name#7 ← (const byte*) render_preset_name::$18
to:render_preset_name::@22
render_preset_name::@29: scope:[render_preset_name] from render_preset_name::@28
(byte) render_preset_name::idx#9 ← phi( render_preset_name::@28/(byte) render_preset_name::idx#8 )
@ -1837,7 +1837,7 @@ render_preset_name::@29: scope:[render_preset_name] from render_preset_name::@2
if((bool~) render_preset_name::$7) goto render_preset_name::@8
to:render_preset_name::@30
render_preset_name::@8: scope:[render_preset_name] from render_preset_name::@29
(byte*) render_preset_name::name#8 ← (const string) render_preset_name::$19
(byte*) render_preset_name::name#8 ← (const byte*) render_preset_name::$19
to:render_preset_name::@22
render_preset_name::@30: scope:[render_preset_name] from render_preset_name::@29
(byte) render_preset_name::idx#10 ← phi( render_preset_name::@29/(byte) render_preset_name::idx#9 )
@ -1845,7 +1845,7 @@ render_preset_name::@30: scope:[render_preset_name] from render_preset_name::@2
if((bool~) render_preset_name::$8) goto render_preset_name::@9
to:render_preset_name::@31
render_preset_name::@9: scope:[render_preset_name] from render_preset_name::@30
(byte*) render_preset_name::name#9 ← (const string) render_preset_name::$20
(byte*) render_preset_name::name#9 ← (const byte*) render_preset_name::$20
to:render_preset_name::@22
render_preset_name::@31: scope:[render_preset_name] from render_preset_name::@30
(byte) render_preset_name::idx#11 ← phi( render_preset_name::@30/(byte) render_preset_name::idx#10 )
@ -1853,7 +1853,7 @@ render_preset_name::@31: scope:[render_preset_name] from render_preset_name::@3
if((bool~) render_preset_name::$9) goto render_preset_name::@10
to:render_preset_name::@32
render_preset_name::@10: scope:[render_preset_name] from render_preset_name::@31
(byte*) render_preset_name::name#10 ← (const string) render_preset_name::$21
(byte*) render_preset_name::name#10 ← (const byte*) render_preset_name::$21
to:render_preset_name::@22
render_preset_name::@32: scope:[render_preset_name] from render_preset_name::@31
(byte) render_preset_name::idx#12 ← phi( render_preset_name::@31/(byte) render_preset_name::idx#11 )
@ -1861,10 +1861,10 @@ render_preset_name::@32: scope:[render_preset_name] from render_preset_name::@3
if((bool~) render_preset_name::$10) goto render_preset_name::@11
to:render_preset_name::@33
render_preset_name::@11: scope:[render_preset_name] from render_preset_name::@32
(byte*) render_preset_name::name#11 ← (const string) render_preset_name::$22
(byte*) render_preset_name::name#11 ← (const byte*) render_preset_name::$22
to:render_preset_name::@22
render_preset_name::@33: scope:[render_preset_name] from render_preset_name::@32
(byte*) render_preset_name::name#12 ← (const string) render_preset_name::$23
(byte*) render_preset_name::name#12 ← (const byte*) render_preset_name::$23
to:render_preset_name::@22
render_preset_name::@22: scope:[render_preset_name] from render_preset_name::@1 render_preset_name::@10 render_preset_name::@11 render_preset_name::@2 render_preset_name::@3 render_preset_name::@33 render_preset_name::@4 render_preset_name::@5 render_preset_name::@6 render_preset_name::@7 render_preset_name::@8 render_preset_name::@9
(byte*) render_preset_name::name#13 ← phi( render_preset_name::@1/(byte*) render_preset_name::name#1 render_preset_name::@10/(byte*) render_preset_name::name#10 render_preset_name::@11/(byte*) render_preset_name::name#11 render_preset_name::@2/(byte*) render_preset_name::name#2 render_preset_name::@3/(byte*) render_preset_name::name#3 render_preset_name::@33/(byte*) render_preset_name::name#12 render_preset_name::@4/(byte*) render_preset_name::name#4 render_preset_name::@5/(byte*) render_preset_name::name#5 render_preset_name::@6/(byte*) render_preset_name::name#6 render_preset_name::@7/(byte*) render_preset_name::name#7 render_preset_name::@8/(byte*) render_preset_name::name#8 render_preset_name::@9/(byte*) render_preset_name::name#9 )
@ -6240,19 +6240,19 @@ SYMBOL TABLE SSA
(bool~) render_preset_name::$0
(bool~) render_preset_name::$1
(bool~) render_preset_name::$10
(const string) render_preset_name::$12[] = (string) "Standard Charset "
(const string) render_preset_name::$13[] = (string) "Extended Color Charset "
(const string) render_preset_name::$14[] = (string) "Standard Bitmap "
(const string) render_preset_name::$15[] = (string) "Multicolor Bitmap "
(const string) render_preset_name::$16[] = (string) "Hicolor Charset "
(const string) render_preset_name::$17[] = (string) "Hicolor Extended Color Charset"
(const string) render_preset_name::$18[] = (string) "Twoplane Bitmap "
(const string) render_preset_name::$19[] = (string) "Chunky 8bpp "
(const byte*) render_preset_name::$12[(byte) $1f] = (string) "Standard Charset "
(const byte*) render_preset_name::$13[(byte) $1f] = (string) "Extended Color Charset "
(const byte*) render_preset_name::$14[(byte) $1f] = (string) "Standard Bitmap "
(const byte*) render_preset_name::$15[(byte) $1f] = (string) "Multicolor Bitmap "
(const byte*) render_preset_name::$16[(byte) $1f] = (string) "Hicolor Charset "
(const byte*) render_preset_name::$17[(byte) $1f] = (string) "Hicolor Extended Color Charset"
(const byte*) render_preset_name::$18[(byte) $1f] = (string) "Twoplane Bitmap "
(const byte*) render_preset_name::$19[(byte) $1f] = (string) "Chunky 8bpp "
(bool~) render_preset_name::$2
(const string) render_preset_name::$20[] = (string) "Sixs Fred "
(const string) render_preset_name::$21[] = (string) "Sixs Fred 2 "
(const string) render_preset_name::$22[] = (string) "8bpp Pixel Cell "
(const string) render_preset_name::$23[] = (string) "Standard Charset "
(const byte*) render_preset_name::$20[(byte) $1f] = (string) "Sixs Fred "
(const byte*) render_preset_name::$21[(byte) $1f] = (string) "Sixs Fred 2 "
(const byte*) render_preset_name::$22[(byte) $1f] = (string) "8bpp Pixel Cell "
(const byte*) render_preset_name::$23[(byte) $1f] = (string) "Standard Charset "
(bool~) render_preset_name::$3
(bool~) render_preset_name::$4
(bool~) render_preset_name::$5
@ -8235,6 +8235,7 @@ Removing PHI-reference to removed block (form_mode::@3) in block form_mode::@ret
Removing PHI-reference to removed block (form_mode::@3) in block form_mode::@return
if() condition always true - replacing block destination [1348] if(true) goto form_mode::@6
Successful SSA optimization Pass2ConstantIfs
Consolidated constant strings into (const byte*) render_preset_name::$12
Successful SSA optimization Pass2ConstantStringConsolidation
Resolved ranged next value [127] keyboard_event_scan::row#1 ← ++ keyboard_event_scan::row#2 to ++
Resolved ranged comparison value [129] if(keyboard_event_scan::row#1!=rangelast(0,7)) goto keyboard_event_scan::@8 to (number) 8
@ -8874,6 +8875,7 @@ Consolidated array index constant in assignment *(gfx_init_vic_bitmap::lines_y+1
Successful SSA optimization Pass2ConstantAdditionElimination
Alias (byte) gfx_init_vic_bitmap::l#2 = (byte~) gfx_init_vic_bitmap::$3 (byte~) gfx_init_vic_bitmap::$4
Successful SSA optimization Pass2AliasElimination
Consolidated constant strings into (const byte*) render_preset_name::name#1
Successful SSA optimization Pass2ConstantStringConsolidation
Inlining constant with var siblings (const byte*) render_preset_name::name#1
Inlining constant with var siblings (const byte*) render_preset_name::name#2

@ -54,7 +54,7 @@ test_sbytes::@return: scope:[test_sbytes] from test_sbytes::@4
assert_sbyte: scope:[assert_sbyte] from test_sbytes test_sbytes::@1 test_sbytes::@2 test_sbytes::@3 test_sbytes::@4
[22] (signed byte) assert_sbyte::c#5 ← phi( test_sbytes/(signed byte) 0 test_sbytes::@1/(signed byte) 2 test_sbytes::@2/(signed byte) -2 test_sbytes::@3/(signed byte) 2 test_sbytes::@4/(signed byte) 2 )
[22] (signed byte) assert_sbyte::b#5 ← phi( test_sbytes/(const signed byte) test_sbytes::bb test_sbytes::@1/(const signed byte) test_sbytes::bc#0 test_sbytes::@2/(const signed byte) test_sbytes::bd#0 test_sbytes::@3/(const signed byte) test_sbytes::be#0 test_sbytes::@4/(const signed byte) test_sbytes::bf )
[22] (byte*) assert_sbyte::msg#5 ← phi( test_sbytes/(const string) msg test_sbytes::@1/(const string) msg1 test_sbytes::@2/(const string) test_sbytes::msg2 test_sbytes::@3/(const string) test_sbytes::msg3 test_sbytes::@4/(const string) test_sbytes::msg4 )
[22] (byte*) assert_sbyte::msg#5 ← phi( test_sbytes/(const string) msg test_sbytes::@1/(const string) msg1 test_sbytes::@2/(const byte*) test_sbytes::msg2 test_sbytes::@3/(const byte*) test_sbytes::msg3 test_sbytes::@4/(const byte*) test_sbytes::msg4 )
[23] (byte*) print_str::str#5 ← (byte*) assert_sbyte::msg#5
[24] (byte*) print_char_cursor#85 ← (byte*) print_line_cursor#1
[25] call print_str
@ -137,7 +137,7 @@ assert_byte: scope:[assert_byte] from test_bytes test_bytes::@1 test_bytes::@2
[55] (byte) assert_byte::c#3 ← phi( test_bytes/(byte) 0 test_bytes::@1/(byte) 2 test_bytes::@2/(byte) $fe )
[55] (byte) assert_byte::b#3 ← phi( test_bytes/(const byte) test_bytes::bb test_bytes::@1/(const byte) test_bytes::bc#0 test_bytes::@2/(const byte) test_bytes::bd#0 )
[55] (byte*) print_char_cursor#70 ← phi( test_bytes/(byte*) 1024 test_bytes::@1/(byte*) print_char_cursor#91 test_bytes::@2/(byte*) print_char_cursor#92 )
[55] (byte*) assert_byte::msg#3 ← phi( test_bytes/(const string) msg test_bytes::@1/(const string) msg1 test_bytes::@2/(const string) test_bytes::msg2 )
[55] (byte*) assert_byte::msg#3 ← phi( test_bytes/(const string) msg test_bytes::@1/(const string) msg1 test_bytes::@2/(const byte*) test_bytes::msg2 )
[56] (byte*) print_str::str#1 ← (byte*) assert_byte::msg#3
[57] call print_str
to:assert_byte::@4

@ -230,7 +230,7 @@ main::@return: scope:[main] from main::@3
test_bytes: scope:[test_bytes] from main::@1
(byte*) print_line_cursor#49 ← phi( main::@1/(byte*) print_line_cursor#5 )
(byte*) print_char_cursor#69 ← phi( main::@1/(byte*) print_char_cursor#7 )
(byte*) assert_byte::msg#0 ← (const string) test_bytes::msg
(byte*) assert_byte::msg#0 ← (const byte*) test_bytes::msg
(byte) assert_byte::b#0 ← (const byte) test_bytes::bb
(byte) assert_byte::c#0 ← (number) 0
call assert_byte
@ -242,7 +242,7 @@ test_bytes::@1: scope:[test_bytes] from test_bytes
(byte*) print_line_cursor#9 ← (byte*) print_line_cursor#32
(number~) test_bytes::$1 ← (const byte) test_bytes::bb + (number) 2
(byte) test_bytes::bc#0 ← (number~) test_bytes::$1
(byte*) assert_byte::msg#1 ← (const string) test_bytes::msg1
(byte*) assert_byte::msg#1 ← (const byte*) test_bytes::msg1
(byte) assert_byte::b#1 ← (byte) test_bytes::bc#0
(byte) assert_byte::c#1 ← (number) 2
call assert_byte
@ -257,7 +257,7 @@ test_bytes::@2: scope:[test_bytes] from test_bytes::@1
(number~) test_bytes::$4 ← (signed byte~) test_bytes::$3 - (number) 4
(byte~) test_bytes::$5 ← ((byte)) (number~) test_bytes::$4
(byte) test_bytes::bd#0 ← (byte~) test_bytes::$5
(byte*) assert_byte::msg#2 ← (const string) test_bytes::msg2
(byte*) assert_byte::msg#2 ← (const byte*) test_bytes::msg2
(byte) assert_byte::b#2 ← (byte) test_bytes::bd#0
(byte) assert_byte::c#2 ← (number) $fe
call assert_byte
@ -292,7 +292,7 @@ assert_byte::@5: scope:[assert_byte] from assert_byte
(byte) assert_byte::b#4 ← phi( assert_byte/(byte) assert_byte::b#5 )
(byte*) print_char_cursor#47 ← phi( assert_byte/(byte*) print_char_cursor#2 )
(byte*) print_char_cursor#15 ← (byte*) print_char_cursor#47
(byte*) print_str::str#2 ← (const string) assert_byte::str
(byte*) print_str::str#2 ← (const byte*) assert_byte::str
call print_str
to:assert_byte::@6
assert_byte::@6: scope:[assert_byte] from assert_byte::@5
@ -308,7 +308,7 @@ assert_byte::@1: scope:[assert_byte] from assert_byte::@6
(byte*) print_line_cursor#58 ← phi( assert_byte::@6/(byte*) print_line_cursor#62 )
(byte*) print_char_cursor#71 ← phi( assert_byte::@6/(byte*) print_char_cursor#16 )
*((const byte*) BGCOL) ← (const byte) RED
(byte*) print_str::str#3 ← (const string) assert_byte::str1
(byte*) print_str::str#3 ← (const byte*) assert_byte::str1
call print_str
to:assert_byte::@7
assert_byte::@7: scope:[assert_byte] from assert_byte::@1
@ -319,7 +319,7 @@ assert_byte::@7: scope:[assert_byte] from assert_byte::@1
assert_byte::@3: scope:[assert_byte] from assert_byte::@6
(byte*) print_line_cursor#59 ← phi( assert_byte::@6/(byte*) print_line_cursor#62 )
(byte*) print_char_cursor#72 ← phi( assert_byte::@6/(byte*) print_char_cursor#16 )
(byte*) print_str::str#4 ← (const string) assert_byte::str2
(byte*) print_str::str#4 ← (const byte*) assert_byte::str2
call print_str
to:assert_byte::@8
assert_byte::@8: scope:[assert_byte] from assert_byte::@3
@ -350,7 +350,7 @@ assert_byte::@return: scope:[assert_byte] from assert_byte::@9
test_sbytes: scope:[test_sbytes] from main::@2
(byte*) print_line_cursor#51 ← phi( main::@2/(byte*) print_line_cursor#6 )
(byte*) print_char_cursor#74 ← phi( main::@2/(byte*) print_char_cursor#8 )
(byte*) assert_sbyte::msg#0 ← (const string) test_sbytes::msg
(byte*) assert_sbyte::msg#0 ← (const byte*) test_sbytes::msg
(signed byte) assert_sbyte::b#0 ← (const signed byte) test_sbytes::bb
(signed byte) assert_sbyte::c#0 ← (number) 0
call assert_sbyte
@ -362,7 +362,7 @@ test_sbytes::@1: scope:[test_sbytes] from test_sbytes
(byte*) print_line_cursor#15 ← (byte*) print_line_cursor#38
(number~) test_sbytes::$1 ← (const signed byte) test_sbytes::bb + (number) 2
(signed byte) test_sbytes::bc#0 ← (number~) test_sbytes::$1
(byte*) assert_sbyte::msg#1 ← (const string) test_sbytes::msg1
(byte*) assert_sbyte::msg#1 ← (const byte*) test_sbytes::msg1
(signed byte) assert_sbyte::b#1 ← (signed byte) test_sbytes::bc#0
(signed byte) assert_sbyte::c#1 ← (number) 2
call assert_sbyte
@ -375,7 +375,7 @@ test_sbytes::@2: scope:[test_sbytes] from test_sbytes::@1
(byte*) print_line_cursor#16 ← (byte*) print_line_cursor#39
(number~) test_sbytes::$3 ← (signed byte) test_sbytes::bc#1 - (number) 4
(signed byte) test_sbytes::bd#0 ← (number~) test_sbytes::$3
(byte*) assert_sbyte::msg#2 ← (const string) test_sbytes::msg2
(byte*) assert_sbyte::msg#2 ← (const byte*) test_sbytes::msg2
(signed byte) assert_sbyte::b#2 ← (signed byte) test_sbytes::bd#0
(signed byte) assert_sbyte::c#2 ← (number) -2
call assert_sbyte
@ -388,7 +388,7 @@ test_sbytes::@3: scope:[test_sbytes] from test_sbytes::@2
(byte*) print_line_cursor#17 ← (byte*) print_line_cursor#40
(signed byte~) test_sbytes::$5 ← - (signed byte) test_sbytes::bd#1
(signed byte) test_sbytes::be#0 ← (signed byte~) test_sbytes::$5
(byte*) assert_sbyte::msg#3 ← (const string) test_sbytes::msg3
(byte*) assert_sbyte::msg#3 ← (const byte*) test_sbytes::msg3
(signed byte) assert_sbyte::b#3 ← (signed byte) test_sbytes::be#0
(signed byte) assert_sbyte::c#3 ← (number) 2
call assert_sbyte
@ -398,7 +398,7 @@ test_sbytes::@4: scope:[test_sbytes] from test_sbytes::@3
(byte*) print_char_cursor#56 ← phi( test_sbytes::@3/(byte*) print_char_cursor#32 )
(byte*) print_char_cursor#24 ← (byte*) print_char_cursor#56
(byte*) print_line_cursor#18 ← (byte*) print_line_cursor#41
(byte*) assert_sbyte::msg#4 ← (const string) test_sbytes::msg4
(byte*) assert_sbyte::msg#4 ← (const byte*) test_sbytes::msg4
(signed byte) assert_sbyte::b#4 ← (const signed byte) test_sbytes::bf
(signed byte) assert_sbyte::c#4 ← (number) 2
call assert_sbyte
@ -433,7 +433,7 @@ assert_sbyte::@5: scope:[assert_sbyte] from assert_sbyte
(signed byte) assert_sbyte::b#6 ← phi( assert_sbyte/(signed byte) assert_sbyte::b#7 )
(byte*) print_char_cursor#59 ← phi( assert_sbyte/(byte*) print_char_cursor#2 )
(byte*) print_char_cursor#27 ← (byte*) print_char_cursor#59
(byte*) print_str::str#6 ← (const string) assert_sbyte::str
(byte*) print_str::str#6 ← (const byte*) assert_sbyte::str
call print_str
to:assert_sbyte::@6
assert_sbyte::@6: scope:[assert_sbyte] from assert_sbyte::@5
@ -449,7 +449,7 @@ assert_sbyte::@1: scope:[assert_sbyte] from assert_sbyte::@6
(byte*) print_line_cursor#60 ← phi( assert_sbyte::@6/(byte*) print_line_cursor#63 )
(byte*) print_char_cursor#76 ← phi( assert_sbyte::@6/(byte*) print_char_cursor#28 )
*((const byte*) BGCOL) ← (const byte) RED
(byte*) print_str::str#7 ← (const string) assert_sbyte::str1
(byte*) print_str::str#7 ← (const byte*) assert_sbyte::str1
call print_str
to:assert_sbyte::@7
assert_sbyte::@7: scope:[assert_sbyte] from assert_sbyte::@1
@ -460,7 +460,7 @@ assert_sbyte::@7: scope:[assert_sbyte] from assert_sbyte::@1
assert_sbyte::@3: scope:[assert_sbyte] from assert_sbyte::@6
(byte*) print_line_cursor#61 ← phi( assert_sbyte::@6/(byte*) print_line_cursor#63 )
(byte*) print_char_cursor#77 ← phi( assert_sbyte::@6/(byte*) print_char_cursor#28 )
(byte*) print_str::str#8 ← (const string) assert_sbyte::str2
(byte*) print_str::str#8 ← (const byte*) assert_sbyte::str2
call print_str
to:assert_sbyte::@8
assert_sbyte::@8: scope:[assert_sbyte] from assert_sbyte::@3
@ -543,9 +543,9 @@ SYMBOL TABLE SSA
(byte*) assert_byte::msg#1
(byte*) assert_byte::msg#2
(byte*) assert_byte::msg#3
(const string) assert_byte::str[] = (string) " "
(const string) assert_byte::str1[] = (string) "fail!"
(const string) assert_byte::str2[] = (string) "ok"
(const byte*) assert_byte::str[(byte) 2] = (string) " "
(const byte*) assert_byte::str1[(byte) 6] = (string) "fail!"
(const byte*) assert_byte::str2[(byte) 3] = (string) "ok"
(void()) assert_sbyte((byte*) assert_sbyte::msg , (signed byte) assert_sbyte::b , (signed byte) assert_sbyte::c)
(bool~) assert_sbyte::$2
(label) assert_sbyte::@1
@ -582,9 +582,9 @@ SYMBOL TABLE SSA
(byte*) assert_sbyte::msg#3
(byte*) assert_sbyte::msg#4
(byte*) assert_sbyte::msg#5
(const string) assert_sbyte::str[] = (string) " "
(const string) assert_sbyte::str1[] = (string) "fail!"
(const string) assert_sbyte::str2[] = (string) "ok"
(const byte*) assert_sbyte::str[(byte) 2] = (string) " "
(const byte*) assert_sbyte::str1[(byte) 6] = (string) "fail!"
(const byte*) assert_sbyte::str2[(byte) 3] = (string) "ok"
(void()) main()
(label) main::@1
(label) main::@2
@ -831,9 +831,9 @@ SYMBOL TABLE SSA
(byte) test_bytes::bc#1
(byte) test_bytes::bd
(byte) test_bytes::bd#0
(const string) test_bytes::msg[] = (string) "0=0"
(const string) test_bytes::msg1[] = (string) "0+2=2"
(const string) test_bytes::msg2[] = (string) "0+2-4=254"
(const byte*) test_bytes::msg[(byte) 4] = (string) "0=0"
(const byte*) test_bytes::msg1[(byte) 6] = (string) "0+2=2"
(const byte*) test_bytes::msg2[(byte) $a] = (string) "0+2-4=254"
(void()) test_sbytes()
(number~) test_sbytes::$1
(number~) test_sbytes::$3
@ -854,11 +854,11 @@ SYMBOL TABLE SSA
(signed byte) test_sbytes::be
(signed byte) test_sbytes::be#0
(const signed byte) test_sbytes::bf = (signed byte)(number) -$7f-(number) $7f
(const string) test_sbytes::msg[] = (string) "0=0"
(const string) test_sbytes::msg1[] = (string) "0+2=2"
(const string) test_sbytes::msg2[] = (string) "0+2-4=-2"
(const string) test_sbytes::msg3[] = (string) "-(0+2-4)=2"
(const string) test_sbytes::msg4[] = (string) "-127-127=2"
(const byte*) test_sbytes::msg[(byte) 4] = (string) "0=0"
(const byte*) test_sbytes::msg1[(byte) 6] = (string) "0+2=2"
(const byte*) test_sbytes::msg2[(byte) 9] = (string) "0+2-4=-2"
(const byte*) test_sbytes::msg3[(byte) $b] = (string) "-(0+2-4)=2"
(const byte*) test_sbytes::msg4[(byte) $b] = (string) "-127-127=2"
Adding number conversion cast (unumber) 0 in (bool~) memset::$0 ← (word) memset::num#1 > (number) 0
Adding number conversion cast (unumber) 0 in (bool~) print_str::$0 ← (number) 0 != *((byte*) print_str::str#9)
@ -1114,6 +1114,11 @@ Constant (const void*) memset::return#2 = memset::str#0
Successful SSA optimization Pass2ConstantIdentification
if() condition always false - eliminating [3] if((const word) memset::num#0<=(byte) 0) goto memset::@1
Successful SSA optimization Pass2ConstantIfs
Consolidated constant strings into (const string) msg
Consolidated constant strings into (const string) msg1
Consolidated constant strings into (const string) str
Consolidated constant strings into (const string) str1
Consolidated constant strings into (const string) str2
Successful SSA optimization Pass2ConstantStringConsolidation
Simplifying expression containing zero 2 in
Simplifying expression containing zero 2 in
@ -1199,17 +1204,17 @@ Constant inlined assert_byte::msg#0 = (const string) msg
Constant inlined test_sbytes::msg1 = (const string) msg1
Constant inlined assert_byte::str1 = (const string) str1
Constant inlined assert_byte::msg#1 = (const string) msg1
Constant inlined assert_byte::msg#2 = (const string) test_bytes::msg2
Constant inlined assert_byte::msg#2 = (const byte*) test_bytes::msg2
Constant inlined assert_sbyte::msg#0 = (const string) msg
Constant inlined assert_sbyte::msg#1 = (const string) msg1
Constant inlined assert_sbyte::msg#2 = (const string) test_sbytes::msg2
Constant inlined assert_sbyte::msg#2 = (const byte*) test_sbytes::msg2
Constant inlined print_line_cursor#0 = (byte*) 1024
Constant inlined assert_sbyte::msg#3 = (const string) test_sbytes::msg3
Constant inlined assert_sbyte::msg#3 = (const byte*) test_sbytes::msg3
Constant inlined assert_sbyte::str = (const string) str
Constant inlined assert_byte::str = (const string) str
Constant inlined test_bytes::msg1 = (const string) msg1
Constant inlined print_str::str#4 = (const string) str2
Constant inlined assert_sbyte::msg#4 = (const string) test_sbytes::msg4
Constant inlined assert_sbyte::msg#4 = (const byte*) test_sbytes::msg4
Constant inlined print_str::str#3 = (const string) str1
Constant inlined print_str::str#2 = (const string) str
Constant inlined memset::dst#0 = (byte*)(const void*) memset::str#0
@ -1380,7 +1385,7 @@ test_sbytes::@return: scope:[test_sbytes] from test_sbytes::@4
assert_sbyte: scope:[assert_sbyte] from test_sbytes test_sbytes::@1 test_sbytes::@2 test_sbytes::@3 test_sbytes::@4
[22] (signed byte) assert_sbyte::c#5 ← phi( test_sbytes/(signed byte) 0 test_sbytes::@1/(signed byte) 2 test_sbytes::@2/(signed byte) -2 test_sbytes::@3/(signed byte) 2 test_sbytes::@4/(signed byte) 2 )
[22] (signed byte) assert_sbyte::b#5 ← phi( test_sbytes/(const signed byte) test_sbytes::bb test_sbytes::@1/(const signed byte) test_sbytes::bc#0 test_sbytes::@2/(const signed byte) test_sbytes::bd#0 test_sbytes::@3/(const signed byte) test_sbytes::be#0 test_sbytes::@4/(const signed byte) test_sbytes::bf )
[22] (byte*) assert_sbyte::msg#5 ← phi( test_sbytes/(const string) msg test_sbytes::@1/(const string) msg1 test_sbytes::@2/(const string) test_sbytes::msg2 test_sbytes::@3/(const string) test_sbytes::msg3 test_sbytes::@4/(const string) test_sbytes::msg4 )
[22] (byte*) assert_sbyte::msg#5 ← phi( test_sbytes/(const string) msg test_sbytes::@1/(const string) msg1 test_sbytes::@2/(const byte*) test_sbytes::msg2 test_sbytes::@3/(const byte*) test_sbytes::msg3 test_sbytes::@4/(const byte*) test_sbytes::msg4 )
[23] (byte*) print_str::str#5 ← (byte*) assert_sbyte::msg#5
[24] (byte*) print_char_cursor#85 ← (byte*) print_line_cursor#1
[25] call print_str
@ -1463,7 +1468,7 @@ assert_byte: scope:[assert_byte] from test_bytes test_bytes::@1 test_bytes::@2
[55] (byte) assert_byte::c#3 ← phi( test_bytes/(byte) 0 test_bytes::@1/(byte) 2 test_bytes::@2/(byte) $fe )
[55] (byte) assert_byte::b#3 ← phi( test_bytes/(const byte) test_bytes::bb test_bytes::@1/(const byte) test_bytes::bc#0 test_bytes::@2/(const byte) test_bytes::bd#0 )
[55] (byte*) print_char_cursor#70 ← phi( test_bytes/(byte*) 1024 test_bytes::@1/(byte*) print_char_cursor#91 test_bytes::@2/(byte*) print_char_cursor#92 )
[55] (byte*) assert_byte::msg#3 ← phi( test_bytes/(const string) msg test_bytes::@1/(const string) msg1 test_bytes::@2/(const string) test_bytes::msg2 )
[55] (byte*) assert_byte::msg#3 ← phi( test_bytes/(const string) msg test_bytes::@1/(const string) msg1 test_bytes::@2/(const byte*) test_bytes::msg2 )
[56] (byte*) print_str::str#1 ← (byte*) assert_byte::msg#3
[57] call print_str
to:assert_byte::@4
@ -1722,7 +1727,7 @@ test_sbytes: {
// [22] phi (signed byte) assert_sbyte::b#5 = (const signed byte) test_sbytes::bd#0 [phi:test_sbytes::@2->assert_sbyte#1] -- vbsz1=vbsc1
lda #bd
sta.z assert_sbyte.b
// [22] phi (byte*) assert_sbyte::msg#5 = (const string) test_sbytes::msg2 [phi:test_sbytes::@2->assert_sbyte#2] -- pbuz1=pbuc1
// [22] phi (byte*) assert_sbyte::msg#5 = (const byte*) test_sbytes::msg2 [phi:test_sbytes::@2->assert_sbyte#2] -- pbuz1=pbuc1
lda #<msg2
sta.z assert_sbyte.msg
lda #>msg2
@ -1742,7 +1747,7 @@ test_sbytes: {
// [22] phi (signed byte) assert_sbyte::b#5 = (const signed byte) test_sbytes::be#0 [phi:test_sbytes::@3->assert_sbyte#1] -- vbsz1=vbsc1
lda #be
sta.z assert_sbyte.b
// [22] phi (byte*) assert_sbyte::msg#5 = (const string) test_sbytes::msg3 [phi:test_sbytes::@3->assert_sbyte#2] -- pbuz1=pbuc1
// [22] phi (byte*) assert_sbyte::msg#5 = (const byte*) test_sbytes::msg3 [phi:test_sbytes::@3->assert_sbyte#2] -- pbuz1=pbuc1
lda #<msg3
sta.z assert_sbyte.msg
lda #>msg3
@ -1762,7 +1767,7 @@ test_sbytes: {
// [22] phi (signed byte) assert_sbyte::b#5 = (const signed byte) test_sbytes::bf [phi:test_sbytes::@4->assert_sbyte#1] -- vbsz1=vbsc1
lda #bf
sta.z assert_sbyte.b
// [22] phi (byte*) assert_sbyte::msg#5 = (const string) test_sbytes::msg4 [phi:test_sbytes::@4->assert_sbyte#2] -- pbuz1=pbuc1
// [22] phi (byte*) assert_sbyte::msg#5 = (const byte*) test_sbytes::msg4 [phi:test_sbytes::@4->assert_sbyte#2] -- pbuz1=pbuc1
lda #<msg4
sta.z assert_sbyte.msg
lda #>msg4
@ -2022,7 +2027,7 @@ test_bytes: {
lda #bd
sta.z assert_byte.b
// [55] phi (byte*) print_char_cursor#70 = (byte*) print_char_cursor#92 [phi:test_bytes::@2->assert_byte#3] -- register_copy
// [55] phi (byte*) assert_byte::msg#3 = (const string) test_bytes::msg2 [phi:test_bytes::@2->assert_byte#4] -- pbuz1=pbuc1
// [55] phi (byte*) assert_byte::msg#3 = (const byte*) test_bytes::msg2 [phi:test_bytes::@2->assert_byte#4] -- pbuz1=pbuc1
lda #<msg2
sta.z assert_byte.msg
lda #>msg2
@ -2392,7 +2397,7 @@ test_sbytes: {
sta.z assert_sbyte.c
// [22] phi (signed byte) assert_sbyte::b#5 = (const signed byte) test_sbytes::bd#0 [phi:test_sbytes::@2->assert_sbyte#1] -- vbsxx=vbsc1
ldx #bd
// [22] phi (byte*) assert_sbyte::msg#5 = (const string) test_sbytes::msg2 [phi:test_sbytes::@2->assert_sbyte#2] -- pbuz1=pbuc1
// [22] phi (byte*) assert_sbyte::msg#5 = (const byte*) test_sbytes::msg2 [phi:test_sbytes::@2->assert_sbyte#2] -- pbuz1=pbuc1
lda #<msg2
sta.z assert_sbyte.msg
lda #>msg2
@ -2411,7 +2416,7 @@ test_sbytes: {
sta.z assert_sbyte.c
// [22] phi (signed byte) assert_sbyte::b#5 = (const signed byte) test_sbytes::be#0 [phi:test_sbytes::@3->assert_sbyte#1] -- vbsxx=vbsc1
ldx #be
// [22] phi (byte*) assert_sbyte::msg#5 = (const string) test_sbytes::msg3 [phi:test_sbytes::@3->assert_sbyte#2] -- pbuz1=pbuc1
// [22] phi (byte*) assert_sbyte::msg#5 = (const byte*) test_sbytes::msg3 [phi:test_sbytes::@3->assert_sbyte#2] -- pbuz1=pbuc1
lda #<msg3
sta.z assert_sbyte.msg
lda #>msg3
@ -2430,7 +2435,7 @@ test_sbytes: {
sta.z assert_sbyte.c
// [22] phi (signed byte) assert_sbyte::b#5 = (const signed byte) test_sbytes::bf [phi:test_sbytes::@4->assert_sbyte#1] -- vbsxx=vbsc1
ldx #bf
// [22] phi (byte*) assert_sbyte::msg#5 = (const string) test_sbytes::msg4 [phi:test_sbytes::@4->assert_sbyte#2] -- pbuz1=pbuc1
// [22] phi (byte*) assert_sbyte::msg#5 = (const byte*) test_sbytes::msg4 [phi:test_sbytes::@4->assert_sbyte#2] -- pbuz1=pbuc1
lda #<msg4
sta.z assert_sbyte.msg
lda #>msg4
@ -2681,7 +2686,7 @@ test_bytes: {
// [55] phi (byte) assert_byte::b#3 = (const byte) test_bytes::bd#0 [phi:test_bytes::@2->assert_byte#2] -- vbuxx=vbuc1
ldx #bd
// [55] phi (byte*) print_char_cursor#70 = (byte*) print_char_cursor#92 [phi:test_bytes::@2->assert_byte#3] -- register_copy
// [55] phi (byte*) assert_byte::msg#3 = (const string) test_bytes::msg2 [phi:test_bytes::@2->assert_byte#4] -- pbuz1=pbuc1
// [55] phi (byte*) assert_byte::msg#3 = (const byte*) test_bytes::msg2 [phi:test_bytes::@2->assert_byte#4] -- pbuz1=pbuc1
lda #<msg2
sta.z assert_byte.msg
lda #>msg2
@ -3064,7 +3069,7 @@ FINAL SYMBOL TABLE
(const byte) test_bytes::bc#0 bc = (byte) 2
(byte) test_bytes::bd
(const byte) test_bytes::bd#0 bd = (byte)(signed byte)(const byte) test_bytes::bc#0-(signed byte) 4
(const string) test_bytes::msg2[] = (string) "0+2-4=254"
(const byte*) test_bytes::msg2[(byte) $a] = (string) "0+2-4=254"
(void()) test_sbytes()
(label) test_sbytes::@1
(label) test_sbytes::@2
@ -3079,9 +3084,9 @@ FINAL SYMBOL TABLE
(signed byte) test_sbytes::be
(const signed byte) test_sbytes::be#0 be = -(const signed byte) test_sbytes::bd#0
(const signed byte) test_sbytes::bf = (signed byte)(number) -$7f-(number) $7f
(const string) test_sbytes::msg2[] = (string) "0+2-4=-2"
(const string) test_sbytes::msg3[] = (string) "-(0+2-4)=2"
(const string) test_sbytes::msg4[] = (string) "-127-127=2"
(const byte*) test_sbytes::msg2[(byte) 9] = (string) "0+2-4=-2"
(const byte*) test_sbytes::msg3[(byte) $b] = (string) "-(0+2-4)=2"
(const byte*) test_sbytes::msg4[(byte) $b] = (string) "-127-127=2"
reg byte x [ assert_sbyte::b#5 ]
zp[2]:2 [ print_char_cursor#80 print_char_cursor#70 print_char_cursor#2 print_char_cursor#85 print_char_cursor#1 print_char_cursor#91 print_char_cursor#92 ]
@ -3186,7 +3191,7 @@ test_sbytes: {
sta.z assert_sbyte.c
// [22] phi (signed byte) assert_sbyte::b#5 = (const signed byte) test_sbytes::bd#0 [phi:test_sbytes::@2->assert_sbyte#1] -- vbsxx=vbsc1
ldx #bd
// [22] phi (byte*) assert_sbyte::msg#5 = (const string) test_sbytes::msg2 [phi:test_sbytes::@2->assert_sbyte#2] -- pbuz1=pbuc1
// [22] phi (byte*) assert_sbyte::msg#5 = (const byte*) test_sbytes::msg2 [phi:test_sbytes::@2->assert_sbyte#2] -- pbuz1=pbuc1
lda #<msg2
sta.z assert_sbyte.msg
lda #>msg2
@ -3202,7 +3207,7 @@ test_sbytes: {
sta.z assert_sbyte.c
// [22] phi (signed byte) assert_sbyte::b#5 = (const signed byte) test_sbytes::be#0 [phi:test_sbytes::@3->assert_sbyte#1] -- vbsxx=vbsc1
ldx #be
// [22] phi (byte*) assert_sbyte::msg#5 = (const string) test_sbytes::msg3 [phi:test_sbytes::@3->assert_sbyte#2] -- pbuz1=pbuc1
// [22] phi (byte*) assert_sbyte::msg#5 = (const byte*) test_sbytes::msg3 [phi:test_sbytes::@3->assert_sbyte#2] -- pbuz1=pbuc1
lda #<msg3
sta.z assert_sbyte.msg
lda #>msg3
@ -3218,7 +3223,7 @@ test_sbytes: {
sta.z assert_sbyte.c
// [22] phi (signed byte) assert_sbyte::b#5 = (const signed byte) test_sbytes::bf [phi:test_sbytes::@4->assert_sbyte#1] -- vbsxx=vbsc1
ldx #bf
// [22] phi (byte*) assert_sbyte::msg#5 = (const string) test_sbytes::msg4 [phi:test_sbytes::@4->assert_sbyte#2] -- pbuz1=pbuc1
// [22] phi (byte*) assert_sbyte::msg#5 = (const byte*) test_sbytes::msg4 [phi:test_sbytes::@4->assert_sbyte#2] -- pbuz1=pbuc1
lda #<msg4
sta.z assert_sbyte.msg
lda #>msg4
@ -3451,7 +3456,7 @@ test_bytes: {
// [55] phi (byte) assert_byte::b#3 = (const byte) test_bytes::bd#0 [phi:test_bytes::@2->assert_byte#2] -- vbuxx=vbuc1
ldx #bd
// [55] phi (byte*) print_char_cursor#70 = (byte*) print_char_cursor#92 [phi:test_bytes::@2->assert_byte#3] -- register_copy
// [55] phi (byte*) assert_byte::msg#3 = (const string) test_bytes::msg2 [phi:test_bytes::@2->assert_byte#4] -- pbuz1=pbuc1
// [55] phi (byte*) assert_byte::msg#3 = (const byte*) test_bytes::msg2 [phi:test_bytes::@2->assert_byte#4] -- pbuz1=pbuc1
lda #<msg2
sta.z assert_byte.msg
lda #>msg2

@ -97,7 +97,7 @@
(const byte) test_bytes::bc#0 bc = (byte) 2
(byte) test_bytes::bd
(const byte) test_bytes::bd#0 bd = (byte)(signed byte)(const byte) test_bytes::bc#0-(signed byte) 4
(const string) test_bytes::msg2[] = (string) "0+2-4=254"
(const byte*) test_bytes::msg2[(byte) $a] = (string) "0+2-4=254"
(void()) test_sbytes()
(label) test_sbytes::@1
(label) test_sbytes::@2
@ -112,9 +112,9 @@
(signed byte) test_sbytes::be
(const signed byte) test_sbytes::be#0 be = -(const signed byte) test_sbytes::bd#0
(const signed byte) test_sbytes::bf = (signed byte)(number) -$7f-(number) $7f
(const string) test_sbytes::msg2[] = (string) "0+2-4=-2"
(const string) test_sbytes::msg3[] = (string) "-(0+2-4)=2"
(const string) test_sbytes::msg4[] = (string) "-127-127=2"
(const byte*) test_sbytes::msg2[(byte) 9] = (string) "0+2-4=-2"
(const byte*) test_sbytes::msg3[(byte) $b] = (string) "-(0+2-4)=2"
(const byte*) test_sbytes::msg4[(byte) $b] = (string) "-127-127=2"
reg byte x [ assert_sbyte::b#5 ]
zp[2]:2 [ print_char_cursor#80 print_char_cursor#70 print_char_cursor#2 print_char_cursor#85 print_char_cursor#1 print_char_cursor#91 print_char_cursor#92 ]

@ -443,7 +443,7 @@ debug_print_init::@return: scope:[debug_print_init] from debug_print_init::@3
(void()) print_str_at((byte*) print_str_at::str , (byte*) print_str_at::at)
print_str_at: scope:[print_str_at] from debug_print_init::@10 debug_print_init::@11 debug_print_init::@12 debug_print_init::@13 debug_print_init::@14 debug_print_init::@15 debug_print_init::@4 debug_print_init::@5 debug_print_init::@6 debug_print_init::@7 debug_print_init::@8 debug_print_init::@9
[243] (byte*) print_str_at::at#15 ← phi( debug_print_init::@9/(const byte*) SCREEN+(word)(number) $28*(number) $12 debug_print_init::@10/(const byte*) SCREEN+(word)(number) $28*(number) $13 debug_print_init::@11/(const byte*) SCREEN+(word)(number) $28*(number) $14 debug_print_init::@12/(const byte*) SCREEN+(word)(number) $28*(number) $15 debug_print_init::@13/(const byte*) SCREEN+(word)(number) $28*(number) $16 debug_print_init::@14/(const byte*) SCREEN+(word)(number) $28*(number) $17 debug_print_init::@15/(const byte*) SCREEN+(word)(number) $28*(number) $18 debug_print_init::@4/(const byte*) SCREEN+(byte) $22 debug_print_init::@5/(const byte*) SCREEN+(byte)(number) $28*(number) 1+(byte) $22 debug_print_init::@6/(const byte*) SCREEN+(byte)(number) $28*(number) 2+(byte) $22 debug_print_init::@7/(const byte*) SCREEN+(word)(number) $28*(number) $10 debug_print_init::@8/(const byte*) SCREEN+(word)(number) $28*(number) $11 )
[243] (byte*) print_str_at::str#15 ← phi( debug_print_init::@9/(const string) debug_print_init::str5 debug_print_init::@10/(const string) debug_print_init::str6 debug_print_init::@11/(const string) debug_print_init::str7 debug_print_init::@12/(const string) debug_print_init::str8 debug_print_init::@13/(const string) debug_print_init::str9 debug_print_init::@14/(const string) debug_print_init::str10 debug_print_init::@15/(const string) debug_print_init::str11 debug_print_init::@4/(const string) debug_print_init::str debug_print_init::@5/(const string) debug_print_init::str1 debug_print_init::@6/(const string) debug_print_init::str2 debug_print_init::@7/(const string) debug_print_init::str3 debug_print_init::@8/(const string) debug_print_init::str4 )
[243] (byte*) print_str_at::str#15 ← phi( debug_print_init::@9/(const byte*) debug_print_init::str5 debug_print_init::@10/(const byte*) debug_print_init::str6 debug_print_init::@11/(const byte*) debug_print_init::str7 debug_print_init::@12/(const byte*) debug_print_init::str8 debug_print_init::@13/(const byte*) debug_print_init::str9 debug_print_init::@14/(const byte*) debug_print_init::str10 debug_print_init::@15/(const byte*) debug_print_init::str11 debug_print_init::@4/(const byte*) debug_print_init::str debug_print_init::@5/(const byte*) debug_print_init::str1 debug_print_init::@6/(const byte*) debug_print_init::str2 debug_print_init::@7/(const byte*) debug_print_init::str3 debug_print_init::@8/(const byte*) debug_print_init::str4 )
to:print_str_at::@1
print_str_at::@1: scope:[print_str_at] from print_str_at print_str_at::@2
[244] (byte*) print_str_at::at#13 ← phi( print_str_at/(byte*) print_str_at::at#15 print_str_at::@2/(byte*) print_str_at::at#0 )

@ -558,75 +558,75 @@ debug_print_init: scope:[debug_print_init] from main::@1
debug_print_init::@5: scope:[debug_print_init] from debug_print_init
(byte*~) debug_print_init::$1 ← (const byte*) SCREEN + (number) $28*(number) 0
(byte*~) debug_print_init::$2 ← (byte*~) debug_print_init::$1 + (number) $22
(byte*) print_str_at::str#1 ← (const string) debug_print_init::str
(byte*) print_str_at::str#1 ← (const byte*) debug_print_init::str
(byte*) print_str_at::at#1 ← (byte*~) debug_print_init::$2
call print_str_at
to:debug_print_init::@6
debug_print_init::@6: scope:[debug_print_init] from debug_print_init::@5
(byte*~) debug_print_init::$4 ← (const byte*) SCREEN + (number) $28*(number) 1
(byte*~) debug_print_init::$5 ← (byte*~) debug_print_init::$4 + (number) $22
(byte*) print_str_at::str#2 ← (const string) debug_print_init::str1
(byte*) print_str_at::str#2 ← (const byte*) debug_print_init::str1
(byte*) print_str_at::at#2 ← (byte*~) debug_print_init::$5
call print_str_at
to:debug_print_init::@7
debug_print_init::@7: scope:[debug_print_init] from debug_print_init::@6
(byte*~) debug_print_init::$7 ← (const byte*) SCREEN + (number) $28*(number) 2
(byte*~) debug_print_init::$8 ← (byte*~) debug_print_init::$7 + (number) $22
(byte*) print_str_at::str#3 ← (const string) debug_print_init::str2
(byte*) print_str_at::str#3 ← (const byte*) debug_print_init::str2
(byte*) print_str_at::at#3 ← (byte*~) debug_print_init::$8
call print_str_at
to:debug_print_init::@8
debug_print_init::@8: scope:[debug_print_init] from debug_print_init::@7
(byte*~) debug_print_init::$10 ← (const byte*) SCREEN + (number) $28*(number) $10
(byte*) print_str_at::str#4 ← (const string) debug_print_init::str3
(byte*) print_str_at::str#4 ← (const byte*) debug_print_init::str3
(byte*) print_str_at::at#4 ← (byte*~) debug_print_init::$10
call print_str_at
to:debug_print_init::@9
debug_print_init::@9: scope:[debug_print_init] from debug_print_init::@8
(byte*~) debug_print_init::$12 ← (const byte*) SCREEN + (number) $28*(number) $11
(byte*) print_str_at::str#5 ← (const string) debug_print_init::str4
(byte*) print_str_at::str#5 ← (const byte*) debug_print_init::str4
(byte*) print_str_at::at#5 ← (byte*~) debug_print_init::$12
call print_str_at
to:debug_print_init::@10
debug_print_init::@10: scope:[debug_print_init] from debug_print_init::@9
(byte*~) debug_print_init::$14 ← (const byte*) SCREEN + (number) $28*(number) $12
(byte*) print_str_at::str#6 ← (const string) debug_print_init::str5
(byte*) print_str_at::str#6 ← (const byte*) debug_print_init::str5
(byte*) print_str_at::at#6 ← (byte*~) debug_print_init::$14
call print_str_at
to:debug_print_init::@11
debug_print_init::@11: scope:[debug_print_init] from debug_print_init::@10
(byte*~) debug_print_init::$16 ← (const byte*) SCREEN + (number) $28*(number) $13
(byte*) print_str_at::str#7 ← (const string) debug_print_init::str6
(byte*) print_str_at::str#7 ← (const byte*) debug_print_init::str6
(byte*) print_str_at::at#7 ← (byte*~) debug_print_init::$16
call print_str_at
to:debug_print_init::@12
debug_print_init::@12: scope:[debug_print_init] from debug_print_init::@11
(byte*~) debug_print_init::$18 ← (const byte*) SCREEN + (number) $28*(number) $14
(byte*) print_str_at::str#8 ← (const string) debug_print_init::str7
(byte*) print_str_at::str#8 ← (const byte*) debug_print_init::str7
(byte*) print_str_at::at#8 ← (byte*~) debug_print_init::$18
call print_str_at
to:debug_print_init::@13
debug_print_init::@13: scope:[debug_print_init] from debug_print_init::@12
(byte*~) debug_print_init::$20 ← (const byte*) SCREEN + (number) $28*(number) $15
(byte*) print_str_at::str#9 ← (const string) debug_print_init::str8
(byte*) print_str_at::str#9 ← (const byte*) debug_print_init::str8
(byte*) print_str_at::at#9 ← (byte*~) debug_print_init::$20
call print_str_at
to:debug_print_init::@14
debug_print_init::@14: scope:[debug_print_init] from debug_print_init::@13
(byte*~) debug_print_init::$22 ← (const byte*) SCREEN + (number) $28*(number) $16
(byte*) print_str_at::str#10 ← (const string) debug_print_init::str9
(byte*) print_str_at::str#10 ← (const byte*) debug_print_init::str9
(byte*) print_str_at::at#10 ← (byte*~) debug_print_init::$22
call print_str_at
to:debug_print_init::@15
debug_print_init::@15: scope:[debug_print_init] from debug_print_init::@14
(byte*~) debug_print_init::$24 ← (const byte*) SCREEN + (number) $28*(number) $17
(byte*) print_str_at::str#11 ← (const string) debug_print_init::str10
(byte*) print_str_at::str#11 ← (const byte*) debug_print_init::str10
(byte*) print_str_at::at#11 ← (byte*~) debug_print_init::$24
call print_str_at
to:debug_print_init::@16
debug_print_init::@16: scope:[debug_print_init] from debug_print_init::@15
(byte*~) debug_print_init::$26 ← (const byte*) SCREEN + (number) $28*(number) $18
(byte*) print_str_at::str#12 ← (const string) debug_print_init::str11
(byte*) print_str_at::str#12 ← (const byte*) debug_print_init::str11
(byte*) print_str_at::at#12 ← (byte*~) debug_print_init::$26
call print_str_at
to:debug_print_init::@17
@ -1701,18 +1701,18 @@ SYMBOL TABLE SSA
(byte) debug_print_init::j#0
(byte) debug_print_init::j#1
(byte) debug_print_init::j#2
(const string) debug_print_init::str[] = (string) "sx"
(const string) debug_print_init::str1[] = (string) "sy"
(const string) debug_print_init::str10[] = (string) "xp"
(const string) debug_print_init::str11[] = (string) "yp"
(const string) debug_print_init::str2[] = (string) "sz"
(const string) debug_print_init::str3[] = (string) "x"
(const string) debug_print_init::str4[] = (string) "y"
(const string) debug_print_init::str5[] = (string) "z"
(const string) debug_print_init::str6[] = (string) "xr"
(const string) debug_print_init::str7[] = (string) "yr"
(const string) debug_print_init::str8[] = (string) "zr"
(const string) debug_print_init::str9[] = (string) "pp"
(const byte*) debug_print_init::str[(byte) 3] = (string) "sx"
(const byte*) debug_print_init::str1[(byte) 3] = (string) "sy"
(const byte*) debug_print_init::str10[(byte) 3] = (string) "xp"
(const byte*) debug_print_init::str11[(byte) 3] = (string) "yp"
(const byte*) debug_print_init::str2[(byte) 3] = (string) "sz"
(const byte*) debug_print_init::str3[(byte) 2] = (string) "x"
(const byte*) debug_print_init::str4[(byte) 2] = (string) "y"
(const byte*) debug_print_init::str5[(byte) 2] = (string) "z"
(const byte*) debug_print_init::str6[(byte) 3] = (string) "xr"
(const byte*) debug_print_init::str7[(byte) 3] = (string) "yr"
(const byte*) debug_print_init::str8[(byte) 3] = (string) "zr"
(const byte*) debug_print_init::str9[(byte) 3] = (string) "pp"
(void()) main()
(word~) main::$1
(word~) main::$2
@ -3003,9 +3003,9 @@ Inlining constant with var siblings (const byte) sprites_init::i#0
Inlining constant with var siblings (const signed byte) sx#17
Inlining constant with var siblings (const signed byte) sy#18
Constant inlined debug_print::print_sbyte_pos9_$0 = (const byte) debug_print::print_sbyte_pos9_row#0*(byte) $28
Constant inlined print_str_at::str#12 = (const string) debug_print_init::str11
Constant inlined print_str_at::str#11 = (const string) debug_print_init::str10
Constant inlined print_str_at::str#10 = (const string) debug_print_init::str9
Constant inlined print_str_at::str#12 = (const byte*) debug_print_init::str11
Constant inlined print_str_at::str#11 = (const byte*) debug_print_init::str10
Constant inlined print_str_at::str#10 = (const byte*) debug_print_init::str9
Constant inlined debug_print_init::$36 = (const byte*) debug_print_init::at_line#0+(byte)(number) $28*(number) 2
Constant inlined debug_print::print_sbyte_pos9_$1 = (const byte*) print_screen#0+(const byte) debug_print::print_sbyte_pos9_row#0*(byte) $28
Constant inlined debug_print_init::$33 = (const byte*) debug_print_init::at_line#0+(byte)(number) $28*(number) 1
@ -3020,10 +3020,10 @@ Constant inlined debug_print::print_sbyte_pos6_$0 = (const byte) debug_print::pr
Constant inlined debug_print::print_sbyte_pos12_$1 = (const byte*) print_screen#0+(const byte) debug_print::print_sbyte_pos12_row#0*(byte) $28
Constant inlined debug_print::print_sbyte_pos6_$1 = (const byte*) print_screen#0+(const byte) debug_print::print_sbyte_pos6_row#0*(byte) $28
Constant inlined debug_print_init::j#0 = (byte) 0
Constant inlined print_str_at::str#1 = (const string) debug_print_init::str
Constant inlined print_str_at::str#2 = (const string) debug_print_init::str1
Constant inlined print_str_at::str#3 = (const string) debug_print_init::str2
Constant inlined print_str_at::str#4 = (const string) debug_print_init::str3
Constant inlined print_str_at::str#1 = (const byte*) debug_print_init::str
Constant inlined print_str_at::str#2 = (const byte*) debug_print_init::str1
Constant inlined print_str_at::str#3 = (const byte*) debug_print_init::str2
Constant inlined print_str_at::str#4 = (const byte*) debug_print_init::str3
Constant inlined debug_print::print_sbyte_pos3_sb#0 = (const signed byte) sz
Constant inlined print_str_at::at#11 = (const byte*) SCREEN+(word)(number) $28*(number) $17
Constant inlined print_str_at::at#10 = (const byte*) SCREEN+(word)(number) $28*(number) $16
@ -3035,13 +3035,13 @@ Constant inlined debug_print::print_sbyte_pos11_$0 = (const byte) debug_print::p
Constant inlined print_char_at::ch#0 = (byte) '-'
Constant inlined debug_print::print_sbyte_pos11_$1 = (const byte*) print_screen#0+(const byte) debug_print::print_sbyte_pos11_row#0*(byte) $28
Constant inlined print_char_at::ch#1 = (byte) ' '
Constant inlined print_str_at::str#9 = (const string) debug_print_init::str8
Constant inlined print_str_at::str#9 = (const byte*) debug_print_init::str8
Constant inlined debug_print_init::$55 = (const byte*) debug_print_init::at_cols#0+(byte)(number) $28*(number) 5
Constant inlined print_str_at::str#5 = (const string) debug_print_init::str4
Constant inlined print_str_at::str#5 = (const byte*) debug_print_init::str4
Constant inlined debug_print_init::$52 = (const byte*) debug_print_init::at_cols#0+(byte)(number) $28*(number) 4
Constant inlined print_str_at::str#6 = (const string) debug_print_init::str5
Constant inlined print_str_at::str#7 = (const string) debug_print_init::str6
Constant inlined print_str_at::str#8 = (const string) debug_print_init::str7
Constant inlined print_str_at::str#6 = (const byte*) debug_print_init::str5
Constant inlined print_str_at::str#7 = (const byte*) debug_print_init::str6
Constant inlined print_str_at::str#8 = (const byte*) debug_print_init::str7
Constant inlined debug_print::c#0 = (byte) 4
Constant inlined print_sbyte_at::at#13 = (const byte*) print_screen#0+(const byte) debug_print::print_sbyte_pos11_row#0*(byte) $28+(const byte) debug_print::print_sbyte_pos11_col#0
Constant inlined print_sbyte_at::at#12 = (const byte*) print_screen#0+(const byte) debug_print::print_sbyte_pos10_row#0*(byte) $28+(const byte) debug_print::print_sbyte_pos10_col#0
@ -3777,7 +3777,7 @@ debug_print_init::@return: scope:[debug_print_init] from debug_print_init::@3
(void()) print_str_at((byte*) print_str_at::str , (byte*) print_str_at::at)
print_str_at: scope:[print_str_at] from debug_print_init::@10 debug_print_init::@11 debug_print_init::@12 debug_print_init::@13 debug_print_init::@14 debug_print_init::@15 debug_print_init::@4 debug_print_init::@5 debug_print_init::@6 debug_print_init::@7 debug_print_init::@8 debug_print_init::@9
[243] (byte*) print_str_at::at#15 ← phi( debug_print_init::@9/(const byte*) SCREEN+(word)(number) $28*(number) $12 debug_print_init::@10/(const byte*) SCREEN+(word)(number) $28*(number) $13 debug_print_init::@11/(const byte*) SCREEN+(word)(number) $28*(number) $14 debug_print_init::@12/(const byte*) SCREEN+(word)(number) $28*(number) $15 debug_print_init::@13/(const byte*) SCREEN+(word)(number) $28*(number) $16 debug_print_init::@14/(const byte*) SCREEN+(word)(number) $28*(number) $17 debug_print_init::@15/(const byte*) SCREEN+(word)(number) $28*(number) $18 debug_print_init::@4/(const byte*) SCREEN+(byte) $22 debug_print_init::@5/(const byte*) SCREEN+(byte)(number) $28*(number) 1+(byte) $22 debug_print_init::@6/(const byte*) SCREEN+(byte)(number) $28*(number) 2+(byte) $22 debug_print_init::@7/(const byte*) SCREEN+(word)(number) $28*(number) $10 debug_print_init::@8/(const byte*) SCREEN+(word)(number) $28*(number) $11 )
[243] (byte*) print_str_at::str#15 ← phi( debug_print_init::@9/(const string) debug_print_init::str5 debug_print_init::@10/(const string) debug_print_init::str6 debug_print_init::@11/(const string) debug_print_init::str7 debug_print_init::@12/(const string) debug_print_init::str8 debug_print_init::@13/(const string) debug_print_init::str9 debug_print_init::@14/(const string) debug_print_init::str10 debug_print_init::@15/(const string) debug_print_init::str11 debug_print_init::@4/(const string) debug_print_init::str debug_print_init::@5/(const string) debug_print_init::str1 debug_print_init::@6/(const string) debug_print_init::str2 debug_print_init::@7/(const string) debug_print_init::str3 debug_print_init::@8/(const string) debug_print_init::str4 )
[243] (byte*) print_str_at::str#15 ← phi( debug_print_init::@9/(const byte*) debug_print_init::str5 debug_print_init::@10/(const byte*) debug_print_init::str6 debug_print_init::@11/(const byte*) debug_print_init::str7 debug_print_init::@12/(const byte*) debug_print_init::str8 debug_print_init::@13/(const byte*) debug_print_init::str9 debug_print_init::@14/(const byte*) debug_print_init::str10 debug_print_init::@15/(const byte*) debug_print_init::str11 debug_print_init::@4/(const byte*) debug_print_init::str debug_print_init::@5/(const byte*) debug_print_init::str1 debug_print_init::@6/(const byte*) debug_print_init::str2 debug_print_init::@7/(const byte*) debug_print_init::str3 debug_print_init::@8/(const byte*) debug_print_init::str4 )
to:print_str_at::@1
print_str_at::@1: scope:[print_str_at] from print_str_at print_str_at::@2
[244] (byte*) print_str_at::at#13 ← phi( print_str_at/(byte*) print_str_at::at#15 print_str_at::@2/(byte*) print_str_at::at#0 )
@ -5671,7 +5671,7 @@ debug_print_init: {
sta.z print_str_at.at
lda #>SCREEN+$22
sta.z print_str_at.at+1
// [243] phi (byte*) print_str_at::str#15 = (const string) debug_print_init::str [phi:debug_print_init::@4->print_str_at#1] -- pbuz1=pbuc1
// [243] phi (byte*) print_str_at::str#15 = (const byte*) debug_print_init::str [phi:debug_print_init::@4->print_str_at#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str_at.str
lda #>str
@ -5690,7 +5690,7 @@ debug_print_init: {
sta.z print_str_at.at
lda #>SCREEN+$28*1+$22
sta.z print_str_at.at+1
// [243] phi (byte*) print_str_at::str#15 = (const string) debug_print_init::str1 [phi:debug_print_init::@5->print_str_at#1] -- pbuz1=pbuc1
// [243] phi (byte*) print_str_at::str#15 = (const byte*) debug_print_init::str1 [phi:debug_print_init::@5->print_str_at#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str_at.str
lda #>str1
@ -5709,7 +5709,7 @@ debug_print_init: {
sta.z print_str_at.at
lda #>SCREEN+$28*2+$22
sta.z print_str_at.at+1
// [243] phi (byte*) print_str_at::str#15 = (const string) debug_print_init::str2 [phi:debug_print_init::@6->print_str_at#1] -- pbuz1=pbuc1
// [243] phi (byte*) print_str_at::str#15 = (const byte*) debug_print_init::str2 [phi:debug_print_init::@6->print_str_at#1] -- pbuz1=pbuc1
lda #<str2
sta.z print_str_at.str
lda #>str2
@ -5728,7 +5728,7 @@ debug_print_init: {
sta.z print_str_at.at
lda #>SCREEN+$28*$10
sta.z print_str_at.at+1
// [243] phi (byte*) print_str_at::str#15 = (const string) debug_print_init::str3 [phi:debug_print_init::@7->print_str_at#1] -- pbuz1=pbuc1
// [243] phi (byte*) print_str_at::str#15 = (const byte*) debug_print_init::str3 [phi:debug_print_init::@7->print_str_at#1] -- pbuz1=pbuc1
lda #<str3
sta.z print_str_at.str
lda #>str3
@ -5747,7 +5747,7 @@ debug_print_init: {
sta.z print_str_at.at
lda #>SCREEN+$28*$11
sta.z print_str_at.at+1
// [243] phi (byte*) print_str_at::str#15 = (const string) debug_print_init::str4 [phi:debug_print_init::@8->print_str_at#1] -- pbuz1=pbuc1
// [243] phi (byte*) print_str_at::str#15 = (const byte*) debug_print_init::str4 [phi:debug_print_init::@8->print_str_at#1] -- pbuz1=pbuc1
lda #<str4
sta.z print_str_at.str
lda #>str4
@ -5766,7 +5766,7 @@ debug_print_init: {
sta.z print_str_at.at
lda #>SCREEN+$28*$12
sta.z print_str_at.at+1
// [243] phi (byte*) print_str_at::str#15 = (const string) debug_print_init::str5 [phi:debug_print_init::@9->print_str_at#1] -- pbuz1=pbuc1
// [243] phi (byte*) print_str_at::str#15 = (const byte*) debug_print_init::str5 [phi:debug_print_init::@9->print_str_at#1] -- pbuz1=pbuc1
lda #<str5
sta.z print_str_at.str
lda #>str5
@ -5785,7 +5785,7 @@ debug_print_init: {
sta.z print_str_at.at
lda #>SCREEN+$28*$13
sta.z print_str_at.at+1
// [243] phi (byte*) print_str_at::str#15 = (const string) debug_print_init::str6 [phi:debug_print_init::@10->print_str_at#1] -- pbuz1=pbuc1
// [243] phi (byte*) print_str_at::str#15 = (const byte*) debug_print_init::str6 [phi:debug_print_init::@10->print_str_at#1] -- pbuz1=pbuc1
lda #<str6
sta.z print_str_at.str
lda #>str6
@ -5804,7 +5804,7 @@ debug_print_init: {
sta.z print_str_at.at
lda #>SCREEN+$28*$14
sta.z print_str_at.at+1
// [243] phi (byte*) print_str_at::str#15 = (const string) debug_print_init::str7 [phi:debug_print_init::@11->print_str_at#1] -- pbuz1=pbuc1
// [243] phi (byte*) print_str_at::str#15 = (const byte*) debug_print_init::str7 [phi:debug_print_init::@11->print_str_at#1] -- pbuz1=pbuc1
lda #<str7
sta.z print_str_at.str
lda #>str7
@ -5823,7 +5823,7 @@ debug_print_init: {
sta.z print_str_at.at
lda #>SCREEN+$28*$15
sta.z print_str_at.at+1
// [243] phi (byte*) print_str_at::str#15 = (const string) debug_print_init::str8 [phi:debug_print_init::@12->print_str_at#1] -- pbuz1=pbuc1
// [243] phi (byte*) print_str_at::str#15 = (const byte*) debug_print_init::str8 [phi:debug_print_init::@12->print_str_at#1] -- pbuz1=pbuc1
lda #<str8
sta.z print_str_at.str
lda #>str8
@ -5842,7 +5842,7 @@ debug_print_init: {
sta.z print_str_at.at
lda #>SCREEN+$28*$16
sta.z print_str_at.at+1
// [243] phi (byte*) print_str_at::str#15 = (const string) debug_print_init::str9 [phi:debug_print_init::@13->print_str_at#1] -- pbuz1=pbuc1
// [243] phi (byte*) print_str_at::str#15 = (const byte*) debug_print_init::str9 [phi:debug_print_init::@13->print_str_at#1] -- pbuz1=pbuc1
lda #<str9
sta.z print_str_at.str
lda #>str9
@ -5861,7 +5861,7 @@ debug_print_init: {
sta.z print_str_at.at
lda #>SCREEN+$28*$17
sta.z print_str_at.at+1
// [243] phi (byte*) print_str_at::str#15 = (const string) debug_print_init::str10 [phi:debug_print_init::@14->print_str_at#1] -- pbuz1=pbuc1
// [243] phi (byte*) print_str_at::str#15 = (const byte*) debug_print_init::str10 [phi:debug_print_init::@14->print_str_at#1] -- pbuz1=pbuc1
lda #<str10
sta.z print_str_at.str
lda #>str10
@ -5880,7 +5880,7 @@ debug_print_init: {
sta.z print_str_at.at
lda #>SCREEN+$28*$18
sta.z print_str_at.at+1
// [243] phi (byte*) print_str_at::str#15 = (const string) debug_print_init::str11 [phi:debug_print_init::@15->print_str_at#1] -- pbuz1=pbuc1
// [243] phi (byte*) print_str_at::str#15 = (const byte*) debug_print_init::str11 [phi:debug_print_init::@15->print_str_at#1] -- pbuz1=pbuc1
lda #<str11
sta.z print_str_at.str
lda #>str11
@ -8149,7 +8149,7 @@ debug_print_init: {
sta.z print_str_at.at
lda #>SCREEN+$22
sta.z print_str_at.at+1
// [243] phi (byte*) print_str_at::str#15 = (const string) debug_print_init::str [phi:debug_print_init::@4->print_str_at#1] -- pbuz1=pbuc1
// [243] phi (byte*) print_str_at::str#15 = (const byte*) debug_print_init::str [phi:debug_print_init::@4->print_str_at#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str_at.str
lda #>str
@ -8168,7 +8168,7 @@ debug_print_init: {
sta.z print_str_at.at
lda #>SCREEN+$28*1+$22
sta.z print_str_at.at+1
// [243] phi (byte*) print_str_at::str#15 = (const string) debug_print_init::str1 [phi:debug_print_init::@5->print_str_at#1] -- pbuz1=pbuc1
// [243] phi (byte*) print_str_at::str#15 = (const byte*) debug_print_init::str1 [phi:debug_print_init::@5->print_str_at#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str_at.str
lda #>str1
@ -8187,7 +8187,7 @@ debug_print_init: {
sta.z print_str_at.at
lda #>SCREEN+$28*2+$22
sta.z print_str_at.at+1
// [243] phi (byte*) print_str_at::str#15 = (const string) debug_print_init::str2 [phi:debug_print_init::@6->print_str_at#1] -- pbuz1=pbuc1
// [243] phi (byte*) print_str_at::str#15 = (const byte*) debug_print_init::str2 [phi:debug_print_init::@6->print_str_at#1] -- pbuz1=pbuc1
lda #<str2
sta.z print_str_at.str
lda #>str2
@ -8206,7 +8206,7 @@ debug_print_init: {
sta.z print_str_at.at
lda #>SCREEN+$28*$10
sta.z print_str_at.at+1
// [243] phi (byte*) print_str_at::str#15 = (const string) debug_print_init::str3 [phi:debug_print_init::@7->print_str_at#1] -- pbuz1=pbuc1
// [243] phi (byte*) print_str_at::str#15 = (const byte*) debug_print_init::str3 [phi:debug_print_init::@7->print_str_at#1] -- pbuz1=pbuc1
lda #<str3
sta.z print_str_at.str
lda #>str3
@ -8225,7 +8225,7 @@ debug_print_init: {
sta.z print_str_at.at
lda #>SCREEN+$28*$11
sta.z print_str_at.at+1
// [243] phi (byte*) print_str_at::str#15 = (const string) debug_print_init::str4 [phi:debug_print_init::@8->print_str_at#1] -- pbuz1=pbuc1
// [243] phi (byte*) print_str_at::str#15 = (const byte*) debug_print_init::str4 [phi:debug_print_init::@8->print_str_at#1] -- pbuz1=pbuc1
lda #<str4
sta.z print_str_at.str
lda #>str4
@ -8244,7 +8244,7 @@ debug_print_init: {
sta.z print_str_at.at
lda #>SCREEN+$28*$12
sta.z print_str_at.at+1
// [243] phi (byte*) print_str_at::str#15 = (const string) debug_print_init::str5 [phi:debug_print_init::@9->print_str_at#1] -- pbuz1=pbuc1
// [243] phi (byte*) print_str_at::str#15 = (const byte*) debug_print_init::str5 [phi:debug_print_init::@9->print_str_at#1] -- pbuz1=pbuc1
lda #<str5
sta.z print_str_at.str
lda #>str5
@ -8263,7 +8263,7 @@ debug_print_init: {
sta.z print_str_at.at
lda #>SCREEN+$28*$13
sta.z print_str_at.at+1
// [243] phi (byte*) print_str_at::str#15 = (const string) debug_print_init::str6 [phi:debug_print_init::@10->print_str_at#1] -- pbuz1=pbuc1
// [243] phi (byte*) print_str_at::str#15 = (const byte*) debug_print_init::str6 [phi:debug_print_init::@10->print_str_at#1] -- pbuz1=pbuc1
lda #<str6
sta.z print_str_at.str
lda #>str6
@ -8282,7 +8282,7 @@ debug_print_init: {
sta.z print_str_at.at
lda #>SCREEN+$28*$14
sta.z print_str_at.at+1
// [243] phi (byte*) print_str_at::str#15 = (const string) debug_print_init::str7 [phi:debug_print_init::@11->print_str_at#1] -- pbuz1=pbuc1
// [243] phi (byte*) print_str_at::str#15 = (const byte*) debug_print_init::str7 [phi:debug_print_init::@11->print_str_at#1] -- pbuz1=pbuc1
lda #<str7
sta.z print_str_at.str
lda #>str7
@ -8301,7 +8301,7 @@ debug_print_init: {
sta.z print_str_at.at
lda #>SCREEN+$28*$15
sta.z print_str_at.at+1
// [243] phi (byte*) print_str_at::str#15 = (const string) debug_print_init::str8 [phi:debug_print_init::@12->print_str_at#1] -- pbuz1=pbuc1
// [243] phi (byte*) print_str_at::str#15 = (const byte*) debug_print_init::str8 [phi:debug_print_init::@12->print_str_at#1] -- pbuz1=pbuc1
lda #<str8
sta.z print_str_at.str
lda #>str8
@ -8320,7 +8320,7 @@ debug_print_init: {
sta.z print_str_at.at
lda #>SCREEN+$28*$16
sta.z print_str_at.at+1
// [243] phi (byte*) print_str_at::str#15 = (const string) debug_print_init::str9 [phi:debug_print_init::@13->print_str_at#1] -- pbuz1=pbuc1
// [243] phi (byte*) print_str_at::str#15 = (const byte*) debug_print_init::str9 [phi:debug_print_init::@13->print_str_at#1] -- pbuz1=pbuc1
lda #<str9
sta.z print_str_at.str
lda #>str9
@ -8339,7 +8339,7 @@ debug_print_init: {
sta.z print_str_at.at
lda #>SCREEN+$28*$17
sta.z print_str_at.at+1
// [243] phi (byte*) print_str_at::str#15 = (const string) debug_print_init::str10 [phi:debug_print_init::@14->print_str_at#1] -- pbuz1=pbuc1
// [243] phi (byte*) print_str_at::str#15 = (const byte*) debug_print_init::str10 [phi:debug_print_init::@14->print_str_at#1] -- pbuz1=pbuc1
lda #<str10
sta.z print_str_at.str
lda #>str10
@ -8358,7 +8358,7 @@ debug_print_init: {
sta.z print_str_at.at
lda #>SCREEN+$28*$18
sta.z print_str_at.at+1
// [243] phi (byte*) print_str_at::str#15 = (const string) debug_print_init::str11 [phi:debug_print_init::@15->print_str_at#1] -- pbuz1=pbuc1
// [243] phi (byte*) print_str_at::str#15 = (const byte*) debug_print_init::str11 [phi:debug_print_init::@15->print_str_at#1] -- pbuz1=pbuc1
lda #<str11
sta.z print_str_at.str
lda #>str11
@ -9364,18 +9364,18 @@ FINAL SYMBOL TABLE
(byte) debug_print_init::j
(byte) debug_print_init::j#1 reg byte y 151.5
(byte) debug_print_init::j#2 reg byte y 55.54999999999999
(const string) debug_print_init::str[] = (string) "sx"
(const string) debug_print_init::str1[] = (string) "sy"
(const string) debug_print_init::str10[] = (string) "xp"
(const string) debug_print_init::str11[] = (string) "yp"
(const string) debug_print_init::str2[] = (string) "sz"
(const string) debug_print_init::str3[] = (string) "x"
(const string) debug_print_init::str4[] = (string) "y"
(const string) debug_print_init::str5[] = (string) "z"
(const string) debug_print_init::str6[] = (string) "xr"
(const string) debug_print_init::str7[] = (string) "yr"
(const string) debug_print_init::str8[] = (string) "zr"
(const string) debug_print_init::str9[] = (string) "pp"
(const byte*) debug_print_init::str[(byte) 3] = (string) "sx"
(const byte*) debug_print_init::str1[(byte) 3] = (string) "sy"
(const byte*) debug_print_init::str10[(byte) 3] = (string) "xp"
(const byte*) debug_print_init::str11[(byte) 3] = (string) "yp"
(const byte*) debug_print_init::str2[(byte) 3] = (string) "sz"
(const byte*) debug_print_init::str3[(byte) 2] = (string) "x"
(const byte*) debug_print_init::str4[(byte) 2] = (string) "y"
(const byte*) debug_print_init::str5[(byte) 2] = (string) "z"
(const byte*) debug_print_init::str6[(byte) 3] = (string) "xr"
(const byte*) debug_print_init::str7[(byte) 3] = (string) "yr"
(const byte*) debug_print_init::str8[(byte) 3] = (string) "zr"
(const byte*) debug_print_init::str9[(byte) 3] = (string) "pp"
(void()) main()
(label) main::@1
(label) main::@2
@ -10748,7 +10748,7 @@ debug_print_init: {
sta.z print_str_at.at
lda #>SCREEN+$22
sta.z print_str_at.at+1
// [243] phi (byte*) print_str_at::str#15 = (const string) debug_print_init::str [phi:debug_print_init::@4->print_str_at#1] -- pbuz1=pbuc1
// [243] phi (byte*) print_str_at::str#15 = (const byte*) debug_print_init::str [phi:debug_print_init::@4->print_str_at#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str_at.str
lda #>str
@ -10764,7 +10764,7 @@ debug_print_init: {
sta.z print_str_at.at
lda #>SCREEN+$28*1+$22
sta.z print_str_at.at+1
// [243] phi (byte*) print_str_at::str#15 = (const string) debug_print_init::str1 [phi:debug_print_init::@5->print_str_at#1] -- pbuz1=pbuc1
// [243] phi (byte*) print_str_at::str#15 = (const byte*) debug_print_init::str1 [phi:debug_print_init::@5->print_str_at#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str_at.str
lda #>str1
@ -10780,7 +10780,7 @@ debug_print_init: {
sta.z print_str_at.at
lda #>SCREEN+$28*2+$22
sta.z print_str_at.at+1
// [243] phi (byte*) print_str_at::str#15 = (const string) debug_print_init::str2 [phi:debug_print_init::@6->print_str_at#1] -- pbuz1=pbuc1
// [243] phi (byte*) print_str_at::str#15 = (const byte*) debug_print_init::str2 [phi:debug_print_init::@6->print_str_at#1] -- pbuz1=pbuc1
lda #<str2
sta.z print_str_at.str
lda #>str2
@ -10796,7 +10796,7 @@ debug_print_init: {
sta.z print_str_at.at
lda #>SCREEN+$28*$10
sta.z print_str_at.at+1
// [243] phi (byte*) print_str_at::str#15 = (const string) debug_print_init::str3 [phi:debug_print_init::@7->print_str_at#1] -- pbuz1=pbuc1
// [243] phi (byte*) print_str_at::str#15 = (const byte*) debug_print_init::str3 [phi:debug_print_init::@7->print_str_at#1] -- pbuz1=pbuc1
lda #<str3
sta.z print_str_at.str
lda #>str3
@ -10812,7 +10812,7 @@ debug_print_init: {
sta.z print_str_at.at
lda #>SCREEN+$28*$11
sta.z print_str_at.at+1
// [243] phi (byte*) print_str_at::str#15 = (const string) debug_print_init::str4 [phi:debug_print_init::@8->print_str_at#1] -- pbuz1=pbuc1
// [243] phi (byte*) print_str_at::str#15 = (const byte*) debug_print_init::str4 [phi:debug_print_init::@8->print_str_at#1] -- pbuz1=pbuc1
lda #<str4
sta.z print_str_at.str
lda #>str4
@ -10828,7 +10828,7 @@ debug_print_init: {
sta.z print_str_at.at
lda #>SCREEN+$28*$12
sta.z print_str_at.at+1
// [243] phi (byte*) print_str_at::str#15 = (const string) debug_print_init::str5 [phi:debug_print_init::@9->print_str_at#1] -- pbuz1=pbuc1
// [243] phi (byte*) print_str_at::str#15 = (const byte*) debug_print_init::str5 [phi:debug_print_init::@9->print_str_at#1] -- pbuz1=pbuc1
lda #<str5
sta.z print_str_at.str
lda #>str5
@ -10844,7 +10844,7 @@ debug_print_init: {
sta.z print_str_at.at
lda #>SCREEN+$28*$13
sta.z print_str_at.at+1
// [243] phi (byte*) print_str_at::str#15 = (const string) debug_print_init::str6 [phi:debug_print_init::@10->print_str_at#1] -- pbuz1=pbuc1
// [243] phi (byte*) print_str_at::str#15 = (const byte*) debug_print_init::str6 [phi:debug_print_init::@10->print_str_at#1] -- pbuz1=pbuc1
lda #<str6
sta.z print_str_at.str
lda #>str6
@ -10860,7 +10860,7 @@ debug_print_init: {
sta.z print_str_at.at
lda #>SCREEN+$28*$14
sta.z print_str_at.at+1
// [243] phi (byte*) print_str_at::str#15 = (const string) debug_print_init::str7 [phi:debug_print_init::@11->print_str_at#1] -- pbuz1=pbuc1
// [243] phi (byte*) print_str_at::str#15 = (const byte*) debug_print_init::str7 [phi:debug_print_init::@11->print_str_at#1] -- pbuz1=pbuc1
lda #<str7
sta.z print_str_at.str
lda #>str7
@ -10876,7 +10876,7 @@ debug_print_init: {
sta.z print_str_at.at
lda #>SCREEN+$28*$15
sta.z print_str_at.at+1
// [243] phi (byte*) print_str_at::str#15 = (const string) debug_print_init::str8 [phi:debug_print_init::@12->print_str_at#1] -- pbuz1=pbuc1
// [243] phi (byte*) print_str_at::str#15 = (const byte*) debug_print_init::str8 [phi:debug_print_init::@12->print_str_at#1] -- pbuz1=pbuc1
lda #<str8
sta.z print_str_at.str
lda #>str8
@ -10892,7 +10892,7 @@ debug_print_init: {
sta.z print_str_at.at
lda #>SCREEN+$28*$16
sta.z print_str_at.at+1
// [243] phi (byte*) print_str_at::str#15 = (const string) debug_print_init::str9 [phi:debug_print_init::@13->print_str_at#1] -- pbuz1=pbuc1
// [243] phi (byte*) print_str_at::str#15 = (const byte*) debug_print_init::str9 [phi:debug_print_init::@13->print_str_at#1] -- pbuz1=pbuc1
lda #<str9
sta.z print_str_at.str
lda #>str9
@ -10908,7 +10908,7 @@ debug_print_init: {
sta.z print_str_at.at
lda #>SCREEN+$28*$17
sta.z print_str_at.at+1
// [243] phi (byte*) print_str_at::str#15 = (const string) debug_print_init::str10 [phi:debug_print_init::@14->print_str_at#1] -- pbuz1=pbuc1
// [243] phi (byte*) print_str_at::str#15 = (const byte*) debug_print_init::str10 [phi:debug_print_init::@14->print_str_at#1] -- pbuz1=pbuc1
lda #<str10
sta.z print_str_at.str
lda #>str10
@ -10924,7 +10924,7 @@ debug_print_init: {
sta.z print_str_at.at
lda #>SCREEN+$28*$18
sta.z print_str_at.at+1
// [243] phi (byte*) print_str_at::str#15 = (const string) debug_print_init::str11 [phi:debug_print_init::@15->print_str_at#1] -- pbuz1=pbuc1
// [243] phi (byte*) print_str_at::str#15 = (const byte*) debug_print_init::str11 [phi:debug_print_init::@15->print_str_at#1] -- pbuz1=pbuc1
lda #<str11
sta.z print_str_at.str
lda #>str11

@ -274,18 +274,18 @@
(byte) debug_print_init::j
(byte) debug_print_init::j#1 reg byte y 151.5
(byte) debug_print_init::j#2 reg byte y 55.54999999999999
(const string) debug_print_init::str[] = (string) "sx"
(const string) debug_print_init::str1[] = (string) "sy"
(const string) debug_print_init::str10[] = (string) "xp"
(const string) debug_print_init::str11[] = (string) "yp"
(const string) debug_print_init::str2[] = (string) "sz"
(const string) debug_print_init::str3[] = (string) "x"
(const string) debug_print_init::str4[] = (string) "y"
(const string) debug_print_init::str5[] = (string) "z"
(const string) debug_print_init::str6[] = (string) "xr"
(const string) debug_print_init::str7[] = (string) "yr"
(const string) debug_print_init::str8[] = (string) "zr"
(const string) debug_print_init::str9[] = (string) "pp"
(const byte*) debug_print_init::str[(byte) 3] = (string) "sx"
(const byte*) debug_print_init::str1[(byte) 3] = (string) "sy"
(const byte*) debug_print_init::str10[(byte) 3] = (string) "xp"
(const byte*) debug_print_init::str11[(byte) 3] = (string) "yp"
(const byte*) debug_print_init::str2[(byte) 3] = (string) "sz"
(const byte*) debug_print_init::str3[(byte) 2] = (string) "x"
(const byte*) debug_print_init::str4[(byte) 2] = (string) "y"
(const byte*) debug_print_init::str5[(byte) 2] = (string) "z"
(const byte*) debug_print_init::str6[(byte) 3] = (string) "xr"
(const byte*) debug_print_init::str7[(byte) 3] = (string) "yr"
(const byte*) debug_print_init::str8[(byte) 3] = (string) "zr"
(const byte*) debug_print_init::str9[(byte) 3] = (string) "pp"
(void()) main()
(label) main::@1
(label) main::@2

@ -99,7 +99,7 @@ print_ln::@return: scope:[print_ln] from print_ln::@1
(void()) print_str((byte*) print_str::str)
print_str: scope:[print_str] from do_perspective do_perspective::@11 do_perspective::@2 do_perspective::@4 do_perspective::@6 do_perspective::@9
[44] (byte*) print_char_cursor#74 ← phi( do_perspective/(byte*) 1024 do_perspective::@11/(byte*) print_char_cursor#12 do_perspective::@2/(byte*) print_char_cursor#12 do_perspective::@4/(byte*) print_char_cursor#12 do_perspective::@6/(byte*) print_char_cursor#12 do_perspective::@9/(byte*) print_char_cursor#12 )
[44] (byte*) print_str::str#9 ← phi( do_perspective/(const string) do_perspective::str do_perspective::@11/(const string) do_perspective::str5 do_perspective::@2/(const string) do_perspective::str1 do_perspective::@4/(const string) do_perspective::str1 do_perspective::@6/(const string) do_perspective::str3 do_perspective::@9/(const string) do_perspective::str1 )
[44] (byte*) print_str::str#9 ← phi( do_perspective/(const byte*) do_perspective::str do_perspective::@11/(const byte*) do_perspective::str5 do_perspective::@2/(const byte*) do_perspective::str1 do_perspective::@4/(const byte*) do_perspective::str1 do_perspective::@6/(const byte*) do_perspective::str3 do_perspective::@9/(const byte*) do_perspective::str1 )
to:print_str::@1
print_str::@1: scope:[print_str] from print_str print_str::@2
[45] (byte*) print_char_cursor#2 ← phi( print_str/(byte*) print_char_cursor#74 print_str::@2/(byte*) print_char_cursor#1 )

@ -335,7 +335,7 @@ do_perspective: scope:[do_perspective] from main::@2
(signed byte) do_perspective::y#7 ← phi( main::@2/(signed byte) do_perspective::y#0 )
(signed byte) do_perspective::x#3 ← phi( main::@2/(signed byte) do_perspective::x#0 )
(byte*) print_char_cursor#71 ← phi( main::@2/(byte*) print_char_cursor#16 )
(byte*) print_str::str#1 ← (const string) do_perspective::str
(byte*) print_str::str#1 ← (const byte*) do_perspective::str
call print_str
to:do_perspective::@1
do_perspective::@1: scope:[do_perspective] from do_perspective
@ -355,7 +355,7 @@ do_perspective::@2: scope:[do_perspective] from do_perspective::@1
(signed byte) do_perspective::y#3 ← phi( do_perspective::@1/(signed byte) do_perspective::y#5 )
(byte*) print_char_cursor#51 ← phi( do_perspective::@1/(byte*) print_char_cursor#8 )
(byte*) print_char_cursor#20 ← (byte*) print_char_cursor#51
(byte*) print_str::str#2 ← (const string) do_perspective::str1
(byte*) print_str::str#2 ← (const byte*) do_perspective::str1
call print_str
to:do_perspective::@3
do_perspective::@3: scope:[do_perspective] from do_perspective::@2
@ -375,7 +375,7 @@ do_perspective::@4: scope:[do_perspective] from do_perspective::@3
(signed byte) do_perspective::z#3 ← phi( do_perspective::@3/(signed byte) do_perspective::z#5 )
(byte*) print_char_cursor#53 ← phi( do_perspective::@3/(byte*) print_char_cursor#8 )
(byte*) print_char_cursor#22 ← (byte*) print_char_cursor#53
(byte*) print_str::str#3 ← (const string) do_perspective::str2
(byte*) print_str::str#3 ← (const byte*) do_perspective::str2
call print_str
to:do_perspective::@5
do_perspective::@5: scope:[do_perspective] from do_perspective::@4
@ -395,7 +395,7 @@ do_perspective::@6: scope:[do_perspective] from do_perspective::@5
(signed byte) do_perspective::x#4 ← phi( do_perspective::@5/(signed byte) do_perspective::x#5 )
(byte*) print_char_cursor#55 ← phi( do_perspective::@5/(byte*) print_char_cursor#8 )
(byte*) print_char_cursor#24 ← (byte*) print_char_cursor#55
(byte*) print_str::str#4 ← (const string) do_perspective::str3
(byte*) print_str::str#4 ← (const byte*) do_perspective::str3
call print_str
to:do_perspective::@7
do_perspective::@7: scope:[do_perspective] from do_perspective::@6
@ -421,7 +421,7 @@ do_perspective::@9: scope:[do_perspective] from do_perspective::@8
(byte*) print_line_cursor#28 ← phi( do_perspective::@8/(byte*) print_line_cursor#29 )
(byte*) print_char_cursor#57 ← phi( do_perspective::@8/(byte*) print_char_cursor#11 )
(byte*) print_char_cursor#26 ← (byte*) print_char_cursor#57
(byte*) print_str::str#5 ← (const string) do_perspective::str4
(byte*) print_str::str#5 ← (const byte*) do_perspective::str4
call print_str
to:do_perspective::@10
do_perspective::@10: scope:[do_perspective] from do_perspective::@9
@ -436,7 +436,7 @@ do_perspective::@11: scope:[do_perspective] from do_perspective::@10
(byte*) print_line_cursor#26 ← phi( do_perspective::@10/(byte*) print_line_cursor#27 )
(byte*) print_char_cursor#59 ← phi( do_perspective::@10/(byte*) print_char_cursor#11 )
(byte*) print_char_cursor#28 ← (byte*) print_char_cursor#59
(byte*) print_str::str#6 ← (const string) do_perspective::str5
(byte*) print_str::str#6 ← (const byte*) do_perspective::str5
call print_str
to:do_perspective::@12
do_perspective::@12: scope:[do_perspective] from do_perspective::@11
@ -561,12 +561,12 @@ SYMBOL TABLE SSA
(label) do_perspective::@8
(label) do_perspective::@9
(label) do_perspective::@return
(const string) do_perspective::str[] = (string) "("
(const string) do_perspective::str1[] = (string) ","
(const string) do_perspective::str2[] = (string) ","
(const string) do_perspective::str3[] = (string) ") -> ("
(const string) do_perspective::str4[] = (string) ","
(const string) do_perspective::str5[] = (string) ")"
(const byte*) do_perspective::str[(byte) 2] = (string) "("
(const byte*) do_perspective::str1[(byte) 2] = (string) ","
(const byte*) do_perspective::str2[(byte) 2] = (string) ","
(const byte*) do_perspective::str3[(byte) 7] = (string) ") -> ("
(const byte*) do_perspective::str4[(byte) 2] = (string) ","
(const byte*) do_perspective::str5[(byte) 2] = (string) ")"
(signed byte) do_perspective::x
(signed byte) do_perspective::x#0
(signed byte) do_perspective::x#1
@ -1123,6 +1123,7 @@ Constant (const void*) memset::return#2 = memset::str#0
Successful SSA optimization Pass2ConstantIdentification
if() condition always false - eliminating [3] if((const word) memset::num#0<=(byte) 0) goto memset::@1
Successful SSA optimization Pass2ConstantIfs
Consolidated constant strings into (const byte*) do_perspective::str1
Successful SSA optimization Pass2ConstantStringConsolidation
Resolved ranged next value [214] mulf_init::i#1 ← ++ mulf_init::i#2 to ++
Resolved ranged comparison value [216] if(mulf_init::i#1!=rangelast(0,$80)) goto mulf_init::@1 to (number) $81
@ -1163,9 +1164,9 @@ Constant inlined mulf_init::sqr#0 = (signed word) 0
Constant inlined print_line_cursor#0 = (byte*) 1024
Constant inlined print_sbyte::b#1 = (const signed byte) do_perspective::x#0
Constant inlined print_sbyte::b#2 = (const signed byte) do_perspective::y#0
Constant inlined do_perspective::str4 = (const string) do_perspective::str1
Constant inlined do_perspective::str4 = (const byte*) do_perspective::str1
Constant inlined print_sbyte::b#3 = (const signed byte) do_perspective::z#0
Constant inlined do_perspective::str2 = (const string) do_perspective::str1
Constant inlined do_perspective::str2 = (const byte*) do_perspective::str1
Constant inlined mulf_init::i#0 = (byte) 0
Constant inlined memset::$2 = (byte*)(const void*) memset::str#0
Constant inlined mulf_init::add#0 = (signed word) 1
@ -1176,13 +1177,13 @@ Constant inlined main::$2 = (word)(const byte*) mulf_sqr2
Constant inlined perspective::x#0 = (const signed byte) do_perspective::x#0
Constant inlined print_char::ch#1 = (byte) ' '
Constant inlined print_char::ch#0 = (byte) '-'
Constant inlined print_str::str#4 = (const string) do_perspective::str3
Constant inlined print_str::str#3 = (const string) do_perspective::str1
Constant inlined print_str::str#2 = (const string) do_perspective::str1
Constant inlined print_str::str#4 = (const byte*) do_perspective::str3
Constant inlined print_str::str#3 = (const byte*) do_perspective::str1
Constant inlined print_str::str#2 = (const byte*) do_perspective::str1
Constant inlined memset::dst#0 = (byte*)(const void*) memset::str#0
Constant inlined print_str::str#1 = (const string) do_perspective::str
Constant inlined print_str::str#6 = (const string) do_perspective::str5
Constant inlined print_str::str#5 = (const string) do_perspective::str1
Constant inlined print_str::str#1 = (const byte*) do_perspective::str
Constant inlined print_str::str#6 = (const byte*) do_perspective::str5
Constant inlined print_str::str#5 = (const byte*) do_perspective::str1
Successful SSA optimization Pass2ConstantInlining
Consolidated array index constant in assignment *(mulf_sqr2+1 + mulf_init::$3)
Consolidated array index constant in assignment *(mulf_sqr2+$100+1 + mulf_init::$4)
@ -1392,7 +1393,7 @@ print_ln::@return: scope:[print_ln] from print_ln::@1
(void()) print_str((byte*) print_str::str)
print_str: scope:[print_str] from do_perspective do_perspective::@11 do_perspective::@2 do_perspective::@4 do_perspective::@6 do_perspective::@9
[44] (byte*) print_char_cursor#74 ← phi( do_perspective/(byte*) 1024 do_perspective::@11/(byte*) print_char_cursor#12 do_perspective::@2/(byte*) print_char_cursor#12 do_perspective::@4/(byte*) print_char_cursor#12 do_perspective::@6/(byte*) print_char_cursor#12 do_perspective::@9/(byte*) print_char_cursor#12 )
[44] (byte*) print_str::str#9 ← phi( do_perspective/(const string) do_perspective::str do_perspective::@11/(const string) do_perspective::str5 do_perspective::@2/(const string) do_perspective::str1 do_perspective::@4/(const string) do_perspective::str1 do_perspective::@6/(const string) do_perspective::str3 do_perspective::@9/(const string) do_perspective::str1 )
[44] (byte*) print_str::str#9 ← phi( do_perspective/(const byte*) do_perspective::str do_perspective::@11/(const byte*) do_perspective::str5 do_perspective::@2/(const byte*) do_perspective::str1 do_perspective::@4/(const byte*) do_perspective::str1 do_perspective::@6/(const byte*) do_perspective::str3 do_perspective::@9/(const byte*) do_perspective::str1 )
to:print_str::@1
print_str::@1: scope:[print_str] from print_str print_str::@2
[45] (byte*) print_char_cursor#2 ← phi( print_str/(byte*) print_char_cursor#74 print_str::@2/(byte*) print_char_cursor#1 )
@ -1737,7 +1738,7 @@ do_perspective: {
sta.z print_char_cursor
lda #>$400
sta.z print_char_cursor+1
// [44] phi (byte*) print_str::str#9 = (const string) do_perspective::str [phi:do_perspective->print_str#1] -- pbuz1=pbuc1
// [44] phi (byte*) print_str::str#9 = (const byte*) do_perspective::str [phi:do_perspective->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -1764,7 +1765,7 @@ do_perspective: {
// [44] phi from do_perspective::@2 to print_str [phi:do_perspective::@2->print_str]
print_str_from___b2:
// [44] phi (byte*) print_char_cursor#74 = (byte*) print_char_cursor#12 [phi:do_perspective::@2->print_str#0] -- register_copy
// [44] phi (byte*) print_str::str#9 = (const string) do_perspective::str1 [phi:do_perspective::@2->print_str#1] -- pbuz1=pbuc1
// [44] phi (byte*) print_str::str#9 = (const byte*) do_perspective::str1 [phi:do_perspective::@2->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -1791,7 +1792,7 @@ do_perspective: {
// [44] phi from do_perspective::@4 to print_str [phi:do_perspective::@4->print_str]
print_str_from___b4:
// [44] phi (byte*) print_char_cursor#74 = (byte*) print_char_cursor#12 [phi:do_perspective::@4->print_str#0] -- register_copy
// [44] phi (byte*) print_str::str#9 = (const string) do_perspective::str1 [phi:do_perspective::@4->print_str#1] -- pbuz1=pbuc1
// [44] phi (byte*) print_str::str#9 = (const byte*) do_perspective::str1 [phi:do_perspective::@4->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -1818,7 +1819,7 @@ do_perspective: {
// [44] phi from do_perspective::@6 to print_str [phi:do_perspective::@6->print_str]
print_str_from___b6:
// [44] phi (byte*) print_char_cursor#74 = (byte*) print_char_cursor#12 [phi:do_perspective::@6->print_str#0] -- register_copy
// [44] phi (byte*) print_str::str#9 = (const string) do_perspective::str3 [phi:do_perspective::@6->print_str#1] -- pbuz1=pbuc1
// [44] phi (byte*) print_str::str#9 = (const byte*) do_perspective::str3 [phi:do_perspective::@6->print_str#1] -- pbuz1=pbuc1
lda #<str3
sta.z print_str.str
lda #>str3
@ -1852,7 +1853,7 @@ do_perspective: {
// [44] phi from do_perspective::@9 to print_str [phi:do_perspective::@9->print_str]
print_str_from___b9:
// [44] phi (byte*) print_char_cursor#74 = (byte*) print_char_cursor#12 [phi:do_perspective::@9->print_str#0] -- register_copy
// [44] phi (byte*) print_str::str#9 = (const string) do_perspective::str1 [phi:do_perspective::@9->print_str#1] -- pbuz1=pbuc1
// [44] phi (byte*) print_str::str#9 = (const byte*) do_perspective::str1 [phi:do_perspective::@9->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -1879,7 +1880,7 @@ do_perspective: {
// [44] phi from do_perspective::@11 to print_str [phi:do_perspective::@11->print_str]
print_str_from___b11:
// [44] phi (byte*) print_char_cursor#74 = (byte*) print_char_cursor#12 [phi:do_perspective::@11->print_str#0] -- register_copy
// [44] phi (byte*) print_str::str#9 = (const string) do_perspective::str5 [phi:do_perspective::@11->print_str#1] -- pbuz1=pbuc1
// [44] phi (byte*) print_str::str#9 = (const byte*) do_perspective::str5 [phi:do_perspective::@11->print_str#1] -- pbuz1=pbuc1
lda #<str5
sta.z print_str.str
lda #>str5
@ -2575,7 +2576,7 @@ do_perspective: {
sta.z print_char_cursor
lda #>$400
sta.z print_char_cursor+1
// [44] phi (byte*) print_str::str#9 = (const string) do_perspective::str [phi:do_perspective->print_str#1] -- pbuz1=pbuc1
// [44] phi (byte*) print_str::str#9 = (const byte*) do_perspective::str [phi:do_perspective->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -2601,7 +2602,7 @@ do_perspective: {
// [44] phi from do_perspective::@2 to print_str [phi:do_perspective::@2->print_str]
print_str_from___b2:
// [44] phi (byte*) print_char_cursor#74 = (byte*) print_char_cursor#12 [phi:do_perspective::@2->print_str#0] -- register_copy
// [44] phi (byte*) print_str::str#9 = (const string) do_perspective::str1 [phi:do_perspective::@2->print_str#1] -- pbuz1=pbuc1
// [44] phi (byte*) print_str::str#9 = (const byte*) do_perspective::str1 [phi:do_perspective::@2->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -2627,7 +2628,7 @@ do_perspective: {
// [44] phi from do_perspective::@4 to print_str [phi:do_perspective::@4->print_str]
print_str_from___b4:
// [44] phi (byte*) print_char_cursor#74 = (byte*) print_char_cursor#12 [phi:do_perspective::@4->print_str#0] -- register_copy
// [44] phi (byte*) print_str::str#9 = (const string) do_perspective::str1 [phi:do_perspective::@4->print_str#1] -- pbuz1=pbuc1
// [44] phi (byte*) print_str::str#9 = (const byte*) do_perspective::str1 [phi:do_perspective::@4->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -2653,7 +2654,7 @@ do_perspective: {
// [44] phi from do_perspective::@6 to print_str [phi:do_perspective::@6->print_str]
print_str_from___b6:
// [44] phi (byte*) print_char_cursor#74 = (byte*) print_char_cursor#12 [phi:do_perspective::@6->print_str#0] -- register_copy
// [44] phi (byte*) print_str::str#9 = (const string) do_perspective::str3 [phi:do_perspective::@6->print_str#1] -- pbuz1=pbuc1
// [44] phi (byte*) print_str::str#9 = (const byte*) do_perspective::str3 [phi:do_perspective::@6->print_str#1] -- pbuz1=pbuc1
lda #<str3
sta.z print_str.str
lda #>str3
@ -2686,7 +2687,7 @@ do_perspective: {
// [44] phi from do_perspective::@9 to print_str [phi:do_perspective::@9->print_str]
print_str_from___b9:
// [44] phi (byte*) print_char_cursor#74 = (byte*) print_char_cursor#12 [phi:do_perspective::@9->print_str#0] -- register_copy
// [44] phi (byte*) print_str::str#9 = (const string) do_perspective::str1 [phi:do_perspective::@9->print_str#1] -- pbuz1=pbuc1
// [44] phi (byte*) print_str::str#9 = (const byte*) do_perspective::str1 [phi:do_perspective::@9->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -2712,7 +2713,7 @@ do_perspective: {
// [44] phi from do_perspective::@11 to print_str [phi:do_perspective::@11->print_str]
print_str_from___b11:
// [44] phi (byte*) print_char_cursor#74 = (byte*) print_char_cursor#12 [phi:do_perspective::@11->print_str#0] -- register_copy
// [44] phi (byte*) print_str::str#9 = (const string) do_perspective::str5 [phi:do_perspective::@11->print_str#1] -- pbuz1=pbuc1
// [44] phi (byte*) print_str::str#9 = (const byte*) do_perspective::str5 [phi:do_perspective::@11->print_str#1] -- pbuz1=pbuc1
lda #<str5
sta.z print_str.str
lda #>str5
@ -3347,10 +3348,10 @@ FINAL SYMBOL TABLE
(label) do_perspective::@8
(label) do_perspective::@9
(label) do_perspective::@return
(const string) do_perspective::str[] = (string) "("
(const string) do_perspective::str1[] = (string) ","
(const string) do_perspective::str3[] = (string) ") -> ("
(const string) do_perspective::str5[] = (string) ")"
(const byte*) do_perspective::str[(byte) 2] = (string) "("
(const byte*) do_perspective::str1[(byte) 2] = (string) ","
(const byte*) do_perspective::str3[(byte) 7] = (string) ") -> ("
(const byte*) do_perspective::str5[(byte) 2] = (string) ")"
(signed byte) do_perspective::x
(const signed byte) do_perspective::x#0 x = (signed byte) $39
(signed byte) do_perspective::y
@ -3550,7 +3551,7 @@ do_perspective: {
sta.z print_char_cursor
lda #>$400
sta.z print_char_cursor+1
// [44] phi (byte*) print_str::str#9 = (const string) do_perspective::str [phi:do_perspective->print_str#1] -- pbuz1=pbuc1
// [44] phi (byte*) print_str::str#9 = (const byte*) do_perspective::str [phi:do_perspective->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -3570,7 +3571,7 @@ do_perspective: {
// [17] call print_str
// [44] phi from do_perspective::@2 to print_str [phi:do_perspective::@2->print_str]
// [44] phi (byte*) print_char_cursor#74 = (byte*) print_char_cursor#12 [phi:do_perspective::@2->print_str#0] -- register_copy
// [44] phi (byte*) print_str::str#9 = (const string) do_perspective::str1 [phi:do_perspective::@2->print_str#1] -- pbuz1=pbuc1
// [44] phi (byte*) print_str::str#9 = (const byte*) do_perspective::str1 [phi:do_perspective::@2->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -3590,7 +3591,7 @@ do_perspective: {
// [21] call print_str
// [44] phi from do_perspective::@4 to print_str [phi:do_perspective::@4->print_str]
// [44] phi (byte*) print_char_cursor#74 = (byte*) print_char_cursor#12 [phi:do_perspective::@4->print_str#0] -- register_copy
// [44] phi (byte*) print_str::str#9 = (const string) do_perspective::str1 [phi:do_perspective::@4->print_str#1] -- pbuz1=pbuc1
// [44] phi (byte*) print_str::str#9 = (const byte*) do_perspective::str1 [phi:do_perspective::@4->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -3610,7 +3611,7 @@ do_perspective: {
// [25] call print_str
// [44] phi from do_perspective::@6 to print_str [phi:do_perspective::@6->print_str]
// [44] phi (byte*) print_char_cursor#74 = (byte*) print_char_cursor#12 [phi:do_perspective::@6->print_str#0] -- register_copy
// [44] phi (byte*) print_str::str#9 = (const string) do_perspective::str3 [phi:do_perspective::@6->print_str#1] -- pbuz1=pbuc1
// [44] phi (byte*) print_str::str#9 = (const byte*) do_perspective::str3 [phi:do_perspective::@6->print_str#1] -- pbuz1=pbuc1
lda #<str3
sta.z print_str.str
lda #>str3
@ -3636,7 +3637,7 @@ do_perspective: {
// [31] call print_str
// [44] phi from do_perspective::@9 to print_str [phi:do_perspective::@9->print_str]
// [44] phi (byte*) print_char_cursor#74 = (byte*) print_char_cursor#12 [phi:do_perspective::@9->print_str#0] -- register_copy
// [44] phi (byte*) print_str::str#9 = (const string) do_perspective::str1 [phi:do_perspective::@9->print_str#1] -- pbuz1=pbuc1
// [44] phi (byte*) print_str::str#9 = (const byte*) do_perspective::str1 [phi:do_perspective::@9->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -3657,7 +3658,7 @@ do_perspective: {
// [35] call print_str
// [44] phi from do_perspective::@11 to print_str [phi:do_perspective::@11->print_str]
// [44] phi (byte*) print_char_cursor#74 = (byte*) print_char_cursor#12 [phi:do_perspective::@11->print_str#0] -- register_copy
// [44] phi (byte*) print_str::str#9 = (const string) do_perspective::str5 [phi:do_perspective::@11->print_str#1] -- pbuz1=pbuc1
// [44] phi (byte*) print_str::str#9 = (const byte*) do_perspective::str5 [phi:do_perspective::@11->print_str#1] -- pbuz1=pbuc1
lda #<str5
sta.z print_str.str
lda #>str5

@ -31,10 +31,10 @@
(label) do_perspective::@8
(label) do_perspective::@9
(label) do_perspective::@return
(const string) do_perspective::str[] = (string) "("
(const string) do_perspective::str1[] = (string) ","
(const string) do_perspective::str3[] = (string) ") -> ("
(const string) do_perspective::str5[] = (string) ")"
(const byte*) do_perspective::str[(byte) 2] = (string) "("
(const byte*) do_perspective::str1[(byte) 2] = (string) ","
(const byte*) do_perspective::str3[(byte) 7] = (string) ") -> ("
(const byte*) do_perspective::str5[(byte) 2] = (string) ")"
(signed byte) do_perspective::x
(const signed byte) do_perspective::x#0 x = (signed byte) $39
(signed byte) do_perspective::y

@ -265,7 +265,7 @@ keyboard_get_keycode::@return: scope:[keyboard_get_keycode] from keyboard_get_k
(void()) print_str_at((byte*) print_str_at::str , (byte*) print_str_at::at)
print_str_at: scope:[print_str_at] from main::@17 main::@18 main::@19 main::@3
[127] (byte*) print_str_at::at#7 ← phi( main::@17/(const byte*) SCREEN+(byte) 1+(byte) $a main::@3/(const byte*) SCREEN+(byte) 1 main::@18/(const byte*) SCREEN+(byte) 1+(byte) $14 main::@19/(const byte*) SCREEN+(byte) 1+(byte) $1e )
[127] (byte*) print_str_at::str#7 ← phi( main::@17/(const string) main::str1 main::@3/(const string) main::str main::@18/(const string) main::str2 main::@19/(const string) main::str3 )
[127] (byte*) print_str_at::str#7 ← phi( main::@17/(const byte*) main::str1 main::@3/(const byte*) main::str main::@18/(const byte*) main::str2 main::@19/(const byte*) main::str3 )
to:print_str_at::@1
print_str_at::@1: scope:[print_str_at] from print_str_at print_str_at::@2
[128] (byte*) print_str_at::at#5 ← phi( print_str_at/(byte*) print_str_at::at#7 print_str_at::@2/(byte*) print_str_at::at#4 )

@ -155,28 +155,28 @@ main::@2: scope:[main] from main::@1
to:main::@1
main::@3: scope:[main] from main::@1
(byte*~) main::$0 ← (const byte*) SCREEN + (number) 1
(byte*) print_str_at::str#0 ← (const string) main::str
(byte*) print_str_at::str#0 ← (const byte*) main::str
(byte*) print_str_at::at#0 ← (byte*~) main::$0
call print_str_at
to:main::@29
main::@29: scope:[main] from main::@3
(byte*~) main::$2 ← (const byte*) SCREEN + (number) 1
(byte*~) main::$3 ← (byte*~) main::$2 + (number) $a
(byte*) print_str_at::str#1 ← (const string) main::str1
(byte*) print_str_at::str#1 ← (const byte*) main::str1
(byte*) print_str_at::at#1 ← (byte*~) main::$3
call print_str_at
to:main::@30
main::@30: scope:[main] from main::@29
(byte*~) main::$5 ← (const byte*) SCREEN + (number) 1
(byte*~) main::$6 ← (byte*~) main::$5 + (number) $14
(byte*) print_str_at::str#2 ← (const string) main::str2
(byte*) print_str_at::str#2 ← (const byte*) main::str2
(byte*) print_str_at::at#2 ← (byte*~) main::$6
call print_str_at
to:main::@31
main::@31: scope:[main] from main::@30
(byte*~) main::$8 ← (const byte*) SCREEN + (number) 1
(byte*~) main::$9 ← (byte*~) main::$8 + (number) $1e
(byte*) print_str_at::str#3 ← (const string) main::str3
(byte*) print_str_at::str#3 ← (const byte*) main::str3
(byte*) print_str_at::at#3 ← (byte*~) main::$9
call print_str_at
to:main::@32
@ -766,10 +766,10 @@ SYMBOL TABLE SSA
(byte) main::shift#7
(byte) main::shift#8
(byte) main::shift#9
(const string) main::str[] = (string) "f1"
(const string) main::str1[] = (string) "f3"
(const string) main::str2[] = (string) "f5"
(const string) main::str3[] = (string) "f7"
(const byte*) main::str[(byte) 3] = (string) "f1"
(const byte*) main::str1[(byte) 3] = (string) "f3"
(const byte*) main::str2[(byte) 3] = (string) "f5"
(const byte*) main::str3[(byte) 3] = (string) "f7"
(word()) mul8u((byte) mul8u::a , (byte) mul8u::b)
(bool~) mul8u::$0
(number~) mul8u::$1
@ -1316,17 +1316,17 @@ Inlining constant with var siblings (const byte) plot_chargen::y#0
Inlining constant with var siblings (const byte) plot_chargen::x#0
Inlining constant with var siblings (const byte) plot_chargen::c#0
Inlining constant with var siblings (const byte) plot_chargen::c#1
Constant inlined print_str_at::str#1 = (const string) main::str1
Constant inlined print_str_at::str#1 = (const byte*) main::str1
Constant inlined main::shift#1 = (byte) 1
Constant inlined print_str_at::str#2 = (const string) main::str2
Constant inlined print_str_at::str#2 = (const byte*) main::str2
Constant inlined print_str_at::at#3 = (const byte*) SCREEN+(byte) 1+(byte) $1e
Constant inlined print_str_at::str#3 = (const string) main::str3
Constant inlined print_str_at::str#3 = (const byte*) main::str3
Constant inlined print_str_at::at#2 = (const byte*) SCREEN+(byte) 1+(byte) $14
Constant inlined plot_chargen::c#0 = (byte) '.'
Constant inlined print_str_at::at#1 = (const byte*) SCREEN+(byte) 1+(byte) $a
Constant inlined plot_chargen::c#1 = (byte) '*'
Constant inlined print_str_at::at#0 = (const byte*) SCREEN+(byte) 1
Constant inlined print_str_at::str#0 = (const string) main::str
Constant inlined print_str_at::str#0 = (const byte*) main::str
Constant inlined main::$11 = (const byte*) SCREEN+(word) $3e8
Constant inlined main::shift#2 = (byte) 0
Constant inlined main::i#0 = (byte) 0
@ -1760,7 +1760,7 @@ keyboard_get_keycode::@return: scope:[keyboard_get_keycode] from keyboard_get_k
(void()) print_str_at((byte*) print_str_at::str , (byte*) print_str_at::at)
print_str_at: scope:[print_str_at] from main::@17 main::@18 main::@19 main::@3
[127] (byte*) print_str_at::at#7 ← phi( main::@17/(const byte*) SCREEN+(byte) 1+(byte) $a main::@3/(const byte*) SCREEN+(byte) 1 main::@18/(const byte*) SCREEN+(byte) 1+(byte) $14 main::@19/(const byte*) SCREEN+(byte) 1+(byte) $1e )
[127] (byte*) print_str_at::str#7 ← phi( main::@17/(const string) main::str1 main::@3/(const string) main::str main::@18/(const string) main::str2 main::@19/(const string) main::str3 )
[127] (byte*) print_str_at::str#7 ← phi( main::@17/(const byte*) main::str1 main::@3/(const byte*) main::str main::@18/(const byte*) main::str2 main::@19/(const byte*) main::str3 )
to:print_str_at::@1
print_str_at::@1: scope:[print_str_at] from print_str_at print_str_at::@2
[128] (byte*) print_str_at::at#5 ← phi( print_str_at/(byte*) print_str_at::at#7 print_str_at::@2/(byte*) print_str_at::at#4 )
@ -2187,7 +2187,7 @@ main: {
sta.z print_str_at.at
lda #>SCREEN+1
sta.z print_str_at.at+1
// [127] phi (byte*) print_str_at::str#7 = (const string) main::str [phi:main::@3->print_str_at#1] -- pbuz1=pbuc1
// [127] phi (byte*) print_str_at::str#7 = (const byte*) main::str [phi:main::@3->print_str_at#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str_at.str
lda #>str
@ -2206,7 +2206,7 @@ main: {
sta.z print_str_at.at
lda #>SCREEN+1+$a
sta.z print_str_at.at+1
// [127] phi (byte*) print_str_at::str#7 = (const string) main::str1 [phi:main::@17->print_str_at#1] -- pbuz1=pbuc1
// [127] phi (byte*) print_str_at::str#7 = (const byte*) main::str1 [phi:main::@17->print_str_at#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str_at.str
lda #>str1
@ -2225,7 +2225,7 @@ main: {
sta.z print_str_at.at
lda #>SCREEN+1+$14
sta.z print_str_at.at+1
// [127] phi (byte*) print_str_at::str#7 = (const string) main::str2 [phi:main::@18->print_str_at#1] -- pbuz1=pbuc1
// [127] phi (byte*) print_str_at::str#7 = (const byte*) main::str2 [phi:main::@18->print_str_at#1] -- pbuz1=pbuc1
lda #<str2
sta.z print_str_at.str
lda #>str2
@ -2244,7 +2244,7 @@ main: {
sta.z print_str_at.at
lda #>SCREEN+1+$1e
sta.z print_str_at.at+1
// [127] phi (byte*) print_str_at::str#7 = (const string) main::str3 [phi:main::@19->print_str_at#1] -- pbuz1=pbuc1
// [127] phi (byte*) print_str_at::str#7 = (const byte*) main::str3 [phi:main::@19->print_str_at#1] -- pbuz1=pbuc1
lda #<str3
sta.z print_str_at.str
lda #>str3
@ -3352,7 +3352,7 @@ main: {
sta.z print_str_at.at
lda #>SCREEN+1
sta.z print_str_at.at+1
// [127] phi (byte*) print_str_at::str#7 = (const string) main::str [phi:main::@3->print_str_at#1] -- pbuz1=pbuc1
// [127] phi (byte*) print_str_at::str#7 = (const byte*) main::str [phi:main::@3->print_str_at#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str_at.str
lda #>str
@ -3371,7 +3371,7 @@ main: {
sta.z print_str_at.at
lda #>SCREEN+1+$a
sta.z print_str_at.at+1
// [127] phi (byte*) print_str_at::str#7 = (const string) main::str1 [phi:main::@17->print_str_at#1] -- pbuz1=pbuc1
// [127] phi (byte*) print_str_at::str#7 = (const byte*) main::str1 [phi:main::@17->print_str_at#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str_at.str
lda #>str1
@ -3390,7 +3390,7 @@ main: {
sta.z print_str_at.at
lda #>SCREEN+1+$14
sta.z print_str_at.at+1
// [127] phi (byte*) print_str_at::str#7 = (const string) main::str2 [phi:main::@18->print_str_at#1] -- pbuz1=pbuc1
// [127] phi (byte*) print_str_at::str#7 = (const byte*) main::str2 [phi:main::@18->print_str_at#1] -- pbuz1=pbuc1
lda #<str2
sta.z print_str_at.str
lda #>str2
@ -3409,7 +3409,7 @@ main: {
sta.z print_str_at.at
lda #>SCREEN+1+$1e
sta.z print_str_at.at+1
// [127] phi (byte*) print_str_at::str#7 = (const string) main::str3 [phi:main::@19->print_str_at#1] -- pbuz1=pbuc1
// [127] phi (byte*) print_str_at::str#7 = (const byte*) main::str3 [phi:main::@19->print_str_at#1] -- pbuz1=pbuc1
lda #<str3
sta.z print_str_at.str
lda #>str3
@ -4432,10 +4432,10 @@ FINAL SYMBOL TABLE
(byte*) main::sc#2 sc zp[2]:6 14.666666666666666
(byte) main::shift
(byte) main::shift#9 shift zp[1]:4 5.315789473684211
(const string) main::str[] = (string) "f1"
(const string) main::str1[] = (string) "f3"
(const string) main::str2[] = (string) "f5"
(const string) main::str3[] = (string) "f7"
(const byte*) main::str[(byte) 3] = (string) "f1"
(const byte*) main::str1[(byte) 3] = (string) "f3"
(const byte*) main::str2[(byte) 3] = (string) "f5"
(const byte*) main::str3[(byte) 3] = (string) "f7"
(word()) mul8u((byte) mul8u::a , (byte) mul8u::b)
(byte~) mul8u::$1 reg byte a 2002.0
(label) mul8u::@1
@ -4684,7 +4684,7 @@ main: {
sta.z print_str_at.at
lda #>SCREEN+1
sta.z print_str_at.at+1
// [127] phi (byte*) print_str_at::str#7 = (const string) main::str [phi:main::@3->print_str_at#1] -- pbuz1=pbuc1
// [127] phi (byte*) print_str_at::str#7 = (const byte*) main::str [phi:main::@3->print_str_at#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str_at.str
lda #>str
@ -4700,7 +4700,7 @@ main: {
sta.z print_str_at.at
lda #>SCREEN+1+$a
sta.z print_str_at.at+1
// [127] phi (byte*) print_str_at::str#7 = (const string) main::str1 [phi:main::@17->print_str_at#1] -- pbuz1=pbuc1
// [127] phi (byte*) print_str_at::str#7 = (const byte*) main::str1 [phi:main::@17->print_str_at#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str_at.str
lda #>str1
@ -4716,7 +4716,7 @@ main: {
sta.z print_str_at.at
lda #>SCREEN+1+$14
sta.z print_str_at.at+1
// [127] phi (byte*) print_str_at::str#7 = (const string) main::str2 [phi:main::@18->print_str_at#1] -- pbuz1=pbuc1
// [127] phi (byte*) print_str_at::str#7 = (const byte*) main::str2 [phi:main::@18->print_str_at#1] -- pbuz1=pbuc1
lda #<str2
sta.z print_str_at.str
lda #>str2
@ -4732,7 +4732,7 @@ main: {
sta.z print_str_at.at
lda #>SCREEN+1+$1e
sta.z print_str_at.at+1
// [127] phi (byte*) print_str_at::str#7 = (const string) main::str3 [phi:main::@19->print_str_at#1] -- pbuz1=pbuc1
// [127] phi (byte*) print_str_at::str#7 = (const byte*) main::str3 [phi:main::@19->print_str_at#1] -- pbuz1=pbuc1
lda #<str3
sta.z print_str_at.str
lda #>str3

@ -157,10 +157,10 @@
(byte*) main::sc#2 sc zp[2]:6 14.666666666666666
(byte) main::shift
(byte) main::shift#9 shift zp[1]:4 5.315789473684211
(const string) main::str[] = (string) "f1"
(const string) main::str1[] = (string) "f3"
(const string) main::str2[] = (string) "f5"
(const string) main::str3[] = (string) "f7"
(const byte*) main::str[(byte) 3] = (string) "f1"
(const byte*) main::str1[(byte) 3] = (string) "f3"
(const byte*) main::str2[(byte) 3] = (string) "f5"
(const byte*) main::str3[(byte) 3] = (string) "f7"
(word()) mul8u((byte) mul8u::a , (byte) mul8u::b)
(byte~) mul8u::$1 reg byte a 2002.0
(label) mul8u::@1

@ -40,7 +40,7 @@ print_str: scope:[print_str] from main
to:print_str::@1
print_str::@1: scope:[print_str] from print_str print_str::@2
[15] (byte*) print_char_cursor#10 ← phi( print_str/(byte*) 1024 print_str::@2/(byte*) print_char_cursor#1 )
[15] (byte*) print_str::str#2 ← phi( print_str/(const string) main::str print_str::@2/(byte*) print_str::str#0 )
[15] (byte*) print_str::str#2 ← phi( print_str/(const byte*) main::str print_str::@2/(byte*) print_str::str#0 )
[16] if((byte) 0!=*((byte*) print_str::str#2)) goto print_str::@2
to:print_str::@return
print_str::@return: scope:[print_str] from print_str::@1

@ -114,7 +114,7 @@ print_ln::@return: scope:[print_ln] from print_ln::@2
main: scope:[main] from @38
(byte*) print_line_cursor#15 ← phi( @38/(byte*) print_line_cursor#14 )
(byte*) print_char_cursor#19 ← phi( @38/(byte*) print_char_cursor#20 )
(byte*) print_str::str#1 ← (const string) main::str
(byte*) print_str::str#1 ← (const byte*) main::str
call print_str
to:main::@1
main::@1: scope:[main] from main
@ -163,7 +163,7 @@ SYMBOL TABLE SSA
(label) main::@1
(label) main::@2
(label) main::@return
(const string) main::str[] = (string) "hello world!"
(const byte*) main::str[(byte) $d] = (string) "hello world!"
(byte*) print_char_cursor
(byte*) print_char_cursor#0
(byte*) print_char_cursor#1
@ -267,7 +267,7 @@ Successful SSA optimization Pass2ConstantIdentification
Inlining constant with var siblings (const byte*) print_str::str#1
Inlining constant with var siblings (const byte*) print_char_cursor#0
Constant inlined print_char_cursor#0 = (byte*) 1024
Constant inlined print_str::str#1 = (const string) main::str
Constant inlined print_str::str#1 = (const byte*) main::str
Successful SSA optimization Pass2ConstantInlining
Added new block during phi lifting print_ln::@3(between print_ln::@1 and print_ln::@1)
Adding NOP phi() at start of @begin
@ -347,7 +347,7 @@ print_str: scope:[print_str] from main
to:print_str::@1
print_str::@1: scope:[print_str] from print_str print_str::@2
[15] (byte*) print_char_cursor#10 ← phi( print_str/(byte*) 1024 print_str::@2/(byte*) print_char_cursor#1 )
[15] (byte*) print_str::str#2 ← phi( print_str/(const string) main::str print_str::@2/(byte*) print_str::str#0 )
[15] (byte*) print_str::str#2 ← phi( print_str/(const byte*) main::str print_str::@2/(byte*) print_str::str#0 )
[16] if((byte) 0!=*((byte*) print_str::str#2)) goto print_str::@2
to:print_str::@return
print_str::@return: scope:[print_str] from print_str::@1
@ -488,7 +488,7 @@ print_str: {
sta.z print_char_cursor
lda #>$400
sta.z print_char_cursor+1
// [15] phi (byte*) print_str::str#2 = (const string) main::str [phi:print_str->print_str::@1#1] -- pbuz1=pbuc1
// [15] phi (byte*) print_str::str#2 = (const byte*) main::str [phi:print_str->print_str::@1#1] -- pbuz1=pbuc1
lda #<main.str
sta.z str
lda #>main.str
@ -656,7 +656,7 @@ print_str: {
sta.z print_char_cursor
lda #>$400
sta.z print_char_cursor+1
// [15] phi (byte*) print_str::str#2 = (const string) main::str [phi:print_str->print_str::@1#1] -- pbuz1=pbuc1
// [15] phi (byte*) print_str::str#2 = (const byte*) main::str [phi:print_str->print_str::@1#1] -- pbuz1=pbuc1
lda #<main.str
sta.z str
lda #>main.str
@ -751,7 +751,7 @@ FINAL SYMBOL TABLE
(void()) main()
(label) main::@1
(label) main::@return
(const string) main::str[] = (string) "hello world!"
(const byte*) main::str[(byte) $d] = (string) "hello world!"
(byte*) print_char_cursor
(byte*) print_char_cursor#1 print_char_cursor zp[2]:4 11.0
(byte*) print_char_cursor#10 print_char_cursor zp[2]:4 4.4
@ -859,7 +859,7 @@ print_str: {
sta.z print_char_cursor
lda #>$400
sta.z print_char_cursor+1
// [15] phi (byte*) print_str::str#2 = (const string) main::str [phi:print_str->print_str::@1#1] -- pbuz1=pbuc1
// [15] phi (byte*) print_str::str#2 = (const byte*) main::str [phi:print_str->print_str::@1#1] -- pbuz1=pbuc1
lda #<main.str
sta.z str
lda #>main.str

@ -8,7 +8,7 @@
(void()) main()
(label) main::@1
(label) main::@return
(const string) main::str[] = (string) "hello world!"
(const byte*) main::str[(byte) $d] = (string) "hello world!"
(byte*) print_char_cursor
(byte*) print_char_cursor#1 print_char_cursor zp[2]:4 11.0
(byte*) print_char_cursor#10 print_char_cursor zp[2]:4 4.4

@ -99,7 +99,7 @@ setnam::@1: scope:[setnam] from setnam
[42] (word~) setnam::$0 ← (word) strlen::return#2
[43] (byte~) setnam::$1 ← (byte)(word~) setnam::$0
[44] *((const byte*) setnam::filename_len) ← (byte~) setnam::$1
[45] *((const byte**) setnam::filename_ptr) ← (const string) main::filename
[45] *((const byte**) setnam::filename_ptr) ← (const byte*) main::filename
asm { ldafilename_len ldxfilename_ptr ldyfilename_ptr+1 jsr$ffbd }
to:setnam::@return
setnam::@return: scope:[setnam] from setnam::@1
@ -112,7 +112,7 @@ strlen: scope:[strlen] from setnam
to:strlen::@1
strlen::@1: scope:[strlen] from strlen strlen::@2
[49] (word) strlen::len#2 ← phi( strlen/(word) 0 strlen::@2/(word) strlen::len#1 )
[49] (byte*) strlen::str#2 ← phi( strlen/(const string) main::filename strlen::@2/(byte*) strlen::str#0 )
[49] (byte*) strlen::str#2 ← phi( strlen/(const byte*) main::filename strlen::@2/(byte*) strlen::str#0 )
[50] if((byte) 0!=*((byte*) strlen::str#2)) goto strlen::@2
to:strlen::@return
strlen::@return: scope:[strlen] from strlen::@1

@ -62,7 +62,7 @@ strlen::@return: scope:[strlen] from strlen::@3
(void()) main()
main: scope:[main] from @15
(byte) loadFileToMemory::device#0 ← (number) 8
(byte*) loadFileToMemory::filename#0 ← (const string) main::filename
(byte*) loadFileToMemory::filename#0 ← (const byte*) main::filename
(byte*) loadFileToMemory::address#0 ← (const byte*) LOAD_SPRITE
call loadFileToMemory
(byte) loadFileToMemory::return#0 ← (byte) loadFileToMemory::return#2
@ -283,7 +283,7 @@ SYMBOL TABLE SSA
(label) main::@4
(label) main::@5
(label) main::@return
(const string) main::filename[] = (string) "SPRITE"
(const byte*) main::filename[(byte) 7] = (string) "SPRITE"
(byte) main::status
(byte) main::status#0
(byte) main::status#1
@ -470,15 +470,15 @@ Inlining constant with var siblings (const word) strlen::len#0
Inlining constant with var siblings (const byte*) strlen::str#1
Constant inlined main::toSpritePtr1_sprite#0 = (const byte*) LOAD_SPRITE
Constant inlined load::address#0 = (const byte*) LOAD_SPRITE
Constant inlined setnam::filename#0 = (const string) main::filename
Constant inlined setnam::filename#0 = (const byte*) main::filename
Constant inlined main::toSpritePtr1_$0 = (word)(const byte*) LOAD_SPRITE
Constant inlined strlen::str#1 = (const string) main::filename
Constant inlined strlen::str#1 = (const byte*) main::filename
Constant inlined load::$0 = (byte) 0
Constant inlined loadFileToMemory::address#0 = (const byte*) LOAD_SPRITE
Constant inlined setlfs::device#0 = (const byte) loadFileToMemory::device#0
Constant inlined main::toSpritePtr1_$1 = (word)(const byte*) LOAD_SPRITE/(byte) $40
Constant inlined strlen::len#0 = (word) 0
Constant inlined loadFileToMemory::filename#0 = (const string) main::filename
Constant inlined loadFileToMemory::filename#0 = (const byte*) main::filename
Successful SSA optimization Pass2ConstantInlining
Adding NOP phi() at start of @begin
Adding NOP phi() at start of @15
@ -625,7 +625,7 @@ setnam::@1: scope:[setnam] from setnam
[42] (word~) setnam::$0 ← (word) strlen::return#2
[43] (byte~) setnam::$1 ← (byte)(word~) setnam::$0
[44] *((const byte*) setnam::filename_len) ← (byte~) setnam::$1
[45] *((const byte**) setnam::filename_ptr) ← (const string) main::filename
[45] *((const byte**) setnam::filename_ptr) ← (const byte*) main::filename
asm { ldafilename_len ldxfilename_ptr ldyfilename_ptr+1 jsr$ffbd }
to:setnam::@return
setnam::@return: scope:[setnam] from setnam::@1
@ -638,7 +638,7 @@ strlen: scope:[strlen] from setnam
to:strlen::@1
strlen::@1: scope:[strlen] from strlen strlen::@2
[49] (word) strlen::len#2 ← phi( strlen/(word) 0 strlen::@2/(word) strlen::len#1 )
[49] (byte*) strlen::str#2 ← phi( strlen/(const string) main::filename strlen::@2/(byte*) strlen::str#0 )
[49] (byte*) strlen::str#2 ← phi( strlen/(const byte*) main::filename strlen::@2/(byte*) strlen::str#0 )
[50] if((byte) 0!=*((byte*) strlen::str#2)) goto strlen::@2
to:strlen::@return
strlen::@return: scope:[strlen] from strlen::@1
@ -988,7 +988,7 @@ setnam: {
// [44] *((const byte*) setnam::filename_len) ← (byte~) setnam::$1 -- _deref_pbuc1=vbuz1
lda.z __1
sta filename_len
// [45] *((const byte**) setnam::filename_ptr) ← (const string) main::filename -- _deref_pptc1=pbuc2
// [45] *((const byte**) setnam::filename_ptr) ← (const byte*) main::filename -- _deref_pptc1=pbuc2
lda #<main.filename
sta filename_ptr
lda #>main.filename
@ -1018,7 +1018,7 @@ strlen: {
sta.z len
lda #>0
sta.z len+1
// [49] phi (byte*) strlen::str#2 = (const string) main::filename [phi:strlen->strlen::@1#1] -- pbuz1=pbuc1
// [49] phi (byte*) strlen::str#2 = (const byte*) main::filename [phi:strlen->strlen::@1#1] -- pbuz1=pbuc1
lda #<main.filename
sta.z str
lda #>main.filename
@ -1080,7 +1080,7 @@ Statement asm { ldxdeviceNum lda#1 ldy#0 jsr$ffba } always clobbers reg byte a
Statement [41] (word) strlen::return#2 ← (word) strlen::len#2 [ strlen::return#2 ] ( main:2::loadFileToMemory:5::setnam:23 [ strlen::return#2 ] ) always clobbers reg byte a
Statement [42] (word~) setnam::$0 ← (word) strlen::return#2 [ setnam::$0 ] ( main:2::loadFileToMemory:5::setnam:23 [ setnam::$0 ] ) always clobbers reg byte a
Statement [43] (byte~) setnam::$1 ← (byte)(word~) setnam::$0 [ setnam::$1 ] ( main:2::loadFileToMemory:5::setnam:23 [ setnam::$1 ] ) always clobbers reg byte a
Statement [45] *((const byte**) setnam::filename_ptr) ← (const string) main::filename [ ] ( main:2::loadFileToMemory:5::setnam:23 [ ] ) always clobbers reg byte a
Statement [45] *((const byte**) setnam::filename_ptr) ← (const byte*) main::filename [ ] ( main:2::loadFileToMemory:5::setnam:23 [ ] ) always clobbers reg byte a
Statement asm { ldafilename_len ldxfilename_ptr ldyfilename_ptr+1 jsr$ffbd } always clobbers reg byte a reg byte x reg byte y
Statement [50] if((byte) 0!=*((byte*) strlen::str#2)) goto strlen::@2 [ strlen::len#2 strlen::str#2 ] ( main:2::loadFileToMemory:5::setnam:23::strlen:40 [ strlen::len#2 strlen::str#2 ] ) always clobbers reg byte a reg byte y
Statement [9] *((const byte*) BORDERCOL) ← (byte) 2 [ main::status#0 ] ( main:2 [ main::status#0 ] ) always clobbers reg byte a
@ -1098,7 +1098,7 @@ Statement asm { ldxdeviceNum lda#1 ldy#0 jsr$ffba } always clobbers reg byte a
Statement [41] (word) strlen::return#2 ← (word) strlen::len#2 [ strlen::return#2 ] ( main:2::loadFileToMemory:5::setnam:23 [ strlen::return#2 ] ) always clobbers reg byte a
Statement [42] (word~) setnam::$0 ← (word) strlen::return#2 [ setnam::$0 ] ( main:2::loadFileToMemory:5::setnam:23 [ setnam::$0 ] ) always clobbers reg byte a
Statement [43] (byte~) setnam::$1 ← (byte)(word~) setnam::$0 [ setnam::$1 ] ( main:2::loadFileToMemory:5::setnam:23 [ setnam::$1 ] ) always clobbers reg byte a
Statement [45] *((const byte**) setnam::filename_ptr) ← (const string) main::filename [ ] ( main:2::loadFileToMemory:5::setnam:23 [ ] ) always clobbers reg byte a
Statement [45] *((const byte**) setnam::filename_ptr) ← (const byte*) main::filename [ ] ( main:2::loadFileToMemory:5::setnam:23 [ ] ) always clobbers reg byte a
Statement asm { ldafilename_len ldxfilename_ptr ldyfilename_ptr+1 jsr$ffbd } always clobbers reg byte a reg byte x reg byte y
Statement [50] if((byte) 0!=*((byte*) strlen::str#2)) goto strlen::@2 [ strlen::len#2 strlen::str#2 ] ( main:2::loadFileToMemory:5::setnam:23::strlen:40 [ strlen::len#2 strlen::str#2 ] ) always clobbers reg byte a reg byte y
Potential registers zp[2]:2 [ strlen::str#2 strlen::str#0 ] : zp[2]:2 ,
@ -1369,7 +1369,7 @@ setnam: {
lda.z __0
// [44] *((const byte*) setnam::filename_len) ← (byte~) setnam::$1 -- _deref_pbuc1=vbuaa
sta filename_len
// [45] *((const byte**) setnam::filename_ptr) ← (const string) main::filename -- _deref_pptc1=pbuc2
// [45] *((const byte**) setnam::filename_ptr) ← (const byte*) main::filename -- _deref_pptc1=pbuc2
lda #<main.filename
sta filename_ptr
lda #>main.filename
@ -1399,7 +1399,7 @@ strlen: {
sta.z len
lda #>0
sta.z len+1
// [49] phi (byte*) strlen::str#2 = (const string) main::filename [phi:strlen->strlen::@1#1] -- pbuz1=pbuc1
// [49] phi (byte*) strlen::str#2 = (const byte*) main::filename [phi:strlen->strlen::@1#1] -- pbuz1=pbuc1
lda #<main.filename
sta.z str
lda #>main.filename
@ -1557,7 +1557,7 @@ FINAL SYMBOL TABLE
(label) main::@3
(label) main::@4
(label) main::@return
(const string) main::filename[] = (string) "SPRITE"
(const byte*) main::filename[(byte) 7] = (string) "SPRITE"
(byte) main::status
(byte) main::status#0 reg byte x 2.0
(label) main::toSpritePtr1
@ -1826,7 +1826,7 @@ setnam: {
// [44] *((const byte*) setnam::filename_len) ← (byte~) setnam::$1 -- _deref_pbuc1=vbuaa
sta filename_len
// *filename_ptr = filename
// [45] *((const byte**) setnam::filename_ptr) ← (const string) main::filename -- _deref_pptc1=pbuc2
// [45] *((const byte**) setnam::filename_ptr) ← (const byte*) main::filename -- _deref_pptc1=pbuc2
lda #<main.filename
sta filename_ptr
lda #>main.filename
@ -1854,7 +1854,7 @@ strlen: {
lda #<0
sta.z len
sta.z len+1
// [49] phi (byte*) strlen::str#2 = (const string) main::filename [phi:strlen->strlen::@1#1] -- pbuz1=pbuc1
// [49] phi (byte*) strlen::str#2 = (const byte*) main::filename [phi:strlen->strlen::@1#1] -- pbuz1=pbuc1
lda #<main.filename
sta.z str
lda #>main.filename

@ -49,7 +49,7 @@
(label) main::@3
(label) main::@4
(label) main::@return
(const string) main::filename[] = (string) "SPRITE"
(const byte*) main::filename[(byte) 7] = (string) "SPRITE"
(byte) main::status
(byte) main::status#0 reg byte x 2.0
(label) main::toSpritePtr1

@ -311,7 +311,7 @@ mulf8u127::@return: scope:[mulf8u127] from mulf8u127
(void()) print_str((byte*) print_str::str)
print_str: scope:[print_str] from main::@1 main::@11
[142] (byte*) print_char_cursor#136 ← phi( main::@1/(byte*) 1024 main::@11/(byte*) print_char_cursor#141 )
[142] (byte*) print_str::str#5 ← phi( main::@1/(const string) main::str main::@11/(const string) main::str1 )
[142] (byte*) print_str::str#5 ← phi( main::@1/(const byte*) main::str main::@11/(const byte*) main::str1 )
to:print_str::@1
print_str::@1: scope:[print_str] from print_str print_str::@2
[143] (byte*) print_char_cursor#122 ← phi( print_str/(byte*) print_char_cursor#136 print_str::@2/(byte*) print_char_cursor#1 )

@ -362,7 +362,7 @@ main::@1: scope:[main] from main
(byte*) print_line_cursor#36 ← phi( main/(byte*) print_line_cursor#4 )
(byte*) print_line_cursor#5 ← (byte*) print_line_cursor#36
(byte*) print_char_cursor#23 ← (byte*) print_char_cursor#83
(byte*) print_str::str#1 ← (const string) main::str
(byte*) print_str::str#1 ← (const byte*) main::str
call print_str
to:main::@2
main::@2: scope:[main] from main::@1
@ -448,7 +448,7 @@ main::@11: scope:[main] from main::@10
(byte*) print_char_cursor#93 ← phi( main::@10/(byte*) print_char_cursor#53 )
(byte*) print_char_cursor#33 ← (byte*) print_char_cursor#93
(byte*) print_line_cursor#14 ← (byte*) print_line_cursor#45
(byte*) print_str::str#2 ← (const string) main::str1
(byte*) print_str::str#2 ← (const byte*) main::str1
call print_str
to:main::@12
main::@12: scope:[main] from main::@11
@ -846,8 +846,8 @@ SYMBOL TABLE SSA
(label) main::@8
(label) main::@9
(label) main::@return
(const string) main::str[] = (string) "unsigned"
(const string) main::str1[] = (string) "signed"
(const byte*) main::str[(byte) 9] = (string) "unsigned"
(const byte*) main::str1[(byte) 7] = (string) "signed"
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
(bool~) memset::$0
(bool~) memset::$1
@ -1985,10 +1985,10 @@ Constant inlined print_mulf8u127::b#6 = (byte) $c0
Constant inlined print_mulf8s127::b#1 = (signed byte) $40
Constant inlined print_mulf8u127::b#5 = (byte) $7f
Constant inlined print_mulf8u127::b#4 = (byte) $c0
Constant inlined print_str::str#2 = (const string) main::str1
Constant inlined print_str::str#2 = (const byte*) main::str1
Constant inlined memset::dst#0 = (byte*)(const void*) memset::str#0
Constant inlined print_mulf8u127::b#3 = (byte) $7f
Constant inlined print_str::str#1 = (const string) main::str
Constant inlined print_str::str#1 = (const byte*) main::str
Constant inlined print_mulf8u127::b#2 = (byte) $40
Constant inlined print_mulf8u127::b#1 = (byte) $7f
Constant inlined print_mulf8u127::b#0 = (byte) 0
@ -2508,7 +2508,7 @@ mulf8u127::@return: scope:[mulf8u127] from mulf8u127
(void()) print_str((byte*) print_str::str)
print_str: scope:[print_str] from main::@1 main::@11
[142] (byte*) print_char_cursor#136 ← phi( main::@1/(byte*) 1024 main::@11/(byte*) print_char_cursor#141 )
[142] (byte*) print_str::str#5 ← phi( main::@1/(const string) main::str main::@11/(const string) main::str1 )
[142] (byte*) print_str::str#5 ← phi( main::@1/(const byte*) main::str main::@11/(const byte*) main::str1 )
to:print_str::@1
print_str::@1: scope:[print_str] from print_str print_str::@2
[143] (byte*) print_char_cursor#122 ← phi( print_str/(byte*) print_char_cursor#136 print_str::@2/(byte*) print_char_cursor#1 )
@ -2850,7 +2850,7 @@ main: {
sta.z print_char_cursor
lda #>$400
sta.z print_char_cursor+1
// [142] phi (byte*) print_str::str#5 = (const string) main::str [phi:main::@1->print_str#1] -- pbuz1=pbuc1
// [142] phi (byte*) print_str::str#5 = (const byte*) main::str [phi:main::@1->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -3003,7 +3003,7 @@ main: {
// [142] phi from main::@11 to print_str [phi:main::@11->print_str]
print_str_from___b11:
// [142] phi (byte*) print_char_cursor#136 = (byte*) print_char_cursor#141 [phi:main::@11->print_str#0] -- register_copy
// [142] phi (byte*) print_str::str#5 = (const string) main::str1 [phi:main::@11->print_str#1] -- pbuz1=pbuc1
// [142] phi (byte*) print_str::str#5 = (const byte*) main::str1 [phi:main::@11->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -4226,7 +4226,7 @@ main: {
sta.z print_char_cursor
lda #>$400
sta.z print_char_cursor+1
// [142] phi (byte*) print_str::str#5 = (const string) main::str [phi:main::@1->print_str#1] -- pbuz1=pbuc1
// [142] phi (byte*) print_str::str#5 = (const byte*) main::str [phi:main::@1->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -4371,7 +4371,7 @@ main: {
// [142] phi from main::@11 to print_str [phi:main::@11->print_str]
print_str_from___b11:
// [142] phi (byte*) print_char_cursor#136 = (byte*) print_char_cursor#141 [phi:main::@11->print_str#0] -- register_copy
// [142] phi (byte*) print_str::str#5 = (const string) main::str1 [phi:main::@11->print_str#1] -- pbuz1=pbuc1
// [142] phi (byte*) print_str::str#5 = (const byte*) main::str1 [phi:main::@11->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -5565,8 +5565,8 @@ FINAL SYMBOL TABLE
(label) main::@8
(label) main::@9
(label) main::@return
(const string) main::str[] = (string) "unsigned"
(const string) main::str1[] = (string) "signed"
(const byte*) main::str[(byte) 9] = (string) "unsigned"
(const byte*) main::str1[(byte) 7] = (string) "signed"
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
(label) memset::@1
(label) memset::@2
@ -5799,7 +5799,7 @@ main: {
sta.z print_char_cursor
lda #>$400
sta.z print_char_cursor+1
// [142] phi (byte*) print_str::str#5 = (const string) main::str [phi:main::@1->print_str#1] -- pbuz1=pbuc1
// [142] phi (byte*) print_str::str#5 = (const byte*) main::str [phi:main::@1->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -5915,7 +5915,7 @@ main: {
// [27] call print_str
// [142] phi from main::@11 to print_str [phi:main::@11->print_str]
// [142] phi (byte*) print_char_cursor#136 = (byte*) print_char_cursor#141 [phi:main::@11->print_str#0] -- register_copy
// [142] phi (byte*) print_str::str#5 = (const string) main::str1 [phi:main::@11->print_str#1] -- pbuz1=pbuc1
// [142] phi (byte*) print_str::str#5 = (const byte*) main::str1 [phi:main::@11->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1

@ -29,8 +29,8 @@
(label) main::@8
(label) main::@9
(label) main::@return
(const string) main::str[] = (string) "unsigned"
(const string) main::str1[] = (string) "signed"
(const byte*) main::str[(byte) 9] = (string) "unsigned"
(const byte*) main::str1[(byte) 7] = (string) "signed"
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
(label) memset::@1
(label) memset::@2

@ -49,7 +49,7 @@ world::@return: scope:[world] from world
(void()) print((byte*) print::msg)
print: scope:[print] from hello world
[19] (byte*) print::msg#3 ← phi( hello/(const string) hello::msg world/(const string) world::msg )
[19] (byte*) print::msg#3 ← phi( hello/(const byte*) hello::msg world/(const byte*) world::msg )
to:print::@1
print::@1: scope:[print] from print print::@1
[20] (byte) print::i#2 ← phi( print/(byte) 0 print::@1/(byte) print::i#1 )

@ -28,7 +28,7 @@ do10::@return: scope:[do10] from do10::@1
(void()) hello()
hello: scope:[hello] from
(byte*) print::msg#0 ← (const string) hello::msg
(byte*) print::msg#0 ← (const byte*) hello::msg
call print
to:hello::@1
hello::@1: scope:[hello] from hello
@ -39,7 +39,7 @@ hello::@return: scope:[hello] from hello::@1
(void()) world()
world: scope:[world] from
(byte*) print::msg#1 ← (const string) world::msg
(byte*) print::msg#1 ← (const byte*) world::msg
call print
to:world::@1
world::@1: scope:[world] from world
@ -113,7 +113,7 @@ SYMBOL TABLE SSA
(void()) hello()
(label) hello::@1
(label) hello::@return
(const string) hello::msg[] = (string) "hello "
(const byte*) hello::msg[(byte) 7] = (string) "hello "
(byte) idx loadstore
(void()) main()
(label) main::@1
@ -135,7 +135,7 @@ SYMBOL TABLE SSA
(void()) world()
(label) world::@1
(label) world::@return
(const string) world::msg[] = (string) "world "
(const byte*) world::msg[(byte) 7] = (string) "world "
Adding number conversion cast (unumber) 0 in (bool~) print::$0 ← (number) 0 != *((byte*) print::msg#2 + (byte) print::i#1)
Successful SSA optimization PassNAddNumberTypeConversions
@ -175,8 +175,8 @@ Constant inlined do10::i#0 = (byte) 0
Constant inlined print::i#0 = (byte) 0
Constant inlined do10::fn#1 = &(void()) world()
Constant inlined do10::fn#0 = &(void()) hello()
Constant inlined print::msg#1 = (const string) world::msg
Constant inlined print::msg#0 = (const string) hello::msg
Constant inlined print::msg#1 = (const byte*) world::msg
Constant inlined print::msg#0 = (const byte*) hello::msg
Successful SSA optimization Pass2ConstantInlining
Added new block during phi lifting do10::@3(between do10::@1 and do10::@1)
Added new block during phi lifting print::@3(between print::@1 and print::@1)
@ -269,7 +269,7 @@ world::@return: scope:[world] from world
(void()) print((byte*) print::msg)
print: scope:[print] from hello world
[19] (byte*) print::msg#3 ← phi( hello/(const string) hello::msg world/(const string) world::msg )
[19] (byte*) print::msg#3 ← phi( hello/(const byte*) hello::msg world/(const byte*) world::msg )
to:print::@1
print::@1: scope:[print] from print print::@1
[20] (byte) print::i#2 ← phi( print/(byte) 0 print::@1/(byte) print::i#1 )
@ -430,7 +430,7 @@ world: {
// [17] call print
// [19] phi from world to print [phi:world->print]
print_from_world:
// [19] phi (byte*) print::msg#3 = (const string) world::msg [phi:world->print#0] -- pbuz1=pbuc1
// [19] phi (byte*) print::msg#3 = (const byte*) world::msg [phi:world->print#0] -- pbuz1=pbuc1
lda #<msg
sta.z print.msg
lda #>msg
@ -486,7 +486,7 @@ hello: {
// [27] call print
// [19] phi from hello to print [phi:hello->print]
print_from_hello:
// [19] phi (byte*) print::msg#3 = (const string) hello::msg [phi:hello->print#0] -- pbuz1=pbuc1
// [19] phi (byte*) print::msg#3 = (const byte*) hello::msg [phi:hello->print#0] -- pbuz1=pbuc1
lda #<msg
sta.z print.msg
lda #>msg
@ -645,7 +645,7 @@ world: {
// [17] call print
// [19] phi from world to print [phi:world->print]
print_from_world:
// [19] phi (byte*) print::msg#3 = (const string) world::msg [phi:world->print#0] -- pbuz1=pbuc1
// [19] phi (byte*) print::msg#3 = (const byte*) world::msg [phi:world->print#0] -- pbuz1=pbuc1
lda #<msg
sta.z print.msg
lda #>msg
@ -697,7 +697,7 @@ hello: {
// [27] call print
// [19] phi from hello to print [phi:hello->print]
print_from_hello:
// [19] phi (byte*) print::msg#3 = (const string) hello::msg [phi:hello->print#0] -- pbuz1=pbuc1
// [19] phi (byte*) print::msg#3 = (const byte*) hello::msg [phi:hello->print#0] -- pbuz1=pbuc1
lda #<msg
sta.z print.msg
lda #>msg
@ -774,7 +774,7 @@ FINAL SYMBOL TABLE
(byte) do10::i#2 i zp[1]:4 11.0
(void()) hello()
(label) hello::@return
(const string) hello::msg[] = (string) "hello "
(const byte*) hello::msg[(byte) 7] = (string) "hello "
(byte) idx loadstore zp[1]:7 5.0
(void()) main()
(label) main::@1
@ -789,7 +789,7 @@ FINAL SYMBOL TABLE
(byte*) print::msg#3 msg zp[2]:5 3.6666666666666665
(void()) world()
(label) world::@return
(const string) world::msg[] = (string) "world "
(const byte*) world::msg[(byte) 7] = (string) "world "
zp[2]:2 [ do10::fn#3 ]
zp[1]:4 [ do10::i#2 do10::i#1 ]
@ -887,7 +887,7 @@ world: {
// print("world ")
// [17] call print
// [19] phi from world to print [phi:world->print]
// [19] phi (byte*) print::msg#3 = (const string) world::msg [phi:world->print#0] -- pbuz1=pbuc1
// [19] phi (byte*) print::msg#3 = (const byte*) world::msg [phi:world->print#0] -- pbuz1=pbuc1
lda #<msg
sta.z print.msg
lda #>msg
@ -936,7 +936,7 @@ hello: {
// print("hello ")
// [27] call print
// [19] phi from hello to print [phi:hello->print]
// [19] phi (byte*) print::msg#3 = (const string) hello::msg [phi:hello->print#0] -- pbuz1=pbuc1
// [19] phi (byte*) print::msg#3 = (const byte*) hello::msg [phi:hello->print#0] -- pbuz1=pbuc1
lda #<msg
sta.z print.msg
lda #>msg

@ -13,7 +13,7 @@
(byte) do10::i#2 i zp[1]:4 11.0
(void()) hello()
(label) hello::@return
(const string) hello::msg[] = (string) "hello "
(const byte*) hello::msg[(byte) 7] = (string) "hello "
(byte) idx loadstore zp[1]:7 5.0
(void()) main()
(label) main::@1
@ -28,7 +28,7 @@
(byte*) print::msg#3 msg zp[2]:5 3.6666666666666665
(void()) world()
(label) world::@return
(const string) world::msg[] = (string) "world "
(const byte*) world::msg[(byte) 7] = (string) "world "
zp[2]:2 [ do10::fn#3 ]
zp[1]:4 [ do10::i#2 do10::i#1 ]

@ -42,11 +42,11 @@ print_msg: scope:[print_msg] from main main::@1
to:print_msg::@3
print_msg::@1: scope:[print_msg] from print_msg
(byte*) screen#21 ← phi( print_msg/(byte*) screen#24 )
(byte*) print_msg::msg#1 ← (const string) print_msg::$2
(byte*) print_msg::msg#1 ← (const byte*) print_msg::$2
to:print_msg::@2
print_msg::@3: scope:[print_msg] from print_msg
(byte*) screen#22 ← phi( print_msg/(byte*) screen#24 )
(byte*) print_msg::msg#2 ← (const string) print_msg::$3
(byte*) print_msg::msg#2 ← (const byte*) print_msg::$3
to:print_msg::@2
print_msg::@2: scope:[print_msg] from print_msg::@1 print_msg::@3
(byte*) screen#18 ← phi( print_msg::@1/(byte*) screen#21 print_msg::@3/(byte*) screen#22 )
@ -123,8 +123,8 @@ SYMBOL TABLE SSA
(byte*) print::msg#4
(void()) print_msg((byte) print_msg::idx)
(bool~) print_msg::$0
(const string) print_msg::$2[] = (string) "Hello "
(const string) print_msg::$3[] = (string) "World!"
(const byte*) print_msg::$2[(byte) 7] = (string) "Hello "
(const byte*) print_msg::$3[(byte) 7] = (string) "World!"
(label) print_msg::@1
(label) print_msg::@2
(label) print_msg::@3

@ -28,7 +28,7 @@ main::@return: scope:[main] from main::@2
(void()) print((byte*) print::msg)
print: scope:[print] from main main::@1 main::@2
[11] (byte*) screen#18 ← phi( main/(byte*) 1024 main::@1/(byte*) screen#12 main::@2/(byte*) screen#12 )
[11] (byte*) print::msg#6 ← phi( main/(const byte*) msg1 main::@1/(const byte*) main::msg2 main::@2/(const string) main::msg )
[11] (byte*) print::msg#6 ← phi( main/(const byte*) msg1 main::@1/(const byte*) main::msg2 main::@2/(const byte*) main::msg )
to:print::@1
print::@1: scope:[print] from print print::@2
[12] (byte*) screen#12 ← phi( print/(byte*) screen#18 print::@2/(byte*) screen#5 )

@ -23,7 +23,7 @@ main::@1: scope:[main] from main
main::@2: scope:[main] from main::@1
(byte*) screen#9 ← phi( main::@1/(byte*) screen#6 )
(byte*) screen#1 ← (byte*) screen#9
(byte*) print::msg#2 ← (const string) main::msg
(byte*) print::msg#2 ← (const byte*) main::msg
call print
to:main::@3
main::@3: scope:[main] from main::@2
@ -83,7 +83,7 @@ SYMBOL TABLE SSA
(label) main::@2
(label) main::@3
(label) main::@return
(const string) main::msg[] = (string) "message 3 "
(const byte*) main::msg[(byte) $b] = (string) "message 3 "
(const byte*) main::msg2[] = (string) "message 2 "
(const byte*) msg1[] = (string) "message 1 "
(void()) print((byte*) print::msg)
@ -152,7 +152,7 @@ Inlining constant with var siblings (const byte*) print::msg#0
Inlining constant with var siblings (const byte*) print::msg#1
Inlining constant with var siblings (const byte*) print::msg#2
Inlining constant with var siblings (const byte*) screen#17
Constant inlined print::msg#2 = (const string) main::msg
Constant inlined print::msg#2 = (const byte*) main::msg
Constant inlined print::msg#1 = (const byte*) main::msg2
Constant inlined print::msg#0 = (const byte*) msg1
Constant inlined screen#17 = (byte*) 1024
@ -218,7 +218,7 @@ main::@return: scope:[main] from main::@2
(void()) print((byte*) print::msg)
print: scope:[print] from main main::@1 main::@2
[11] (byte*) screen#18 ← phi( main/(byte*) 1024 main::@1/(byte*) screen#12 main::@2/(byte*) screen#12 )
[11] (byte*) print::msg#6 ← phi( main/(const byte*) msg1 main::@1/(const byte*) main::msg2 main::@2/(const string) main::msg )
[11] (byte*) print::msg#6 ← phi( main/(const byte*) msg1 main::@1/(const byte*) main::msg2 main::@2/(const byte*) main::msg )
to:print::@1
print::@1: scope:[print] from print print::@2
[12] (byte*) screen#12 ← phi( print/(byte*) screen#18 print::@2/(byte*) screen#5 )
@ -322,7 +322,7 @@ main: {
// [11] phi from main::@2 to print [phi:main::@2->print]
print_from___b2:
// [11] phi (byte*) screen#18 = (byte*) screen#12 [phi:main::@2->print#0] -- register_copy
// [11] phi (byte*) print::msg#6 = (const string) main::msg [phi:main::@2->print#1] -- pbuz1=pbuc1
// [11] phi (byte*) print::msg#6 = (const byte*) main::msg [phi:main::@2->print#1] -- pbuz1=pbuc1
lda #<msg
sta.z print.msg
lda #>msg
@ -463,7 +463,7 @@ main: {
// [11] phi from main::@2 to print [phi:main::@2->print]
print_from___b2:
// [11] phi (byte*) screen#18 = (byte*) screen#12 [phi:main::@2->print#0] -- register_copy
// [11] phi (byte*) print::msg#6 = (const string) main::msg [phi:main::@2->print#1] -- pbuz1=pbuc1
// [11] phi (byte*) print::msg#6 = (const byte*) main::msg [phi:main::@2->print#1] -- pbuz1=pbuc1
lda #<msg
sta.z print.msg
lda #>msg
@ -569,7 +569,7 @@ FINAL SYMBOL TABLE
(label) main::@1
(label) main::@2
(label) main::@return
(const string) main::msg[] = (string) "message 3 "
(const byte*) main::msg[(byte) $b] = (string) "message 3 "
(const byte*) main::msg2[] = (string) "message 2 "
(const byte*) msg1[] = (string) "message 1 "
(void()) print((byte*) print::msg)
@ -641,7 +641,7 @@ main: {
// [9] call print
// [11] phi from main::@2 to print [phi:main::@2->print]
// [11] phi (byte*) screen#18 = (byte*) screen#12 [phi:main::@2->print#0] -- register_copy
// [11] phi (byte*) print::msg#6 = (const string) main::msg [phi:main::@2->print#1] -- pbuz1=pbuc1
// [11] phi (byte*) print::msg#6 = (const byte*) main::msg [phi:main::@2->print#1] -- pbuz1=pbuc1
lda #<msg
sta.z print.msg
lda #>msg

@ -5,7 +5,7 @@
(label) main::@1
(label) main::@2
(label) main::@return
(const string) main::msg[] = (string) "message 3 "
(const byte*) main::msg[(byte) $b] = (string) "message 3 "
(const byte*) main::msg2[] = (string) "message 2 "
(const byte*) msg1[] = (string) "message 1 "
(void()) print((byte*) print::msg)

@ -186,7 +186,7 @@ print_char::@return: scope:[print_char] from print_char
(void()) print_str((byte*) print_str::str)
print_str: scope:[print_str] from main::@11 main::@14 main::@16 main::@18 main::@23 main::@25 main::@3 main::@7 main::@9
[87] (byte*) print_char_cursor#86 ← phi( main::@7/(byte*) 1024 main::@9/(byte*) print_char_cursor#11 main::@11/(byte*) print_char_cursor#11 main::@14/(byte*) print_char_cursor#11 main::@16/(byte*) print_char_cursor#11 main::@18/(byte*) print_char_cursor#11 main::@23/(byte*) print_char_cursor#11 main::@25/(byte*) print_char_cursor#11 main::@3/(byte*) print_char_cursor#98 )
[87] (byte*) print_str::str#12 ← phi( main::@7/(const string) main::str main::@9/(const string) main::str1 main::@11/(const string) main::str1 main::@14/(const string) main::str1 main::@16/(const string) main::str1 main::@18/(const string) main::str1 main::@23/(const string) main::str1 main::@25/(const string) main::str1 main::@3/(const string) main::str )
[87] (byte*) print_str::str#12 ← phi( main::@7/(const byte*) main::str main::@9/(const byte*) main::str1 main::@11/(const byte*) main::str1 main::@14/(const byte*) main::str1 main::@16/(const byte*) main::str1 main::@18/(const byte*) main::str1 main::@23/(const byte*) main::str1 main::@25/(const byte*) main::str1 main::@3/(const byte*) main::str )
to:print_str::@1
print_str::@1: scope:[print_str] from print_str print_str::@2
[88] (byte*) print_char_cursor#2 ← phi( print_str/(byte*) print_char_cursor#86 print_str::@2/(byte*) print_char_cursor#1 )

@ -399,7 +399,7 @@ main::@10: scope:[main] from main::@9
(byte*) print_line_cursor#15 ← phi( main::@9/(byte*) print_line_cursor#4 )
(byte*) print_line_cursor#5 ← (byte*) print_line_cursor#15
(byte*) print_char_cursor#15 ← (byte*) print_char_cursor#53
(byte*) print_str::str#1 ← (const string) main::str
(byte*) print_str::str#1 ← (const byte*) main::str
call print_str
to:main::@11
main::@11: scope:[main] from main::@10
@ -415,7 +415,7 @@ main::@12: scope:[main] from main::@11
(byte*) print_line_cursor#39 ← phi( main::@11/(byte*) print_line_cursor#42 )
(byte*) print_char_cursor#55 ← phi( main::@11/(byte*) print_char_cursor#7 )
(byte*) print_char_cursor#17 ← (byte*) print_char_cursor#55
(byte*) print_str::str#2 ← (const string) main::str1
(byte*) print_str::str#2 ← (const byte*) main::str1
call print_str
to:main::@13
main::@13: scope:[main] from main::@12
@ -431,7 +431,7 @@ main::@14: scope:[main] from main::@13
(byte*) print_line_cursor#32 ← phi( main::@13/(byte*) print_line_cursor#36 )
(byte*) print_char_cursor#57 ← phi( main::@13/(byte*) print_char_cursor#7 )
(byte*) print_char_cursor#19 ← (byte*) print_char_cursor#57
(byte*) print_str::str#3 ← (const string) main::str2
(byte*) print_str::str#3 ← (const byte*) main::str2
call print_str
to:main::@15
main::@15: scope:[main] from main::@14
@ -479,7 +479,7 @@ main::@18: scope:[main] from main::@2
(byte) main::i#8 ← phi( main::@2/(byte) main::i#3 )
(byte*) print_char_cursor#61 ← phi( main::@2/(byte*) print_char_cursor#10 )
(byte*) print_char_cursor#23 ← (byte*) print_char_cursor#61
(byte*) print_str::str#4 ← (const string) main::str3
(byte*) print_str::str#4 ← (const byte*) main::str3
call print_str
to:main::@19
main::@19: scope:[main] from main::@18
@ -498,7 +498,7 @@ main::@20: scope:[main] from main::@19
(byte) main::i#9 ← phi( main::@19/(byte) main::i#4 )
(byte*) print_char_cursor#63 ← phi( main::@19/(byte*) print_char_cursor#7 )
(byte*) print_char_cursor#25 ← (byte*) print_char_cursor#63
(byte*) print_str::str#5 ← (const string) main::str4
(byte*) print_str::str#5 ← (const byte*) main::str4
call print_str
to:main::@21
main::@21: scope:[main] from main::@20
@ -517,7 +517,7 @@ main::@22: scope:[main] from main::@21
(byte) main::i#10 ← phi( main::@21/(byte) main::i#5 )
(byte*) print_char_cursor#65 ← phi( main::@21/(byte*) print_char_cursor#7 )
(byte*) print_char_cursor#27 ← (byte*) print_char_cursor#65
(byte*) print_str::str#6 ← (const string) main::str5
(byte*) print_str::str#6 ← (const byte*) main::str5
call print_str
to:main::@23
main::@23: scope:[main] from main::@22
@ -551,7 +551,7 @@ main::@3: scope:[main] from main::@1
(word) rem16u#33 ← phi( main::@1/(word) rem16u#34 )
(byte*) print_line_cursor#46 ← phi( main::@1/(byte*) print_line_cursor#48 )
(byte*) print_char_cursor#84 ← phi( main::@1/(byte*) print_char_cursor#88 )
(byte*) print_str::str#7 ← (const string) main::str6
(byte*) print_str::str#7 ← (const byte*) main::str6
call print_str
to:main::@26
main::@26: scope:[main] from main::@3
@ -567,7 +567,7 @@ main::@27: scope:[main] from main::@26
(byte*) print_line_cursor#41 ← phi( main::@26/(byte*) print_line_cursor#44 )
(byte*) print_char_cursor#70 ← phi( main::@26/(byte*) print_char_cursor#7 )
(byte*) print_char_cursor#32 ← (byte*) print_char_cursor#70
(byte*) print_str::str#8 ← (const string) main::str7
(byte*) print_str::str#8 ← (const byte*) main::str7
call print_str
to:main::@28
main::@28: scope:[main] from main::@27
@ -583,7 +583,7 @@ main::@29: scope:[main] from main::@28
(byte*) print_line_cursor#34 ← phi( main::@28/(byte*) print_line_cursor#38 )
(byte*) print_char_cursor#72 ← phi( main::@28/(byte*) print_char_cursor#7 )
(byte*) print_char_cursor#34 ← (byte*) print_char_cursor#72
(byte*) print_str::str#9 ← (const string) main::str8
(byte*) print_str::str#9 ← (const byte*) main::str8
call print_str
to:main::@30
main::@30: scope:[main] from main::@29
@ -917,15 +917,15 @@ SYMBOL TABLE SSA
(const word*) main::lintab1[(number) $14] = { fill( $14, 0) }
(const word*) main::lintab2[(number) $14] = { fill( $14, 0) }
(const word*) main::lintab3[(number) $14] = { fill( $14, 0) }
(const string) main::str[] = (string) " "
(const string) main::str1[] = (string) " "
(const string) main::str2[] = (string) " "
(const string) main::str3[] = (string) " "
(const string) main::str4[] = (string) " "
(const string) main::str5[] = (string) " "
(const string) main::str6[] = (string) " "
(const string) main::str7[] = (string) " "
(const string) main::str8[] = (string) " "
(const byte*) main::str[(byte) 4] = (string) " "
(const byte*) main::str1[(byte) 2] = (string) " "
(const byte*) main::str2[(byte) 2] = (string) " "
(const byte*) main::str3[(byte) 2] = (string) " "
(const byte*) main::str4[(byte) 2] = (string) " "
(const byte*) main::str5[(byte) 2] = (string) " "
(const byte*) main::str6[(byte) 4] = (string) " "
(const byte*) main::str7[(byte) 2] = (string) " "
(const byte*) main::str8[(byte) 2] = (string) " "
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
(bool~) memset::$0
(bool~) memset::$1
@ -1606,6 +1606,8 @@ Constant (const void*) memset::return#2 = memset::str#0
Successful SSA optimization Pass2ConstantIdentification
if() condition always false - eliminating [41] if((const word) memset::num#0<=(byte) 0) goto memset::@1
Successful SSA optimization Pass2ConstantIfs
Consolidated constant strings into (const byte*) main::str
Consolidated constant strings into (const byte*) main::str1
Successful SSA optimization Pass2ConstantStringConsolidation
Resolved ranged next value [24] divr16u::i#1 ← ++ divr16u::i#2 to ++
Resolved ranged comparison value [26] if(divr16u::i#1!=rangelast(0,$f)) goto divr16u::@1 to (number) $10
@ -1663,14 +1665,14 @@ Inlining constant with var siblings (const word*) lin16u_gen::lintab#2
Inlining constant with var siblings (const word) lin16u_gen::length#2
Inlining constant with var siblings (const word) lin16u_gen::i#0
Inlining constant with var siblings (const byte*) print_line_cursor#0
Constant inlined main::str4 = (const string) main::str1
Constant inlined main::str5 = (const string) main::str1
Constant inlined main::str4 = (const byte*) main::str1
Constant inlined main::str5 = (const byte*) main::str1
Constant inlined divr16u::rem#3 = (byte) 0
Constant inlined main::str6 = (const string) main::str
Constant inlined main::str7 = (const string) main::str1
Constant inlined main::str6 = (const byte*) main::str
Constant inlined main::str7 = (const byte*) main::str1
Constant inlined divr16u::i#0 = (byte) 0
Constant inlined main::str2 = (const string) main::str1
Constant inlined main::str3 = (const string) main::str1
Constant inlined main::str2 = (const byte*) main::str1
Constant inlined main::str3 = (const byte*) main::str1
Constant inlined lin16u_gen::max#0 = (word) $7461
Constant inlined lin16u_gen::max#2 = (word) $6488
Constant inlined lin16u_gen::max#1 = (word) $f781
@ -1687,25 +1689,25 @@ Constant inlined print_word::w#7 = (word) $f781
Constant inlined print_word::w#6 = (word) $7461
Constant inlined print_word::w#8 = (word) $6488
Constant inlined lin16u_gen::length#2 = (byte) $14
Constant inlined print_str::str#9 = (const string) main::str1
Constant inlined print_str::str#9 = (const byte*) main::str1
Constant inlined lin16u_gen::length#1 = (byte) $14
Constant inlined lin16u_gen::length#0 = (byte) $14
Constant inlined print_str::str#4 = (const string) main::str1
Constant inlined print_str::str#3 = (const string) main::str1
Constant inlined print_str::str#2 = (const string) main::str1
Constant inlined print_str::str#4 = (const byte*) main::str1
Constant inlined print_str::str#3 = (const byte*) main::str1
Constant inlined print_str::str#2 = (const byte*) main::str1
Constant inlined memset::dst#0 = (byte*)(const void*) memset::str#0
Constant inlined print_str::str#1 = (const string) main::str
Constant inlined print_str::str#8 = (const string) main::str1
Constant inlined main::str8 = (const string) main::str1
Constant inlined print_str::str#1 = (const byte*) main::str
Constant inlined print_str::str#8 = (const byte*) main::str1
Constant inlined main::str8 = (const byte*) main::str1
Constant inlined lin16u_gen::lintab#2 = (const word*) main::lintab3
Constant inlined lin16u_gen::min#1 = (word) $79cb
Constant inlined lin16u_gen::i#0 = (word) 0
Constant inlined print_str::str#7 = (const string) main::str
Constant inlined print_str::str#7 = (const byte*) main::str
Constant inlined lin16u_gen::lintab#1 = (const word*) main::lintab2
Constant inlined lin16u_gen::min#2 = (byte) 0
Constant inlined print_str::str#6 = (const string) main::str1
Constant inlined print_str::str#6 = (const byte*) main::str1
Constant inlined lin16u_gen::lintab#0 = (const word*) main::lintab1
Constant inlined print_str::str#5 = (const string) main::str1
Constant inlined print_str::str#5 = (const byte*) main::str1
Successful SSA optimization Pass2ConstantInlining
Identical Phi Values (word) lin16u_gen::length#3 (byte) $14
Successful SSA optimization Pass2IdenticalPhiElimination
@ -2072,7 +2074,7 @@ print_char::@return: scope:[print_char] from print_char
(void()) print_str((byte*) print_str::str)
print_str: scope:[print_str] from main::@11 main::@14 main::@16 main::@18 main::@23 main::@25 main::@3 main::@7 main::@9
[87] (byte*) print_char_cursor#86 ← phi( main::@7/(byte*) 1024 main::@9/(byte*) print_char_cursor#11 main::@11/(byte*) print_char_cursor#11 main::@14/(byte*) print_char_cursor#11 main::@16/(byte*) print_char_cursor#11 main::@18/(byte*) print_char_cursor#11 main::@23/(byte*) print_char_cursor#11 main::@25/(byte*) print_char_cursor#11 main::@3/(byte*) print_char_cursor#98 )
[87] (byte*) print_str::str#12 ← phi( main::@7/(const string) main::str main::@9/(const string) main::str1 main::@11/(const string) main::str1 main::@14/(const string) main::str1 main::@16/(const string) main::str1 main::@18/(const string) main::str1 main::@23/(const string) main::str1 main::@25/(const string) main::str1 main::@3/(const string) main::str )
[87] (byte*) print_str::str#12 ← phi( main::@7/(const byte*) main::str main::@9/(const byte*) main::str1 main::@11/(const byte*) main::str1 main::@14/(const byte*) main::str1 main::@16/(const byte*) main::str1 main::@18/(const byte*) main::str1 main::@23/(const byte*) main::str1 main::@25/(const byte*) main::str1 main::@3/(const byte*) main::str )
to:print_str::@1
print_str::@1: scope:[print_str] from print_str print_str::@2
[88] (byte*) print_char_cursor#2 ← phi( print_str/(byte*) print_char_cursor#86 print_str::@2/(byte*) print_char_cursor#1 )
@ -2538,7 +2540,7 @@ main: {
sta.z print_char_cursor
lda #>$400
sta.z print_char_cursor+1
// [87] phi (byte*) print_str::str#12 = (const string) main::str [phi:main::@7->print_str#1] -- pbuz1=pbuc1
// [87] phi (byte*) print_str::str#12 = (const byte*) main::str [phi:main::@7->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -2567,7 +2569,7 @@ main: {
// [87] phi from main::@9 to print_str [phi:main::@9->print_str]
print_str_from___b9:
// [87] phi (byte*) print_char_cursor#86 = (byte*) print_char_cursor#11 [phi:main::@9->print_str#0] -- register_copy
// [87] phi (byte*) print_str::str#12 = (const string) main::str1 [phi:main::@9->print_str#1] -- pbuz1=pbuc1
// [87] phi (byte*) print_str::str#12 = (const byte*) main::str1 [phi:main::@9->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -2596,7 +2598,7 @@ main: {
// [87] phi from main::@11 to print_str [phi:main::@11->print_str]
print_str_from___b11:
// [87] phi (byte*) print_char_cursor#86 = (byte*) print_char_cursor#11 [phi:main::@11->print_str#0] -- register_copy
// [87] phi (byte*) print_str::str#12 = (const string) main::str1 [phi:main::@11->print_str#1] -- pbuz1=pbuc1
// [87] phi (byte*) print_str::str#12 = (const byte*) main::str1 [phi:main::@11->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -2654,7 +2656,7 @@ main: {
// [87] phi from main::@3 to print_str [phi:main::@3->print_str]
print_str_from___b3:
// [87] phi (byte*) print_char_cursor#86 = (byte*) print_char_cursor#98 [phi:main::@3->print_str#0] -- register_copy
// [87] phi (byte*) print_str::str#12 = (const string) main::str [phi:main::@3->print_str#1] -- pbuz1=pbuc1
// [87] phi (byte*) print_str::str#12 = (const byte*) main::str [phi:main::@3->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -2683,7 +2685,7 @@ main: {
// [87] phi from main::@23 to print_str [phi:main::@23->print_str]
print_str_from___b23:
// [87] phi (byte*) print_char_cursor#86 = (byte*) print_char_cursor#11 [phi:main::@23->print_str#0] -- register_copy
// [87] phi (byte*) print_str::str#12 = (const string) main::str1 [phi:main::@23->print_str#1] -- pbuz1=pbuc1
// [87] phi (byte*) print_str::str#12 = (const byte*) main::str1 [phi:main::@23->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -2712,7 +2714,7 @@ main: {
// [87] phi from main::@25 to print_str [phi:main::@25->print_str]
print_str_from___b25:
// [87] phi (byte*) print_char_cursor#86 = (byte*) print_char_cursor#11 [phi:main::@25->print_str#0] -- register_copy
// [87] phi (byte*) print_str::str#12 = (const string) main::str1 [phi:main::@25->print_str#1] -- pbuz1=pbuc1
// [87] phi (byte*) print_str::str#12 = (const byte*) main::str1 [phi:main::@25->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -2772,7 +2774,7 @@ main: {
// [87] phi from main::@14 to print_str [phi:main::@14->print_str]
print_str_from___b14:
// [87] phi (byte*) print_char_cursor#86 = (byte*) print_char_cursor#11 [phi:main::@14->print_str#0] -- register_copy
// [87] phi (byte*) print_str::str#12 = (const string) main::str1 [phi:main::@14->print_str#1] -- pbuz1=pbuc1
// [87] phi (byte*) print_str::str#12 = (const byte*) main::str1 [phi:main::@14->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -2805,7 +2807,7 @@ main: {
// [87] phi from main::@16 to print_str [phi:main::@16->print_str]
print_str_from___b16:
// [87] phi (byte*) print_char_cursor#86 = (byte*) print_char_cursor#11 [phi:main::@16->print_str#0] -- register_copy
// [87] phi (byte*) print_str::str#12 = (const string) main::str1 [phi:main::@16->print_str#1] -- pbuz1=pbuc1
// [87] phi (byte*) print_str::str#12 = (const byte*) main::str1 [phi:main::@16->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -2838,7 +2840,7 @@ main: {
// [87] phi from main::@18 to print_str [phi:main::@18->print_str]
print_str_from___b18:
// [87] phi (byte*) print_char_cursor#86 = (byte*) print_char_cursor#11 [phi:main::@18->print_str#0] -- register_copy
// [87] phi (byte*) print_str::str#12 = (const string) main::str1 [phi:main::@18->print_str#1] -- pbuz1=pbuc1
// [87] phi (byte*) print_str::str#12 = (const byte*) main::str1 [phi:main::@18->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -3723,7 +3725,7 @@ main: {
sta.z print_char_cursor
lda #>$400
sta.z print_char_cursor+1
// [87] phi (byte*) print_str::str#12 = (const string) main::str [phi:main::@7->print_str#1] -- pbuz1=pbuc1
// [87] phi (byte*) print_str::str#12 = (const byte*) main::str [phi:main::@7->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -3752,7 +3754,7 @@ main: {
// [87] phi from main::@9 to print_str [phi:main::@9->print_str]
print_str_from___b9:
// [87] phi (byte*) print_char_cursor#86 = (byte*) print_char_cursor#11 [phi:main::@9->print_str#0] -- register_copy
// [87] phi (byte*) print_str::str#12 = (const string) main::str1 [phi:main::@9->print_str#1] -- pbuz1=pbuc1
// [87] phi (byte*) print_str::str#12 = (const byte*) main::str1 [phi:main::@9->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -3781,7 +3783,7 @@ main: {
// [87] phi from main::@11 to print_str [phi:main::@11->print_str]
print_str_from___b11:
// [87] phi (byte*) print_char_cursor#86 = (byte*) print_char_cursor#11 [phi:main::@11->print_str#0] -- register_copy
// [87] phi (byte*) print_str::str#12 = (const string) main::str1 [phi:main::@11->print_str#1] -- pbuz1=pbuc1
// [87] phi (byte*) print_str::str#12 = (const byte*) main::str1 [phi:main::@11->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -3837,7 +3839,7 @@ main: {
// [87] phi from main::@3 to print_str [phi:main::@3->print_str]
print_str_from___b3:
// [87] phi (byte*) print_char_cursor#86 = (byte*) print_char_cursor#98 [phi:main::@3->print_str#0] -- register_copy
// [87] phi (byte*) print_str::str#12 = (const string) main::str [phi:main::@3->print_str#1] -- pbuz1=pbuc1
// [87] phi (byte*) print_str::str#12 = (const byte*) main::str [phi:main::@3->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -3866,7 +3868,7 @@ main: {
// [87] phi from main::@23 to print_str [phi:main::@23->print_str]
print_str_from___b23:
// [87] phi (byte*) print_char_cursor#86 = (byte*) print_char_cursor#11 [phi:main::@23->print_str#0] -- register_copy
// [87] phi (byte*) print_str::str#12 = (const string) main::str1 [phi:main::@23->print_str#1] -- pbuz1=pbuc1
// [87] phi (byte*) print_str::str#12 = (const byte*) main::str1 [phi:main::@23->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -3895,7 +3897,7 @@ main: {
// [87] phi from main::@25 to print_str [phi:main::@25->print_str]
print_str_from___b25:
// [87] phi (byte*) print_char_cursor#86 = (byte*) print_char_cursor#11 [phi:main::@25->print_str#0] -- register_copy
// [87] phi (byte*) print_str::str#12 = (const string) main::str1 [phi:main::@25->print_str#1] -- pbuz1=pbuc1
// [87] phi (byte*) print_str::str#12 = (const byte*) main::str1 [phi:main::@25->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -3954,7 +3956,7 @@ main: {
// [87] phi from main::@14 to print_str [phi:main::@14->print_str]
print_str_from___b14:
// [87] phi (byte*) print_char_cursor#86 = (byte*) print_char_cursor#11 [phi:main::@14->print_str#0] -- register_copy
// [87] phi (byte*) print_str::str#12 = (const string) main::str1 [phi:main::@14->print_str#1] -- pbuz1=pbuc1
// [87] phi (byte*) print_str::str#12 = (const byte*) main::str1 [phi:main::@14->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -3986,7 +3988,7 @@ main: {
// [87] phi from main::@16 to print_str [phi:main::@16->print_str]
print_str_from___b16:
// [87] phi (byte*) print_char_cursor#86 = (byte*) print_char_cursor#11 [phi:main::@16->print_str#0] -- register_copy
// [87] phi (byte*) print_str::str#12 = (const string) main::str1 [phi:main::@16->print_str#1] -- pbuz1=pbuc1
// [87] phi (byte*) print_str::str#12 = (const byte*) main::str1 [phi:main::@16->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -4018,7 +4020,7 @@ main: {
// [87] phi from main::@18 to print_str [phi:main::@18->print_str]
print_str_from___b18:
// [87] phi (byte*) print_char_cursor#86 = (byte*) print_char_cursor#11 [phi:main::@18->print_str#0] -- register_copy
// [87] phi (byte*) print_str::str#12 = (const string) main::str1 [phi:main::@18->print_str#1] -- pbuz1=pbuc1
// [87] phi (byte*) print_str::str#12 = (const byte*) main::str1 [phi:main::@18->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -4882,8 +4884,8 @@ FINAL SYMBOL TABLE
(const word*) main::lintab1[(number) $14] = { fill( $14, 0) }
(const word*) main::lintab2[(number) $14] = { fill( $14, 0) }
(const word*) main::lintab3[(number) $14] = { fill( $14, 0) }
(const string) main::str[] = (string) " "
(const string) main::str1[] = (string) " "
(const byte*) main::str[(byte) 4] = (string) " "
(const byte*) main::str1[(byte) 2] = (string) " "
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
(label) memset::@1
(label) memset::@2
@ -5078,7 +5080,7 @@ main: {
sta.z print_char_cursor
lda #>$400
sta.z print_char_cursor+1
// [87] phi (byte*) print_str::str#12 = (const string) main::str [phi:main::@7->print_str#1] -- pbuz1=pbuc1
// [87] phi (byte*) print_str::str#12 = (const byte*) main::str [phi:main::@7->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -5101,7 +5103,7 @@ main: {
// [17] call print_str
// [87] phi from main::@9 to print_str [phi:main::@9->print_str]
// [87] phi (byte*) print_char_cursor#86 = (byte*) print_char_cursor#11 [phi:main::@9->print_str#0] -- register_copy
// [87] phi (byte*) print_str::str#12 = (const string) main::str1 [phi:main::@9->print_str#1] -- pbuz1=pbuc1
// [87] phi (byte*) print_str::str#12 = (const byte*) main::str1 [phi:main::@9->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -5124,7 +5126,7 @@ main: {
// [21] call print_str
// [87] phi from main::@11 to print_str [phi:main::@11->print_str]
// [87] phi (byte*) print_char_cursor#86 = (byte*) print_char_cursor#11 [phi:main::@11->print_str#0] -- register_copy
// [87] phi (byte*) print_str::str#12 = (const string) main::str1 [phi:main::@11->print_str#1] -- pbuz1=pbuc1
// [87] phi (byte*) print_str::str#12 = (const byte*) main::str1 [phi:main::@11->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -5170,7 +5172,7 @@ main: {
// [29] call print_str
// [87] phi from main::@3 to print_str [phi:main::@3->print_str]
// [87] phi (byte*) print_char_cursor#86 = (byte*) print_char_cursor#98 [phi:main::@3->print_str#0] -- register_copy
// [87] phi (byte*) print_str::str#12 = (const string) main::str [phi:main::@3->print_str#1] -- pbuz1=pbuc1
// [87] phi (byte*) print_str::str#12 = (const byte*) main::str [phi:main::@3->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -5193,7 +5195,7 @@ main: {
// [33] call print_str
// [87] phi from main::@23 to print_str [phi:main::@23->print_str]
// [87] phi (byte*) print_char_cursor#86 = (byte*) print_char_cursor#11 [phi:main::@23->print_str#0] -- register_copy
// [87] phi (byte*) print_str::str#12 = (const string) main::str1 [phi:main::@23->print_str#1] -- pbuz1=pbuc1
// [87] phi (byte*) print_str::str#12 = (const byte*) main::str1 [phi:main::@23->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -5216,7 +5218,7 @@ main: {
// [37] call print_str
// [87] phi from main::@25 to print_str [phi:main::@25->print_str]
// [87] phi (byte*) print_char_cursor#86 = (byte*) print_char_cursor#11 [phi:main::@25->print_str#0] -- register_copy
// [87] phi (byte*) print_str::str#12 = (const string) main::str1 [phi:main::@25->print_str#1] -- pbuz1=pbuc1
// [87] phi (byte*) print_str::str#12 = (const byte*) main::str1 [phi:main::@25->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -5266,7 +5268,7 @@ main: {
// [47] call print_str
// [87] phi from main::@14 to print_str [phi:main::@14->print_str]
// [87] phi (byte*) print_char_cursor#86 = (byte*) print_char_cursor#11 [phi:main::@14->print_str#0] -- register_copy
// [87] phi (byte*) print_str::str#12 = (const string) main::str1 [phi:main::@14->print_str#1] -- pbuz1=pbuc1
// [87] phi (byte*) print_str::str#12 = (const byte*) main::str1 [phi:main::@14->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -5293,7 +5295,7 @@ main: {
// [52] call print_str
// [87] phi from main::@16 to print_str [phi:main::@16->print_str]
// [87] phi (byte*) print_char_cursor#86 = (byte*) print_char_cursor#11 [phi:main::@16->print_str#0] -- register_copy
// [87] phi (byte*) print_str::str#12 = (const string) main::str1 [phi:main::@16->print_str#1] -- pbuz1=pbuc1
// [87] phi (byte*) print_str::str#12 = (const byte*) main::str1 [phi:main::@16->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -5320,7 +5322,7 @@ main: {
// [57] call print_str
// [87] phi from main::@18 to print_str [phi:main::@18->print_str]
// [87] phi (byte*) print_char_cursor#86 = (byte*) print_char_cursor#11 [phi:main::@18->print_str#0] -- register_copy
// [87] phi (byte*) print_str::str#12 = (const string) main::str1 [phi:main::@18->print_str#1] -- pbuz1=pbuc1
// [87] phi (byte*) print_str::str#12 = (const byte*) main::str1 [phi:main::@18->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1

@ -112,8 +112,8 @@
(const word*) main::lintab1[(number) $14] = { fill( $14, 0) }
(const word*) main::lintab2[(number) $14] = { fill( $14, 0) }
(const word*) main::lintab3[(number) $14] = { fill( $14, 0) }
(const string) main::str[] = (string) " "
(const string) main::str1[] = (string) " "
(const byte*) main::str[(byte) 4] = (string) " "
(const byte*) main::str1[(byte) 2] = (string) " "
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
(label) memset::@1
(label) memset::@2

@ -19,7 +19,7 @@ main::@return: scope:[main] from main
(void()) print((byte*) print::str)
print: scope:[print] from main
[7] *((byte**) 128) ← (const string) main::str
[7] *((byte**) 128) ← (const byte*) main::str
to:print::@return
print::@return: scope:[print] from print
[8] return

@ -6,7 +6,7 @@ CONTROL FLOW GRAPH SSA
(void()) main()
main: scope:[main] from @2
(byte*) print::str#0 ← (const string) main::str
(byte*) print::str#0 ← (const byte*) main::str
call print
to:main::@1
main::@1: scope:[main] from main
@ -39,7 +39,7 @@ SYMBOL TABLE SSA
(void()) main()
(label) main::@1
(label) main::@return
(const string) main::str[] = (string) "qwe"
(const byte*) main::str[(byte) 4] = (string) "qwe"
(void()) print((byte*) print::str)
(byte*~) print::$0
(label) print::@return
@ -58,7 +58,7 @@ Identical Phi Values (byte*) print::str#1 (byte*) print::str#0
Successful SSA optimization Pass2IdenticalPhiElimination
Constant (const byte*) print::str#0 = main::str
Successful SSA optimization Pass2ConstantIdentification
Constant inlined print::str#0 = (const string) main::str
Constant inlined print::str#0 = (const byte*) main::str
Successful SSA optimization Pass2ConstantInlining
Adding NOP phi() at start of @begin
Adding NOP phi() at start of @2
@ -102,7 +102,7 @@ main::@return: scope:[main] from main
(void()) print((byte*) print::str)
print: scope:[print] from main
[7] *((byte**) 128) ← (const string) main::str
[7] *((byte**) 128) ← (const byte*) main::str
to:print::@return
print::@return: scope:[print] from print
[8] return
@ -156,7 +156,7 @@ main: {
}
// print
print: {
// [7] *((byte**) 128) ← (const string) main::str -- _deref_pptc1=pbuc2
// [7] *((byte**) 128) ← (const byte*) main::str -- _deref_pptc1=pbuc2
lda #<main.str
sta $80
lda #>main.str
@ -170,7 +170,7 @@ print: {
// File Data
REGISTER UPLIFT POTENTIAL REGISTERS
Statement [7] *((byte**) 128) ← (const string) main::str [ ] ( main:2::print:5 [ ] ) always clobbers reg byte a
Statement [7] *((byte**) 128) ← (const byte*) main::str [ ] ( main:2::print:5 [ ] ) always clobbers reg byte a
REGISTER UPLIFT SCOPES
Uplift Scope [main]
@ -219,7 +219,7 @@ main: {
}
// print
print: {
// [7] *((byte**) 128) ← (const string) main::str -- _deref_pptc1=pbuc2
// [7] *((byte**) 128) ← (const byte*) main::str -- _deref_pptc1=pbuc2
lda #<main.str
sta $80
lda #>main.str
@ -260,7 +260,7 @@ FINAL SYMBOL TABLE
(label) @end
(void()) main()
(label) main::@return
(const string) main::str[] = (string) "qwe"
(const byte*) main::str[(byte) 4] = (string) "qwe"
(void()) print((byte*) print::str)
(label) print::@return
(byte*) print::str
@ -299,7 +299,7 @@ main: {
// print
print: {
// *(char**)0x80 = (char*)str
// [7] *((byte**) 128) ← (const string) main::str -- _deref_pptc1=pbuc2
// [7] *((byte**) 128) ← (const byte*) main::str -- _deref_pptc1=pbuc2
lda #<main.str
sta $80
lda #>main.str

@ -3,7 +3,7 @@
(label) @end
(void()) main()
(label) main::@return
(const string) main::str[] = (string) "qwe"
(const byte*) main::str[(byte) 4] = (string) "qwe"
(void()) print((byte*) print::str)
(label) print::@return
(byte*) print::str

@ -48,7 +48,7 @@ main::@return: scope:[main] from main::@4
memcpy: scope:[memcpy] from main::@3 main::@4
[22] (word) memcpy::num#2 ← phi( main::@3/(byte) 7 main::@4/(byte) 5 )
[22] (void*) memcpy::destination#2 ← phi( main::@3/(void*)(const byte*) SCREEN+(byte) $a main::@4/(void*)(const byte*) SCREEN+(byte) $32 )
[22] (void*) memcpy::source#2 ← phi( main::@3/(void*)(const byte*) CAMELOT main::@4/(void*)(const string) main::$5 )
[22] (void*) memcpy::source#2 ← phi( main::@3/(void*)(const byte*) CAMELOT main::@4/(void*)(const byte*) main::$5 )
[23] (byte*) memcpy::src_end#0 ← (byte*)(void*) memcpy::source#2 + (word) memcpy::num#2
[24] (byte*) memcpy::src#4 ← (byte*)(void*) memcpy::source#2
[25] (byte*) memcpy::dst#4 ← (byte*)(void*) memcpy::destination#2

@ -71,7 +71,7 @@ main::@1: scope:[main] from main main::@1
to:main::@2
main::@2: scope:[main] from main::@1
(byte*) main::sc2#0 ← (const byte*) SCREEN+(number) $28
(byte*) main::reigns#0 ← (const string) main::$4
(byte*) main::reigns#0 ← (const byte*) main::$4
(byte) main::i1#0 ← (byte) 0
to:main::@3
main::@3: scope:[main] from main::@2 main::@3
@ -94,7 +94,7 @@ main::@4: scope:[main] from main::@3
to:main::@5
main::@5: scope:[main] from main::@4
(void*) memcpy::destination#1 ← (void*)(const byte*) SCREEN+(number) $32
(void*) memcpy::source#1 ← (void*)(const string) main::$5
(void*) memcpy::source#1 ← (void*)(const byte*) main::$5
(word) memcpy::num#1 ← (number) 5
call memcpy
(void*) memcpy::return#3 ← (void*) memcpy::return#1
@ -121,8 +121,8 @@ SYMBOL TABLE SSA
(void()) main()
(bool~) main::$2
(bool~) main::$3
(const string) main::$4[] = (string) "reigns"
(const string) main::$5[] = (string) "rules"
(const byte*) main::$4[(byte) 7] = (string) "reigns"
(const byte*) main::$5[(byte) 6] = (string) "rules"
(label) main::@1
(label) main::@2
(label) main::@3
@ -288,7 +288,7 @@ Constant inlined memcpy::destination#1 = (void*)(const byte*) SCREEN+(byte) $32
Constant inlined memcpy::source#0 = (void*)(const byte*) CAMELOT
Constant inlined memcpy::num#1 = (byte) 5
Constant inlined memcpy::num#0 = (byte) 7
Constant inlined memcpy::source#1 = (void*)(const string) main::$5
Constant inlined memcpy::source#1 = (void*)(const byte*) main::$5
Constant inlined main::i#0 = (byte) 0
Constant inlined main::i1#0 = (byte) 0
Constant inlined main::$4 = (const byte*) main::reigns#0
@ -390,7 +390,7 @@ main::@return: scope:[main] from main::@4
memcpy: scope:[memcpy] from main::@3 main::@4
[22] (word) memcpy::num#2 ← phi( main::@3/(byte) 7 main::@4/(byte) 5 )
[22] (void*) memcpy::destination#2 ← phi( main::@3/(void*)(const byte*) SCREEN+(byte) $a main::@4/(void*)(const byte*) SCREEN+(byte) $32 )
[22] (void*) memcpy::source#2 ← phi( main::@3/(void*)(const byte*) CAMELOT main::@4/(void*)(const string) main::$5 )
[22] (void*) memcpy::source#2 ← phi( main::@3/(void*)(const byte*) CAMELOT main::@4/(void*)(const byte*) main::$5 )
[23] (byte*) memcpy::src_end#0 ← (byte*)(void*) memcpy::source#2 + (word) memcpy::num#2
[24] (byte*) memcpy::src#4 ← (byte*)(void*) memcpy::source#2
[25] (byte*) memcpy::dst#4 ← (byte*)(void*) memcpy::destination#2
@ -655,7 +655,7 @@ main: {
sta.z memcpy.destination
lda #>SCREEN+$32
sta.z memcpy.destination+1
// [22] phi (void*) memcpy::source#2 = (void*)(const string) main::$5 [phi:main::@4->memcpy#2] -- pvoz1=pvoc1
// [22] phi (void*) memcpy::source#2 = (void*)(const byte*) main::$5 [phi:main::@4->memcpy#2] -- pvoz1=pvoc1
lda #<__5
sta.z memcpy.source
lda #>__5
@ -954,7 +954,7 @@ main: {
sta.z memcpy.destination
lda #>SCREEN+$32
sta.z memcpy.destination+1
// [22] phi (void*) memcpy::source#2 = (void*)(const string) main::$5 [phi:main::@4->memcpy#2] -- pvoz1=pvoc1
// [22] phi (void*) memcpy::source#2 = (void*)(const byte*) main::$5 [phi:main::@4->memcpy#2] -- pvoz1=pvoc1
lda #<__5
sta.z memcpy.source
lda #>__5
@ -1090,7 +1090,7 @@ FINAL SYMBOL TABLE
(const byte*) CAMELOT[] = (string) "camelot"
(const byte*) SCREEN = (byte*) 1024
(void()) main()
(const string) main::$5[] = (string) "rules"
(const byte*) main::$5[(byte) 6] = (string) "rules"
(label) main::@1
(label) main::@2
(label) main::@3
@ -1288,7 +1288,7 @@ main: {
sta.z memcpy.destination
lda #>SCREEN+$32
sta.z memcpy.destination+1
// [22] phi (void*) memcpy::source#2 = (void*)(const string) main::$5 [phi:main::@4->memcpy#2] -- pvoz1=pvoc1
// [22] phi (void*) memcpy::source#2 = (void*)(const byte*) main::$5 [phi:main::@4->memcpy#2] -- pvoz1=pvoc1
lda #<__5
sta.z memcpy.source
lda #>__5

@ -4,7 +4,7 @@
(const byte*) CAMELOT[] = (string) "camelot"
(const byte*) SCREEN = (byte*) 1024
(void()) main()
(const string) main::$5[] = (string) "rules"
(const byte*) main::$5[(byte) 6] = (string) "rules"
(label) main::@1
(label) main::@2
(label) main::@3

@ -1325,6 +1325,7 @@ if() condition always false - eliminating [10] if((const byte) utoa::radix#0==(c
if() condition always false - eliminating [16] if((const byte) utoa::radix#0==(const byte) OCTAL) goto utoa::@3
if() condition always false - eliminating [22] if((const byte) utoa::radix#0==(const byte) BINARY) goto utoa::@4
Successful SSA optimization Pass2ConstantIfs
Consolidated constant strings into (const byte*) DIGITS
Successful SSA optimization Pass2ConstantStringConsolidation
Eliminating unused constant (const byte) BINARY
Eliminating unused constant (const byte) OCTAL

@ -255,7 +255,7 @@ print_char::@return: scope:[print_char] from print_char
(void()) print_str((byte*) print_str::str)
print_str: scope:[print_str] from main::@2 testProcport testProcport::@10 testProcport::@12 testProcport::@14 testProcport::@2 testProcport::@4 testProcport::@6 testProcport::@8
[126] (byte*) print_char_cursor#121 ← phi( main::@2/(byte*) 1024 testProcport/(byte*) print_char_cursor#123 testProcport::@10/(byte*) print_char_cursor#66 testProcport::@12/(byte*) print_char_cursor#66 testProcport::@14/(byte*) print_char_cursor#66 testProcport::@2/(byte*) print_char_cursor#66 testProcport::@4/(byte*) print_char_cursor#66 testProcport::@6/(byte*) print_char_cursor#66 testProcport::@8/(byte*) print_char_cursor#66 )
[126] (byte*) print_str::str#12 ← phi( main::@2/(const string) main::str testProcport/(const string) testProcport::str testProcport::@10/(const string) testProcport::str5 testProcport::@12/(const string) testProcport::str5 testProcport::@14/(const string) testProcport::str5 testProcport::@2/(const string) testProcport::str1 testProcport::@4/(const string) testProcport::str1 testProcport::@6/(const string) testProcport::str3 testProcport::@8/(const string) testProcport::str3 )
[126] (byte*) print_str::str#12 ← phi( main::@2/(const byte*) main::str testProcport/(const byte*) testProcport::str testProcport::@10/(const byte*) testProcport::str5 testProcport::@12/(const byte*) testProcport::str5 testProcport::@14/(const byte*) testProcport::str5 testProcport::@2/(const byte*) testProcport::str1 testProcport::@4/(const byte*) testProcport::str1 testProcport::@6/(const byte*) testProcport::str3 testProcport::@8/(const byte*) testProcport::str3 )
to:print_str::@1
print_str::@1: scope:[print_str] from print_str print_str::@2
[127] (byte*) print_char_cursor#114 ← phi( print_str/(byte*) print_char_cursor#121 print_str::@2/(byte*) print_char_cursor#1 )

@ -251,7 +251,7 @@ main::@7: scope:[main] from main
(byte*) print_line_cursor#38 ← phi( main/(byte*) print_line_cursor#4 )
(byte*) print_line_cursor#5 ← (byte*) print_line_cursor#38
(byte*) print_char_cursor#12 ← (byte*) print_char_cursor#68
(byte*) print_str::str#1 ← (const string) main::str
(byte*) print_str::str#1 ← (const byte*) main::str
call print_str
to:main::@8
main::@8: scope:[main] from main::@7
@ -529,7 +529,7 @@ testProcport: scope:[testProcport] from main::@10 main::@11 main::@12 main::@13
*((const byte*) PROCPORT_DDR) ← (byte) testProcport::ddr#23
*((const byte*) PROCPORT) ← (byte) testProcport::port#23
*((const byte*) PROCPORT_DDR) ← (byte) testProcport::ddr2#23
(byte*) print_str::str#2 ← (const string) testProcport::str
(byte*) print_str::str#2 ← (const byte*) testProcport::str
call print_str
to:testProcport::@1
testProcport::@1: scope:[testProcport] from testProcport
@ -548,7 +548,7 @@ testProcport::@2: scope:[testProcport] from testProcport::@1
(byte) testProcport::port#25 ← phi( testProcport::@1/(byte) testProcport::port#26 )
(byte*) print_char_cursor#96 ← phi( testProcport::@1/(byte*) print_char_cursor#7 )
(byte*) print_char_cursor#40 ← (byte*) print_char_cursor#96
(byte*) print_str::str#3 ← (const string) testProcport::str1
(byte*) print_str::str#3 ← (const byte*) testProcport::str1
call print_str
to:testProcport::@3
testProcport::@3: scope:[testProcport] from testProcport::@2
@ -565,7 +565,7 @@ testProcport::@4: scope:[testProcport] from testProcport::@3
(byte) testProcport::ddr2#25 ← phi( testProcport::@3/(byte) testProcport::ddr2#26 )
(byte*) print_char_cursor#98 ← phi( testProcport::@3/(byte*) print_char_cursor#7 )
(byte*) print_char_cursor#42 ← (byte*) print_char_cursor#98
(byte*) print_str::str#4 ← (const string) testProcport::str2
(byte*) print_str::str#4 ← (const byte*) testProcport::str2
call print_str
to:testProcport::@5
testProcport::@5: scope:[testProcport] from testProcport::@4
@ -580,7 +580,7 @@ testProcport::@6: scope:[testProcport] from testProcport::@5
(byte*) print_line_cursor#83 ← phi( testProcport::@5/(byte*) print_line_cursor#84 )
(byte*) print_char_cursor#100 ← phi( testProcport::@5/(byte*) print_char_cursor#7 )
(byte*) print_char_cursor#44 ← (byte*) print_char_cursor#100
(byte*) print_str::str#5 ← (const string) testProcport::str3
(byte*) print_str::str#5 ← (const byte*) testProcport::str3
call print_str
to:testProcport::@7
testProcport::@7: scope:[testProcport] from testProcport::@6
@ -594,7 +594,7 @@ testProcport::@8: scope:[testProcport] from testProcport::@7
(byte*) print_line_cursor#81 ← phi( testProcport::@7/(byte*) print_line_cursor#82 )
(byte*) print_char_cursor#102 ← phi( testProcport::@7/(byte*) print_char_cursor#7 )
(byte*) print_char_cursor#46 ← (byte*) print_char_cursor#102
(byte*) print_str::str#6 ← (const string) testProcport::str4
(byte*) print_str::str#6 ← (const byte*) testProcport::str4
call print_str
to:testProcport::@9
testProcport::@9: scope:[testProcport] from testProcport::@8
@ -608,7 +608,7 @@ testProcport::@10: scope:[testProcport] from testProcport::@9
(byte*) print_line_cursor#79 ← phi( testProcport::@9/(byte*) print_line_cursor#80 )
(byte*) print_char_cursor#104 ← phi( testProcport::@9/(byte*) print_char_cursor#7 )
(byte*) print_char_cursor#48 ← (byte*) print_char_cursor#104
(byte*) print_str::str#7 ← (const string) testProcport::str5
(byte*) print_str::str#7 ← (const byte*) testProcport::str5
call print_str
to:testProcport::@11
testProcport::@11: scope:[testProcport] from testProcport::@10
@ -622,7 +622,7 @@ testProcport::@12: scope:[testProcport] from testProcport::@11
(byte*) print_line_cursor#77 ← phi( testProcport::@11/(byte*) print_line_cursor#78 )
(byte*) print_char_cursor#106 ← phi( testProcport::@11/(byte*) print_char_cursor#7 )
(byte*) print_char_cursor#50 ← (byte*) print_char_cursor#106
(byte*) print_str::str#8 ← (const string) testProcport::str6
(byte*) print_str::str#8 ← (const byte*) testProcport::str6
call print_str
to:testProcport::@13
testProcport::@13: scope:[testProcport] from testProcport::@12
@ -636,7 +636,7 @@ testProcport::@14: scope:[testProcport] from testProcport::@13
(byte*) print_line_cursor#75 ← phi( testProcport::@13/(byte*) print_line_cursor#76 )
(byte*) print_char_cursor#108 ← phi( testProcport::@13/(byte*) print_char_cursor#7 )
(byte*) print_char_cursor#52 ← (byte*) print_char_cursor#108
(byte*) print_str::str#9 ← (const string) testProcport::str7
(byte*) print_str::str#9 ← (const byte*) testProcport::str7
call print_str
to:testProcport::@15
testProcport::@15: scope:[testProcport] from testProcport::@14
@ -731,7 +731,7 @@ SYMBOL TABLE SSA
(label) main::@8
(label) main::@9
(label) main::@return
(const string) main::str[] = (string) "ddr port ddr2 $00 $01 $a000 $d000 $e000"
(const byte*) main::str[(byte) $28] = (string) "ddr port ddr2 $00 $01 $a000 $d000 $e000"
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
(bool~) memset::$0
(bool~) memset::$1
@ -1150,14 +1150,14 @@ SYMBOL TABLE SSA
(byte) testProcport::port#7
(byte) testProcport::port#8
(byte) testProcport::port#9
(const string) testProcport::str[] = (string) " "
(const string) testProcport::str1[] = (string) " "
(const string) testProcport::str2[] = (string) " "
(const string) testProcport::str3[] = (string) " "
(const string) testProcport::str4[] = (string) " "
(const string) testProcport::str5[] = (string) " "
(const string) testProcport::str6[] = (string) " "
(const string) testProcport::str7[] = (string) " "
(const byte*) testProcport::str[(byte) 2] = (string) " "
(const byte*) testProcport::str1[(byte) 4] = (string) " "
(const byte*) testProcport::str2[(byte) 4] = (string) " "
(const byte*) testProcport::str3[(byte) 3] = (string) " "
(const byte*) testProcport::str4[(byte) 3] = (string) " "
(const byte*) testProcport::str5[(byte) 5] = (string) " "
(const byte*) testProcport::str6[(byte) 5] = (string) " "
(const byte*) testProcport::str7[(byte) 5] = (string) " "
Adding number conversion cast (unumber) 0 in (bool~) memset::$0 ← (word) memset::num#1 > (number) 0
Adding number conversion cast (unumber) 0 in (bool~) print_str::$0 ← (number) 0 != *((byte*) print_str::str#10)
@ -1722,6 +1722,9 @@ Successful SSA optimization Pass2ConstantIdentification
if() condition always false - eliminating [3] if((const word) memset::num#0<=(byte) 0) goto memset::@1
if() condition always true - replacing block destination [266] if(true) goto main::@2
Successful SSA optimization Pass2ConstantIfs
Consolidated constant strings into (const byte*) testProcport::str1
Consolidated constant strings into (const byte*) testProcport::str3
Consolidated constant strings into (const byte*) testProcport::str5
Successful SSA optimization Pass2ConstantStringConsolidation
Eliminating unused constant (const void*) memset::return#2
Successful SSA optimization PassNEliminateUnusedVars
@ -1826,16 +1829,16 @@ Constant inlined testProcport::port#19 = (byte) $55
Constant inlined testProcport::port#1 = (const byte) PROCPORT_RAM_IO
Constant inlined testProcport::port#2 = (const byte) PROCPORT_RAM_CHARROM
Constant inlined print_line_cursor#0 = (byte*) 1024
Constant inlined print_str::str#9 = (const string) testProcport::str5
Constant inlined print_str::str#4 = (const string) testProcport::str1
Constant inlined print_str::str#3 = (const string) testProcport::str1
Constant inlined print_str::str#2 = (const string) testProcport::str
Constant inlined print_str::str#9 = (const byte*) testProcport::str5
Constant inlined print_str::str#4 = (const byte*) testProcport::str1
Constant inlined print_str::str#3 = (const byte*) testProcport::str1
Constant inlined print_str::str#2 = (const byte*) testProcport::str
Constant inlined memset::dst#0 = (byte*)(const void*) memset::str#0
Constant inlined print_str::str#1 = (const string) main::str
Constant inlined print_str::str#8 = (const string) testProcport::str5
Constant inlined print_str::str#7 = (const string) testProcport::str5
Constant inlined print_str::str#6 = (const string) testProcport::str3
Constant inlined print_str::str#5 = (const string) testProcport::str3
Constant inlined print_str::str#1 = (const byte*) main::str
Constant inlined print_str::str#8 = (const byte*) testProcport::str5
Constant inlined print_str::str#7 = (const byte*) testProcport::str5
Constant inlined print_str::str#6 = (const byte*) testProcport::str3
Constant inlined print_str::str#5 = (const byte*) testProcport::str3
Constant inlined testProcport::ddr#6 = (byte) $ff
Constant inlined testProcport::ddr#7 = (byte) $ff
Constant inlined testProcport::ddr#8 = (byte) $ff
@ -1851,18 +1854,18 @@ Constant inlined testProcport::ddr2#17 = (byte) $aa
Constant inlined testProcport::ddr2#18 = (byte) 0
Constant inlined testProcport::ddr#16 = (byte) $aa
Constant inlined testProcport::ddr#15 = (byte) $aa
Constant inlined testProcport::str2 = (const string) testProcport::str1
Constant inlined testProcport::str2 = (const byte*) testProcport::str1
Constant inlined memset::$2 = (byte*)(const void*) memset::str#0
Constant inlined testProcport::ddr#14 = (byte) $55
Constant inlined testProcport::ddr#13 = (byte) $55
Constant inlined testProcport::str4 = (const string) testProcport::str3
Constant inlined testProcport::str4 = (const byte*) testProcport::str3
Constant inlined testProcport::ddr#12 = (byte) $55
Constant inlined testProcport::ddr2#22 = (byte) $17
Constant inlined testProcport::ddr#11 = (byte) $ff
Constant inlined testProcport::str6 = (const string) testProcport::str5
Constant inlined testProcport::str6 = (const byte*) testProcport::str5
Constant inlined testProcport::ddr#10 = (byte) $ff
Constant inlined testProcport::ddr2#20 = (byte) $15
Constant inlined testProcport::str7 = (const string) testProcport::str5
Constant inlined testProcport::str7 = (const byte*) testProcport::str5
Constant inlined testProcport::ddr2#21 = (byte) $17
Constant inlined testProcport::port#14 = (byte) $ff
Constant inlined testProcport::port#15 = (byte) 0
@ -2312,7 +2315,7 @@ print_char::@return: scope:[print_char] from print_char
(void()) print_str((byte*) print_str::str)
print_str: scope:[print_str] from main::@2 testProcport testProcport::@10 testProcport::@12 testProcport::@14 testProcport::@2 testProcport::@4 testProcport::@6 testProcport::@8
[126] (byte*) print_char_cursor#121 ← phi( main::@2/(byte*) 1024 testProcport/(byte*) print_char_cursor#123 testProcport::@10/(byte*) print_char_cursor#66 testProcport::@12/(byte*) print_char_cursor#66 testProcport::@14/(byte*) print_char_cursor#66 testProcport::@2/(byte*) print_char_cursor#66 testProcport::@4/(byte*) print_char_cursor#66 testProcport::@6/(byte*) print_char_cursor#66 testProcport::@8/(byte*) print_char_cursor#66 )
[126] (byte*) print_str::str#12 ← phi( main::@2/(const string) main::str testProcport/(const string) testProcport::str testProcport::@10/(const string) testProcport::str5 testProcport::@12/(const string) testProcport::str5 testProcport::@14/(const string) testProcport::str5 testProcport::@2/(const string) testProcport::str1 testProcport::@4/(const string) testProcport::str1 testProcport::@6/(const string) testProcport::str3 testProcport::@8/(const string) testProcport::str3 )
[126] (byte*) print_str::str#12 ← phi( main::@2/(const byte*) main::str testProcport/(const byte*) testProcport::str testProcport::@10/(const byte*) testProcport::str5 testProcport::@12/(const byte*) testProcport::str5 testProcport::@14/(const byte*) testProcport::str5 testProcport::@2/(const byte*) testProcport::str1 testProcport::@4/(const byte*) testProcport::str1 testProcport::@6/(const byte*) testProcport::str3 testProcport::@8/(const byte*) testProcport::str3 )
to:print_str::@1
print_str::@1: scope:[print_str] from print_str print_str::@2
[127] (byte*) print_char_cursor#114 ← phi( print_str/(byte*) print_char_cursor#121 print_str::@2/(byte*) print_char_cursor#1 )
@ -2540,7 +2543,7 @@ main: {
sta.z print_char_cursor
lda #>$400
sta.z print_char_cursor+1
// [126] phi (byte*) print_str::str#12 = (const string) main::str [phi:main::@2->print_str#1] -- pbuz1=pbuc1
// [126] phi (byte*) print_str::str#12 = (const byte*) main::str [phi:main::@2->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -3027,7 +3030,7 @@ testProcport: {
// [126] phi from testProcport to print_str [phi:testProcport->print_str]
print_str_from_testProcport:
// [126] phi (byte*) print_char_cursor#121 = (byte*) print_char_cursor#123 [phi:testProcport->print_str#0] -- register_copy
// [126] phi (byte*) print_str::str#12 = (const string) testProcport::str [phi:testProcport->print_str#1] -- pbuz1=pbuc1
// [126] phi (byte*) print_str::str#12 = (const byte*) testProcport::str [phi:testProcport->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -3053,7 +3056,7 @@ testProcport: {
// [126] phi from testProcport::@2 to print_str [phi:testProcport::@2->print_str]
print_str_from___b2:
// [126] phi (byte*) print_char_cursor#121 = (byte*) print_char_cursor#66 [phi:testProcport::@2->print_str#0] -- register_copy
// [126] phi (byte*) print_str::str#12 = (const string) testProcport::str1 [phi:testProcport::@2->print_str#1] -- pbuz1=pbuc1
// [126] phi (byte*) print_str::str#12 = (const byte*) testProcport::str1 [phi:testProcport::@2->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -3079,7 +3082,7 @@ testProcport: {
// [126] phi from testProcport::@4 to print_str [phi:testProcport::@4->print_str]
print_str_from___b4:
// [126] phi (byte*) print_char_cursor#121 = (byte*) print_char_cursor#66 [phi:testProcport::@4->print_str#0] -- register_copy
// [126] phi (byte*) print_str::str#12 = (const string) testProcport::str1 [phi:testProcport::@4->print_str#1] -- pbuz1=pbuc1
// [126] phi (byte*) print_str::str#12 = (const byte*) testProcport::str1 [phi:testProcport::@4->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -3105,7 +3108,7 @@ testProcport: {
// [126] phi from testProcport::@6 to print_str [phi:testProcport::@6->print_str]
print_str_from___b6:
// [126] phi (byte*) print_char_cursor#121 = (byte*) print_char_cursor#66 [phi:testProcport::@6->print_str#0] -- register_copy
// [126] phi (byte*) print_str::str#12 = (const string) testProcport::str3 [phi:testProcport::@6->print_str#1] -- pbuz1=pbuc1
// [126] phi (byte*) print_str::str#12 = (const byte*) testProcport::str3 [phi:testProcport::@6->print_str#1] -- pbuz1=pbuc1
lda #<str3
sta.z print_str.str
lda #>str3
@ -3131,7 +3134,7 @@ testProcport: {
// [126] phi from testProcport::@8 to print_str [phi:testProcport::@8->print_str]
print_str_from___b8:
// [126] phi (byte*) print_char_cursor#121 = (byte*) print_char_cursor#66 [phi:testProcport::@8->print_str#0] -- register_copy
// [126] phi (byte*) print_str::str#12 = (const string) testProcport::str3 [phi:testProcport::@8->print_str#1] -- pbuz1=pbuc1
// [126] phi (byte*) print_str::str#12 = (const byte*) testProcport::str3 [phi:testProcport::@8->print_str#1] -- pbuz1=pbuc1
lda #<str3
sta.z print_str.str
lda #>str3
@ -3157,7 +3160,7 @@ testProcport: {
// [126] phi from testProcport::@10 to print_str [phi:testProcport::@10->print_str]
print_str_from___b10:
// [126] phi (byte*) print_char_cursor#121 = (byte*) print_char_cursor#66 [phi:testProcport::@10->print_str#0] -- register_copy
// [126] phi (byte*) print_str::str#12 = (const string) testProcport::str5 [phi:testProcport::@10->print_str#1] -- pbuz1=pbuc1
// [126] phi (byte*) print_str::str#12 = (const byte*) testProcport::str5 [phi:testProcport::@10->print_str#1] -- pbuz1=pbuc1
lda #<str5
sta.z print_str.str
lda #>str5
@ -3183,7 +3186,7 @@ testProcport: {
// [126] phi from testProcport::@12 to print_str [phi:testProcport::@12->print_str]
print_str_from___b12:
// [126] phi (byte*) print_char_cursor#121 = (byte*) print_char_cursor#66 [phi:testProcport::@12->print_str#0] -- register_copy
// [126] phi (byte*) print_str::str#12 = (const string) testProcport::str5 [phi:testProcport::@12->print_str#1] -- pbuz1=pbuc1
// [126] phi (byte*) print_str::str#12 = (const byte*) testProcport::str5 [phi:testProcport::@12->print_str#1] -- pbuz1=pbuc1
lda #<str5
sta.z print_str.str
lda #>str5
@ -3209,7 +3212,7 @@ testProcport: {
// [126] phi from testProcport::@14 to print_str [phi:testProcport::@14->print_str]
print_str_from___b14:
// [126] phi (byte*) print_char_cursor#121 = (byte*) print_char_cursor#66 [phi:testProcport::@14->print_str#0] -- register_copy
// [126] phi (byte*) print_str::str#12 = (const string) testProcport::str5 [phi:testProcport::@14->print_str#1] -- pbuz1=pbuc1
// [126] phi (byte*) print_str::str#12 = (const byte*) testProcport::str5 [phi:testProcport::@14->print_str#1] -- pbuz1=pbuc1
lda #<str5
sta.z print_str.str
lda #>str5
@ -3645,7 +3648,7 @@ main: {
sta.z print_char_cursor
lda #>$400
sta.z print_char_cursor+1
// [126] phi (byte*) print_str::str#12 = (const string) main::str [phi:main::@2->print_str#1] -- pbuz1=pbuc1
// [126] phi (byte*) print_str::str#12 = (const byte*) main::str [phi:main::@2->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -4107,7 +4110,7 @@ testProcport: {
// [126] phi from testProcport to print_str [phi:testProcport->print_str]
print_str_from_testProcport:
// [126] phi (byte*) print_char_cursor#121 = (byte*) print_char_cursor#123 [phi:testProcport->print_str#0] -- register_copy
// [126] phi (byte*) print_str::str#12 = (const string) testProcport::str [phi:testProcport->print_str#1] -- pbuz1=pbuc1
// [126] phi (byte*) print_str::str#12 = (const byte*) testProcport::str [phi:testProcport->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -4131,7 +4134,7 @@ testProcport: {
// [126] phi from testProcport::@2 to print_str [phi:testProcport::@2->print_str]
print_str_from___b2:
// [126] phi (byte*) print_char_cursor#121 = (byte*) print_char_cursor#66 [phi:testProcport::@2->print_str#0] -- register_copy
// [126] phi (byte*) print_str::str#12 = (const string) testProcport::str1 [phi:testProcport::@2->print_str#1] -- pbuz1=pbuc1
// [126] phi (byte*) print_str::str#12 = (const byte*) testProcport::str1 [phi:testProcport::@2->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -4156,7 +4159,7 @@ testProcport: {
// [126] phi from testProcport::@4 to print_str [phi:testProcport::@4->print_str]
print_str_from___b4:
// [126] phi (byte*) print_char_cursor#121 = (byte*) print_char_cursor#66 [phi:testProcport::@4->print_str#0] -- register_copy
// [126] phi (byte*) print_str::str#12 = (const string) testProcport::str1 [phi:testProcport::@4->print_str#1] -- pbuz1=pbuc1
// [126] phi (byte*) print_str::str#12 = (const byte*) testProcport::str1 [phi:testProcport::@4->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -4181,7 +4184,7 @@ testProcport: {
// [126] phi from testProcport::@6 to print_str [phi:testProcport::@6->print_str]
print_str_from___b6:
// [126] phi (byte*) print_char_cursor#121 = (byte*) print_char_cursor#66 [phi:testProcport::@6->print_str#0] -- register_copy
// [126] phi (byte*) print_str::str#12 = (const string) testProcport::str3 [phi:testProcport::@6->print_str#1] -- pbuz1=pbuc1
// [126] phi (byte*) print_str::str#12 = (const byte*) testProcport::str3 [phi:testProcport::@6->print_str#1] -- pbuz1=pbuc1
lda #<str3
sta.z print_str.str
lda #>str3
@ -4206,7 +4209,7 @@ testProcport: {
// [126] phi from testProcport::@8 to print_str [phi:testProcport::@8->print_str]
print_str_from___b8:
// [126] phi (byte*) print_char_cursor#121 = (byte*) print_char_cursor#66 [phi:testProcport::@8->print_str#0] -- register_copy
// [126] phi (byte*) print_str::str#12 = (const string) testProcport::str3 [phi:testProcport::@8->print_str#1] -- pbuz1=pbuc1
// [126] phi (byte*) print_str::str#12 = (const byte*) testProcport::str3 [phi:testProcport::@8->print_str#1] -- pbuz1=pbuc1
lda #<str3
sta.z print_str.str
lda #>str3
@ -4231,7 +4234,7 @@ testProcport: {
// [126] phi from testProcport::@10 to print_str [phi:testProcport::@10->print_str]
print_str_from___b10:
// [126] phi (byte*) print_char_cursor#121 = (byte*) print_char_cursor#66 [phi:testProcport::@10->print_str#0] -- register_copy
// [126] phi (byte*) print_str::str#12 = (const string) testProcport::str5 [phi:testProcport::@10->print_str#1] -- pbuz1=pbuc1
// [126] phi (byte*) print_str::str#12 = (const byte*) testProcport::str5 [phi:testProcport::@10->print_str#1] -- pbuz1=pbuc1
lda #<str5
sta.z print_str.str
lda #>str5
@ -4256,7 +4259,7 @@ testProcport: {
// [126] phi from testProcport::@12 to print_str [phi:testProcport::@12->print_str]
print_str_from___b12:
// [126] phi (byte*) print_char_cursor#121 = (byte*) print_char_cursor#66 [phi:testProcport::@12->print_str#0] -- register_copy
// [126] phi (byte*) print_str::str#12 = (const string) testProcport::str5 [phi:testProcport::@12->print_str#1] -- pbuz1=pbuc1
// [126] phi (byte*) print_str::str#12 = (const byte*) testProcport::str5 [phi:testProcport::@12->print_str#1] -- pbuz1=pbuc1
lda #<str5
sta.z print_str.str
lda #>str5
@ -4281,7 +4284,7 @@ testProcport: {
// [126] phi from testProcport::@14 to print_str [phi:testProcport::@14->print_str]
print_str_from___b14:
// [126] phi (byte*) print_char_cursor#121 = (byte*) print_char_cursor#66 [phi:testProcport::@14->print_str#0] -- register_copy
// [126] phi (byte*) print_str::str#12 = (const string) testProcport::str5 [phi:testProcport::@14->print_str#1] -- pbuz1=pbuc1
// [126] phi (byte*) print_str::str#12 = (const byte*) testProcport::str5 [phi:testProcport::@14->print_str#1] -- pbuz1=pbuc1
lda #<str5
sta.z print_str.str
lda #>str5
@ -4789,7 +4792,7 @@ FINAL SYMBOL TABLE
(label) main::@7
(label) main::@8
(label) main::@9
(const string) main::str[] = (string) "ddr port ddr2 $00 $01 $a000 $d000 $e000"
(const byte*) main::str[(byte) $28] = (string) "ddr port ddr2 $00 $01 $a000 $d000 $e000"
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
(label) memset::@1
(label) memset::@2
@ -4878,10 +4881,10 @@ FINAL SYMBOL TABLE
(byte) testProcport::ddr2#23 ddr2 zp[1]:3 0.25
(byte) testProcport::port
(byte) testProcport::port#23 port zp[1]:2 0.3333333333333333
(const string) testProcport::str[] = (string) " "
(const string) testProcport::str1[] = (string) " "
(const string) testProcport::str3[] = (string) " "
(const string) testProcport::str5[] = (string) " "
(const byte*) testProcport::str[(byte) 2] = (string) " "
(const byte*) testProcport::str1[(byte) 4] = (string) " "
(const byte*) testProcport::str3[(byte) 3] = (string) " "
(const byte*) testProcport::str5[(byte) 5] = (string) " "
reg byte x [ testProcport::ddr#23 ]
zp[1]:2 [ testProcport::port#23 ]
@ -4987,7 +4990,7 @@ main: {
sta.z print_char_cursor
lda #>$400
sta.z print_char_cursor+1
// [126] phi (byte*) print_str::str#12 = (const string) main::str [phi:main::@2->print_str#1] -- pbuz1=pbuc1
// [126] phi (byte*) print_str::str#12 = (const byte*) main::str [phi:main::@2->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -5375,7 +5378,7 @@ testProcport: {
// [75] call print_str
// [126] phi from testProcport to print_str [phi:testProcport->print_str]
// [126] phi (byte*) print_char_cursor#121 = (byte*) print_char_cursor#123 [phi:testProcport->print_str#0] -- register_copy
// [126] phi (byte*) print_str::str#12 = (const string) testProcport::str [phi:testProcport->print_str#1] -- pbuz1=pbuc1
// [126] phi (byte*) print_str::str#12 = (const byte*) testProcport::str [phi:testProcport->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -5394,7 +5397,7 @@ testProcport: {
// [79] call print_str
// [126] phi from testProcport::@2 to print_str [phi:testProcport::@2->print_str]
// [126] phi (byte*) print_char_cursor#121 = (byte*) print_char_cursor#66 [phi:testProcport::@2->print_str#0] -- register_copy
// [126] phi (byte*) print_str::str#12 = (const string) testProcport::str1 [phi:testProcport::@2->print_str#1] -- pbuz1=pbuc1
// [126] phi (byte*) print_str::str#12 = (const byte*) testProcport::str1 [phi:testProcport::@2->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -5414,7 +5417,7 @@ testProcport: {
// [83] call print_str
// [126] phi from testProcport::@4 to print_str [phi:testProcport::@4->print_str]
// [126] phi (byte*) print_char_cursor#121 = (byte*) print_char_cursor#66 [phi:testProcport::@4->print_str#0] -- register_copy
// [126] phi (byte*) print_str::str#12 = (const string) testProcport::str1 [phi:testProcport::@4->print_str#1] -- pbuz1=pbuc1
// [126] phi (byte*) print_str::str#12 = (const byte*) testProcport::str1 [phi:testProcport::@4->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -5434,7 +5437,7 @@ testProcport: {
// [87] call print_str
// [126] phi from testProcport::@6 to print_str [phi:testProcport::@6->print_str]
// [126] phi (byte*) print_char_cursor#121 = (byte*) print_char_cursor#66 [phi:testProcport::@6->print_str#0] -- register_copy
// [126] phi (byte*) print_str::str#12 = (const string) testProcport::str3 [phi:testProcport::@6->print_str#1] -- pbuz1=pbuc1
// [126] phi (byte*) print_str::str#12 = (const byte*) testProcport::str3 [phi:testProcport::@6->print_str#1] -- pbuz1=pbuc1
lda #<str3
sta.z print_str.str
lda #>str3
@ -5454,7 +5457,7 @@ testProcport: {
// [91] call print_str
// [126] phi from testProcport::@8 to print_str [phi:testProcport::@8->print_str]
// [126] phi (byte*) print_char_cursor#121 = (byte*) print_char_cursor#66 [phi:testProcport::@8->print_str#0] -- register_copy
// [126] phi (byte*) print_str::str#12 = (const string) testProcport::str3 [phi:testProcport::@8->print_str#1] -- pbuz1=pbuc1
// [126] phi (byte*) print_str::str#12 = (const byte*) testProcport::str3 [phi:testProcport::@8->print_str#1] -- pbuz1=pbuc1
lda #<str3
sta.z print_str.str
lda #>str3
@ -5474,7 +5477,7 @@ testProcport: {
// [95] call print_str
// [126] phi from testProcport::@10 to print_str [phi:testProcport::@10->print_str]
// [126] phi (byte*) print_char_cursor#121 = (byte*) print_char_cursor#66 [phi:testProcport::@10->print_str#0] -- register_copy
// [126] phi (byte*) print_str::str#12 = (const string) testProcport::str5 [phi:testProcport::@10->print_str#1] -- pbuz1=pbuc1
// [126] phi (byte*) print_str::str#12 = (const byte*) testProcport::str5 [phi:testProcport::@10->print_str#1] -- pbuz1=pbuc1
lda #<str5
sta.z print_str.str
lda #>str5
@ -5494,7 +5497,7 @@ testProcport: {
// [99] call print_str
// [126] phi from testProcport::@12 to print_str [phi:testProcport::@12->print_str]
// [126] phi (byte*) print_char_cursor#121 = (byte*) print_char_cursor#66 [phi:testProcport::@12->print_str#0] -- register_copy
// [126] phi (byte*) print_str::str#12 = (const string) testProcport::str5 [phi:testProcport::@12->print_str#1] -- pbuz1=pbuc1
// [126] phi (byte*) print_str::str#12 = (const byte*) testProcport::str5 [phi:testProcport::@12->print_str#1] -- pbuz1=pbuc1
lda #<str5
sta.z print_str.str
lda #>str5
@ -5514,7 +5517,7 @@ testProcport: {
// [103] call print_str
// [126] phi from testProcport::@14 to print_str [phi:testProcport::@14->print_str]
// [126] phi (byte*) print_char_cursor#121 = (byte*) print_char_cursor#66 [phi:testProcport::@14->print_str#0] -- register_copy
// [126] phi (byte*) print_str::str#12 = (const string) testProcport::str5 [phi:testProcport::@14->print_str#1] -- pbuz1=pbuc1
// [126] phi (byte*) print_str::str#12 = (const byte*) testProcport::str5 [phi:testProcport::@14->print_str#1] -- pbuz1=pbuc1
lda #<str5
sta.z print_str.str
lda #>str5

@ -45,7 +45,7 @@
(label) main::@7
(label) main::@8
(label) main::@9
(const string) main::str[] = (string) "ddr port ddr2 $00 $01 $a000 $d000 $e000"
(const byte*) main::str[(byte) $28] = (string) "ddr port ddr2 $00 $01 $a000 $d000 $e000"
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
(label) memset::@1
(label) memset::@2
@ -134,10 +134,10 @@
(byte) testProcport::ddr2#23 ddr2 zp[1]:3 0.25
(byte) testProcport::port
(byte) testProcport::port#23 port zp[1]:2 0.3333333333333333
(const string) testProcport::str[] = (string) " "
(const string) testProcport::str1[] = (string) " "
(const string) testProcport::str3[] = (string) " "
(const string) testProcport::str5[] = (string) " "
(const byte*) testProcport::str[(byte) 2] = (string) " "
(const byte*) testProcport::str1[(byte) 4] = (string) " "
(const byte*) testProcport::str3[(byte) 3] = (string) " "
(const byte*) testProcport::str5[(byte) 5] = (string) " "
reg byte x [ testProcport::ddr#23 ]
zp[1]:2 [ testProcport::port#23 ]

@ -163,7 +163,7 @@ myprintf: scope:[myprintf] from main::@11 main::@6
[78] (word) myprintf::w3#8 ← phi( main::@11/(word) myprintf::w3#1 main::@6/(word) myprintf::w3#0 )
[78] (word) myprintf::w2#8 ← phi( main::@11/(word) myprintf::w2#1 main::@6/(word) myprintf::w2#0 )
[78] (word) myprintf::w1#7 ← phi( main::@11/(word) myprintf::w1#1 main::@6/(word) myprintf::w1#0 )
[78] (byte*) myprintf::str#6 ← phi( main::@11/(const string) main::str1 main::@6/(const string) main::str )
[78] (byte*) myprintf::str#6 ← phi( main::@11/(const byte*) main::str1 main::@6/(const byte*) main::str )
to:myprintf::@1
myprintf::@1: scope:[myprintf] from myprintf myprintf::@32
[79] (byte) myprintf::bLeadZero#11 ← phi( myprintf/(byte) 0 myprintf::@32/(byte) myprintf::bLeadZero#20 )

@ -1206,7 +1206,7 @@ main::@6: scope:[main] from main::@4
(word~) main::$5 ← ((word)) *((const byte*) TIMELO)
(word~) main::$6 ← (word~) main::$4 + (word~) main::$5
(byte*) myprintf::dst#0 ← (const byte*) strTemp
(byte*) myprintf::str#1 ← (const string) main::str
(byte*) myprintf::str#1 ← (const byte*) main::str
(word) myprintf::w1#0 ← (word) main::u#6
(word) myprintf::w2#0 ← (word) main::v#3
(word) myprintf::w3#0 ← (word~) main::$6
@ -1267,7 +1267,7 @@ main::@18: scope:[main] from main::@16
(word~) main::$14 ← ((word)) *((const byte*) TIMELO)
(word~) main::$15 ← (word~) main::$13 + (word~) main::$14
(byte*) myprintf::dst#1 ← (const byte*) strTemp
(byte*) myprintf::str#2 ← (const string) main::str1
(byte*) myprintf::str#2 ← (const byte*) main::str1
(word) myprintf::w1#1 ← (word) main::u#9
(word) myprintf::w2#1 ← (word) main::v#4
(word) myprintf::w3#1 ← (word~) main::$15
@ -1500,8 +1500,8 @@ SYMBOL TABLE SSA
(signed word) main::return#1
(signed word) main::return#2
(signed word) main::return#3
(const string) main::str[] = (string) "200 DIV16U: %5d,%4d IN %04d FRAMESm"
(const string) main::str1[] = (string) "200 DIV10 : %5d,%4d IN %04d FRAMESm"
(const byte*) main::str[(byte) $24] = (string) "200 DIV16U: %5d,%4d IN %04d FRAMESm"
(const byte*) main::str1[(byte) $24] = (string) "200 DIV10 : %5d,%4d IN %04d FRAMESm"
(word) main::u
(word) main::u#0
(word) main::u#1
@ -3207,9 +3207,9 @@ Constant inlined append::dst#0 = (const byte*) myprintf::buf6
Constant inlined divr16u::i#0 = (byte) 0
Constant inlined myprintf::$29 = (byte) $57
Constant inlined utoa::dst#0 = ++(const byte*) myprintf::buf6
Constant inlined myprintf::str#1 = (const string) main::str
Constant inlined myprintf::str#1 = (const byte*) main::str
Constant inlined myprintf::bLeadZero#0 = (byte) 0
Constant inlined myprintf::str#2 = (const string) main::str1
Constant inlined myprintf::str#2 = (const byte*) main::str1
Constant inlined myprintf::bLeadZero#1 = (byte) 1
Constant inlined myprintf::digit#1 = (byte) 0
Constant inlined myprintf::bDigits#31 = (byte) 1
@ -3668,7 +3668,7 @@ myprintf: scope:[myprintf] from main::@11 main::@6
[78] (word) myprintf::w3#8 ← phi( main::@11/(word) myprintf::w3#1 main::@6/(word) myprintf::w3#0 )
[78] (word) myprintf::w2#8 ← phi( main::@11/(word) myprintf::w2#1 main::@6/(word) myprintf::w2#0 )
[78] (word) myprintf::w1#7 ← phi( main::@11/(word) myprintf::w1#1 main::@6/(word) myprintf::w1#0 )
[78] (byte*) myprintf::str#6 ← phi( main::@11/(const string) main::str1 main::@6/(const string) main::str )
[78] (byte*) myprintf::str#6 ← phi( main::@11/(const byte*) main::str1 main::@6/(const byte*) main::str )
to:myprintf::@1
myprintf::@1: scope:[myprintf] from myprintf myprintf::@32
[79] (byte) myprintf::bLeadZero#11 ← phi( myprintf/(byte) 0 myprintf::@32/(byte) myprintf::bLeadZero#20 )
@ -4554,7 +4554,7 @@ main: {
// [78] phi (word) myprintf::w3#8 = (word) myprintf::w3#1 [phi:main::@11->myprintf#0] -- register_copy
// [78] phi (word) myprintf::w2#8 = (word) myprintf::w2#1 [phi:main::@11->myprintf#1] -- register_copy
// [78] phi (word) myprintf::w1#7 = (word) myprintf::w1#1 [phi:main::@11->myprintf#2] -- register_copy
// [78] phi (byte*) myprintf::str#6 = (const string) main::str1 [phi:main::@11->myprintf#3] -- pbuz1=pbuc1
// [78] phi (byte*) myprintf::str#6 = (const byte*) main::str1 [phi:main::@11->myprintf#3] -- pbuz1=pbuc1
lda #<str1
sta.z myprintf.str
lda #>str1
@ -4674,7 +4674,7 @@ main: {
// [78] phi (word) myprintf::w3#8 = (word) myprintf::w3#0 [phi:main::@6->myprintf#0] -- register_copy
// [78] phi (word) myprintf::w2#8 = (word) myprintf::w2#0 [phi:main::@6->myprintf#1] -- register_copy
// [78] phi (word) myprintf::w1#7 = (word) myprintf::w1#0 [phi:main::@6->myprintf#2] -- register_copy
// [78] phi (byte*) myprintf::str#6 = (const string) main::str [phi:main::@6->myprintf#3] -- pbuz1=pbuc1
// [78] phi (byte*) myprintf::str#6 = (const byte*) main::str [phi:main::@6->myprintf#3] -- pbuz1=pbuc1
lda #<str
sta.z myprintf.str
lda #>str
@ -6540,7 +6540,7 @@ main: {
// [78] phi (word) myprintf::w3#8 = (word) myprintf::w3#1 [phi:main::@11->myprintf#0] -- register_copy
// [78] phi (word) myprintf::w2#8 = (word) myprintf::w2#1 [phi:main::@11->myprintf#1] -- register_copy
// [78] phi (word) myprintf::w1#7 = (word) myprintf::w1#1 [phi:main::@11->myprintf#2] -- register_copy
// [78] phi (byte*) myprintf::str#6 = (const string) main::str1 [phi:main::@11->myprintf#3] -- pbuz1=pbuc1
// [78] phi (byte*) myprintf::str#6 = (const byte*) main::str1 [phi:main::@11->myprintf#3] -- pbuz1=pbuc1
lda #<str1
sta.z myprintf.str
lda #>str1
@ -6640,7 +6640,7 @@ main: {
// [78] phi (word) myprintf::w3#8 = (word) myprintf::w3#0 [phi:main::@6->myprintf#0] -- register_copy
// [78] phi (word) myprintf::w2#8 = (word) myprintf::w2#0 [phi:main::@6->myprintf#1] -- register_copy
// [78] phi (word) myprintf::w1#7 = (word) myprintf::w1#0 [phi:main::@6->myprintf#2] -- register_copy
// [78] phi (byte*) myprintf::str#6 = (const string) main::str [phi:main::@6->myprintf#3] -- pbuz1=pbuc1
// [78] phi (byte*) myprintf::str#6 = (const byte*) main::str [phi:main::@6->myprintf#3] -- pbuz1=pbuc1
lda #<str
sta.z myprintf.str
lda #>str
@ -8205,8 +8205,8 @@ FINAL SYMBOL TABLE
(label) main::@9
(label) main::@return
(signed word) main::return
(const string) main::str[] = (string) "200 DIV16U: %5d,%4d IN %04d FRAMESm"
(const string) main::str1[] = (string) "200 DIV10 : %5d,%4d IN %04d FRAMESm"
(const byte*) main::str[(byte) $24] = (string) "200 DIV16U: %5d,%4d IN %04d FRAMESm"
(const byte*) main::str1[(byte) $24] = (string) "200 DIV10 : %5d,%4d IN %04d FRAMESm"
(word) main::u
(word) main::u#15 u zp[2]:2 6.380952380952381
(word) main::u#17 u zp[2]:2 6.380952380952381
@ -8572,7 +8572,7 @@ main: {
// [78] phi (word) myprintf::w3#8 = (word) myprintf::w3#1 [phi:main::@11->myprintf#0] -- register_copy
// [78] phi (word) myprintf::w2#8 = (word) myprintf::w2#1 [phi:main::@11->myprintf#1] -- register_copy
// [78] phi (word) myprintf::w1#7 = (word) myprintf::w1#1 [phi:main::@11->myprintf#2] -- register_copy
// [78] phi (byte*) myprintf::str#6 = (const string) main::str1 [phi:main::@11->myprintf#3] -- pbuz1=pbuc1
// [78] phi (byte*) myprintf::str#6 = (const byte*) main::str1 [phi:main::@11->myprintf#3] -- pbuz1=pbuc1
lda #<str1
sta.z myprintf.str
lda #>str1
@ -8670,7 +8670,7 @@ main: {
// [78] phi (word) myprintf::w3#8 = (word) myprintf::w3#0 [phi:main::@6->myprintf#0] -- register_copy
// [78] phi (word) myprintf::w2#8 = (word) myprintf::w2#0 [phi:main::@6->myprintf#1] -- register_copy
// [78] phi (word) myprintf::w1#7 = (word) myprintf::w1#0 [phi:main::@6->myprintf#2] -- register_copy
// [78] phi (byte*) myprintf::str#6 = (const string) main::str [phi:main::@6->myprintf#3] -- pbuz1=pbuc1
// [78] phi (byte*) myprintf::str#6 = (const byte*) main::str [phi:main::@6->myprintf#3] -- pbuz1=pbuc1
lda #<str
sta.z myprintf.str
lda #>str

@ -112,8 +112,8 @@
(label) main::@9
(label) main::@return
(signed word) main::return
(const string) main::str[] = (string) "200 DIV16U: %5d,%4d IN %04d FRAMESm"
(const string) main::str1[] = (string) "200 DIV10 : %5d,%4d IN %04d FRAMESm"
(const byte*) main::str[(byte) $24] = (string) "200 DIV16U: %5d,%4d IN %04d FRAMESm"
(const byte*) main::str1[(byte) $24] = (string) "200 DIV10 : %5d,%4d IN %04d FRAMESm"
(word) main::u
(word) main::u#15 u zp[2]:2 6.380952380952381
(word) main::u#17 u zp[2]:2 6.380952380952381

@ -115,7 +115,7 @@ print_str: scope:[print_str] from print_points::@4
to:print_str::@1
print_str::@1: scope:[print_str] from print_str print_str::@2
[46] (byte*) print_char_cursor#2 ← phi( print_str/(byte*) print_char_cursor#29 print_str::@2/(byte*) print_char_cursor#1 )
[46] (byte*) print_str::str#2 ← phi( print_str/(const string) print_points::str print_str::@2/(byte*) print_str::str#0 )
[46] (byte*) print_str::str#2 ← phi( print_str/(const byte*) print_points::str print_str::@2/(byte*) print_str::str#0 )
[47] if((byte) 0!=*((byte*) print_str::str#2)) goto print_str::@2
to:print_str::@return
print_str::@return: scope:[print_str] from print_str::@1

@ -432,7 +432,7 @@ print_points::@7: scope:[print_points] from print_points::@4
(byte*) print_points::point#2 ← phi( print_points::@4/(byte*) print_points::point#3 )
(byte*) print_char_cursor#34 ← phi( print_points::@4/(byte*) print_char_cursor#7 )
(byte*) print_char_cursor#15 ← (byte*) print_char_cursor#34
(byte*) print_str::str#1 ← (const string) print_points::str
(byte*) print_str::str#1 ← (const byte*) print_points::str
call print_str
to:print_points::@8
print_points::@8: scope:[print_points] from print_points::@7
@ -844,7 +844,7 @@ SYMBOL TABLE SSA
(byte*) print_points::pointYpos1_return#1
(byte*) print_points::pointYpos1_return#2
(byte*) print_points::pointYpos1_return#3
(const string) print_points::str[] = (string) " "
(const byte*) print_points::str[(byte) 2] = (string) " "
(byte*) print_screen
(byte*) print_screen#0
(byte*) print_screen#1
@ -1083,7 +1083,7 @@ Constant inlined memset::$2 = (byte*)(const void*) memset::str#0
Constant inlined print_points::i#0 = (byte) 0
Constant inlined print_line_cursor#0 = (byte*) 1024
Constant inlined memset::dst#0 = (byte*)(const void*) memset::str#0
Constant inlined print_str::str#1 = (const string) print_points::str
Constant inlined print_str::str#1 = (const byte*) print_points::str
Constant inlined init_points::pos#0 = (byte) $a
Successful SSA optimization Pass2ConstantInlining
Added new block during phi lifting print_ln::@3(between print_ln::@1 and print_ln::@1)
@ -1317,7 +1317,7 @@ print_str: scope:[print_str] from print_points::@4
to:print_str::@1
print_str::@1: scope:[print_str] from print_str print_str::@2
[46] (byte*) print_char_cursor#2 ← phi( print_str/(byte*) print_char_cursor#29 print_str::@2/(byte*) print_char_cursor#1 )
[46] (byte*) print_str::str#2 ← phi( print_str/(const string) print_points::str print_str::@2/(byte*) print_str::str#0 )
[46] (byte*) print_str::str#2 ← phi( print_str/(const byte*) print_points::str print_str::@2/(byte*) print_str::str#0 )
[47] if((byte) 0!=*((byte*) print_str::str#2)) goto print_str::@2
to:print_str::@return
print_str::@return: scope:[print_str] from print_str::@1
@ -1805,7 +1805,7 @@ print_str: {
// [46] phi from print_str to print_str::@1 [phi:print_str->print_str::@1]
__b1_from_print_str:
// [46] phi (byte*) print_char_cursor#2 = (byte*) print_char_cursor#29 [phi:print_str->print_str::@1#0] -- register_copy
// [46] phi (byte*) print_str::str#2 = (const string) print_points::str [phi:print_str->print_str::@1#1] -- pbuz1=pbuc1
// [46] phi (byte*) print_str::str#2 = (const byte*) print_points::str [phi:print_str->print_str::@1#1] -- pbuz1=pbuc1
lda #<print_points.str
sta.z str
lda #>print_points.str
@ -2374,7 +2374,7 @@ print_str: {
// [46] phi from print_str to print_str::@1 [phi:print_str->print_str::@1]
__b1_from_print_str:
// [46] phi (byte*) print_char_cursor#2 = (byte*) print_char_cursor#29 [phi:print_str->print_str::@1#0] -- register_copy
// [46] phi (byte*) print_str::str#2 = (const string) print_points::str [phi:print_str->print_str::@1#1] -- pbuz1=pbuc1
// [46] phi (byte*) print_str::str#2 = (const byte*) print_points::str [phi:print_str->print_str::@1#1] -- pbuz1=pbuc1
lda #<print_points.str
sta.z str
lda #>print_points.str
@ -2771,7 +2771,7 @@ FINAL SYMBOL TABLE
(label) print_points::pointYpos1
(byte*) print_points::pointYpos1_point
(byte*) print_points::pointYpos1_return
(const string) print_points::str[] = (string) " "
(const byte*) print_points::str[(byte) 2] = (string) " "
(byte*) print_screen
(void()) print_str((byte*) print_str::str)
(label) print_str::@1
@ -3041,7 +3041,7 @@ print_str: {
.label str = 2
// [46] phi from print_str to print_str::@1 [phi:print_str->print_str::@1]
// [46] phi (byte*) print_char_cursor#2 = (byte*) print_char_cursor#29 [phi:print_str->print_str::@1#0] -- register_copy
// [46] phi (byte*) print_str::str#2 = (const string) print_points::str [phi:print_str->print_str::@1#1] -- pbuz1=pbuc1
// [46] phi (byte*) print_str::str#2 = (const byte*) print_points::str [phi:print_str->print_str::@1#1] -- pbuz1=pbuc1
lda #<print_points.str
sta.z str
lda #>print_points.str

@ -108,7 +108,7 @@
(label) print_points::pointYpos1
(byte*) print_points::pointYpos1_point
(byte*) print_points::pointYpos1_return
(const string) print_points::str[] = (string) " "
(const byte*) print_points::str[(byte) 2] = (string) " "
(byte*) print_screen
(void()) print_str((byte*) print_str::str)
(label) print_str::@1

@ -176,7 +176,7 @@ keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matri
(void()) print_str((byte*) print_str::str)
print_str: scope:[print_str] from main::@10 main::@15 main::@17 main::@22 printEntry printEntry::@15 printEntry::@17 printEntry::@19 printEntry::@21 printEntry::@23 printEntry::@25 printEntry::@27 printEntry::@29 printEntry::@31 printEntry::@33 printEntry::@35 printEntry::@37
[83] (byte*) print_char_cursor#164 ← phi( main::@10/(byte*) 1024 main::@15/(byte*) print_char_cursor#206 main::@17/(byte*) 1024 main::@22/(byte*) print_char_cursor#207 printEntry/(byte*) print_char_cursor#208 printEntry::@15/(byte*) print_char_cursor#209 printEntry::@17/(byte*) print_char_cursor#210 printEntry::@19/(byte*) print_char_cursor#211 printEntry::@21/(byte*) print_char_cursor#212 printEntry::@23/(byte*) print_char_cursor#213 printEntry::@25/(byte*) print_char_cursor#214 printEntry::@27/(byte*) print_char_cursor#215 printEntry::@29/(byte*) print_char_cursor#216 printEntry::@31/(byte*) print_char_cursor#217 printEntry::@33/(byte*) print_char_cursor#218 printEntry::@35/(byte*) print_char_cursor#219 printEntry::@37/(byte*) print_char_cursor#220 )
[83] (byte*) print_str::str#20 ← phi( main::@10/(const string) main::str main::@15/(const string) main::str1 main::@17/(const string) main::str2 main::@22/(const string) main::str1 printEntry/(const string) printEntry::str printEntry::@15/(const string) printEntry::str1 printEntry::@17/(const string) printEntry::str2 printEntry::@19/(const string) printEntry::str3 printEntry::@21/(const string) printEntry::str4 printEntry::@23/(const string) printEntry::str5 printEntry::@25/(const string) printEntry::str6 printEntry::@27/(const string) printEntry::str7 printEntry::@29/(const string) printEntry::str8 printEntry::@31/(const string) printEntry::str9 printEntry::@33/(const string) printEntry::str10 printEntry::@35/(const string) printEntry::str11 printEntry::@37/(const string) printEntry::str12 )
[83] (byte*) print_str::str#20 ← phi( main::@10/(const byte*) main::str main::@15/(const byte*) main::str1 main::@17/(const byte*) main::str2 main::@22/(const byte*) main::str1 printEntry/(const byte*) printEntry::str printEntry::@15/(const byte*) printEntry::str1 printEntry::@17/(const byte*) printEntry::str2 printEntry::@19/(const byte*) printEntry::str3 printEntry::@21/(const byte*) printEntry::str4 printEntry::@23/(const byte*) printEntry::str5 printEntry::@25/(const byte*) printEntry::str6 printEntry::@27/(const byte*) printEntry::str7 printEntry::@29/(const byte*) printEntry::str8 printEntry::@31/(const byte*) printEntry::str9 printEntry::@33/(const byte*) printEntry::str10 printEntry::@35/(const byte*) printEntry::str11 printEntry::@37/(const byte*) printEntry::str12 )
to:print_str::@1
print_str::@1: scope:[print_str] from print_str print_str::@2
[84] (byte*) print_char_cursor#142 ← phi( print_str/(byte*) print_char_cursor#164 print_str::@2/(byte*) print_char_cursor#1 )

@ -560,7 +560,7 @@ main::@20: scope:[main] from main::@19
(byte*) print_line_cursor#36 ← phi( main::@19/(byte*) print_line_cursor#4 )
(byte*) print_line_cursor#5 ← (byte*) print_line_cursor#36
(byte*) print_char_cursor#15 ← (byte*) print_char_cursor#85
(byte*) print_str::str#1 ← (const string) main::str
(byte*) print_str::str#1 ← (const byte*) main::str
call print_str
to:main::@21
main::@21: scope:[main] from main::@20
@ -609,7 +609,7 @@ main::@25: scope:[main] from main::@24
(byte*) print_line_cursor#40 ← phi( main::@24/(byte*) print_line_cursor#2 )
(byte*) print_line_cursor#9 ← (byte*) print_line_cursor#40
(byte*) print_char_cursor#20 ← (byte*) print_char_cursor#90
(byte*) print_str::str#2 ← (const string) main::str1
(byte*) print_str::str#2 ← (const byte*) main::str1
call print_str
to:main::@26
main::@26: scope:[main] from main::@25
@ -652,7 +652,7 @@ main::@28: scope:[main] from main::@3
(byte*) print_line_cursor#41 ← phi( main::@3/(byte*) print_line_cursor#4 )
(byte*) print_line_cursor#10 ← (byte*) print_line_cursor#41
(byte*) print_char_cursor#22 ← (byte*) print_char_cursor#92
(byte*) print_str::str#3 ← (const string) main::str2
(byte*) print_str::str#3 ← (const byte*) main::str2
call print_str
to:main::@29
main::@29: scope:[main] from main::@28
@ -696,7 +696,7 @@ main::@33: scope:[main] from main::@32
(byte*) print_line_cursor#45 ← phi( main::@32/(byte*) print_line_cursor#2 )
(byte*) print_line_cursor#14 ← (byte*) print_line_cursor#45
(byte*) print_char_cursor#27 ← (byte*) print_char_cursor#97
(byte*) print_str::str#4 ← (const string) main::str3
(byte*) print_str::str#4 ← (const byte*) main::str3
call print_str
to:main::@34
main::@34: scope:[main] from main::@33
@ -1051,7 +1051,7 @@ printEntry: scope:[printEntry] from main::@23 main::@31
(byte*) print_line_cursor#146 ← phi( main::@23/(byte*) print_line_cursor#7 main::@31/(byte*) print_line_cursor#12 )
(byte*) printEntry::entry#15 ← phi( main::@23/(byte*) printEntry::entry#0 main::@31/(byte*) printEntry::entry#1 )
(byte*) print_char_cursor#149 ← phi( main::@23/(byte*) print_char_cursor#18 main::@31/(byte*) print_char_cursor#25 )
(byte*) print_str::str#5 ← (const string) printEntry::str
(byte*) print_str::str#5 ← (const byte*) printEntry::str
call print_str
to:printEntry::@14
printEntry::@14: scope:[printEntry] from printEntry
@ -1100,7 +1100,7 @@ printEntry::@16: scope:[printEntry] from printEntry::@15
(byte*) print_line_cursor#48 ← phi( printEntry::@15/(byte*) print_line_cursor#2 )
(byte*) print_line_cursor#17 ← (byte*) print_line_cursor#48
(byte*) print_char_cursor#33 ← (byte*) print_char_cursor#103
(byte*) print_str::str#6 ← (const string) printEntry::str1
(byte*) print_str::str#6 ← (const byte*) printEntry::str1
call print_str
to:printEntry::@17
printEntry::@17: scope:[printEntry] from printEntry::@16
@ -1149,7 +1149,7 @@ printEntry::@19: scope:[printEntry] from printEntry::@18
(byte*) print_line_cursor#49 ← phi( printEntry::@18/(byte*) print_line_cursor#2 )
(byte*) print_line_cursor#18 ← (byte*) print_line_cursor#49
(byte*) print_char_cursor#36 ← (byte*) print_char_cursor#106
(byte*) print_str::str#7 ← (const string) printEntry::str2
(byte*) print_str::str#7 ← (const byte*) printEntry::str2
call print_str
to:printEntry::@20
printEntry::@20: scope:[printEntry] from printEntry::@19
@ -1197,7 +1197,7 @@ printEntry::@22: scope:[printEntry] from printEntry::@21
(byte*) print_line_cursor#50 ← phi( printEntry::@21/(byte*) print_line_cursor#2 )
(byte*) print_line_cursor#19 ← (byte*) print_line_cursor#50
(byte*) print_char_cursor#39 ← (byte*) print_char_cursor#109
(byte*) print_str::str#8 ← (const string) printEntry::str3
(byte*) print_str::str#8 ← (const byte*) printEntry::str3
call print_str
to:printEntry::@23
printEntry::@23: scope:[printEntry] from printEntry::@22
@ -1246,7 +1246,7 @@ printEntry::@25: scope:[printEntry] from printEntry::@24
(byte*) print_line_cursor#51 ← phi( printEntry::@24/(byte*) print_line_cursor#2 )
(byte*) print_line_cursor#20 ← (byte*) print_line_cursor#51
(byte*) print_char_cursor#42 ← (byte*) print_char_cursor#112
(byte*) print_str::str#9 ← (const string) printEntry::str4
(byte*) print_str::str#9 ← (const byte*) printEntry::str4
call print_str
to:printEntry::@26
printEntry::@26: scope:[printEntry] from printEntry::@25
@ -1294,7 +1294,7 @@ printEntry::@28: scope:[printEntry] from printEntry::@27
(byte*) print_line_cursor#52 ← phi( printEntry::@27/(byte*) print_line_cursor#2 )
(byte*) print_line_cursor#21 ← (byte*) print_line_cursor#52
(byte*) print_char_cursor#45 ← (byte*) print_char_cursor#115
(byte*) print_str::str#10 ← (const string) printEntry::str5
(byte*) print_str::str#10 ← (const byte*) printEntry::str5
call print_str
to:printEntry::@29
printEntry::@29: scope:[printEntry] from printEntry::@28
@ -1342,7 +1342,7 @@ printEntry::@31: scope:[printEntry] from printEntry::@30
(byte*) print_line_cursor#53 ← phi( printEntry::@30/(byte*) print_line_cursor#2 )
(byte*) print_line_cursor#22 ← (byte*) print_line_cursor#53
(byte*) print_char_cursor#48 ← (byte*) print_char_cursor#118
(byte*) print_str::str#11 ← (const string) printEntry::str6
(byte*) print_str::str#11 ← (const byte*) printEntry::str6
call print_str
to:printEntry::@32
printEntry::@32: scope:[printEntry] from printEntry::@31
@ -1390,7 +1390,7 @@ printEntry::@34: scope:[printEntry] from printEntry::@33
(byte*) print_line_cursor#54 ← phi( printEntry::@33/(byte*) print_line_cursor#2 )
(byte*) print_line_cursor#23 ← (byte*) print_line_cursor#54
(byte*) print_char_cursor#51 ← (byte*) print_char_cursor#121
(byte*) print_str::str#12 ← (const string) printEntry::str7
(byte*) print_str::str#12 ← (const byte*) printEntry::str7
call print_str
to:printEntry::@35
printEntry::@35: scope:[printEntry] from printEntry::@34
@ -1437,7 +1437,7 @@ printEntry::@37: scope:[printEntry] from printEntry::@36
(byte*) print_line_cursor#55 ← phi( printEntry::@36/(byte*) print_line_cursor#2 )
(byte*) print_line_cursor#24 ← (byte*) print_line_cursor#55
(byte*) print_char_cursor#54 ← (byte*) print_char_cursor#124
(byte*) print_str::str#13 ← (const string) printEntry::str8
(byte*) print_str::str#13 ← (const byte*) printEntry::str8
call print_str
to:printEntry::@38
printEntry::@38: scope:[printEntry] from printEntry::@37
@ -1485,7 +1485,7 @@ printEntry::@40: scope:[printEntry] from printEntry::@39
(byte*) print_line_cursor#56 ← phi( printEntry::@39/(byte*) print_line_cursor#2 )
(byte*) print_line_cursor#25 ← (byte*) print_line_cursor#56
(byte*) print_char_cursor#57 ← (byte*) print_char_cursor#127
(byte*) print_str::str#14 ← (const string) printEntry::str9
(byte*) print_str::str#14 ← (const byte*) printEntry::str9
call print_str
to:printEntry::@41
printEntry::@41: scope:[printEntry] from printEntry::@40
@ -1533,7 +1533,7 @@ printEntry::@43: scope:[printEntry] from printEntry::@42
(byte*) print_line_cursor#57 ← phi( printEntry::@42/(byte*) print_line_cursor#2 )
(byte*) print_line_cursor#26 ← (byte*) print_line_cursor#57
(byte*) print_char_cursor#60 ← (byte*) print_char_cursor#130
(byte*) print_str::str#15 ← (const string) printEntry::str10
(byte*) print_str::str#15 ← (const byte*) printEntry::str10
call print_str
to:printEntry::@44
printEntry::@44: scope:[printEntry] from printEntry::@43
@ -1581,7 +1581,7 @@ printEntry::@46: scope:[printEntry] from printEntry::@45
(byte*) print_line_cursor#58 ← phi( printEntry::@45/(byte*) print_line_cursor#2 )
(byte*) print_line_cursor#27 ← (byte*) print_line_cursor#58
(byte*) print_char_cursor#63 ← (byte*) print_char_cursor#133
(byte*) print_str::str#16 ← (const string) printEntry::str11
(byte*) print_str::str#16 ← (const byte*) printEntry::str11
call print_str
to:printEntry::@47
printEntry::@47: scope:[printEntry] from printEntry::@46
@ -1629,7 +1629,7 @@ printEntry::@49: scope:[printEntry] from printEntry::@48
(byte*) print_line_cursor#59 ← phi( printEntry::@48/(byte*) print_line_cursor#2 )
(byte*) print_line_cursor#28 ← (byte*) print_line_cursor#59
(byte*) print_char_cursor#66 ← (byte*) print_char_cursor#136
(byte*) print_str::str#17 ← (const string) printEntry::str12
(byte*) print_str::str#17 ← (const byte*) printEntry::str12
call print_str
to:printEntry::@50
printEntry::@50: scope:[printEntry] from printEntry::@49
@ -2123,10 +2123,10 @@ SYMBOL TABLE SSA
(byte*) main::fileEntry2_return#1
(byte*) main::fileEntry2_return#2
(byte*) main::fileEntry2_return#3
(const string) main::str[] = (string) "** entry 1 **"
(const string) main::str1[] = (string) "- press space -"
(const string) main::str2[] = (string) "** entry 2 **"
(const string) main::str3[] = (string) "- press space -"
(const byte*) main::str[(byte) $e] = (string) "** entry 1 **"
(const byte*) main::str1[(byte) $10] = (string) "- press space -"
(const byte*) main::str2[(byte) $e] = (string) "** entry 2 **"
(const byte*) main::str3[(byte) $10] = (string) "- press space -"
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
(bool~) memset::$0
(bool~) memset::$1
@ -2521,19 +2521,19 @@ SYMBOL TABLE SSA
(word*) printEntry::entryUCross1_return#1
(word*) printEntry::entryUCross1_return#2
(word*) printEntry::entryUCross1_return#3
(const string) printEntry::str[] = (string) "bufdisk "
(const string) printEntry::str1[] = (string) "bufedit "
(const string) printEntry::str10[] = (string) "baddrhi "
(const string) printEntry::str11[] = (string) "thi "
(const string) printEntry::str12[] = (string) "tlo "
(const string) printEntry::str2[] = (string) "tslen "
(const string) printEntry::str3[] = (string) "tsorder "
(const string) printEntry::str4[] = (string) "tlastlink "
(const string) printEntry::str5[] = (string) "slastlink "
(const string) printEntry::str6[] = (string) "bflag "
(const string) printEntry::str7[] = (string) "berror "
(const string) printEntry::str8[] = (string) "ucross "
(const string) printEntry::str9[] = (string) "baddrlo "
(const byte*) printEntry::str[(byte) $b] = (string) "bufdisk "
(const byte*) printEntry::str1[(byte) $b] = (string) "bufedit "
(const byte*) printEntry::str10[(byte) $d] = (string) "baddrhi "
(const byte*) printEntry::str11[(byte) $d] = (string) "thi "
(const byte*) printEntry::str12[(byte) $d] = (string) "tlo "
(const byte*) printEntry::str2[(byte) $b] = (string) "tslen "
(const byte*) printEntry::str3[(byte) $b] = (string) "tsorder "
(const byte*) printEntry::str4[(byte) $d] = (string) "tlastlink "
(const byte*) printEntry::str5[(byte) $d] = (string) "slastlink "
(const byte*) printEntry::str6[(byte) $d] = (string) "bflag "
(const byte*) printEntry::str7[(byte) $d] = (string) "berror "
(const byte*) printEntry::str8[(byte) $b] = (string) "ucross "
(const byte*) printEntry::str9[(byte) $d] = (string) "baddrlo "
(void()) print_byte((byte) print_byte::b)
(byte~) print_byte::$0
(number~) print_byte::$2
@ -3613,6 +3613,7 @@ Constant (const void*) memset::return#2 = memset::str#0
Successful SSA optimization Pass2ConstantIdentification
if() condition always false - eliminating [27] if((const word) memset::num#0<=(byte) 0) goto memset::@1
Successful SSA optimization Pass2ConstantIfs
Consolidated constant strings into (const byte*) main::str1
Successful SSA optimization Pass2ConstantStringConsolidation
Converting *(pointer+n) to pointer[n] [279] *((byte**) initEntry::entryBufDisk1_return#0) ← (byte*)(word~) initEntry::$1 -- *((byte**)initEntry::entry#10 + 0)
Converting *(pointer+n) to pointer[n] [290] *((byte**) initEntry::entryBufEdit1_return#0) ← (byte*)(word~) initEntry::$3 -- *((byte**)initEntry::entry#10 + 2)
@ -3721,36 +3722,36 @@ Inlining constant with var siblings (const byte) keyboard_key_pressed::key#1
Inlining constant with var siblings (const byte) initEntry::n#0
Inlining constant with var siblings (const byte) initEntry::n#1
Inlining constant with var siblings (const byte*) print_line_cursor#0
Constant inlined main::str3 = (const string) main::str1
Constant inlined print_str::str#13 = (const string) printEntry::str8
Constant inlined print_str::str#12 = (const string) printEntry::str7
Constant inlined print_str::str#11 = (const string) printEntry::str6
Constant inlined print_str::str#10 = (const string) printEntry::str5
Constant inlined print_str::str#17 = (const string) printEntry::str12
Constant inlined print_str::str#16 = (const string) printEntry::str11
Constant inlined print_str::str#15 = (const string) printEntry::str10
Constant inlined print_str::str#14 = (const string) printEntry::str9
Constant inlined main::str3 = (const byte*) main::str1
Constant inlined print_str::str#13 = (const byte*) printEntry::str8
Constant inlined print_str::str#12 = (const byte*) printEntry::str7
Constant inlined print_str::str#11 = (const byte*) printEntry::str6
Constant inlined print_str::str#10 = (const byte*) printEntry::str5
Constant inlined print_str::str#17 = (const byte*) printEntry::str12
Constant inlined print_str::str#16 = (const byte*) printEntry::str11
Constant inlined print_str::str#15 = (const byte*) printEntry::str10
Constant inlined print_str::str#14 = (const byte*) printEntry::str9
Constant inlined initEntry::n#1 = (byte) $11
Constant inlined memset::$2 = (byte*)(const void*) memset::str#0
Constant inlined initEntry::n#0 = (byte) 0
Constant inlined keyboard_key_pressed::key#0 = (const byte) KEY_SPACE
Constant inlined keyboard_key_pressed::key#1 = (const byte) KEY_SPACE
Constant inlined print_line_cursor#0 = (byte*) 1024
Constant inlined print_str::str#9 = (const string) printEntry::str4
Constant inlined print_str::str#9 = (const byte*) printEntry::str4
Constant inlined mul8u::res#0 = (word) 0
Constant inlined mul8u::b#1 = (const byte) SIZEOF_ENTRY
Constant inlined mul8u::a#2 = (const byte) main::fileEntry2_idx#0
Constant inlined mul8u::b#0 = (const byte) SIZEOF_ENTRY
Constant inlined mul8u::a#1 = (const byte) main::fileEntry1_idx#0
Constant inlined print_str::str#4 = (const string) main::str1
Constant inlined print_str::str#3 = (const string) main::str2
Constant inlined print_str::str#2 = (const string) main::str1
Constant inlined print_str::str#4 = (const byte*) main::str1
Constant inlined print_str::str#3 = (const byte*) main::str2
Constant inlined print_str::str#2 = (const byte*) main::str1
Constant inlined memset::dst#0 = (byte*)(const void*) memset::str#0
Constant inlined print_str::str#1 = (const string) main::str
Constant inlined print_str::str#8 = (const string) printEntry::str3
Constant inlined print_str::str#7 = (const string) printEntry::str2
Constant inlined print_str::str#6 = (const string) printEntry::str1
Constant inlined print_str::str#5 = (const string) printEntry::str
Constant inlined print_str::str#1 = (const byte*) main::str
Constant inlined print_str::str#8 = (const byte*) printEntry::str3
Constant inlined print_str::str#7 = (const byte*) printEntry::str2
Constant inlined print_str::str#6 = (const byte*) printEntry::str1
Constant inlined print_str::str#5 = (const byte*) printEntry::str
Successful SSA optimization Pass2ConstantInlining
Identical Phi Values (byte) mul8u::b#2 (const byte) SIZEOF_ENTRY
Identical Phi Values (byte) keyboard_key_pressed::key#2 (const byte) KEY_SPACE
@ -4312,7 +4313,7 @@ keyboard_matrix_read::@return: scope:[keyboard_matrix_read] from keyboard_matri
(void()) print_str((byte*) print_str::str)
print_str: scope:[print_str] from main::@10 main::@15 main::@17 main::@22 printEntry printEntry::@15 printEntry::@17 printEntry::@19 printEntry::@21 printEntry::@23 printEntry::@25 printEntry::@27 printEntry::@29 printEntry::@31 printEntry::@33 printEntry::@35 printEntry::@37
[83] (byte*) print_char_cursor#164 ← phi( main::@10/(byte*) 1024 main::@15/(byte*) print_char_cursor#206 main::@17/(byte*) 1024 main::@22/(byte*) print_char_cursor#207 printEntry/(byte*) print_char_cursor#208 printEntry::@15/(byte*) print_char_cursor#209 printEntry::@17/(byte*) print_char_cursor#210 printEntry::@19/(byte*) print_char_cursor#211 printEntry::@21/(byte*) print_char_cursor#212 printEntry::@23/(byte*) print_char_cursor#213 printEntry::@25/(byte*) print_char_cursor#214 printEntry::@27/(byte*) print_char_cursor#215 printEntry::@29/(byte*) print_char_cursor#216 printEntry::@31/(byte*) print_char_cursor#217 printEntry::@33/(byte*) print_char_cursor#218 printEntry::@35/(byte*) print_char_cursor#219 printEntry::@37/(byte*) print_char_cursor#220 )
[83] (byte*) print_str::str#20 ← phi( main::@10/(const string) main::str main::@15/(const string) main::str1 main::@17/(const string) main::str2 main::@22/(const string) main::str1 printEntry/(const string) printEntry::str printEntry::@15/(const string) printEntry::str1 printEntry::@17/(const string) printEntry::str2 printEntry::@19/(const string) printEntry::str3 printEntry::@21/(const string) printEntry::str4 printEntry::@23/(const string) printEntry::str5 printEntry::@25/(const string) printEntry::str6 printEntry::@27/(const string) printEntry::str7 printEntry::@29/(const string) printEntry::str8 printEntry::@31/(const string) printEntry::str9 printEntry::@33/(const string) printEntry::str10 printEntry::@35/(const string) printEntry::str11 printEntry::@37/(const string) printEntry::str12 )
[83] (byte*) print_str::str#20 ← phi( main::@10/(const byte*) main::str main::@15/(const byte*) main::str1 main::@17/(const byte*) main::str2 main::@22/(const byte*) main::str1 printEntry/(const byte*) printEntry::str printEntry::@15/(const byte*) printEntry::str1 printEntry::@17/(const byte*) printEntry::str2 printEntry::@19/(const byte*) printEntry::str3 printEntry::@21/(const byte*) printEntry::str4 printEntry::@23/(const byte*) printEntry::str5 printEntry::@25/(const byte*) printEntry::str6 printEntry::@27/(const byte*) printEntry::str7 printEntry::@29/(const byte*) printEntry::str8 printEntry::@31/(const byte*) printEntry::str9 printEntry::@33/(const byte*) printEntry::str10 printEntry::@35/(const byte*) printEntry::str11 printEntry::@37/(const byte*) printEntry::str12 )
to:print_str::@1
print_str::@1: scope:[print_str] from print_str print_str::@2
[84] (byte*) print_char_cursor#142 ← phi( print_str/(byte*) print_char_cursor#164 print_str::@2/(byte*) print_char_cursor#1 )
@ -5270,7 +5271,7 @@ main: {
sta.z print_char_cursor
lda #>$400
sta.z print_char_cursor+1
// [83] phi (byte*) print_str::str#20 = (const string) main::str [phi:main::@10->print_str#1] -- pbuz1=pbuc1
// [83] phi (byte*) print_str::str#20 = (const byte*) main::str [phi:main::@10->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -5354,7 +5355,7 @@ main: {
// [83] phi from main::@15 to print_str [phi:main::@15->print_str]
print_str_from___b15:
// [83] phi (byte*) print_char_cursor#164 = (byte*) print_char_cursor#206 [phi:main::@15->print_str#0] -- register_copy
// [83] phi (byte*) print_str::str#20 = (const string) main::str1 [phi:main::@15->print_str#1] -- pbuz1=pbuc1
// [83] phi (byte*) print_str::str#20 = (const byte*) main::str1 [phi:main::@15->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -5405,7 +5406,7 @@ main: {
sta.z print_char_cursor
lda #>$400
sta.z print_char_cursor+1
// [83] phi (byte*) print_str::str#20 = (const string) main::str2 [phi:main::@17->print_str#1] -- pbuz1=pbuc1
// [83] phi (byte*) print_str::str#20 = (const byte*) main::str2 [phi:main::@17->print_str#1] -- pbuz1=pbuc1
lda #<str2
sta.z print_str.str
lda #>str2
@ -5489,7 +5490,7 @@ main: {
// [83] phi from main::@22 to print_str [phi:main::@22->print_str]
print_str_from___b22:
// [83] phi (byte*) print_char_cursor#164 = (byte*) print_char_cursor#207 [phi:main::@22->print_str#0] -- register_copy
// [83] phi (byte*) print_str::str#20 = (const string) main::str1 [phi:main::@22->print_str#1] -- pbuz1=pbuc1
// [83] phi (byte*) print_str::str#20 = (const byte*) main::str1 [phi:main::@22->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -5750,7 +5751,7 @@ printEntry: {
// [83] phi from printEntry to print_str [phi:printEntry->print_str]
print_str_from_printEntry:
// [83] phi (byte*) print_char_cursor#164 = (byte*) print_char_cursor#208 [phi:printEntry->print_str#0] -- register_copy
// [83] phi (byte*) print_str::str#20 = (const string) printEntry::str [phi:printEntry->print_str#1] -- pbuz1=pbuc1
// [83] phi (byte*) print_str::str#20 = (const byte*) printEntry::str [phi:printEntry->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -5802,7 +5803,7 @@ printEntry: {
// [83] phi from printEntry::@15 to print_str [phi:printEntry::@15->print_str]
print_str_from___b15:
// [83] phi (byte*) print_char_cursor#164 = (byte*) print_char_cursor#209 [phi:printEntry::@15->print_str#0] -- register_copy
// [83] phi (byte*) print_str::str#20 = (const string) printEntry::str1 [phi:printEntry::@15->print_str#1] -- pbuz1=pbuc1
// [83] phi (byte*) print_str::str#20 = (const byte*) printEntry::str1 [phi:printEntry::@15->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -5854,7 +5855,7 @@ printEntry: {
// [83] phi from printEntry::@17 to print_str [phi:printEntry::@17->print_str]
print_str_from___b17:
// [83] phi (byte*) print_char_cursor#164 = (byte*) print_char_cursor#210 [phi:printEntry::@17->print_str#0] -- register_copy
// [83] phi (byte*) print_str::str#20 = (const string) printEntry::str2 [phi:printEntry::@17->print_str#1] -- pbuz1=pbuc1
// [83] phi (byte*) print_str::str#20 = (const byte*) printEntry::str2 [phi:printEntry::@17->print_str#1] -- pbuz1=pbuc1
lda #<str2
sta.z print_str.str
lda #>str2
@ -5906,7 +5907,7 @@ printEntry: {
// [83] phi from printEntry::@19 to print_str [phi:printEntry::@19->print_str]
print_str_from___b19:
// [83] phi (byte*) print_char_cursor#164 = (byte*) print_char_cursor#211 [phi:printEntry::@19->print_str#0] -- register_copy
// [83] phi (byte*) print_str::str#20 = (const string) printEntry::str3 [phi:printEntry::@19->print_str#1] -- pbuz1=pbuc1
// [83] phi (byte*) print_str::str#20 = (const byte*) printEntry::str3 [phi:printEntry::@19->print_str#1] -- pbuz1=pbuc1
lda #<str3
sta.z print_str.str
lda #>str3
@ -5958,7 +5959,7 @@ printEntry: {
// [83] phi from printEntry::@21 to print_str [phi:printEntry::@21->print_str]
print_str_from___b21:
// [83] phi (byte*) print_char_cursor#164 = (byte*) print_char_cursor#212 [phi:printEntry::@21->print_str#0] -- register_copy
// [83] phi (byte*) print_str::str#20 = (const string) printEntry::str4 [phi:printEntry::@21->print_str#1] -- pbuz1=pbuc1
// [83] phi (byte*) print_str::str#20 = (const byte*) printEntry::str4 [phi:printEntry::@21->print_str#1] -- pbuz1=pbuc1
lda #<str4
sta.z print_str.str
lda #>str4
@ -6008,7 +6009,7 @@ printEntry: {
// [83] phi from printEntry::@23 to print_str [phi:printEntry::@23->print_str]
print_str_from___b23:
// [83] phi (byte*) print_char_cursor#164 = (byte*) print_char_cursor#213 [phi:printEntry::@23->print_str#0] -- register_copy
// [83] phi (byte*) print_str::str#20 = (const string) printEntry::str5 [phi:printEntry::@23->print_str#1] -- pbuz1=pbuc1
// [83] phi (byte*) print_str::str#20 = (const byte*) printEntry::str5 [phi:printEntry::@23->print_str#1] -- pbuz1=pbuc1
lda #<str5
sta.z print_str.str
lda #>str5
@ -6058,7 +6059,7 @@ printEntry: {
// [83] phi from printEntry::@25 to print_str [phi:printEntry::@25->print_str]
print_str_from___b25:
// [83] phi (byte*) print_char_cursor#164 = (byte*) print_char_cursor#214 [phi:printEntry::@25->print_str#0] -- register_copy
// [83] phi (byte*) print_str::str#20 = (const string) printEntry::str6 [phi:printEntry::@25->print_str#1] -- pbuz1=pbuc1
// [83] phi (byte*) print_str::str#20 = (const byte*) printEntry::str6 [phi:printEntry::@25->print_str#1] -- pbuz1=pbuc1
lda #<str6
sta.z print_str.str
lda #>str6
@ -6108,7 +6109,7 @@ printEntry: {
// [83] phi from printEntry::@27 to print_str [phi:printEntry::@27->print_str]
print_str_from___b27:
// [83] phi (byte*) print_char_cursor#164 = (byte*) print_char_cursor#215 [phi:printEntry::@27->print_str#0] -- register_copy
// [83] phi (byte*) print_str::str#20 = (const string) printEntry::str7 [phi:printEntry::@27->print_str#1] -- pbuz1=pbuc1
// [83] phi (byte*) print_str::str#20 = (const byte*) printEntry::str7 [phi:printEntry::@27->print_str#1] -- pbuz1=pbuc1
lda #<str7
sta.z print_str.str
lda #>str7
@ -6158,7 +6159,7 @@ printEntry: {
// [83] phi from printEntry::@29 to print_str [phi:printEntry::@29->print_str]
print_str_from___b29:
// [83] phi (byte*) print_char_cursor#164 = (byte*) print_char_cursor#216 [phi:printEntry::@29->print_str#0] -- register_copy
// [83] phi (byte*) print_str::str#20 = (const string) printEntry::str8 [phi:printEntry::@29->print_str#1] -- pbuz1=pbuc1
// [83] phi (byte*) print_str::str#20 = (const byte*) printEntry::str8 [phi:printEntry::@29->print_str#1] -- pbuz1=pbuc1
lda #<str8
sta.z print_str.str
lda #>str8
@ -6210,7 +6211,7 @@ printEntry: {
// [83] phi from printEntry::@31 to print_str [phi:printEntry::@31->print_str]
print_str_from___b31:
// [83] phi (byte*) print_char_cursor#164 = (byte*) print_char_cursor#217 [phi:printEntry::@31->print_str#0] -- register_copy
// [83] phi (byte*) print_str::str#20 = (const string) printEntry::str9 [phi:printEntry::@31->print_str#1] -- pbuz1=pbuc1
// [83] phi (byte*) print_str::str#20 = (const byte*) printEntry::str9 [phi:printEntry::@31->print_str#1] -- pbuz1=pbuc1
lda #<str9
sta.z print_str.str
lda #>str9
@ -6260,7 +6261,7 @@ printEntry: {
// [83] phi from printEntry::@33 to print_str [phi:printEntry::@33->print_str]
print_str_from___b33:
// [83] phi (byte*) print_char_cursor#164 = (byte*) print_char_cursor#218 [phi:printEntry::@33->print_str#0] -- register_copy
// [83] phi (byte*) print_str::str#20 = (const string) printEntry::str10 [phi:printEntry::@33->print_str#1] -- pbuz1=pbuc1
// [83] phi (byte*) print_str::str#20 = (const byte*) printEntry::str10 [phi:printEntry::@33->print_str#1] -- pbuz1=pbuc1
lda #<str10
sta.z print_str.str
lda #>str10
@ -6310,7 +6311,7 @@ printEntry: {
// [83] phi from printEntry::@35 to print_str [phi:printEntry::@35->print_str]
print_str_from___b35:
// [83] phi (byte*) print_char_cursor#164 = (byte*) print_char_cursor#219 [phi:printEntry::@35->print_str#0] -- register_copy
// [83] phi (byte*) print_str::str#20 = (const string) printEntry::str11 [phi:printEntry::@35->print_str#1] -- pbuz1=pbuc1
// [83] phi (byte*) print_str::str#20 = (const byte*) printEntry::str11 [phi:printEntry::@35->print_str#1] -- pbuz1=pbuc1
lda #<str11
sta.z print_str.str
lda #>str11
@ -6360,7 +6361,7 @@ printEntry: {
// [83] phi from printEntry::@37 to print_str [phi:printEntry::@37->print_str]
print_str_from___b37:
// [83] phi (byte*) print_char_cursor#164 = (byte*) print_char_cursor#220 [phi:printEntry::@37->print_str#0] -- register_copy
// [83] phi (byte*) print_str::str#20 = (const string) printEntry::str12 [phi:printEntry::@37->print_str#1] -- pbuz1=pbuc1
// [83] phi (byte*) print_str::str#20 = (const byte*) printEntry::str12 [phi:printEntry::@37->print_str#1] -- pbuz1=pbuc1
lda #<str12
sta.z print_str.str
lda #>str12
@ -7396,7 +7397,7 @@ main: {
sta.z print_char_cursor
lda #>$400
sta.z print_char_cursor+1
// [83] phi (byte*) print_str::str#20 = (const string) main::str [phi:main::@10->print_str#1] -- pbuz1=pbuc1
// [83] phi (byte*) print_str::str#20 = (const byte*) main::str [phi:main::@10->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -7476,7 +7477,7 @@ main: {
// [83] phi from main::@15 to print_str [phi:main::@15->print_str]
print_str_from___b15:
// [83] phi (byte*) print_char_cursor#164 = (byte*) print_char_cursor#206 [phi:main::@15->print_str#0] -- register_copy
// [83] phi (byte*) print_str::str#20 = (const string) main::str1 [phi:main::@15->print_str#1] -- pbuz1=pbuc1
// [83] phi (byte*) print_str::str#20 = (const byte*) main::str1 [phi:main::@15->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -7522,7 +7523,7 @@ main: {
sta.z print_char_cursor
lda #>$400
sta.z print_char_cursor+1
// [83] phi (byte*) print_str::str#20 = (const string) main::str2 [phi:main::@17->print_str#1] -- pbuz1=pbuc1
// [83] phi (byte*) print_str::str#20 = (const byte*) main::str2 [phi:main::@17->print_str#1] -- pbuz1=pbuc1
lda #<str2
sta.z print_str.str
lda #>str2
@ -7606,7 +7607,7 @@ main: {
// [83] phi from main::@22 to print_str [phi:main::@22->print_str]
print_str_from___b22:
// [83] phi (byte*) print_char_cursor#164 = (byte*) print_char_cursor#207 [phi:main::@22->print_str#0] -- register_copy
// [83] phi (byte*) print_str::str#20 = (const string) main::str1 [phi:main::@22->print_str#1] -- pbuz1=pbuc1
// [83] phi (byte*) print_str::str#20 = (const byte*) main::str1 [phi:main::@22->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -7849,7 +7850,7 @@ printEntry: {
// [83] phi from printEntry to print_str [phi:printEntry->print_str]
print_str_from_printEntry:
// [83] phi (byte*) print_char_cursor#164 = (byte*) print_char_cursor#208 [phi:printEntry->print_str#0] -- register_copy
// [83] phi (byte*) print_str::str#20 = (const string) printEntry::str [phi:printEntry->print_str#1] -- pbuz1=pbuc1
// [83] phi (byte*) print_str::str#20 = (const byte*) printEntry::str [phi:printEntry->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -7901,7 +7902,7 @@ printEntry: {
// [83] phi from printEntry::@15 to print_str [phi:printEntry::@15->print_str]
print_str_from___b15:
// [83] phi (byte*) print_char_cursor#164 = (byte*) print_char_cursor#209 [phi:printEntry::@15->print_str#0] -- register_copy
// [83] phi (byte*) print_str::str#20 = (const string) printEntry::str1 [phi:printEntry::@15->print_str#1] -- pbuz1=pbuc1
// [83] phi (byte*) print_str::str#20 = (const byte*) printEntry::str1 [phi:printEntry::@15->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -7953,7 +7954,7 @@ printEntry: {
// [83] phi from printEntry::@17 to print_str [phi:printEntry::@17->print_str]
print_str_from___b17:
// [83] phi (byte*) print_char_cursor#164 = (byte*) print_char_cursor#210 [phi:printEntry::@17->print_str#0] -- register_copy
// [83] phi (byte*) print_str::str#20 = (const string) printEntry::str2 [phi:printEntry::@17->print_str#1] -- pbuz1=pbuc1
// [83] phi (byte*) print_str::str#20 = (const byte*) printEntry::str2 [phi:printEntry::@17->print_str#1] -- pbuz1=pbuc1
lda #<str2
sta.z print_str.str
lda #>str2
@ -8005,7 +8006,7 @@ printEntry: {
// [83] phi from printEntry::@19 to print_str [phi:printEntry::@19->print_str]
print_str_from___b19:
// [83] phi (byte*) print_char_cursor#164 = (byte*) print_char_cursor#211 [phi:printEntry::@19->print_str#0] -- register_copy
// [83] phi (byte*) print_str::str#20 = (const string) printEntry::str3 [phi:printEntry::@19->print_str#1] -- pbuz1=pbuc1
// [83] phi (byte*) print_str::str#20 = (const byte*) printEntry::str3 [phi:printEntry::@19->print_str#1] -- pbuz1=pbuc1
lda #<str3
sta.z print_str.str
lda #>str3
@ -8057,7 +8058,7 @@ printEntry: {
// [83] phi from printEntry::@21 to print_str [phi:printEntry::@21->print_str]
print_str_from___b21:
// [83] phi (byte*) print_char_cursor#164 = (byte*) print_char_cursor#212 [phi:printEntry::@21->print_str#0] -- register_copy
// [83] phi (byte*) print_str::str#20 = (const string) printEntry::str4 [phi:printEntry::@21->print_str#1] -- pbuz1=pbuc1
// [83] phi (byte*) print_str::str#20 = (const byte*) printEntry::str4 [phi:printEntry::@21->print_str#1] -- pbuz1=pbuc1
lda #<str4
sta.z print_str.str
lda #>str4
@ -8107,7 +8108,7 @@ printEntry: {
// [83] phi from printEntry::@23 to print_str [phi:printEntry::@23->print_str]
print_str_from___b23:
// [83] phi (byte*) print_char_cursor#164 = (byte*) print_char_cursor#213 [phi:printEntry::@23->print_str#0] -- register_copy
// [83] phi (byte*) print_str::str#20 = (const string) printEntry::str5 [phi:printEntry::@23->print_str#1] -- pbuz1=pbuc1
// [83] phi (byte*) print_str::str#20 = (const byte*) printEntry::str5 [phi:printEntry::@23->print_str#1] -- pbuz1=pbuc1
lda #<str5
sta.z print_str.str
lda #>str5
@ -8157,7 +8158,7 @@ printEntry: {
// [83] phi from printEntry::@25 to print_str [phi:printEntry::@25->print_str]
print_str_from___b25:
// [83] phi (byte*) print_char_cursor#164 = (byte*) print_char_cursor#214 [phi:printEntry::@25->print_str#0] -- register_copy
// [83] phi (byte*) print_str::str#20 = (const string) printEntry::str6 [phi:printEntry::@25->print_str#1] -- pbuz1=pbuc1
// [83] phi (byte*) print_str::str#20 = (const byte*) printEntry::str6 [phi:printEntry::@25->print_str#1] -- pbuz1=pbuc1
lda #<str6
sta.z print_str.str
lda #>str6
@ -8207,7 +8208,7 @@ printEntry: {
// [83] phi from printEntry::@27 to print_str [phi:printEntry::@27->print_str]
print_str_from___b27:
// [83] phi (byte*) print_char_cursor#164 = (byte*) print_char_cursor#215 [phi:printEntry::@27->print_str#0] -- register_copy
// [83] phi (byte*) print_str::str#20 = (const string) printEntry::str7 [phi:printEntry::@27->print_str#1] -- pbuz1=pbuc1
// [83] phi (byte*) print_str::str#20 = (const byte*) printEntry::str7 [phi:printEntry::@27->print_str#1] -- pbuz1=pbuc1
lda #<str7
sta.z print_str.str
lda #>str7
@ -8257,7 +8258,7 @@ printEntry: {
// [83] phi from printEntry::@29 to print_str [phi:printEntry::@29->print_str]
print_str_from___b29:
// [83] phi (byte*) print_char_cursor#164 = (byte*) print_char_cursor#216 [phi:printEntry::@29->print_str#0] -- register_copy
// [83] phi (byte*) print_str::str#20 = (const string) printEntry::str8 [phi:printEntry::@29->print_str#1] -- pbuz1=pbuc1
// [83] phi (byte*) print_str::str#20 = (const byte*) printEntry::str8 [phi:printEntry::@29->print_str#1] -- pbuz1=pbuc1
lda #<str8
sta.z print_str.str
lda #>str8
@ -8309,7 +8310,7 @@ printEntry: {
// [83] phi from printEntry::@31 to print_str [phi:printEntry::@31->print_str]
print_str_from___b31:
// [83] phi (byte*) print_char_cursor#164 = (byte*) print_char_cursor#217 [phi:printEntry::@31->print_str#0] -- register_copy
// [83] phi (byte*) print_str::str#20 = (const string) printEntry::str9 [phi:printEntry::@31->print_str#1] -- pbuz1=pbuc1
// [83] phi (byte*) print_str::str#20 = (const byte*) printEntry::str9 [phi:printEntry::@31->print_str#1] -- pbuz1=pbuc1
lda #<str9
sta.z print_str.str
lda #>str9
@ -8359,7 +8360,7 @@ printEntry: {
// [83] phi from printEntry::@33 to print_str [phi:printEntry::@33->print_str]
print_str_from___b33:
// [83] phi (byte*) print_char_cursor#164 = (byte*) print_char_cursor#218 [phi:printEntry::@33->print_str#0] -- register_copy
// [83] phi (byte*) print_str::str#20 = (const string) printEntry::str10 [phi:printEntry::@33->print_str#1] -- pbuz1=pbuc1
// [83] phi (byte*) print_str::str#20 = (const byte*) printEntry::str10 [phi:printEntry::@33->print_str#1] -- pbuz1=pbuc1
lda #<str10
sta.z print_str.str
lda #>str10
@ -8409,7 +8410,7 @@ printEntry: {
// [83] phi from printEntry::@35 to print_str [phi:printEntry::@35->print_str]
print_str_from___b35:
// [83] phi (byte*) print_char_cursor#164 = (byte*) print_char_cursor#219 [phi:printEntry::@35->print_str#0] -- register_copy
// [83] phi (byte*) print_str::str#20 = (const string) printEntry::str11 [phi:printEntry::@35->print_str#1] -- pbuz1=pbuc1
// [83] phi (byte*) print_str::str#20 = (const byte*) printEntry::str11 [phi:printEntry::@35->print_str#1] -- pbuz1=pbuc1
lda #<str11
sta.z print_str.str
lda #>str11
@ -8459,7 +8460,7 @@ printEntry: {
// [83] phi from printEntry::@37 to print_str [phi:printEntry::@37->print_str]
print_str_from___b37:
// [83] phi (byte*) print_char_cursor#164 = (byte*) print_char_cursor#220 [phi:printEntry::@37->print_str#0] -- register_copy
// [83] phi (byte*) print_str::str#20 = (const string) printEntry::str12 [phi:printEntry::@37->print_str#1] -- pbuz1=pbuc1
// [83] phi (byte*) print_str::str#20 = (const byte*) printEntry::str12 [phi:printEntry::@37->print_str#1] -- pbuz1=pbuc1
lda #<str12
sta.z print_str.str
lda #>str12
@ -9505,9 +9506,9 @@ FINAL SYMBOL TABLE
(byte) main::fileEntry2_idx
(const byte) main::fileEntry2_idx#0 fileEntry2_idx = (byte) 2
(byte*) main::fileEntry2_return
(const string) main::str[] = (string) "** entry 1 **"
(const string) main::str1[] = (string) "- press space -"
(const string) main::str2[] = (string) "** entry 2 **"
(const byte*) main::str[(byte) $e] = (string) "** entry 1 **"
(const byte*) main::str1[(byte) $10] = (string) "- press space -"
(const byte*) main::str2[(byte) $e] = (string) "** entry 2 **"
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
(label) memset::@1
(label) memset::@2
@ -9629,19 +9630,19 @@ FINAL SYMBOL TABLE
(label) printEntry::entryUCross1
(byte*) printEntry::entryUCross1_entry
(word*) printEntry::entryUCross1_return
(const string) printEntry::str[] = (string) "bufdisk "
(const string) printEntry::str1[] = (string) "bufedit "
(const string) printEntry::str10[] = (string) "baddrhi "
(const string) printEntry::str11[] = (string) "thi "
(const string) printEntry::str12[] = (string) "tlo "
(const string) printEntry::str2[] = (string) "tslen "
(const string) printEntry::str3[] = (string) "tsorder "
(const string) printEntry::str4[] = (string) "tlastlink "
(const string) printEntry::str5[] = (string) "slastlink "
(const string) printEntry::str6[] = (string) "bflag "
(const string) printEntry::str7[] = (string) "berror "
(const string) printEntry::str8[] = (string) "ucross "
(const string) printEntry::str9[] = (string) "baddrlo "
(const byte*) printEntry::str[(byte) $b] = (string) "bufdisk "
(const byte*) printEntry::str1[(byte) $b] = (string) "bufedit "
(const byte*) printEntry::str10[(byte) $d] = (string) "baddrhi "
(const byte*) printEntry::str11[(byte) $d] = (string) "thi "
(const byte*) printEntry::str12[(byte) $d] = (string) "tlo "
(const byte*) printEntry::str2[(byte) $b] = (string) "tslen "
(const byte*) printEntry::str3[(byte) $b] = (string) "tsorder "
(const byte*) printEntry::str4[(byte) $d] = (string) "tlastlink "
(const byte*) printEntry::str5[(byte) $d] = (string) "slastlink "
(const byte*) printEntry::str6[(byte) $d] = (string) "bflag "
(const byte*) printEntry::str7[(byte) $d] = (string) "berror "
(const byte*) printEntry::str8[(byte) $b] = (string) "ucross "
(const byte*) printEntry::str9[(byte) $d] = (string) "baddrlo "
(void()) print_byte((byte) print_byte::b)
(byte~) print_byte::$0 reg byte a 4.0
(byte~) print_byte::$2 reg byte x 4.0
@ -9925,7 +9926,7 @@ main: {
sta.z print_char_cursor
lda #>$400
sta.z print_char_cursor+1
// [83] phi (byte*) print_str::str#20 = (const string) main::str [phi:main::@10->print_str#1] -- pbuz1=pbuc1
// [83] phi (byte*) print_str::str#20 = (const byte*) main::str [phi:main::@10->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -9994,7 +9995,7 @@ main: {
// [35] call print_str
// [83] phi from main::@15 to print_str [phi:main::@15->print_str]
// [83] phi (byte*) print_char_cursor#164 = (byte*) print_char_cursor#206 [phi:main::@15->print_str#0] -- register_copy
// [83] phi (byte*) print_str::str#20 = (const string) main::str1 [phi:main::@15->print_str#1] -- pbuz1=pbuc1
// [83] phi (byte*) print_str::str#20 = (const byte*) main::str1 [phi:main::@15->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -10031,7 +10032,7 @@ main: {
sta.z print_char_cursor
lda #>$400
sta.z print_char_cursor+1
// [83] phi (byte*) print_str::str#20 = (const string) main::str2 [phi:main::@17->print_str#1] -- pbuz1=pbuc1
// [83] phi (byte*) print_str::str#20 = (const byte*) main::str2 [phi:main::@17->print_str#1] -- pbuz1=pbuc1
lda #<str2
sta.z print_str.str
lda #>str2
@ -10104,7 +10105,7 @@ main: {
// [56] call print_str
// [83] phi from main::@22 to print_str [phi:main::@22->print_str]
// [83] phi (byte*) print_char_cursor#164 = (byte*) print_char_cursor#207 [phi:main::@22->print_str#0] -- register_copy
// [83] phi (byte*) print_str::str#20 = (const string) main::str1 [phi:main::@22->print_str#1] -- pbuz1=pbuc1
// [83] phi (byte*) print_str::str#20 = (const byte*) main::str1 [phi:main::@22->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -10333,7 +10334,7 @@ printEntry: {
// [98] call print_str
// [83] phi from printEntry to print_str [phi:printEntry->print_str]
// [83] phi (byte*) print_char_cursor#164 = (byte*) print_char_cursor#208 [phi:printEntry->print_str#0] -- register_copy
// [83] phi (byte*) print_str::str#20 = (const string) printEntry::str [phi:printEntry->print_str#1] -- pbuz1=pbuc1
// [83] phi (byte*) print_str::str#20 = (const byte*) printEntry::str [phi:printEntry->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -10376,7 +10377,7 @@ printEntry: {
// [105] call print_str
// [83] phi from printEntry::@15 to print_str [phi:printEntry::@15->print_str]
// [83] phi (byte*) print_char_cursor#164 = (byte*) print_char_cursor#209 [phi:printEntry::@15->print_str#0] -- register_copy
// [83] phi (byte*) print_str::str#20 = (const string) printEntry::str1 [phi:printEntry::@15->print_str#1] -- pbuz1=pbuc1
// [83] phi (byte*) print_str::str#20 = (const byte*) printEntry::str1 [phi:printEntry::@15->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -10419,7 +10420,7 @@ printEntry: {
// [112] call print_str
// [83] phi from printEntry::@17 to print_str [phi:printEntry::@17->print_str]
// [83] phi (byte*) print_char_cursor#164 = (byte*) print_char_cursor#210 [phi:printEntry::@17->print_str#0] -- register_copy
// [83] phi (byte*) print_str::str#20 = (const string) printEntry::str2 [phi:printEntry::@17->print_str#1] -- pbuz1=pbuc1
// [83] phi (byte*) print_str::str#20 = (const byte*) printEntry::str2 [phi:printEntry::@17->print_str#1] -- pbuz1=pbuc1
lda #<str2
sta.z print_str.str
lda #>str2
@ -10462,7 +10463,7 @@ printEntry: {
// [119] call print_str
// [83] phi from printEntry::@19 to print_str [phi:printEntry::@19->print_str]
// [83] phi (byte*) print_char_cursor#164 = (byte*) print_char_cursor#211 [phi:printEntry::@19->print_str#0] -- register_copy
// [83] phi (byte*) print_str::str#20 = (const string) printEntry::str3 [phi:printEntry::@19->print_str#1] -- pbuz1=pbuc1
// [83] phi (byte*) print_str::str#20 = (const byte*) printEntry::str3 [phi:printEntry::@19->print_str#1] -- pbuz1=pbuc1
lda #<str3
sta.z print_str.str
lda #>str3
@ -10505,7 +10506,7 @@ printEntry: {
// [126] call print_str
// [83] phi from printEntry::@21 to print_str [phi:printEntry::@21->print_str]
// [83] phi (byte*) print_char_cursor#164 = (byte*) print_char_cursor#212 [phi:printEntry::@21->print_str#0] -- register_copy
// [83] phi (byte*) print_str::str#20 = (const string) printEntry::str4 [phi:printEntry::@21->print_str#1] -- pbuz1=pbuc1
// [83] phi (byte*) print_str::str#20 = (const byte*) printEntry::str4 [phi:printEntry::@21->print_str#1] -- pbuz1=pbuc1
lda #<str4
sta.z print_str.str
lda #>str4
@ -10546,7 +10547,7 @@ printEntry: {
// [133] call print_str
// [83] phi from printEntry::@23 to print_str [phi:printEntry::@23->print_str]
// [83] phi (byte*) print_char_cursor#164 = (byte*) print_char_cursor#213 [phi:printEntry::@23->print_str#0] -- register_copy
// [83] phi (byte*) print_str::str#20 = (const string) printEntry::str5 [phi:printEntry::@23->print_str#1] -- pbuz1=pbuc1
// [83] phi (byte*) print_str::str#20 = (const byte*) printEntry::str5 [phi:printEntry::@23->print_str#1] -- pbuz1=pbuc1
lda #<str5
sta.z print_str.str
lda #>str5
@ -10587,7 +10588,7 @@ printEntry: {
// [140] call print_str
// [83] phi from printEntry::@25 to print_str [phi:printEntry::@25->print_str]
// [83] phi (byte*) print_char_cursor#164 = (byte*) print_char_cursor#214 [phi:printEntry::@25->print_str#0] -- register_copy
// [83] phi (byte*) print_str::str#20 = (const string) printEntry::str6 [phi:printEntry::@25->print_str#1] -- pbuz1=pbuc1
// [83] phi (byte*) print_str::str#20 = (const byte*) printEntry::str6 [phi:printEntry::@25->print_str#1] -- pbuz1=pbuc1
lda #<str6
sta.z print_str.str
lda #>str6
@ -10628,7 +10629,7 @@ printEntry: {
// [147] call print_str
// [83] phi from printEntry::@27 to print_str [phi:printEntry::@27->print_str]
// [83] phi (byte*) print_char_cursor#164 = (byte*) print_char_cursor#215 [phi:printEntry::@27->print_str#0] -- register_copy
// [83] phi (byte*) print_str::str#20 = (const string) printEntry::str7 [phi:printEntry::@27->print_str#1] -- pbuz1=pbuc1
// [83] phi (byte*) print_str::str#20 = (const byte*) printEntry::str7 [phi:printEntry::@27->print_str#1] -- pbuz1=pbuc1
lda #<str7
sta.z print_str.str
lda #>str7
@ -10669,7 +10670,7 @@ printEntry: {
// [154] call print_str
// [83] phi from printEntry::@29 to print_str [phi:printEntry::@29->print_str]
// [83] phi (byte*) print_char_cursor#164 = (byte*) print_char_cursor#216 [phi:printEntry::@29->print_str#0] -- register_copy
// [83] phi (byte*) print_str::str#20 = (const string) printEntry::str8 [phi:printEntry::@29->print_str#1] -- pbuz1=pbuc1
// [83] phi (byte*) print_str::str#20 = (const byte*) printEntry::str8 [phi:printEntry::@29->print_str#1] -- pbuz1=pbuc1
lda #<str8
sta.z print_str.str
lda #>str8
@ -10712,7 +10713,7 @@ printEntry: {
// [161] call print_str
// [83] phi from printEntry::@31 to print_str [phi:printEntry::@31->print_str]
// [83] phi (byte*) print_char_cursor#164 = (byte*) print_char_cursor#217 [phi:printEntry::@31->print_str#0] -- register_copy
// [83] phi (byte*) print_str::str#20 = (const string) printEntry::str9 [phi:printEntry::@31->print_str#1] -- pbuz1=pbuc1
// [83] phi (byte*) print_str::str#20 = (const byte*) printEntry::str9 [phi:printEntry::@31->print_str#1] -- pbuz1=pbuc1
lda #<str9
sta.z print_str.str
lda #>str9
@ -10753,7 +10754,7 @@ printEntry: {
// [168] call print_str
// [83] phi from printEntry::@33 to print_str [phi:printEntry::@33->print_str]
// [83] phi (byte*) print_char_cursor#164 = (byte*) print_char_cursor#218 [phi:printEntry::@33->print_str#0] -- register_copy
// [83] phi (byte*) print_str::str#20 = (const string) printEntry::str10 [phi:printEntry::@33->print_str#1] -- pbuz1=pbuc1
// [83] phi (byte*) print_str::str#20 = (const byte*) printEntry::str10 [phi:printEntry::@33->print_str#1] -- pbuz1=pbuc1
lda #<str10
sta.z print_str.str
lda #>str10
@ -10794,7 +10795,7 @@ printEntry: {
// [175] call print_str
// [83] phi from printEntry::@35 to print_str [phi:printEntry::@35->print_str]
// [83] phi (byte*) print_char_cursor#164 = (byte*) print_char_cursor#219 [phi:printEntry::@35->print_str#0] -- register_copy
// [83] phi (byte*) print_str::str#20 = (const string) printEntry::str11 [phi:printEntry::@35->print_str#1] -- pbuz1=pbuc1
// [83] phi (byte*) print_str::str#20 = (const byte*) printEntry::str11 [phi:printEntry::@35->print_str#1] -- pbuz1=pbuc1
lda #<str11
sta.z print_str.str
lda #>str11
@ -10835,7 +10836,7 @@ printEntry: {
// [182] call print_str
// [83] phi from printEntry::@37 to print_str [phi:printEntry::@37->print_str]
// [83] phi (byte*) print_char_cursor#164 = (byte*) print_char_cursor#220 [phi:printEntry::@37->print_str#0] -- register_copy
// [83] phi (byte*) print_str::str#20 = (const string) printEntry::str12 [phi:printEntry::@37->print_str#1] -- pbuz1=pbuc1
// [83] phi (byte*) print_str::str#20 = (const byte*) printEntry::str12 [phi:printEntry::@37->print_str#1] -- pbuz1=pbuc1
lda #<str12
sta.z print_str.str
lda #>str12

@ -151,9 +151,9 @@
(byte) main::fileEntry2_idx
(const byte) main::fileEntry2_idx#0 fileEntry2_idx = (byte) 2
(byte*) main::fileEntry2_return
(const string) main::str[] = (string) "** entry 1 **"
(const string) main::str1[] = (string) "- press space -"
(const string) main::str2[] = (string) "** entry 2 **"
(const byte*) main::str[(byte) $e] = (string) "** entry 1 **"
(const byte*) main::str1[(byte) $10] = (string) "- press space -"
(const byte*) main::str2[(byte) $e] = (string) "** entry 2 **"
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
(label) memset::@1
(label) memset::@2
@ -275,19 +275,19 @@
(label) printEntry::entryUCross1
(byte*) printEntry::entryUCross1_entry
(word*) printEntry::entryUCross1_return
(const string) printEntry::str[] = (string) "bufdisk "
(const string) printEntry::str1[] = (string) "bufedit "
(const string) printEntry::str10[] = (string) "baddrhi "
(const string) printEntry::str11[] = (string) "thi "
(const string) printEntry::str12[] = (string) "tlo "
(const string) printEntry::str2[] = (string) "tslen "
(const string) printEntry::str3[] = (string) "tsorder "
(const string) printEntry::str4[] = (string) "tlastlink "
(const string) printEntry::str5[] = (string) "slastlink "
(const string) printEntry::str6[] = (string) "bflag "
(const string) printEntry::str7[] = (string) "berror "
(const string) printEntry::str8[] = (string) "ucross "
(const string) printEntry::str9[] = (string) "baddrlo "
(const byte*) printEntry::str[(byte) $b] = (string) "bufdisk "
(const byte*) printEntry::str1[(byte) $b] = (string) "bufedit "
(const byte*) printEntry::str10[(byte) $d] = (string) "baddrhi "
(const byte*) printEntry::str11[(byte) $d] = (string) "thi "
(const byte*) printEntry::str12[(byte) $d] = (string) "tlo "
(const byte*) printEntry::str2[(byte) $b] = (string) "tslen "
(const byte*) printEntry::str3[(byte) $b] = (string) "tsorder "
(const byte*) printEntry::str4[(byte) $d] = (string) "tlastlink "
(const byte*) printEntry::str5[(byte) $d] = (string) "slastlink "
(const byte*) printEntry::str6[(byte) $d] = (string) "bflag "
(const byte*) printEntry::str7[(byte) $d] = (string) "berror "
(const byte*) printEntry::str8[(byte) $b] = (string) "ucross "
(const byte*) printEntry::str9[(byte) $d] = (string) "baddrlo "
(void()) print_byte((byte) print_byte::b)
(byte~) print_byte::$0 reg byte a 4.0
(byte~) print_byte::$2 reg byte x 4.0

@ -164,7 +164,7 @@ print_word_decimal::@return: scope:[print_word_decimal] from print_word_decimal
(void()) print_str((byte*) print_str::str)
print_str: scope:[print_str] from main::@10 main::@15 main::@17 main::@23 main::@25 print_dword_decimal::@1 print_word_decimal::@1
[77] (byte*) print_char_cursor#66 ← phi( main::@10/(byte*) print_char_cursor#86 main::@15/(byte*) 1024 main::@17/(byte*) print_char_cursor#87 main::@23/(byte*) print_char_cursor#88 main::@25/(byte*) print_char_cursor#2 print_dword_decimal::@1/(byte*) print_char_cursor#2 print_word_decimal::@1/(byte*) print_char_cursor#58 )
[77] (byte*) print_str::str#10 ← phi( main::@10/(const string) main::str4 main::@15/(const string) main::str main::@17/(const string) main::str1 main::@23/(const string) main::str2 main::@25/(const string) main::str3 print_dword_decimal::@1/(const byte*) decimal_digits_long print_word_decimal::@1/(const byte*) decimal_digits )
[77] (byte*) print_str::str#10 ← phi( main::@10/(const byte*) main::str4 main::@15/(const byte*) main::str main::@17/(const byte*) main::str1 main::@23/(const byte*) main::str2 main::@25/(const byte*) main::str3 print_dword_decimal::@1/(const byte*) decimal_digits_long print_word_decimal::@1/(const byte*) decimal_digits )
to:print_str::@1
print_str::@1: scope:[print_str] from print_str print_str::@2
[78] (byte*) print_char_cursor#2 ← phi( print_str/(byte*) print_char_cursor#66 print_str::@2/(byte*) print_char_cursor#1 )

@ -868,7 +868,7 @@ main::@30: scope:[main] from main::@29
(byte*) print_line_cursor#15 ← phi( main::@29/(byte*) print_line_cursor#4 )
(byte*) print_line_cursor#5 ← (byte*) print_line_cursor#15
(byte*) print_char_cursor#13 ← (byte*) print_char_cursor#40
(byte*) print_str::str#3 ← (const string) main::str
(byte*) print_str::str#3 ← (const byte*) main::str
call print_str
to:main::@31
main::@31: scope:[main] from main::@30
@ -884,7 +884,7 @@ main::@32: scope:[main] from main::@31
(byte*) print_line_cursor#16 ← phi( main::@31/(byte*) print_line_cursor#2 )
(byte*) print_line_cursor#6 ← (byte*) print_line_cursor#16
(byte*) print_char_cursor#15 ← (byte*) print_char_cursor#42
(byte*) print_str::str#4 ← (const string) main::str1
(byte*) print_str::str#4 ← (const byte*) main::str1
call print_str
to:main::@33
main::@33: scope:[main] from main::@32
@ -978,7 +978,7 @@ main::@39: scope:[main] from main::@38
(word) rem16u#6 ← (word) rem16u#13
(word~) main::$13 ← ((word)) (dword~) main::$12
(word) main::sec100s#0 ← (word~) main::$13
(byte*) print_str::str#5 ← (const string) main::str2
(byte*) print_str::str#5 ← (const byte*) main::str2
call print_str
to:main::@40
main::@40: scope:[main] from main::@39
@ -997,7 +997,7 @@ main::@41: scope:[main] from main::@40
(dword) main::cyclecount#2 ← phi( main::@40/(dword) main::cyclecount#3 )
(byte*) print_char_cursor#47 ← phi( main::@40/(byte*) print_char_cursor#6 )
(byte*) print_char_cursor#20 ← (byte*) print_char_cursor#47
(byte*) print_str::str#6 ← (const string) main::str3
(byte*) print_str::str#6 ← (const byte*) main::str3
call print_str
to:main::@42
main::@42: scope:[main] from main::@41
@ -1089,7 +1089,7 @@ main::@17: scope:[main] from main::@15
(word) rem16u#25 ← phi( main::@15/(word) rem16u#28 )
(byte*) print_line_cursor#35 ← phi( main::@15/(byte*) print_line_cursor#38 )
(byte*) print_char_cursor#62 ← phi( main::@15/(byte*) print_char_cursor#71 )
(byte*) print_str::str#7 ← (const string) main::str4
(byte*) print_str::str#7 ← (const byte*) main::str4
call print_str
to:main::@45
main::@45: scope:[main] from main::@17
@ -1426,11 +1426,11 @@ SYMBOL TABLE SSA
(byte*) main::sieve_i#5
(byte*) main::sieve_i#6
(byte*) main::sieve_i#7
(const string) main::str[] = (string) "Sieve benchmark - calculating primes"
(const string) main::str1[] = (string) "between 2 and "
(const string) main::str2[] = (string) "100ths seconds used: "
(const string) main::str3[] = (string) " cycles: "
(const string) main::str4[] = (string) "..."
(const byte*) main::str[(byte) $25] = (string) "Sieve benchmark - calculating primes"
(const byte*) main::str1[(byte) $f] = (string) "between 2 and "
(const byte*) main::str2[(byte) $16] = (string) "100ths seconds used: "
(const byte*) main::str3[(byte) $a] = (string) " cycles: "
(const byte*) main::str4[(byte) 4] = (string) "..."
(label) main::toD0181
(word~) main::toD0181_$0
(number~) main::toD0181_$1
@ -2819,18 +2819,18 @@ Constant inlined main::toD0181_$4 = (word)(const byte*) main::toD0181_gfx#0
Constant inlined main::toD0181_$3 = >(word)(const byte*) SCREEN&(word) $3fff*(byte) 4
Constant inlined utoa::buffer#5 = (const byte*) decimal_digits
Constant inlined ultoa::digit#0 = (byte) 0
Constant inlined print_str::str#4 = (const string) main::str1
Constant inlined print_str::str#3 = (const string) main::str
Constant inlined print_str::str#4 = (const byte*) main::str1
Constant inlined print_str::str#3 = (const byte*) main::str
Constant inlined print_str::str#2 = (const byte*) decimal_digits_long
Constant inlined ultoa_append::digit#0 = (byte) 0
Constant inlined ultoa::digit_values#1 = (const dword*) RADIX_DECIMAL_VALUES_LONG
Constant inlined print_str::str#1 = (const byte*) decimal_digits
Constant inlined memset::c#0 = (byte) ' '
Constant inlined memset::c#1 = (byte) 0
Constant inlined print_str::str#7 = (const string) main::str4
Constant inlined print_str::str#6 = (const string) main::str3
Constant inlined print_str::str#7 = (const byte*) main::str4
Constant inlined print_str::str#6 = (const byte*) main::str3
Constant inlined main::sieve_i#0 = (const byte*) sieve+(word) 2
Constant inlined print_str::str#5 = (const string) main::str2
Constant inlined print_str::str#5 = (const byte*) main::str2
Successful SSA optimization Pass2ConstantInlining
Identical Phi Values (word) divr16u::divisor#6 (const word) div32u16u::divisor#0
Successful SSA optimization Pass2IdenticalPhiElimination
@ -3213,7 +3213,7 @@ print_word_decimal::@return: scope:[print_word_decimal] from print_word_decimal
(void()) print_str((byte*) print_str::str)
print_str: scope:[print_str] from main::@10 main::@15 main::@17 main::@23 main::@25 print_dword_decimal::@1 print_word_decimal::@1
[77] (byte*) print_char_cursor#66 ← phi( main::@10/(byte*) print_char_cursor#86 main::@15/(byte*) 1024 main::@17/(byte*) print_char_cursor#87 main::@23/(byte*) print_char_cursor#88 main::@25/(byte*) print_char_cursor#2 print_dword_decimal::@1/(byte*) print_char_cursor#2 print_word_decimal::@1/(byte*) print_char_cursor#58 )
[77] (byte*) print_str::str#10 ← phi( main::@10/(const string) main::str4 main::@15/(const string) main::str main::@17/(const string) main::str1 main::@23/(const string) main::str2 main::@25/(const string) main::str3 print_dword_decimal::@1/(const byte*) decimal_digits_long print_word_decimal::@1/(const byte*) decimal_digits )
[77] (byte*) print_str::str#10 ← phi( main::@10/(const byte*) main::str4 main::@15/(const byte*) main::str main::@17/(const byte*) main::str1 main::@23/(const byte*) main::str2 main::@25/(const byte*) main::str3 print_dword_decimal::@1/(const byte*) decimal_digits_long print_word_decimal::@1/(const byte*) decimal_digits )
to:print_str::@1
print_str::@1: scope:[print_str] from print_str print_str::@2
[78] (byte*) print_char_cursor#2 ← phi( print_str/(byte*) print_char_cursor#66 print_str::@2/(byte*) print_char_cursor#1 )
@ -3991,7 +3991,7 @@ main: {
sta.z print_char_cursor
lda #>$400
sta.z print_char_cursor+1
// [77] phi (byte*) print_str::str#10 = (const string) main::str [phi:main::@15->print_str#1] -- pbuz1=pbuc1
// [77] phi (byte*) print_str::str#10 = (const byte*) main::str [phi:main::@15->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -4023,7 +4023,7 @@ main: {
// [77] phi from main::@17 to print_str [phi:main::@17->print_str]
print_str_from___b17:
// [77] phi (byte*) print_char_cursor#66 = (byte*) print_char_cursor#87 [phi:main::@17->print_str#0] -- register_copy
// [77] phi (byte*) print_str::str#10 = (const string) main::str1 [phi:main::@17->print_str#1] -- pbuz1=pbuc1
// [77] phi (byte*) print_str::str#10 = (const byte*) main::str1 [phi:main::@17->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -4195,7 +4195,7 @@ main: {
// [77] phi from main::@23 to print_str [phi:main::@23->print_str]
print_str_from___b23:
// [77] phi (byte*) print_char_cursor#66 = (byte*) print_char_cursor#88 [phi:main::@23->print_str#0] -- register_copy
// [77] phi (byte*) print_str::str#10 = (const string) main::str2 [phi:main::@23->print_str#1] -- pbuz1=pbuc1
// [77] phi (byte*) print_str::str#10 = (const byte*) main::str2 [phi:main::@23->print_str#1] -- pbuz1=pbuc1
lda #<str2
sta.z print_str.str
lda #>str2
@ -4224,7 +4224,7 @@ main: {
// [77] phi from main::@25 to print_str [phi:main::@25->print_str]
print_str_from___b25:
// [77] phi (byte*) print_char_cursor#66 = (byte*) print_char_cursor#2 [phi:main::@25->print_str#0] -- register_copy
// [77] phi (byte*) print_str::str#10 = (const string) main::str3 [phi:main::@25->print_str#1] -- pbuz1=pbuc1
// [77] phi (byte*) print_str::str#10 = (const byte*) main::str3 [phi:main::@25->print_str#1] -- pbuz1=pbuc1
lda #<str3
sta.z print_str.str
lda #>str3
@ -4286,7 +4286,7 @@ main: {
// [77] phi from main::@10 to print_str [phi:main::@10->print_str]
print_str_from___b10:
// [77] phi (byte*) print_char_cursor#66 = (byte*) print_char_cursor#86 [phi:main::@10->print_str#0] -- register_copy
// [77] phi (byte*) print_str::str#10 = (const string) main::str4 [phi:main::@10->print_str#1] -- pbuz1=pbuc1
// [77] phi (byte*) print_str::str#10 = (const byte*) main::str4 [phi:main::@10->print_str#1] -- pbuz1=pbuc1
lda #<str4
sta.z print_str.str
lda #>str4
@ -5920,7 +5920,7 @@ main: {
sta.z print_char_cursor
lda #>$400
sta.z print_char_cursor+1
// [77] phi (byte*) print_str::str#10 = (const string) main::str [phi:main::@15->print_str#1] -- pbuz1=pbuc1
// [77] phi (byte*) print_str::str#10 = (const byte*) main::str [phi:main::@15->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -5952,7 +5952,7 @@ main: {
// [77] phi from main::@17 to print_str [phi:main::@17->print_str]
print_str_from___b17:
// [77] phi (byte*) print_char_cursor#66 = (byte*) print_char_cursor#87 [phi:main::@17->print_str#0] -- register_copy
// [77] phi (byte*) print_str::str#10 = (const string) main::str1 [phi:main::@17->print_str#1] -- pbuz1=pbuc1
// [77] phi (byte*) print_str::str#10 = (const byte*) main::str1 [phi:main::@17->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -6083,7 +6083,7 @@ main: {
// [77] phi from main::@23 to print_str [phi:main::@23->print_str]
print_str_from___b23:
// [77] phi (byte*) print_char_cursor#66 = (byte*) print_char_cursor#88 [phi:main::@23->print_str#0] -- register_copy
// [77] phi (byte*) print_str::str#10 = (const string) main::str2 [phi:main::@23->print_str#1] -- pbuz1=pbuc1
// [77] phi (byte*) print_str::str#10 = (const byte*) main::str2 [phi:main::@23->print_str#1] -- pbuz1=pbuc1
lda #<str2
sta.z print_str.str
lda #>str2
@ -6108,7 +6108,7 @@ main: {
// [77] phi from main::@25 to print_str [phi:main::@25->print_str]
print_str_from___b25:
// [77] phi (byte*) print_char_cursor#66 = (byte*) print_char_cursor#2 [phi:main::@25->print_str#0] -- register_copy
// [77] phi (byte*) print_str::str#10 = (const string) main::str3 [phi:main::@25->print_str#1] -- pbuz1=pbuc1
// [77] phi (byte*) print_str::str#10 = (const byte*) main::str3 [phi:main::@25->print_str#1] -- pbuz1=pbuc1
lda #<str3
sta.z print_str.str
lda #>str3
@ -6162,7 +6162,7 @@ main: {
// [77] phi from main::@10 to print_str [phi:main::@10->print_str]
print_str_from___b10:
// [77] phi (byte*) print_char_cursor#66 = (byte*) print_char_cursor#86 [phi:main::@10->print_str#0] -- register_copy
// [77] phi (byte*) print_str::str#10 = (const string) main::str4 [phi:main::@10->print_str#1] -- pbuz1=pbuc1
// [77] phi (byte*) print_str::str#10 = (const byte*) main::str4 [phi:main::@10->print_str#1] -- pbuz1=pbuc1
lda #<str4
sta.z print_str.str
lda #>str4
@ -7585,11 +7585,11 @@ FINAL SYMBOL TABLE
(byte*) main::sieve_i
(byte*) main::sieve_i#1 sieve_i zp[2]:15 22.0
(byte*) main::sieve_i#2 sieve_i zp[2]:15 3.0
(const string) main::str[] = (string) "Sieve benchmark - calculating primes"
(const string) main::str1[] = (string) "between 2 and "
(const string) main::str2[] = (string) "100ths seconds used: "
(const string) main::str3[] = (string) " cycles: "
(const string) main::str4[] = (string) "..."
(const byte*) main::str[(byte) $25] = (string) "Sieve benchmark - calculating primes"
(const byte*) main::str1[(byte) $f] = (string) "between 2 and "
(const byte*) main::str2[(byte) $16] = (string) "100ths seconds used: "
(const byte*) main::str3[(byte) $a] = (string) " cycles: "
(const byte*) main::str4[(byte) 4] = (string) "..."
(label) main::toD0181
(byte*) main::toD0181_gfx
(const byte*) main::toD0181_gfx#0 toD0181_gfx = (byte*) 6144
@ -7874,7 +7874,7 @@ main: {
sta.z print_char_cursor
lda #>$400
sta.z print_char_cursor+1
// [77] phi (byte*) print_str::str#10 = (const string) main::str [phi:main::@15->print_str#1] -- pbuz1=pbuc1
// [77] phi (byte*) print_str::str#10 = (const byte*) main::str [phi:main::@15->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -7901,7 +7901,7 @@ main: {
// [13] call print_str
// [77] phi from main::@17 to print_str [phi:main::@17->print_str]
// [77] phi (byte*) print_char_cursor#66 = (byte*) print_char_cursor#87 [phi:main::@17->print_str#0] -- register_copy
// [77] phi (byte*) print_str::str#10 = (const string) main::str1 [phi:main::@17->print_str#1] -- pbuz1=pbuc1
// [77] phi (byte*) print_str::str#10 = (const byte*) main::str1 [phi:main::@17->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -8021,7 +8021,7 @@ main: {
// [35] call print_str
// [77] phi from main::@23 to print_str [phi:main::@23->print_str]
// [77] phi (byte*) print_char_cursor#66 = (byte*) print_char_cursor#88 [phi:main::@23->print_str#0] -- register_copy
// [77] phi (byte*) print_str::str#10 = (const string) main::str2 [phi:main::@23->print_str#1] -- pbuz1=pbuc1
// [77] phi (byte*) print_str::str#10 = (const byte*) main::str2 [phi:main::@23->print_str#1] -- pbuz1=pbuc1
lda #<str2
sta.z print_str.str
lda #>str2
@ -8041,7 +8041,7 @@ main: {
// [39] call print_str
// [77] phi from main::@25 to print_str [phi:main::@25->print_str]
// [77] phi (byte*) print_char_cursor#66 = (byte*) print_char_cursor#2 [phi:main::@25->print_str#0] -- register_copy
// [77] phi (byte*) print_str::str#10 = (const string) main::str3 [phi:main::@25->print_str#1] -- pbuz1=pbuc1
// [77] phi (byte*) print_str::str#10 = (const byte*) main::str3 [phi:main::@25->print_str#1] -- pbuz1=pbuc1
lda #<str3
sta.z print_str.str
lda #>str3
@ -8088,7 +8088,7 @@ main: {
// [47] call print_str
// [77] phi from main::@10 to print_str [phi:main::@10->print_str]
// [77] phi (byte*) print_char_cursor#66 = (byte*) print_char_cursor#86 [phi:main::@10->print_str#0] -- register_copy
// [77] phi (byte*) print_str::str#10 = (const string) main::str4 [phi:main::@10->print_str#1] -- pbuz1=pbuc1
// [77] phi (byte*) print_str::str#10 = (const byte*) main::str4 [phi:main::@10->print_str#1] -- pbuz1=pbuc1
lda #<str4
sta.z print_str.str
lda #>str4

@ -135,11 +135,11 @@
(byte*) main::sieve_i
(byte*) main::sieve_i#1 sieve_i zp[2]:15 22.0
(byte*) main::sieve_i#2 sieve_i zp[2]:15 3.0
(const string) main::str[] = (string) "Sieve benchmark - calculating primes"
(const string) main::str1[] = (string) "between 2 and "
(const string) main::str2[] = (string) "100ths seconds used: "
(const string) main::str3[] = (string) " cycles: "
(const string) main::str4[] = (string) "..."
(const byte*) main::str[(byte) $25] = (string) "Sieve benchmark - calculating primes"
(const byte*) main::str1[(byte) $f] = (string) "between 2 and "
(const byte*) main::str2[(byte) $16] = (string) "100ths seconds used: "
(const byte*) main::str3[(byte) $a] = (string) " cycles: "
(const byte*) main::str4[(byte) 4] = (string) "..."
(label) main::toD0181
(byte*) main::toD0181_gfx
(const byte*) main::toD0181_gfx#0 toD0181_gfx = (byte*) 6144

@ -49,7 +49,7 @@ main::@7: scope:[main] from main::@6
(void()) print_str((byte*) print_str::str)
print_str: scope:[print_str] from main::@4 main::@6
[21] (byte*) print_char_cursor#55 ← phi( main::@6/(byte*) print_char_cursor#13 main::@4/(byte*) print_char_cursor#21 )
[21] (byte*) print_str::str#5 ← phi( main::@6/(const string) main::str main::@4/(const string) main::str1 )
[21] (byte*) print_str::str#5 ← phi( main::@6/(const byte*) main::str main::@4/(const byte*) main::str1 )
to:print_str::@1
print_str::@1: scope:[print_str] from print_str print_str::@2
[22] (byte*) print_char_cursor#2 ← phi( print_str/(byte*) print_char_cursor#55 print_str::@2/(byte*) print_char_cursor#1 )

@ -758,7 +758,7 @@ main::@11: scope:[main] from main::@4
(signed word*) main::st1#5 ← phi( main::@4/(signed word*) main::st1#6 )
(byte*) print_char_cursor#39 ← phi( main::@4/(byte*) print_char_cursor#6 )
(byte*) print_char_cursor#18 ← (byte*) print_char_cursor#39
(byte*) print_str::str#1 ← (const string) main::str
(byte*) print_str::str#1 ← (const byte*) main::str
call print_str
to:main::@12
main::@12: scope:[main] from main::@11
@ -775,7 +775,7 @@ main::@7: scope:[main] from main::@2
(signed word*) main::st1#8 ← phi( main::@2/(signed word*) main::st1#3 )
(signed word) main::sw#3 ← phi( main::@2/(signed word) main::sw#0 )
(byte*) print_char_cursor#52 ← phi( main::@2/(byte*) print_char_cursor#58 )
(byte*) print_str::str#2 ← (const string) main::str1
(byte*) print_str::str#2 ← (const byte*) main::str1
call print_str
to:main::@13
main::@13: scope:[main] from main::@7
@ -961,8 +961,8 @@ SYMBOL TABLE SSA
(signed word*) main::st1#6
(signed word*) main::st1#7
(signed word*) main::st1#8
(const string) main::str[] = (string) " "
(const string) main::str1[] = (string) " "
(const byte*) main::str[(byte) 4] = (string) " "
(const byte*) main::str1[(byte) 2] = (string) " "
(signed word) main::sw
(signed word) main::sw#0
(signed word) main::sw#1
@ -1869,10 +1869,10 @@ Constant inlined main::st1#0 = (const signed word*) main::sintab1
Constant inlined mulu16_sel::v2#2 = (word)(number) $10000/(number) 6
Constant inlined print_char::ch#0 = (byte) '-'
Constant inlined sin16s_gen::x#0 = (dword) 0
Constant inlined print_str::str#2 = (const string) main::str1
Constant inlined print_str::str#2 = (const byte*) main::str1
Constant inlined memset::dst#0 = (byte*)(const void*) memset::str#0
Constant inlined div32u16u::divisor#0 = (const word) main::wavelength
Constant inlined print_str::str#1 = (const string) main::str
Constant inlined print_str::str#1 = (const byte*) main::str
Constant inlined main::$9 = (const word) main::wavelength*(const byte) SIZEOF_SIGNED_WORD
Successful SSA optimization Pass2ConstantInlining
Identical Phi Values (word) divr16u::divisor#6 (const word) main::wavelength
@ -2086,7 +2086,7 @@ main::@7: scope:[main] from main::@6
(void()) print_str((byte*) print_str::str)
print_str: scope:[print_str] from main::@4 main::@6
[21] (byte*) print_char_cursor#55 ← phi( main::@6/(byte*) print_char_cursor#13 main::@4/(byte*) print_char_cursor#21 )
[21] (byte*) print_str::str#5 ← phi( main::@6/(const string) main::str main::@4/(const string) main::str1 )
[21] (byte*) print_str::str#5 ← phi( main::@6/(const byte*) main::str main::@4/(const byte*) main::str1 )
to:print_str::@1
print_str::@1: scope:[print_str] from print_str print_str::@2
[22] (byte*) print_char_cursor#2 ← phi( print_str/(byte*) print_char_cursor#55 print_str::@2/(byte*) print_char_cursor#1 )
@ -2871,7 +2871,7 @@ main: {
// [21] phi from main::@4 to print_str [phi:main::@4->print_str]
print_str_from___b4:
// [21] phi (byte*) print_char_cursor#55 = (byte*) print_char_cursor#21 [phi:main::@4->print_str#0] -- register_copy
// [21] phi (byte*) print_str::str#5 = (const string) main::str1 [phi:main::@4->print_str#1] -- pbuz1=pbuc1
// [21] phi (byte*) print_str::str#5 = (const byte*) main::str1 [phi:main::@4->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -2900,7 +2900,7 @@ main: {
// [21] phi from main::@6 to print_str [phi:main::@6->print_str]
print_str_from___b6:
// [21] phi (byte*) print_char_cursor#55 = (byte*) print_char_cursor#13 [phi:main::@6->print_str#0] -- register_copy
// [21] phi (byte*) print_str::str#5 = (const string) main::str [phi:main::@6->print_str#1] -- pbuz1=pbuc1
// [21] phi (byte*) print_str::str#5 = (const byte*) main::str [phi:main::@6->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -4486,7 +4486,7 @@ main: {
// [21] phi from main::@4 to print_str [phi:main::@4->print_str]
print_str_from___b4:
// [21] phi (byte*) print_char_cursor#55 = (byte*) print_char_cursor#21 [phi:main::@4->print_str#0] -- register_copy
// [21] phi (byte*) print_str::str#5 = (const string) main::str1 [phi:main::@4->print_str#1] -- pbuz1=pbuc1
// [21] phi (byte*) print_str::str#5 = (const byte*) main::str1 [phi:main::@4->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -4511,7 +4511,7 @@ main: {
// [21] phi from main::@6 to print_str [phi:main::@6->print_str]
print_str_from___b6:
// [21] phi (byte*) print_char_cursor#55 = (byte*) print_char_cursor#13 [phi:main::@6->print_str#0] -- register_copy
// [21] phi (byte*) print_str::str#5 = (const string) main::str [phi:main::@6->print_str#1] -- pbuz1=pbuc1
// [21] phi (byte*) print_str::str#5 = (const byte*) main::str [phi:main::@6->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -5787,8 +5787,8 @@ FINAL SYMBOL TABLE
(signed word*) main::st1
(signed word*) main::st1#1 st1 zp[2]:16 22.0
(signed word*) main::st1#2 st1 zp[2]:16 4.0
(const string) main::str[] = (string) " "
(const string) main::str1[] = (string) " "
(const byte*) main::str[(byte) 4] = (string) " "
(const byte*) main::str1[(byte) 2] = (string) " "
(signed word) main::sw
(signed word) main::sw#0 sw zp[2]:8 6.6000000000000005
(const word) main::wavelength = (word) $78
@ -6090,7 +6090,7 @@ main: {
// [14] call print_str
// [21] phi from main::@4 to print_str [phi:main::@4->print_str]
// [21] phi (byte*) print_char_cursor#55 = (byte*) print_char_cursor#21 [phi:main::@4->print_str#0] -- register_copy
// [21] phi (byte*) print_str::str#5 = (const string) main::str1 [phi:main::@4->print_str#1] -- pbuz1=pbuc1
// [21] phi (byte*) print_str::str#5 = (const byte*) main::str1 [phi:main::@4->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -6110,7 +6110,7 @@ main: {
// [19] call print_str
// [21] phi from main::@6 to print_str [phi:main::@6->print_str]
// [21] phi (byte*) print_char_cursor#55 = (byte*) print_char_cursor#13 [phi:main::@6->print_str#0] -- register_copy
// [21] phi (byte*) print_str::str#5 = (const string) main::str [phi:main::@6->print_str#1] -- pbuz1=pbuc1
// [21] phi (byte*) print_str::str#5 = (const byte*) main::str [phi:main::@6->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str

@ -71,8 +71,8 @@
(signed word*) main::st1
(signed word*) main::st1#1 st1 zp[2]:16 22.0
(signed word*) main::st1#2 st1 zp[2]:16 4.0
(const string) main::str[] = (string) " "
(const string) main::str1[] = (string) " "
(const byte*) main::str[(byte) 4] = (string) " "
(const byte*) main::str1[(byte) 2] = (string) " "
(signed word) main::sw
(signed word) main::sw#0 sw zp[2]:8 6.6000000000000005
(const word) main::wavelength = (word) $78

@ -55,7 +55,7 @@ main::@return: scope:[main] from main::@7
(void()) print_str((byte*) print_str::str)
print_str: scope:[print_str] from main::@3 main::@6
[25] (byte*) print_char_cursor#54 ← phi( main::@3/(byte*) print_char_cursor#52 main::@6/(byte*) print_char_cursor#13 )
[25] (byte*) print_str::str#5 ← phi( main::@3/(const string) main::str1 main::@6/(const string) main::str )
[25] (byte*) print_str::str#5 ← phi( main::@3/(const byte*) main::str1 main::@6/(const byte*) main::str )
to:print_str::@1
print_str::@1: scope:[print_str] from print_str print_str::@2
[26] (byte*) print_char_cursor#2 ← phi( print_str/(byte*) print_char_cursor#54 print_str::@2/(byte*) print_char_cursor#1 )

@ -958,7 +958,7 @@ main::@8: scope:[main] from main::@2
(signed word*) main::st1#4 ← phi( main::@2/(signed word*) main::st1#5 )
(byte*) print_char_cursor#39 ← phi( main::@2/(byte*) print_char_cursor#6 )
(byte*) print_char_cursor#18 ← (byte*) print_char_cursor#39
(byte*) print_str::str#1 ← (const string) main::str
(byte*) print_str::str#1 ← (const byte*) main::str
call print_str
to:main::@9
main::@9: scope:[main] from main::@8
@ -983,7 +983,7 @@ main::@3: scope:[main] from main::@1
(signed word*) main::st1#7 ← phi( main::@1/(signed word*) main::st1#2 )
(signed word) main::sw#3 ← phi( main::@1/(signed word) main::sw#0 )
(byte*) print_char_cursor#52 ← phi( main::@1/(byte*) print_char_cursor#57 )
(byte*) print_str::str#2 ← (const string) main::str1
(byte*) print_str::str#2 ← (const byte*) main::str1
call print_str
to:main::@10
main::@10: scope:[main] from main::@3
@ -1194,8 +1194,8 @@ SYMBOL TABLE SSA
(signed word*) main::st2#5
(signed word*) main::st2#6
(signed word*) main::st2#7
(const string) main::str[] = (string) " "
(const string) main::str1[] = (string) " "
(const byte*) main::str[(byte) 4] = (string) " "
(const byte*) main::str1[(byte) 2] = (string) " "
(signed word) main::sw
(signed word) main::sw#0
(signed word) main::sw#1
@ -2410,10 +2410,10 @@ Constant inlined mulu16_sel::v2#2 = (word)(number) $10000/(number) 6
Constant inlined print_char::ch#0 = (byte) '-'
Constant inlined sin16s_gen::x#0 = (dword) 0
Constant inlined div32u16u::divisor#1 = (const word) main::wavelength
Constant inlined print_str::str#2 = (const string) main::str1
Constant inlined print_str::str#2 = (const byte*) main::str1
Constant inlined memset::dst#0 = (byte*)(const void*) memset::str#0
Constant inlined div32u16u::divisor#0 = (const word) main::wavelength
Constant inlined print_str::str#1 = (const string) main::str
Constant inlined print_str::str#1 = (const byte*) main::str
Successful SSA optimization Pass2ConstantInlining
Identical Phi Values (dword) div32u16u::dividend#2 (const dword) PI2_u4f28
Identical Phi Values (word) div32u16u::divisor#2 (const word) main::wavelength
@ -2692,7 +2692,7 @@ main::@return: scope:[main] from main::@7
(void()) print_str((byte*) print_str::str)
print_str: scope:[print_str] from main::@3 main::@6
[25] (byte*) print_char_cursor#54 ← phi( main::@3/(byte*) print_char_cursor#52 main::@6/(byte*) print_char_cursor#13 )
[25] (byte*) print_str::str#5 ← phi( main::@3/(const string) main::str1 main::@6/(const string) main::str )
[25] (byte*) print_str::str#5 ← phi( main::@3/(const byte*) main::str1 main::@6/(const byte*) main::str )
to:print_str::@1
print_str::@1: scope:[print_str] from print_str print_str::@2
[26] (byte*) print_char_cursor#2 ← phi( print_str/(byte*) print_char_cursor#54 print_str::@2/(byte*) print_char_cursor#1 )
@ -3740,7 +3740,7 @@ main: {
// [25] phi from main::@3 to print_str [phi:main::@3->print_str]
print_str_from___b3:
// [25] phi (byte*) print_char_cursor#54 = (byte*) print_char_cursor#52 [phi:main::@3->print_str#0] -- register_copy
// [25] phi (byte*) print_str::str#5 = (const string) main::str1 [phi:main::@3->print_str#1] -- pbuz1=pbuc1
// [25] phi (byte*) print_str::str#5 = (const byte*) main::str1 [phi:main::@3->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -3769,7 +3769,7 @@ main: {
// [25] phi from main::@6 to print_str [phi:main::@6->print_str]
print_str_from___b6:
// [25] phi (byte*) print_char_cursor#54 = (byte*) print_char_cursor#13 [phi:main::@6->print_str#0] -- register_copy
// [25] phi (byte*) print_str::str#5 = (const string) main::str [phi:main::@6->print_str#1] -- pbuz1=pbuc1
// [25] phi (byte*) print_str::str#5 = (const byte*) main::str [phi:main::@6->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -5986,7 +5986,7 @@ main: {
// [25] phi from main::@3 to print_str [phi:main::@3->print_str]
print_str_from___b3:
// [25] phi (byte*) print_char_cursor#54 = (byte*) print_char_cursor#52 [phi:main::@3->print_str#0] -- register_copy
// [25] phi (byte*) print_str::str#5 = (const string) main::str1 [phi:main::@3->print_str#1] -- pbuz1=pbuc1
// [25] phi (byte*) print_str::str#5 = (const byte*) main::str1 [phi:main::@3->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -6011,7 +6011,7 @@ main: {
// [25] phi from main::@6 to print_str [phi:main::@6->print_str]
print_str_from___b6:
// [25] phi (byte*) print_char_cursor#54 = (byte*) print_char_cursor#13 [phi:main::@6->print_str#0] -- register_copy
// [25] phi (byte*) print_str::str#5 = (const string) main::str [phi:main::@6->print_str#1] -- pbuz1=pbuc1
// [25] phi (byte*) print_str::str#5 = (const byte*) main::str [phi:main::@6->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -7737,8 +7737,8 @@ FINAL SYMBOL TABLE
(signed word*) main::st2
(signed word*) main::st2#1 st2 zp[2]:11 7.333333333333333
(signed word*) main::st2#2 st2 zp[2]:11 3.0
(const string) main::str[] = (string) " "
(const string) main::str1[] = (string) " "
(const byte*) main::str[(byte) 4] = (string) " "
(const byte*) main::str1[(byte) 2] = (string) " "
(signed word) main::sw
(signed word) main::sw#0 sw zp[2]:25 6.6000000000000005
(const word) main::wavelength = (word) $78
@ -8130,7 +8130,7 @@ main: {
// [14] call print_str
// [25] phi from main::@3 to print_str [phi:main::@3->print_str]
// [25] phi (byte*) print_char_cursor#54 = (byte*) print_char_cursor#52 [phi:main::@3->print_str#0] -- register_copy
// [25] phi (byte*) print_str::str#5 = (const string) main::str1 [phi:main::@3->print_str#1] -- pbuz1=pbuc1
// [25] phi (byte*) print_str::str#5 = (const byte*) main::str1 [phi:main::@3->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -8150,7 +8150,7 @@ main: {
// [19] call print_str
// [25] phi from main::@6 to print_str [phi:main::@6->print_str]
// [25] phi (byte*) print_char_cursor#54 = (byte*) print_char_cursor#13 [phi:main::@6->print_str#0] -- register_copy
// [25] phi (byte*) print_str::str#5 = (const string) main::str [phi:main::@6->print_str#1] -- pbuz1=pbuc1
// [25] phi (byte*) print_str::str#5 = (const byte*) main::str [phi:main::@6->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str

@ -81,8 +81,8 @@
(signed word*) main::st2
(signed word*) main::st2#1 st2 zp[2]:11 7.333333333333333
(signed word*) main::st2#2 st2 zp[2]:11 3.0
(const string) main::str[] = (string) " "
(const string) main::str1[] = (string) " "
(const byte*) main::str[(byte) 4] = (string) " "
(const byte*) main::str1[(byte) 2] = (string) " "
(signed word) main::sw
(signed word) main::sw#0 sw zp[2]:25 6.6000000000000005
(const word) main::wavelength = (word) $78

@ -42,7 +42,7 @@ print_str: scope:[print_str] from main::@3
to:print_str::@1
print_str::@1: scope:[print_str] from print_str print_str::@2
[18] (byte*) print_char_cursor#19 ← phi( print_str/(byte*) print_char_cursor#10 print_str::@2/(byte*) print_char_cursor#1 )
[18] (byte*) print_str::str#2 ← phi( print_str/(const string) main::str print_str::@2/(byte*) print_str::str#0 )
[18] (byte*) print_str::str#2 ← phi( print_str/(const byte*) main::str print_str::@2/(byte*) print_str::str#0 )
[19] if((byte) 0!=*((byte*) print_str::str#2)) goto print_str::@2
to:print_str::@return
print_str::@return: scope:[print_str] from print_str::@1

@ -676,7 +676,7 @@ main::@5: scope:[main] from main::@1
(byte) main::i#4 ← phi( main::@1/(byte) main::i#2 )
(byte*) print_char_cursor#32 ← phi( main::@1/(byte*) print_char_cursor#6 )
(byte*) print_char_cursor#15 ← (byte*) print_char_cursor#32
(byte*) print_str::str#1 ← (const string) main::str
(byte*) print_str::str#1 ← (const byte*) main::str
call print_str
to:main::@6
main::@6: scope:[main] from main::@5
@ -828,7 +828,7 @@ SYMBOL TABLE SSA
(byte) main::i#4
(signed byte) main::sb
(signed byte) main::sb#0
(const string) main::str[] = (string) " "
(const byte*) main::str[(byte) 3] = (string) " "
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
(bool~) memset::$0
(bool~) memset::$1
@ -1619,7 +1619,7 @@ Constant inlined print_char::ch#0 = (byte) '-'
Constant inlined sin8s_gen::sintab#1 = (const signed byte*) sintab2
Constant inlined sin8s_gen::wavelength#0 = (const word) wavelength
Constant inlined memset::dst#0 = (byte*)(const void*) memset::str#0
Constant inlined print_str::str#1 = (const string) main::str
Constant inlined print_str::str#1 = (const byte*) main::str
Constant inlined sin8s_gen::i#0 = (word) 0
Successful SSA optimization Pass2ConstantInlining
Added new block during phi lifting divr16u::@8(between divr16u::@3 and divr16u::@1)
@ -1814,7 +1814,7 @@ print_str: scope:[print_str] from main::@3
to:print_str::@1
print_str::@1: scope:[print_str] from print_str print_str::@2
[18] (byte*) print_char_cursor#19 ← phi( print_str/(byte*) print_char_cursor#10 print_str::@2/(byte*) print_char_cursor#1 )
[18] (byte*) print_str::str#2 ← phi( print_str/(const string) main::str print_str::@2/(byte*) print_str::str#0 )
[18] (byte*) print_str::str#2 ← phi( print_str/(const byte*) main::str print_str::@2/(byte*) print_str::str#0 )
[19] if((byte) 0!=*((byte*) print_str::str#2)) goto print_str::@2
to:print_str::@return
print_str::@return: scope:[print_str] from print_str::@1
@ -2554,7 +2554,7 @@ print_str: {
// [18] phi from print_str to print_str::@1 [phi:print_str->print_str::@1]
__b1_from_print_str:
// [18] phi (byte*) print_char_cursor#19 = (byte*) print_char_cursor#10 [phi:print_str->print_str::@1#0] -- register_copy
// [18] phi (byte*) print_str::str#2 = (const string) main::str [phi:print_str->print_str::@1#1] -- pbuz1=pbuc1
// [18] phi (byte*) print_str::str#2 = (const byte*) main::str [phi:print_str->print_str::@1#1] -- pbuz1=pbuc1
lda #<main.str
sta.z str
lda #>main.str
@ -3820,7 +3820,7 @@ print_str: {
// [18] phi from print_str to print_str::@1 [phi:print_str->print_str::@1]
__b1_from_print_str:
// [18] phi (byte*) print_char_cursor#19 = (byte*) print_char_cursor#10 [phi:print_str->print_str::@1#0] -- register_copy
// [18] phi (byte*) print_str::str#2 = (const string) main::str [phi:print_str->print_str::@1#1] -- pbuz1=pbuc1
// [18] phi (byte*) print_str::str#2 = (const byte*) main::str [phi:print_str->print_str::@1#1] -- pbuz1=pbuc1
lda #<main.str
sta.z str
lda #>main.str
@ -4864,7 +4864,7 @@ FINAL SYMBOL TABLE
(byte) main::i#2 reg byte x 5.5
(signed byte) main::sb
(signed byte) main::sb#0 reg byte a 22.0
(const string) main::str[] = (string) " "
(const byte*) main::str[(byte) 3] = (string) " "
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
(label) memset::@1
(label) memset::@2
@ -5175,7 +5175,7 @@ print_str: {
.label str = 6
// [18] phi from print_str to print_str::@1 [phi:print_str->print_str::@1]
// [18] phi (byte*) print_char_cursor#19 = (byte*) print_char_cursor#10 [phi:print_str->print_str::@1#0] -- register_copy
// [18] phi (byte*) print_str::str#2 = (const string) main::str [phi:print_str->print_str::@1#1] -- pbuz1=pbuc1
// [18] phi (byte*) print_str::str#2 = (const byte*) main::str [phi:print_str->print_str::@1#1] -- pbuz1=pbuc1
lda #<main.str
sta.z str
lda #>main.str

@ -57,7 +57,7 @@
(byte) main::i#2 reg byte x 5.5
(signed byte) main::sb
(signed byte) main::sb#0 reg byte a 22.0
(const string) main::str[] = (string) " "
(const byte*) main::str[(byte) 3] = (string) " "
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
(label) memset::@1
(label) memset::@2

@ -52,7 +52,7 @@ print_str: scope:[print_str] from main::@4
to:print_str::@1
print_str::@1: scope:[print_str] from print_str print_str::@2
[26] (byte*) print_char_cursor#19 ← phi( print_str/(byte*) print_char_cursor#10 print_str::@2/(byte*) print_char_cursor#1 )
[26] (byte*) print_str::str#2 ← phi( print_str/(const string) main::str print_str::@2/(byte*) print_str::str#0 )
[26] (byte*) print_str::str#2 ← phi( print_str/(const byte*) main::str print_str::@2/(byte*) print_str::str#0 )
[27] if((byte) 0!=*((byte*) print_str::str#2)) goto print_str::@2
to:print_str::@return
print_str::@return: scope:[print_str] from print_str::@1

@ -1034,7 +1034,7 @@ main::@6: scope:[main] from main::@1
(byte) main::i#4 ← phi( main::@1/(byte) main::i#2 )
(byte*) print_char_cursor#32 ← phi( main::@1/(byte*) print_char_cursor#6 )
(byte*) print_char_cursor#15 ← (byte*) print_char_cursor#32
(byte*) print_str::str#1 ← (const string) main::str
(byte*) print_str::str#1 ← (const byte*) main::str
call print_str
to:main::@7
main::@7: scope:[main] from main::@6
@ -1246,7 +1246,7 @@ SYMBOL TABLE SSA
(signed byte) main::sd#0
(const signed byte*) main::sintabb[(number) $c0] = { fill( $c0, 0) }
(const signed word*) main::sintabw[(number) $c0] = { fill( $c0, 0) }
(const string) main::str[] = (string) " "
(const byte*) main::str[(byte) 3] = (string) " "
(signed word) main::sw
(signed word) main::sw#0
(const word) main::wavelength = (word) $c0
@ -2540,7 +2540,7 @@ Constant inlined sin16s_gen::x#0 = (dword) 0
Constant inlined sin8s_gen::wavelength#0 = (const word) main::wavelength
Constant inlined memset::dst#0 = (byte*)(const void*) memset::str#0
Constant inlined div32u16u::divisor#0 = (const word) main::wavelength
Constant inlined print_str::str#1 = (const string) main::str
Constant inlined print_str::str#1 = (const byte*) main::str
Constant inlined sin8s_gen::i#0 = (word) 0
Successful SSA optimization Pass2ConstantInlining
Identical Phi Values (word) divr16u::divisor#7 (const word) main::wavelength
@ -2806,7 +2806,7 @@ print_str: scope:[print_str] from main::@4
to:print_str::@1
print_str::@1: scope:[print_str] from print_str print_str::@2
[26] (byte*) print_char_cursor#19 ← phi( print_str/(byte*) print_char_cursor#10 print_str::@2/(byte*) print_char_cursor#1 )
[26] (byte*) print_str::str#2 ← phi( print_str/(const string) main::str print_str::@2/(byte*) print_str::str#0 )
[26] (byte*) print_str::str#2 ← phi( print_str/(const byte*) main::str print_str::@2/(byte*) print_str::str#0 )
[27] if((byte) 0!=*((byte*) print_str::str#2)) goto print_str::@2
to:print_str::@return
print_str::@return: scope:[print_str] from print_str::@1
@ -4039,7 +4039,7 @@ print_str: {
// [26] phi from print_str to print_str::@1 [phi:print_str->print_str::@1]
__b1_from_print_str:
// [26] phi (byte*) print_char_cursor#19 = (byte*) print_char_cursor#10 [phi:print_str->print_str::@1#0] -- register_copy
// [26] phi (byte*) print_str::str#2 = (const string) main::str [phi:print_str->print_str::@1#1] -- pbuz1=pbuc1
// [26] phi (byte*) print_str::str#2 = (const byte*) main::str [phi:print_str->print_str::@1#1] -- pbuz1=pbuc1
lda #<main.str
sta.z str
lda #>main.str
@ -6358,7 +6358,7 @@ print_str: {
// [26] phi from print_str to print_str::@1 [phi:print_str->print_str::@1]
__b1_from_print_str:
// [26] phi (byte*) print_char_cursor#19 = (byte*) print_char_cursor#10 [phi:print_str->print_str::@1#0] -- register_copy
// [26] phi (byte*) print_str::str#2 = (const string) main::str [phi:print_str->print_str::@1#1] -- pbuz1=pbuc1
// [26] phi (byte*) print_str::str#2 = (const byte*) main::str [phi:print_str->print_str::@1#1] -- pbuz1=pbuc1
lda #<main.str
sta.z str
lda #>main.str
@ -8139,7 +8139,7 @@ FINAL SYMBOL TABLE
(signed byte) main::sd#0 reg byte a 22.0
(const signed byte*) main::sintabb[(number) $c0] = { fill( $c0, 0) }
(const signed word*) main::sintabw[(number) $c0] = { fill( $c0, 0) }
(const string) main::str[] = (string) " "
(const byte*) main::str[(byte) 3] = (string) " "
(signed word) main::sw
(signed word) main::sw#0 sw zp[2]:20 22.0
(const word) main::wavelength = (word) $c0
@ -8633,7 +8633,7 @@ print_str: {
.label str = $a
// [26] phi from print_str to print_str::@1 [phi:print_str->print_str::@1]
// [26] phi (byte*) print_char_cursor#19 = (byte*) print_char_cursor#10 [phi:print_str->print_str::@1#0] -- register_copy
// [26] phi (byte*) print_str::str#2 = (const string) main::str [phi:print_str->print_str::@1#1] -- pbuz1=pbuc1
// [26] phi (byte*) print_str::str#2 = (const byte*) main::str [phi:print_str->print_str::@1#1] -- pbuz1=pbuc1
lda #<main.str
sta.z str
lda #>main.str

@ -90,7 +90,7 @@
(signed byte) main::sd#0 reg byte a 22.0
(const signed byte*) main::sintabb[(number) $c0] = { fill( $c0, 0) }
(const signed word*) main::sintabw[(number) $c0] = { fill( $c0, 0) }
(const string) main::str[] = (string) " "
(const byte*) main::str[(byte) 3] = (string) " "
(signed word) main::sw
(signed word) main::sw#0 sw zp[2]:20 22.0
(const word) main::wavelength = (word) $c0

@ -180,7 +180,7 @@ print_char::@return: scope:[print_char] from print_char
(void()) print_str((byte*) print_str::str)
print_str: scope:[print_str] from sin8u_table::@11 sin8u_table::@15 sin8u_table::@17 sin8u_table::@19 sin8u_table::@21 sin8u_table::@3 sin8u_table::@5 sin8u_table::@7 sin8u_table::@9
[85] (byte*) print_char_cursor#109 ← phi( sin8u_table::@7/(byte*) print_char_cursor#19 sin8u_table::@9/(byte*) print_char_cursor#19 sin8u_table::@11/(byte*) print_char_cursor#19 sin8u_table::@15/(byte*) print_char_cursor#118 sin8u_table::@17/(byte*) print_char_cursor#19 sin8u_table::@19/(byte*) print_char_cursor#19 sin8u_table::@21/(byte*) print_char_cursor#19 sin8u_table::@3/(byte*) 1024 sin8u_table::@5/(byte*) print_char_cursor#19 )
[85] (byte*) print_str::str#12 ← phi( sin8u_table::@7/(const string) sin8u_table::str2 sin8u_table::@9/(const string) sin8u_table::str3 sin8u_table::@11/(const string) sin8u_table::str4 sin8u_table::@15/(const string) sin8u_table::str5 sin8u_table::@17/(const string) sin8u_table::str6 sin8u_table::@19/(const string) sin8u_table::str7 sin8u_table::@21/(const string) sin8u_table::str8 sin8u_table::@3/(const string) sin8u_table::str sin8u_table::@5/(const string) sin8u_table::str1 )
[85] (byte*) print_str::str#12 ← phi( sin8u_table::@7/(const byte*) sin8u_table::str2 sin8u_table::@9/(const byte*) sin8u_table::str3 sin8u_table::@11/(const byte*) sin8u_table::str4 sin8u_table::@15/(const byte*) sin8u_table::str5 sin8u_table::@17/(const byte*) sin8u_table::str6 sin8u_table::@19/(const byte*) sin8u_table::str7 sin8u_table::@21/(const byte*) sin8u_table::str8 sin8u_table::@3/(const byte*) sin8u_table::str sin8u_table::@5/(const byte*) sin8u_table::str1 )
to:print_str::@1
print_str::@1: scope:[print_str] from print_str print_str::@2
[86] (byte*) print_char_cursor#2 ← phi( print_str/(byte*) print_char_cursor#109 print_str::@2/(byte*) print_char_cursor#1 )

@ -792,7 +792,7 @@ sin8u_table::@7: scope:[sin8u_table] from sin8u_table
(word) div16u::return#4 ← phi( sin8u_table/(word) div16u::return#2 )
(word~) sin8u_table::$6 ← (word) div16u::return#4
(word) sin8u_table::step#0 ← (word~) sin8u_table::$6
(byte*) print_str::str#1 ← (const string) sin8u_table::str
(byte*) print_str::str#1 ← (const byte*) sin8u_table::str
call print_str
to:sin8u_table::@8
sin8u_table::@8: scope:[sin8u_table] from sin8u_table::@7
@ -820,7 +820,7 @@ sin8u_table::@9: scope:[sin8u_table] from sin8u_table::@8
(byte) sin8u_table::min#3 ← phi( sin8u_table::@8/(byte) sin8u_table::min#4 )
(byte*) print_char_cursor#73 ← phi( sin8u_table::@8/(byte*) print_char_cursor#15 )
(byte*) print_char_cursor#27 ← (byte*) print_char_cursor#73
(byte*) print_str::str#2 ← (const string) sin8u_table::str1
(byte*) print_str::str#2 ← (const byte*) sin8u_table::str1
call print_str
to:sin8u_table::@10
sin8u_table::@10: scope:[sin8u_table] from sin8u_table::@9
@ -847,7 +847,7 @@ sin8u_table::@11: scope:[sin8u_table] from sin8u_table::@10
(byte) sin8u_table::max#3 ← phi( sin8u_table::@10/(byte) sin8u_table::max#4 )
(byte*) print_char_cursor#75 ← phi( sin8u_table::@10/(byte*) print_char_cursor#18 )
(byte*) print_char_cursor#29 ← (byte*) print_char_cursor#75
(byte*) print_str::str#3 ← (const string) sin8u_table::str2
(byte*) print_str::str#3 ← (const byte*) sin8u_table::str2
call print_str
to:sin8u_table::@12
sin8u_table::@12: scope:[sin8u_table] from sin8u_table::@11
@ -872,7 +872,7 @@ sin8u_table::@13: scope:[sin8u_table] from sin8u_table::@12
(byte) sin8u_table::amplitude#3 ← phi( sin8u_table::@12/(byte) sin8u_table::amplitude#5 )
(byte*) print_char_cursor#77 ← phi( sin8u_table::@12/(byte*) print_char_cursor#18 )
(byte*) print_char_cursor#31 ← (byte*) print_char_cursor#77
(byte*) print_str::str#4 ← (const string) sin8u_table::str3
(byte*) print_str::str#4 ← (const byte*) sin8u_table::str3
call print_str
to:sin8u_table::@14
sin8u_table::@14: scope:[sin8u_table] from sin8u_table::@13
@ -896,7 +896,7 @@ sin8u_table::@15: scope:[sin8u_table] from sin8u_table::@14
(byte) sin8u_table::mid#3 ← phi( sin8u_table::@14/(byte) sin8u_table::mid#5 )
(byte*) print_char_cursor#79 ← phi( sin8u_table::@14/(byte*) print_char_cursor#18 )
(byte*) print_char_cursor#33 ← (byte*) print_char_cursor#79
(byte*) print_str::str#5 ← (const string) sin8u_table::str4
(byte*) print_str::str#5 ← (const byte*) sin8u_table::str4
call print_str
to:sin8u_table::@16
sin8u_table::@16: scope:[sin8u_table] from sin8u_table::@15
@ -1000,7 +1000,7 @@ sin8u_table::@20: scope:[sin8u_table] from sin8u_table::@19
(byte) sin8u_table::sinx_tr#0 ← (byte~) sin8u_table::$23
*((byte*) sin8u_table::sintab#2) ← (byte) sin8u_table::sinx_tr#0
(byte*) sin8u_table::sintab#1 ← ++ (byte*) sin8u_table::sintab#2
(byte*) print_str::str#6 ← (const string) sin8u_table::str5
(byte*) print_str::str#6 ← (const byte*) sin8u_table::str5
call print_str
to:sin8u_table::@21
sin8u_table::@21: scope:[sin8u_table] from sin8u_table::@20
@ -1034,7 +1034,7 @@ sin8u_table::@22: scope:[sin8u_table] from sin8u_table::@21
(signed byte) sin8u_table::sinx#2 ← phi( sin8u_table::@21/(signed byte) sin8u_table::sinx#3 )
(byte*) print_char_cursor#84 ← phi( sin8u_table::@21/(byte*) print_char_cursor#15 )
(byte*) print_char_cursor#38 ← (byte*) print_char_cursor#84
(byte*) print_str::str#7 ← (const string) sin8u_table::str6
(byte*) print_str::str#7 ← (const byte*) sin8u_table::str6
call print_str
to:sin8u_table::@23
sin8u_table::@23: scope:[sin8u_table] from sin8u_table::@22
@ -1067,7 +1067,7 @@ sin8u_table::@24: scope:[sin8u_table] from sin8u_table::@23
(signed word) sin8u_table::sinx_sc#2 ← phi( sin8u_table::@23/(signed word) sin8u_table::sinx_sc#3 )
(byte*) print_char_cursor#86 ← phi( sin8u_table::@23/(byte*) print_char_cursor#12 )
(byte*) print_char_cursor#40 ← (byte*) print_char_cursor#86
(byte*) print_str::str#8 ← (const string) sin8u_table::str7
(byte*) print_str::str#8 ← (const byte*) sin8u_table::str7
call print_str
to:sin8u_table::@25
sin8u_table::@25: scope:[sin8u_table] from sin8u_table::@24
@ -1098,7 +1098,7 @@ sin8u_table::@26: scope:[sin8u_table] from sin8u_table::@25
(byte) sin8u_table::sinx_tr#2 ← phi( sin8u_table::@25/(byte) sin8u_table::sinx_tr#3 )
(byte*) print_char_cursor#88 ← phi( sin8u_table::@25/(byte*) print_char_cursor#8 )
(byte*) print_char_cursor#42 ← (byte*) print_char_cursor#88
(byte*) print_str::str#9 ← (const string) sin8u_table::str8
(byte*) print_str::str#9 ← (const byte*) sin8u_table::str8
call print_str
to:sin8u_table::@27
sin8u_table::@27: scope:[sin8u_table] from sin8u_table::@26
@ -2026,15 +2026,15 @@ SYMBOL TABLE SSA
(word) sin8u_table::step#7
(word) sin8u_table::step#8
(word) sin8u_table::step#9
(const string) sin8u_table::str[] = (string) "step:"
(const string) sin8u_table::str1[] = (string) " min:"
(const string) sin8u_table::str2[] = (string) " max:"
(const string) sin8u_table::str3[] = (string) " ampl:"
(const string) sin8u_table::str4[] = (string) " mid:"
(const string) sin8u_table::str5[] = (string) "x: "
(const string) sin8u_table::str6[] = (string) " sin: "
(const string) sin8u_table::str7[] = (string) " scaled: "
(const string) sin8u_table::str8[] = (string) " trans: "
(const byte*) sin8u_table::str[(byte) 6] = (string) "step:"
(const byte*) sin8u_table::str1[(byte) 6] = (string) " min:"
(const byte*) sin8u_table::str2[(byte) 6] = (string) " max:"
(const byte*) sin8u_table::str3[(byte) 7] = (string) " ampl:"
(const byte*) sin8u_table::str4[(byte) 6] = (string) " mid:"
(const byte*) sin8u_table::str5[(byte) 4] = (string) "x: "
(const byte*) sin8u_table::str6[(byte) 7] = (string) " sin: "
(const byte*) sin8u_table::str7[(byte) $a] = (string) " scaled: "
(const byte*) sin8u_table::str8[(byte) 9] = (string) " trans: "
(word) sin8u_table::sum
(word) sin8u_table::sum#0
(word) sin8u_table::tabsize
@ -2653,20 +2653,20 @@ Constant inlined divr16u::dividend#1 = (const word) PI2_u4f12
Constant inlined print_char::ch#3 = (byte) ' '
Constant inlined print_char::ch#2 = (byte) '-'
Constant inlined mulu8_sel::v2#2 = (const byte) sin8s::DIV_6
Constant inlined print_str::str#9 = (const string) sin8u_table::str8
Constant inlined print_str::str#9 = (const byte*) sin8u_table::str8
Constant inlined mul8u::res#0 = (word) 0
Constant inlined print_char::ch#1 = (byte) ' '
Constant inlined print_char::ch#0 = (byte) '-'
Constant inlined print_str::str#4 = (const string) sin8u_table::str3
Constant inlined print_str::str#3 = (const string) sin8u_table::str2
Constant inlined print_str::str#2 = (const string) sin8u_table::str1
Constant inlined print_str::str#4 = (const byte*) sin8u_table::str3
Constant inlined print_str::str#3 = (const byte*) sin8u_table::str2
Constant inlined print_str::str#2 = (const byte*) sin8u_table::str1
Constant inlined memset::dst#0 = (byte*)(const void*) memset::str#0
Constant inlined print_str::str#1 = (const string) sin8u_table::str
Constant inlined print_str::str#1 = (const byte*) sin8u_table::str
Constant inlined sin8u_table::x#0 = (word) 0
Constant inlined print_str::str#8 = (const string) sin8u_table::str7
Constant inlined print_str::str#7 = (const string) sin8u_table::str6
Constant inlined print_str::str#6 = (const string) sin8u_table::str5
Constant inlined print_str::str#5 = (const string) sin8u_table::str4
Constant inlined print_str::str#8 = (const byte*) sin8u_table::str7
Constant inlined print_str::str#7 = (const byte*) sin8u_table::str6
Constant inlined print_str::str#6 = (const byte*) sin8u_table::str5
Constant inlined print_str::str#5 = (const byte*) sin8u_table::str4
Successful SSA optimization Pass2ConstantInlining
Added new block during phi lifting divr16u::@8(between divr16u::@3 and divr16u::@1)
Added new block during phi lifting divr16u::@9(between divr16u::@1 and divr16u::@2)
@ -3081,7 +3081,7 @@ print_char::@return: scope:[print_char] from print_char
(void()) print_str((byte*) print_str::str)
print_str: scope:[print_str] from sin8u_table::@11 sin8u_table::@15 sin8u_table::@17 sin8u_table::@19 sin8u_table::@21 sin8u_table::@3 sin8u_table::@5 sin8u_table::@7 sin8u_table::@9
[85] (byte*) print_char_cursor#109 ← phi( sin8u_table::@7/(byte*) print_char_cursor#19 sin8u_table::@9/(byte*) print_char_cursor#19 sin8u_table::@11/(byte*) print_char_cursor#19 sin8u_table::@15/(byte*) print_char_cursor#118 sin8u_table::@17/(byte*) print_char_cursor#19 sin8u_table::@19/(byte*) print_char_cursor#19 sin8u_table::@21/(byte*) print_char_cursor#19 sin8u_table::@3/(byte*) 1024 sin8u_table::@5/(byte*) print_char_cursor#19 )
[85] (byte*) print_str::str#12 ← phi( sin8u_table::@7/(const string) sin8u_table::str2 sin8u_table::@9/(const string) sin8u_table::str3 sin8u_table::@11/(const string) sin8u_table::str4 sin8u_table::@15/(const string) sin8u_table::str5 sin8u_table::@17/(const string) sin8u_table::str6 sin8u_table::@19/(const string) sin8u_table::str7 sin8u_table::@21/(const string) sin8u_table::str8 sin8u_table::@3/(const string) sin8u_table::str sin8u_table::@5/(const string) sin8u_table::str1 )
[85] (byte*) print_str::str#12 ← phi( sin8u_table::@7/(const byte*) sin8u_table::str2 sin8u_table::@9/(const byte*) sin8u_table::str3 sin8u_table::@11/(const byte*) sin8u_table::str4 sin8u_table::@15/(const byte*) sin8u_table::str5 sin8u_table::@17/(const byte*) sin8u_table::str6 sin8u_table::@19/(const byte*) sin8u_table::str7 sin8u_table::@21/(const byte*) sin8u_table::str8 sin8u_table::@3/(const byte*) sin8u_table::str sin8u_table::@5/(const byte*) sin8u_table::str1 )
to:print_str::@1
print_str::@1: scope:[print_str] from print_str print_str::@2
[86] (byte*) print_char_cursor#2 ← phi( print_str/(byte*) print_char_cursor#109 print_str::@2/(byte*) print_char_cursor#1 )
@ -3891,7 +3891,7 @@ sin8u_table: {
sta.z print_char_cursor
lda #>$400
sta.z print_char_cursor+1
// [85] phi (byte*) print_str::str#12 = (const string) sin8u_table::str [phi:sin8u_table::@3->print_str#1] -- pbuz1=pbuc1
// [85] phi (byte*) print_str::str#12 = (const byte*) sin8u_table::str [phi:sin8u_table::@3->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -3920,7 +3920,7 @@ sin8u_table: {
// [85] phi from sin8u_table::@5 to print_str [phi:sin8u_table::@5->print_str]
print_str_from___b5:
// [85] phi (byte*) print_char_cursor#109 = (byte*) print_char_cursor#19 [phi:sin8u_table::@5->print_str#0] -- register_copy
// [85] phi (byte*) print_str::str#12 = (const string) sin8u_table::str1 [phi:sin8u_table::@5->print_str#1] -- pbuz1=pbuc1
// [85] phi (byte*) print_str::str#12 = (const byte*) sin8u_table::str1 [phi:sin8u_table::@5->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -3948,7 +3948,7 @@ sin8u_table: {
// [85] phi from sin8u_table::@7 to print_str [phi:sin8u_table::@7->print_str]
print_str_from___b7:
// [85] phi (byte*) print_char_cursor#109 = (byte*) print_char_cursor#19 [phi:sin8u_table::@7->print_str#0] -- register_copy
// [85] phi (byte*) print_str::str#12 = (const string) sin8u_table::str2 [phi:sin8u_table::@7->print_str#1] -- pbuz1=pbuc1
// [85] phi (byte*) print_str::str#12 = (const byte*) sin8u_table::str2 [phi:sin8u_table::@7->print_str#1] -- pbuz1=pbuc1
lda #<str2
sta.z print_str.str
lda #>str2
@ -3976,7 +3976,7 @@ sin8u_table: {
// [85] phi from sin8u_table::@9 to print_str [phi:sin8u_table::@9->print_str]
print_str_from___b9:
// [85] phi (byte*) print_char_cursor#109 = (byte*) print_char_cursor#19 [phi:sin8u_table::@9->print_str#0] -- register_copy
// [85] phi (byte*) print_str::str#12 = (const string) sin8u_table::str3 [phi:sin8u_table::@9->print_str#1] -- pbuz1=pbuc1
// [85] phi (byte*) print_str::str#12 = (const byte*) sin8u_table::str3 [phi:sin8u_table::@9->print_str#1] -- pbuz1=pbuc1
lda #<str3
sta.z print_str.str
lda #>str3
@ -4004,7 +4004,7 @@ sin8u_table: {
// [85] phi from sin8u_table::@11 to print_str [phi:sin8u_table::@11->print_str]
print_str_from___b11:
// [85] phi (byte*) print_char_cursor#109 = (byte*) print_char_cursor#19 [phi:sin8u_table::@11->print_str#0] -- register_copy
// [85] phi (byte*) print_str::str#12 = (const string) sin8u_table::str4 [phi:sin8u_table::@11->print_str#1] -- pbuz1=pbuc1
// [85] phi (byte*) print_str::str#12 = (const byte*) sin8u_table::str4 [phi:sin8u_table::@11->print_str#1] -- pbuz1=pbuc1
lda #<str4
sta.z print_str.str
lda #>str4
@ -4128,7 +4128,7 @@ sin8u_table: {
// [85] phi from sin8u_table::@15 to print_str [phi:sin8u_table::@15->print_str]
print_str_from___b15:
// [85] phi (byte*) print_char_cursor#109 = (byte*) print_char_cursor#118 [phi:sin8u_table::@15->print_str#0] -- register_copy
// [85] phi (byte*) print_str::str#12 = (const string) sin8u_table::str5 [phi:sin8u_table::@15->print_str#1] -- pbuz1=pbuc1
// [85] phi (byte*) print_str::str#12 = (const byte*) sin8u_table::str5 [phi:sin8u_table::@15->print_str#1] -- pbuz1=pbuc1
lda #<str5
sta.z print_str.str
lda #>str5
@ -4157,7 +4157,7 @@ sin8u_table: {
// [85] phi from sin8u_table::@17 to print_str [phi:sin8u_table::@17->print_str]
print_str_from___b17:
// [85] phi (byte*) print_char_cursor#109 = (byte*) print_char_cursor#19 [phi:sin8u_table::@17->print_str#0] -- register_copy
// [85] phi (byte*) print_str::str#12 = (const string) sin8u_table::str6 [phi:sin8u_table::@17->print_str#1] -- pbuz1=pbuc1
// [85] phi (byte*) print_str::str#12 = (const byte*) sin8u_table::str6 [phi:sin8u_table::@17->print_str#1] -- pbuz1=pbuc1
lda #<str6
sta.z print_str.str
lda #>str6
@ -4180,7 +4180,7 @@ sin8u_table: {
// [85] phi from sin8u_table::@19 to print_str [phi:sin8u_table::@19->print_str]
print_str_from___b19:
// [85] phi (byte*) print_char_cursor#109 = (byte*) print_char_cursor#19 [phi:sin8u_table::@19->print_str#0] -- register_copy
// [85] phi (byte*) print_str::str#12 = (const string) sin8u_table::str7 [phi:sin8u_table::@19->print_str#1] -- pbuz1=pbuc1
// [85] phi (byte*) print_str::str#12 = (const byte*) sin8u_table::str7 [phi:sin8u_table::@19->print_str#1] -- pbuz1=pbuc1
lda #<str7
sta.z print_str.str
lda #>str7
@ -4205,7 +4205,7 @@ sin8u_table: {
// [85] phi from sin8u_table::@21 to print_str [phi:sin8u_table::@21->print_str]
print_str_from___b21:
// [85] phi (byte*) print_char_cursor#109 = (byte*) print_char_cursor#19 [phi:sin8u_table::@21->print_str#0] -- register_copy
// [85] phi (byte*) print_str::str#12 = (const string) sin8u_table::str8 [phi:sin8u_table::@21->print_str#1] -- pbuz1=pbuc1
// [85] phi (byte*) print_str::str#12 = (const byte*) sin8u_table::str8 [phi:sin8u_table::@21->print_str#1] -- pbuz1=pbuc1
lda #<str8
sta.z print_str.str
lda #>str8
@ -5678,7 +5678,7 @@ sin8u_table: {
sta.z print_char_cursor
lda #>$400
sta.z print_char_cursor+1
// [85] phi (byte*) print_str::str#12 = (const string) sin8u_table::str [phi:sin8u_table::@3->print_str#1] -- pbuz1=pbuc1
// [85] phi (byte*) print_str::str#12 = (const byte*) sin8u_table::str [phi:sin8u_table::@3->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -5707,7 +5707,7 @@ sin8u_table: {
// [85] phi from sin8u_table::@5 to print_str [phi:sin8u_table::@5->print_str]
print_str_from___b5:
// [85] phi (byte*) print_char_cursor#109 = (byte*) print_char_cursor#19 [phi:sin8u_table::@5->print_str#0] -- register_copy
// [85] phi (byte*) print_str::str#12 = (const string) sin8u_table::str1 [phi:sin8u_table::@5->print_str#1] -- pbuz1=pbuc1
// [85] phi (byte*) print_str::str#12 = (const byte*) sin8u_table::str1 [phi:sin8u_table::@5->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -5735,7 +5735,7 @@ sin8u_table: {
// [85] phi from sin8u_table::@7 to print_str [phi:sin8u_table::@7->print_str]
print_str_from___b7:
// [85] phi (byte*) print_char_cursor#109 = (byte*) print_char_cursor#19 [phi:sin8u_table::@7->print_str#0] -- register_copy
// [85] phi (byte*) print_str::str#12 = (const string) sin8u_table::str2 [phi:sin8u_table::@7->print_str#1] -- pbuz1=pbuc1
// [85] phi (byte*) print_str::str#12 = (const byte*) sin8u_table::str2 [phi:sin8u_table::@7->print_str#1] -- pbuz1=pbuc1
lda #<str2
sta.z print_str.str
lda #>str2
@ -5763,7 +5763,7 @@ sin8u_table: {
// [85] phi from sin8u_table::@9 to print_str [phi:sin8u_table::@9->print_str]
print_str_from___b9:
// [85] phi (byte*) print_char_cursor#109 = (byte*) print_char_cursor#19 [phi:sin8u_table::@9->print_str#0] -- register_copy
// [85] phi (byte*) print_str::str#12 = (const string) sin8u_table::str3 [phi:sin8u_table::@9->print_str#1] -- pbuz1=pbuc1
// [85] phi (byte*) print_str::str#12 = (const byte*) sin8u_table::str3 [phi:sin8u_table::@9->print_str#1] -- pbuz1=pbuc1
lda #<str3
sta.z print_str.str
lda #>str3
@ -5791,7 +5791,7 @@ sin8u_table: {
// [85] phi from sin8u_table::@11 to print_str [phi:sin8u_table::@11->print_str]
print_str_from___b11:
// [85] phi (byte*) print_char_cursor#109 = (byte*) print_char_cursor#19 [phi:sin8u_table::@11->print_str#0] -- register_copy
// [85] phi (byte*) print_str::str#12 = (const string) sin8u_table::str4 [phi:sin8u_table::@11->print_str#1] -- pbuz1=pbuc1
// [85] phi (byte*) print_str::str#12 = (const byte*) sin8u_table::str4 [phi:sin8u_table::@11->print_str#1] -- pbuz1=pbuc1
lda #<str4
sta.z print_str.str
lda #>str4
@ -5905,7 +5905,7 @@ sin8u_table: {
// [85] phi from sin8u_table::@15 to print_str [phi:sin8u_table::@15->print_str]
print_str_from___b15:
// [85] phi (byte*) print_char_cursor#109 = (byte*) print_char_cursor#118 [phi:sin8u_table::@15->print_str#0] -- register_copy
// [85] phi (byte*) print_str::str#12 = (const string) sin8u_table::str5 [phi:sin8u_table::@15->print_str#1] -- pbuz1=pbuc1
// [85] phi (byte*) print_str::str#12 = (const byte*) sin8u_table::str5 [phi:sin8u_table::@15->print_str#1] -- pbuz1=pbuc1
lda #<str5
sta.z print_str.str
lda #>str5
@ -5934,7 +5934,7 @@ sin8u_table: {
// [85] phi from sin8u_table::@17 to print_str [phi:sin8u_table::@17->print_str]
print_str_from___b17:
// [85] phi (byte*) print_char_cursor#109 = (byte*) print_char_cursor#19 [phi:sin8u_table::@17->print_str#0] -- register_copy
// [85] phi (byte*) print_str::str#12 = (const string) sin8u_table::str6 [phi:sin8u_table::@17->print_str#1] -- pbuz1=pbuc1
// [85] phi (byte*) print_str::str#12 = (const byte*) sin8u_table::str6 [phi:sin8u_table::@17->print_str#1] -- pbuz1=pbuc1
lda #<str6
sta.z print_str.str
lda #>str6
@ -5957,7 +5957,7 @@ sin8u_table: {
// [85] phi from sin8u_table::@19 to print_str [phi:sin8u_table::@19->print_str]
print_str_from___b19:
// [85] phi (byte*) print_char_cursor#109 = (byte*) print_char_cursor#19 [phi:sin8u_table::@19->print_str#0] -- register_copy
// [85] phi (byte*) print_str::str#12 = (const string) sin8u_table::str7 [phi:sin8u_table::@19->print_str#1] -- pbuz1=pbuc1
// [85] phi (byte*) print_str::str#12 = (const byte*) sin8u_table::str7 [phi:sin8u_table::@19->print_str#1] -- pbuz1=pbuc1
lda #<str7
sta.z print_str.str
lda #>str7
@ -5982,7 +5982,7 @@ sin8u_table: {
// [85] phi from sin8u_table::@21 to print_str [phi:sin8u_table::@21->print_str]
print_str_from___b21:
// [85] phi (byte*) print_char_cursor#109 = (byte*) print_char_cursor#19 [phi:sin8u_table::@21->print_str#0] -- register_copy
// [85] phi (byte*) print_str::str#12 = (const string) sin8u_table::str8 [phi:sin8u_table::@21->print_str#1] -- pbuz1=pbuc1
// [85] phi (byte*) print_str::str#12 = (const byte*) sin8u_table::str8 [phi:sin8u_table::@21->print_str#1] -- pbuz1=pbuc1
lda #<str8
sta.z print_str.str
lda #>str8
@ -7537,15 +7537,15 @@ FINAL SYMBOL TABLE
(byte) sin8u_table::sinx_tr#0 reg byte x 1.9411764705882355
(word) sin8u_table::step
(word) sin8u_table::step#0 step zp[2]:15 0.2727272727272727
(const string) sin8u_table::str[] = (string) "step:"
(const string) sin8u_table::str1[] = (string) " min:"
(const string) sin8u_table::str2[] = (string) " max:"
(const string) sin8u_table::str3[] = (string) " ampl:"
(const string) sin8u_table::str4[] = (string) " mid:"
(const string) sin8u_table::str5[] = (string) "x: "
(const string) sin8u_table::str6[] = (string) " sin: "
(const string) sin8u_table::str7[] = (string) " scaled: "
(const string) sin8u_table::str8[] = (string) " trans: "
(const byte*) sin8u_table::str[(byte) 6] = (string) "step:"
(const byte*) sin8u_table::str1[(byte) 6] = (string) " min:"
(const byte*) sin8u_table::str2[(byte) 6] = (string) " max:"
(const byte*) sin8u_table::str3[(byte) 7] = (string) " ampl:"
(const byte*) sin8u_table::str4[(byte) 6] = (string) " mid:"
(const byte*) sin8u_table::str5[(byte) 4] = (string) "x: "
(const byte*) sin8u_table::str6[(byte) 7] = (string) " sin: "
(const byte*) sin8u_table::str7[(byte) $a] = (string) " scaled: "
(const byte*) sin8u_table::str8[(byte) 9] = (string) " trans: "
(word) sin8u_table::sum
(const word) sin8u_table::sum#0 sum = (word)(const byte) sin8u_table::min#0+(const byte) sin8u_table::max#0
(word) sin8u_table::tabsize
@ -7678,7 +7678,7 @@ sin8u_table: {
sta.z print_char_cursor
lda #>$400
sta.z print_char_cursor+1
// [85] phi (byte*) print_str::str#12 = (const string) sin8u_table::str [phi:sin8u_table::@3->print_str#1] -- pbuz1=pbuc1
// [85] phi (byte*) print_str::str#12 = (const byte*) sin8u_table::str [phi:sin8u_table::@3->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -7702,7 +7702,7 @@ sin8u_table: {
// [17] call print_str
// [85] phi from sin8u_table::@5 to print_str [phi:sin8u_table::@5->print_str]
// [85] phi (byte*) print_char_cursor#109 = (byte*) print_char_cursor#19 [phi:sin8u_table::@5->print_str#0] -- register_copy
// [85] phi (byte*) print_str::str#12 = (const string) sin8u_table::str1 [phi:sin8u_table::@5->print_str#1] -- pbuz1=pbuc1
// [85] phi (byte*) print_str::str#12 = (const byte*) sin8u_table::str1 [phi:sin8u_table::@5->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -7724,7 +7724,7 @@ sin8u_table: {
// [21] call print_str
// [85] phi from sin8u_table::@7 to print_str [phi:sin8u_table::@7->print_str]
// [85] phi (byte*) print_char_cursor#109 = (byte*) print_char_cursor#19 [phi:sin8u_table::@7->print_str#0] -- register_copy
// [85] phi (byte*) print_str::str#12 = (const string) sin8u_table::str2 [phi:sin8u_table::@7->print_str#1] -- pbuz1=pbuc1
// [85] phi (byte*) print_str::str#12 = (const byte*) sin8u_table::str2 [phi:sin8u_table::@7->print_str#1] -- pbuz1=pbuc1
lda #<str2
sta.z print_str.str
lda #>str2
@ -7746,7 +7746,7 @@ sin8u_table: {
// [25] call print_str
// [85] phi from sin8u_table::@9 to print_str [phi:sin8u_table::@9->print_str]
// [85] phi (byte*) print_char_cursor#109 = (byte*) print_char_cursor#19 [phi:sin8u_table::@9->print_str#0] -- register_copy
// [85] phi (byte*) print_str::str#12 = (const string) sin8u_table::str3 [phi:sin8u_table::@9->print_str#1] -- pbuz1=pbuc1
// [85] phi (byte*) print_str::str#12 = (const byte*) sin8u_table::str3 [phi:sin8u_table::@9->print_str#1] -- pbuz1=pbuc1
lda #<str3
sta.z print_str.str
lda #>str3
@ -7768,7 +7768,7 @@ sin8u_table: {
// [29] call print_str
// [85] phi from sin8u_table::@11 to print_str [phi:sin8u_table::@11->print_str]
// [85] phi (byte*) print_char_cursor#109 = (byte*) print_char_cursor#19 [phi:sin8u_table::@11->print_str#0] -- register_copy
// [85] phi (byte*) print_str::str#12 = (const string) sin8u_table::str4 [phi:sin8u_table::@11->print_str#1] -- pbuz1=pbuc1
// [85] phi (byte*) print_str::str#12 = (const byte*) sin8u_table::str4 [phi:sin8u_table::@11->print_str#1] -- pbuz1=pbuc1
lda #<str4
sta.z print_str.str
lda #>str4
@ -7875,7 +7875,7 @@ sin8u_table: {
// [49] call print_str
// [85] phi from sin8u_table::@15 to print_str [phi:sin8u_table::@15->print_str]
// [85] phi (byte*) print_char_cursor#109 = (byte*) print_char_cursor#118 [phi:sin8u_table::@15->print_str#0] -- register_copy
// [85] phi (byte*) print_str::str#12 = (const string) sin8u_table::str5 [phi:sin8u_table::@15->print_str#1] -- pbuz1=pbuc1
// [85] phi (byte*) print_str::str#12 = (const byte*) sin8u_table::str5 [phi:sin8u_table::@15->print_str#1] -- pbuz1=pbuc1
lda #<str5
sta.z print_str.str
lda #>str5
@ -7899,7 +7899,7 @@ sin8u_table: {
// [53] call print_str
// [85] phi from sin8u_table::@17 to print_str [phi:sin8u_table::@17->print_str]
// [85] phi (byte*) print_char_cursor#109 = (byte*) print_char_cursor#19 [phi:sin8u_table::@17->print_str#0] -- register_copy
// [85] phi (byte*) print_str::str#12 = (const string) sin8u_table::str6 [phi:sin8u_table::@17->print_str#1] -- pbuz1=pbuc1
// [85] phi (byte*) print_str::str#12 = (const byte*) sin8u_table::str6 [phi:sin8u_table::@17->print_str#1] -- pbuz1=pbuc1
lda #<str6
sta.z print_str.str
lda #>str6
@ -7918,7 +7918,7 @@ sin8u_table: {
// [57] call print_str
// [85] phi from sin8u_table::@19 to print_str [phi:sin8u_table::@19->print_str]
// [85] phi (byte*) print_char_cursor#109 = (byte*) print_char_cursor#19 [phi:sin8u_table::@19->print_str#0] -- register_copy
// [85] phi (byte*) print_str::str#12 = (const string) sin8u_table::str7 [phi:sin8u_table::@19->print_str#1] -- pbuz1=pbuc1
// [85] phi (byte*) print_str::str#12 = (const byte*) sin8u_table::str7 [phi:sin8u_table::@19->print_str#1] -- pbuz1=pbuc1
lda #<str7
sta.z print_str.str
lda #>str7
@ -7939,7 +7939,7 @@ sin8u_table: {
// [61] call print_str
// [85] phi from sin8u_table::@21 to print_str [phi:sin8u_table::@21->print_str]
// [85] phi (byte*) print_char_cursor#109 = (byte*) print_char_cursor#19 [phi:sin8u_table::@21->print_str#0] -- register_copy
// [85] phi (byte*) print_str::str#12 = (const string) sin8u_table::str8 [phi:sin8u_table::@21->print_str#1] -- pbuz1=pbuc1
// [85] phi (byte*) print_str::str#12 = (const byte*) sin8u_table::str8 [phi:sin8u_table::@21->print_str#1] -- pbuz1=pbuc1
lda #<str8
sta.z print_str.str
lda #>str8

@ -310,15 +310,15 @@
(byte) sin8u_table::sinx_tr#0 reg byte x 1.9411764705882355
(word) sin8u_table::step
(word) sin8u_table::step#0 step zp[2]:15 0.2727272727272727
(const string) sin8u_table::str[] = (string) "step:"
(const string) sin8u_table::str1[] = (string) " min:"
(const string) sin8u_table::str2[] = (string) " max:"
(const string) sin8u_table::str3[] = (string) " ampl:"
(const string) sin8u_table::str4[] = (string) " mid:"
(const string) sin8u_table::str5[] = (string) "x: "
(const string) sin8u_table::str6[] = (string) " sin: "
(const string) sin8u_table::str7[] = (string) " scaled: "
(const string) sin8u_table::str8[] = (string) " trans: "
(const byte*) sin8u_table::str[(byte) 6] = (string) "step:"
(const byte*) sin8u_table::str1[(byte) 6] = (string) " min:"
(const byte*) sin8u_table::str2[(byte) 6] = (string) " max:"
(const byte*) sin8u_table::str3[(byte) 7] = (string) " ampl:"
(const byte*) sin8u_table::str4[(byte) 6] = (string) " mid:"
(const byte*) sin8u_table::str5[(byte) 4] = (string) "x: "
(const byte*) sin8u_table::str6[(byte) 7] = (string) " sin: "
(const byte*) sin8u_table::str7[(byte) $a] = (string) " scaled: "
(const byte*) sin8u_table::str8[(byte) 9] = (string) " trans: "
(word) sin8u_table::sum
(const word) sin8u_table::sum#0 sum = (word)(const byte) sin8u_table::min#0+(const byte) sin8u_table::max#0
(word) sin8u_table::tabsize

@ -25,7 +25,7 @@ main::@1: scope:[main] from main
main::@2: scope:[main] from main::@1
(byte*) screen#9 ← phi( main::@1/(byte*) screen#6 )
(byte*) screen#2 ← (byte*) screen#9
(byte*) print::string#2 ← (const string) main::string
(byte*) print::string#2 ← (const byte*) main::string
call print
to:main::@3
main::@3: scope:[main] from main::@2
@ -83,7 +83,7 @@ SYMBOL TABLE SSA
(label) main::@return
(const byte*) main::rex1[] = (string) "rex"
(const byte*) main::rex2[] = (string) "rex"
(const string) main::string[] = (string) "rex"
(const byte*) main::string[(byte) 4] = (string) "rex"
(void()) print((byte*) print::string)
(bool~) print::$0
(label) print::@1
@ -146,6 +146,7 @@ Constant (const byte*) print::string#0 = main::rex1
Constant (const byte*) print::string#1 = main::rex2
Constant (const byte*) print::string#2 = main::string
Successful SSA optimization Pass2ConstantIdentification
Consolidated constant strings into (const byte*) main::rex1
Successful SSA optimization Pass2ConstantStringConsolidation
Inlining constant with var siblings (const byte*) print::string#0
Inlining constant with var siblings (const byte*) print::string#1

@ -25,7 +25,7 @@ main::@1: scope:[main] from main
main::@2: scope:[main] from main::@1
(byte*) screen#9 ← phi( main::@1/(byte*) screen#6 )
(byte*) screen#2 ← (byte*) screen#9
(byte*) print::string#2 ← (const string) main::string
(byte*) print::string#2 ← (const byte*) main::string
call print
to:main::@3
main::@3: scope:[main] from main::@2
@ -82,7 +82,7 @@ SYMBOL TABLE SSA
(label) main::@3
(label) main::@return
(const byte*) main::rex2[] = (string) "rex"
(const string) main::string[] = (string) "rex"
(const byte*) main::string[(byte) 4] = (string) "rex"
(void()) print((byte*) print::string)
(bool~) print::$0
(label) print::@1
@ -146,6 +146,7 @@ Constant (const byte*) print::string#0 = rex1
Constant (const byte*) print::string#1 = main::rex2
Constant (const byte*) print::string#2 = main::string
Successful SSA optimization Pass2ConstantIdentification
Consolidated constant strings into (const byte*) rex1
Successful SSA optimization Pass2ConstantStringConsolidation
Inlining constant with var siblings (const byte*) print::string#0
Inlining constant with var siblings (const byte*) print::string#1

@ -29,7 +29,7 @@ set_process_name::@return: scope:[set_process_name] from set_process_name::@1
[10] return
to:@return
set_process_name::@2: scope:[set_process_name] from set_process_name::@1
[11] (byte*~) set_process_name::$1 ← (const string) main::name + (signed word) set_process_name::j#2
[11] (byte*~) set_process_name::$1 ← (const byte*) main::name + (signed word) set_process_name::j#2
[12] (byte*~) set_process_name::$2 ← (const byte*) process_name + (signed word) set_process_name::j#2
[13] *((byte*~) set_process_name::$2) ← *((byte*~) set_process_name::$1)
[14] (signed word) set_process_name::j#1 ← ++ (signed word) set_process_name::j#2

@ -11,7 +11,7 @@ CONTROL FLOW GRAPH SSA
(void()) main()
main: scope:[main] from @2
(byte*) set_process_name::name#0 ← (const string) main::name
(byte*) set_process_name::name#0 ← (const byte*) main::name
call set_process_name
to:main::@1
main::@1: scope:[main] from main
@ -55,7 +55,7 @@ SYMBOL TABLE SSA
(void()) main()
(label) main::@1
(label) main::@return
(const string) main::name[] = (string) "keyboard"
(const byte*) main::name[(byte) 9] = (string) "keyboard"
(const byte*) process_name = (byte*)(number) $400
(void()) set_process_name((byte*) set_process_name::name)
(bool~) set_process_name::$0
@ -95,7 +95,7 @@ De-inlining pointer[w] to *(pointer+w) [9] *((const byte*) process_name + (sig
De-inlining pointer[w] to *(pointer+w) [9] *((const byte*) process_name + (signed word) set_process_name::j#2) ← *((byte*~) set_process_name::$1)
Successful SSA optimization Pass2DeInlineWordDerefIdx
Inlining constant with var siblings (const signed word) set_process_name::j#0
Constant inlined set_process_name::name#0 = (const string) main::name
Constant inlined set_process_name::name#0 = (const byte*) main::name
Constant inlined set_process_name::j#0 = (signed word) 0
Successful SSA optimization Pass2ConstantInlining
Adding NOP phi() at start of @begin
@ -153,7 +153,7 @@ set_process_name::@return: scope:[set_process_name] from set_process_name::@1
[10] return
to:@return
set_process_name::@2: scope:[set_process_name] from set_process_name::@1
[11] (byte*~) set_process_name::$1 ← (const string) main::name + (signed word) set_process_name::j#2
[11] (byte*~) set_process_name::$1 ← (const byte*) main::name + (signed word) set_process_name::j#2
[12] (byte*~) set_process_name::$2 ← (const byte*) process_name + (signed word) set_process_name::j#2
[13] *((byte*~) set_process_name::$2) ← *((byte*~) set_process_name::$1)
[14] (signed word) set_process_name::j#1 ← ++ (signed word) set_process_name::j#2
@ -255,7 +255,7 @@ set_process_name: {
rts
// set_process_name::@2
__b2:
// [11] (byte*~) set_process_name::$1 ← (const string) main::name + (signed word) set_process_name::j#2 -- pbuz1=pbuc1_plus_vwsz2
// [11] (byte*~) set_process_name::$1 ← (const byte*) main::name + (signed word) set_process_name::j#2 -- pbuz1=pbuc1_plus_vwsz2
lda #<main.name
clc
adc.z j
@ -290,7 +290,7 @@ set_process_name: {
REGISTER UPLIFT POTENTIAL REGISTERS
Statement [9] if((signed word) set_process_name::j#2<(signed byte) $11) goto set_process_name::@2 [ set_process_name::j#2 ] ( main:2::set_process_name:5 [ set_process_name::j#2 ] ) always clobbers reg byte a
Statement [11] (byte*~) set_process_name::$1 ← (const string) main::name + (signed word) set_process_name::j#2 [ set_process_name::j#2 set_process_name::$1 ] ( main:2::set_process_name:5 [ set_process_name::j#2 set_process_name::$1 ] ) always clobbers reg byte a
Statement [11] (byte*~) set_process_name::$1 ← (const byte*) main::name + (signed word) set_process_name::j#2 [ set_process_name::j#2 set_process_name::$1 ] ( main:2::set_process_name:5 [ set_process_name::j#2 set_process_name::$1 ] ) always clobbers reg byte a
Statement [12] (byte*~) set_process_name::$2 ← (const byte*) process_name + (signed word) set_process_name::j#2 [ set_process_name::j#2 set_process_name::$1 set_process_name::$2 ] ( main:2::set_process_name:5 [ set_process_name::j#2 set_process_name::$1 set_process_name::$2 ] ) always clobbers reg byte a
Statement [13] *((byte*~) set_process_name::$2) ← *((byte*~) set_process_name::$1) [ set_process_name::j#2 ] ( main:2::set_process_name:5 [ set_process_name::j#2 ] ) always clobbers reg byte a reg byte y
Potential registers zp[2]:2 [ set_process_name::j#2 set_process_name::j#1 ] : zp[2]:2 ,
@ -378,7 +378,7 @@ set_process_name: {
rts
// set_process_name::@2
__b2:
// [11] (byte*~) set_process_name::$1 ← (const string) main::name + (signed word) set_process_name::j#2 -- pbuz1=pbuc1_plus_vwsz2
// [11] (byte*~) set_process_name::$1 ← (const byte*) main::name + (signed word) set_process_name::j#2 -- pbuz1=pbuc1_plus_vwsz2
lda #<main.name
clc
adc.z j
@ -446,7 +446,7 @@ FINAL SYMBOL TABLE
(label) @end
(void()) main()
(label) main::@return
(const string) main::name[] = (string) "keyboard"
(const byte*) main::name[(byte) 9] = (string) "keyboard"
(const byte*) process_name = (byte*) 1024
(void()) set_process_name((byte*) set_process_name::name)
(byte*~) set_process_name::$1 zp[2]:4 11.0
@ -526,7 +526,7 @@ set_process_name: {
// set_process_name::@2
__b2:
// process_name[j]=name[j]
// [11] (byte*~) set_process_name::$1 ← (const string) main::name + (signed word) set_process_name::j#2 -- pbuz1=pbuc1_plus_vwsz2
// [11] (byte*~) set_process_name::$1 ← (const byte*) main::name + (signed word) set_process_name::j#2 -- pbuz1=pbuc1_plus_vwsz2
lda #<main.name
clc
adc.z j

@ -3,7 +3,7 @@
(label) @end
(void()) main()
(label) main::@return
(const string) main::name[] = (string) "keyboard"
(const byte*) main::name[(byte) 9] = (string) "keyboard"
(const byte*) process_name = (byte*) 1024
(void()) set_process_name((byte*) set_process_name::name)
(byte*~) set_process_name::$1 zp[2]:4 11.0

@ -212,11 +212,11 @@ Inlining constant with var siblings (const byte) print_person::person_id#1
Inlining constant with var siblings (const byte*) print_person::person_name#1
Inlining constant with var siblings (const byte) print_person::i#0
Inlining constant with var siblings (const byte) idx#20
Constant inlined print_person::person_name#1 = (const byte*) main::henriette_name
Constant inlined idx#20 = (byte) 0
Constant inlined print_person::person_id#1 = (const byte) main::henriette_id
Constant inlined print_person::person_id#0 = (const byte) main::jesper_id
Constant inlined print_person::i#0 = (byte) 0
Constant inlined print_person::person_name#1 = (const byte*) main::henriette_name
Constant inlined print_person::person_name#0 = (const byte*) main::jesper_name
Successful SSA optimization Pass2ConstantInlining
Adding NOP phi() at start of @begin

@ -87,7 +87,7 @@ print_char::@return: scope:[print_char] from print_char
(void()) print_str((byte*) print_str::str)
print_str: scope:[print_str] from main::@1 main::@4
[39] (byte*) print_char_cursor#45 ← phi( main::@1/(byte*) 1024 main::@4/(byte*) print_char_cursor#47 )
[39] (byte*) print_str::str#5 ← phi( main::@1/(const string) main::str main::@4/(const string) main::str1 )
[39] (byte*) print_str::str#5 ← phi( main::@1/(const byte*) main::str main::@4/(const byte*) main::str1 )
to:print_str::@1
print_str::@1: scope:[print_str] from print_str print_str::@2
[40] (byte*) print_char_cursor#2 ← phi( print_str/(byte*) print_char_cursor#45 print_str::@2/(byte*) print_char_cursor#1 )

@ -250,7 +250,7 @@ main::@2: scope:[main] from main
(byte*) print_line_cursor#14 ← phi( main/(byte*) print_line_cursor#4 )
(byte*) print_line_cursor#5 ← (byte*) print_line_cursor#14
(byte*) print_char_cursor#12 ← (byte*) print_char_cursor#31
(byte*) print_str::str#1 ← (const string) main::str
(byte*) print_str::str#1 ← (const byte*) main::str
call print_str
to:main::@3
main::@3: scope:[main] from main::@2
@ -274,7 +274,7 @@ main::@5: scope:[main] from main::@4
(byte*) print_line_cursor#15 ← phi( main::@4/(byte*) print_line_cursor#2 )
(byte*) print_line_cursor#6 ← (byte*) print_line_cursor#15
(byte*) print_char_cursor#15 ← (byte*) print_char_cursor#34
(byte*) print_str::str#2 ← (const string) main::str1
(byte*) print_str::str#2 ← (const byte*) main::str1
call print_str
to:main::@6
main::@6: scope:[main] from main::@5
@ -376,8 +376,8 @@ SYMBOL TABLE SSA
(signed word) main::return#1
(signed word) main::return#2
(signed word) main::return#3
(const string) main::str[] = (string) "$0000="
(const string) main::str1[] = (string) "$4004="
(const byte*) main::str[(byte) 7] = (string) "$0000="
(const byte*) main::str1[(byte) 7] = (string) "$4004="
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
(bool~) memset::$0
(bool~) memset::$1
@ -720,10 +720,10 @@ Inlining constant with var siblings (const byte*) print_str::str#1
Inlining constant with var siblings (const byte*) print_str::str#2
Inlining constant with var siblings (const byte*) print_line_cursor#0
Constant inlined file#1 = (const struct fileentry*) files
Constant inlined print_str::str#2 = (const string) main::str1
Constant inlined print_str::str#2 = (const byte*) main::str1
Constant inlined memset::$2 = (byte*)(const void*) memset::str#0
Constant inlined memset::dst#0 = (byte*)(const void*) memset::str#0
Constant inlined print_str::str#1 = (const string) main::str
Constant inlined print_str::str#1 = (const byte*) main::str
Constant inlined print_line_cursor#0 = (byte*) 1024
Successful SSA optimization Pass2ConstantInlining
Added new block during phi lifting print_ln::@3(between print_ln::@1 and print_ln::@1)
@ -884,7 +884,7 @@ print_char::@return: scope:[print_char] from print_char
(void()) print_str((byte*) print_str::str)
print_str: scope:[print_str] from main::@1 main::@4
[39] (byte*) print_char_cursor#45 ← phi( main::@1/(byte*) 1024 main::@4/(byte*) print_char_cursor#47 )
[39] (byte*) print_str::str#5 ← phi( main::@1/(const string) main::str main::@4/(const string) main::str1 )
[39] (byte*) print_str::str#5 ← phi( main::@1/(const byte*) main::str main::@4/(const byte*) main::str1 )
to:print_str::@1
print_str::@1: scope:[print_str] from print_str print_str::@2
[40] (byte*) print_char_cursor#2 ← phi( print_str/(byte*) print_char_cursor#45 print_str::@2/(byte*) print_char_cursor#1 )
@ -1072,7 +1072,7 @@ main: {
sta.z print_char_cursor
lda #>$400
sta.z print_char_cursor+1
// [39] phi (byte*) print_str::str#5 = (const string) main::str [phi:main::@1->print_str#1] -- pbuz1=pbuc1
// [39] phi (byte*) print_str::str#5 = (const byte*) main::str [phi:main::@1->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -1115,7 +1115,7 @@ main: {
// [39] phi from main::@4 to print_str [phi:main::@4->print_str]
print_str_from___b4:
// [39] phi (byte*) print_char_cursor#45 = (byte*) print_char_cursor#47 [phi:main::@4->print_str#0] -- register_copy
// [39] phi (byte*) print_str::str#5 = (const string) main::str1 [phi:main::@4->print_str#1] -- pbuz1=pbuc1
// [39] phi (byte*) print_str::str#5 = (const byte*) main::str1 [phi:main::@4->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -1494,7 +1494,7 @@ main: {
sta.z print_char_cursor
lda #>$400
sta.z print_char_cursor+1
// [39] phi (byte*) print_str::str#5 = (const string) main::str [phi:main::@1->print_str#1] -- pbuz1=pbuc1
// [39] phi (byte*) print_str::str#5 = (const byte*) main::str [phi:main::@1->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -1536,7 +1536,7 @@ main: {
// [39] phi from main::@4 to print_str [phi:main::@4->print_str]
print_str_from___b4:
// [39] phi (byte*) print_char_cursor#45 = (byte*) print_char_cursor#47 [phi:main::@4->print_str#0] -- register_copy
// [39] phi (byte*) print_str::str#5 = (const string) main::str1 [phi:main::@4->print_str#1] -- pbuz1=pbuc1
// [39] phi (byte*) print_str::str#5 = (const byte*) main::str1 [phi:main::@4->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -1860,8 +1860,8 @@ FINAL SYMBOL TABLE
(label) main::@6
(label) main::@return
(signed word) main::return
(const string) main::str[] = (string) "$0000="
(const string) main::str1[] = (string) "$4004="
(const byte*) main::str[(byte) 7] = (string) "$0000="
(const byte*) main::str1[(byte) 7] = (string) "$4004="
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
(label) memset::@1
(label) memset::@2
@ -1992,7 +1992,7 @@ main: {
sta.z print_char_cursor
lda #>$400
sta.z print_char_cursor+1
// [39] phi (byte*) print_str::str#5 = (const string) main::str [phi:main::@1->print_str#1] -- pbuz1=pbuc1
// [39] phi (byte*) print_str::str#5 = (const byte*) main::str [phi:main::@1->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -2027,7 +2027,7 @@ main: {
// [16] call print_str
// [39] phi from main::@4 to print_str [phi:main::@4->print_str]
// [39] phi (byte*) print_char_cursor#45 = (byte*) print_char_cursor#47 [phi:main::@4->print_str#0] -- register_copy
// [39] phi (byte*) print_str::str#5 = (const string) main::str1 [phi:main::@4->print_str#1] -- pbuz1=pbuc1
// [39] phi (byte*) print_str::str#5 = (const byte*) main::str1 [phi:main::@4->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1

@ -18,8 +18,8 @@
(label) main::@6
(label) main::@return
(signed word) main::return
(const string) main::str[] = (string) "$0000="
(const string) main::str1[] = (string) "$4004="
(const byte*) main::str[(byte) 7] = (string) "$0000="
(const byte*) main::str1[(byte) 7] = (string) "$4004="
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
(label) memset::@1
(label) memset::@2

@ -212,11 +212,11 @@ Inlining constant with var siblings (const byte) print_person::person_id#1
Inlining constant with var siblings (const byte*) print_person::person_name#1
Inlining constant with var siblings (const byte) print_person::i#0
Inlining constant with var siblings (const byte) idx#20
Constant inlined print_person::person_name#1 = (const byte*) main::henriette_name
Constant inlined idx#20 = (byte) 0
Constant inlined print_person::person_id#1 = (const byte) main::henriette_id
Constant inlined print_person::person_id#0 = (const byte) main::jesper_id
Constant inlined print_person::i#0 = (byte) 0
Constant inlined print_person::person_name#1 = (const byte*) main::henriette_name
Constant inlined print_person::person_name#0 = (const byte*) main::jesper_name
Successful SSA optimization Pass2ConstantInlining
Adding NOP phi() at start of @begin

@ -573,7 +573,7 @@ compare::@29: scope:[compare] from compare::@17 compare::@18
(signed word) compare::w2#16 ← phi( compare::@17/(signed word) compare::w2#6 compare::@18/(signed word) compare::w2#22 )
(byte*) print_char_cursor#75 ← phi( compare::@17/(byte*) print_char_cursor#84 compare::@18/(byte*) print_char_cursor#85 )
(signed word) compare::w1#14 ← phi( compare::@17/(signed word) compare::w1#6 compare::@18/(signed word) compare::w1#20 )
(byte*) compare::ops#1 ← (const string) compare::$23
(byte*) compare::ops#1 ← (const byte*) compare::$23
to:compare::@11
compare::@18: scope:[compare] from compare::@17
(signed word) compare::w2#22 ← phi( compare::@17/(signed word) compare::w2#6 )
@ -586,7 +586,7 @@ compare::@30: scope:[compare] from compare::@20 compare::@5
(signed word) compare::w2#17 ← phi( compare::@20/(signed word) compare::w2#23 compare::@5/(signed word) compare::w2#5 )
(byte*) print_char_cursor#76 ← phi( compare::@20/(byte*) print_char_cursor#86 compare::@5/(byte*) print_char_cursor#87 )
(signed word) compare::w1#15 ← phi( compare::@20/(signed word) compare::w1#21 compare::@5/(signed word) compare::w1#5 )
(byte*) compare::ops#2 ← (const string) compare::$24
(byte*) compare::ops#2 ← (const byte*) compare::$24
to:compare::@11
compare::@20: scope:[compare] from compare::@5
(signed word) compare::w2#23 ← phi( compare::@5/(signed word) compare::w2#5 )
@ -599,7 +599,7 @@ compare::@31: scope:[compare] from compare::@22 compare::@4
(signed word) compare::w2#18 ← phi( compare::@22/(signed word) compare::w2#24 compare::@4/(signed word) compare::w2#4 )
(byte*) print_char_cursor#77 ← phi( compare::@22/(byte*) print_char_cursor#88 compare::@4/(byte*) print_char_cursor#89 )
(signed word) compare::w1#16 ← phi( compare::@22/(signed word) compare::w1#22 compare::@4/(signed word) compare::w1#4 )
(byte*) compare::ops#3 ← (const string) compare::$25
(byte*) compare::ops#3 ← (const byte*) compare::$25
to:compare::@11
compare::@22: scope:[compare] from compare::@4
(signed word) compare::w2#24 ← phi( compare::@4/(signed word) compare::w2#4 )
@ -612,7 +612,7 @@ compare::@32: scope:[compare] from compare::@24 compare::@3
(signed word) compare::w2#19 ← phi( compare::@24/(signed word) compare::w2#25 compare::@3/(signed word) compare::w2#3 )
(byte*) print_char_cursor#78 ← phi( compare::@24/(byte*) print_char_cursor#90 compare::@3/(byte*) print_char_cursor#91 )
(signed word) compare::w1#17 ← phi( compare::@24/(signed word) compare::w1#23 compare::@3/(signed word) compare::w1#3 )
(byte*) compare::ops#4 ← (const string) compare::$26
(byte*) compare::ops#4 ← (const byte*) compare::$26
to:compare::@11
compare::@24: scope:[compare] from compare::@3
(signed word) compare::w2#25 ← phi( compare::@3/(signed word) compare::w2#3 )
@ -625,7 +625,7 @@ compare::@33: scope:[compare] from compare::@2 compare::@26
(signed word) compare::w2#20 ← phi( compare::@2/(signed word) compare::w2#2 compare::@26/(signed word) compare::w2#26 )
(byte*) print_char_cursor#79 ← phi( compare::@2/(byte*) print_char_cursor#92 compare::@26/(byte*) print_char_cursor#93 )
(signed word) compare::w1#18 ← phi( compare::@2/(signed word) compare::w1#2 compare::@26/(signed word) compare::w1#24 )
(byte*) compare::ops#5 ← (const string) compare::$27
(byte*) compare::ops#5 ← (const byte*) compare::$27
to:compare::@11
compare::@26: scope:[compare] from compare::@2
(signed word) compare::w2#26 ← phi( compare::@2/(signed word) compare::w2#2 )
@ -675,7 +675,7 @@ compare::@34: scope:[compare] from compare::@1 compare::@28
(signed word) compare::w2#21 ← phi( compare::@1/(signed word) compare::w2#1 compare::@28/(signed word) compare::w2#27 )
(byte*) print_char_cursor#80 ← phi( compare::@1/(byte*) print_char_cursor#94 compare::@28/(byte*) print_char_cursor#95 )
(signed word) compare::w1#19 ← phi( compare::@1/(signed word) compare::w1#1 compare::@28/(signed word) compare::w1#25 )
(byte*) compare::ops#6 ← (const string) compare::$28
(byte*) compare::ops#6 ← (const byte*) compare::$28
to:compare::@11
compare::@28: scope:[compare] from compare::@1
(signed word) compare::w2#27 ← phi( compare::@1/(signed word) compare::w2#1 )
@ -737,12 +737,12 @@ SYMBOL TABLE SSA
(bool~) compare::$20
(bool~) compare::$21
(bool~) compare::$22
(const string) compare::$23[] = (string) "!="
(const string) compare::$24[] = (string) "=="
(const string) compare::$25[] = (string) ">="
(const string) compare::$26[] = (string) "> "
(const string) compare::$27[] = (string) "<="
(const string) compare::$28[] = (string) "< "
(const byte*) compare::$23[(byte) 3] = (string) "!="
(const byte*) compare::$24[(byte) 3] = (string) "=="
(const byte*) compare::$25[(byte) 3] = (string) ">="
(const byte*) compare::$26[(byte) 3] = (string) "> "
(const byte*) compare::$27[(byte) 3] = (string) "<="
(const byte*) compare::$28[(byte) 3] = (string) "< "
(bool~) compare::$3
(bool~) compare::$4
(bool~) compare::$5

@ -524,7 +524,7 @@ compare::@29: scope:[compare] from compare::@17 compare::@18
(word) compare::w2#16 ← phi( compare::@17/(word) compare::w2#6 compare::@18/(word) compare::w2#22 )
(byte*) print_char_cursor#65 ← phi( compare::@17/(byte*) print_char_cursor#74 compare::@18/(byte*) print_char_cursor#75 )
(word) compare::w1#14 ← phi( compare::@17/(word) compare::w1#6 compare::@18/(word) compare::w1#20 )
(byte*) compare::ops#1 ← (const string) compare::$24
(byte*) compare::ops#1 ← (const byte*) compare::$24
to:compare::@11
compare::@18: scope:[compare] from compare::@17
(word) compare::w2#22 ← phi( compare::@17/(word) compare::w2#6 )
@ -537,7 +537,7 @@ compare::@30: scope:[compare] from compare::@20 compare::@5
(word) compare::w2#17 ← phi( compare::@20/(word) compare::w2#23 compare::@5/(word) compare::w2#5 )
(byte*) print_char_cursor#66 ← phi( compare::@20/(byte*) print_char_cursor#76 compare::@5/(byte*) print_char_cursor#77 )
(word) compare::w1#15 ← phi( compare::@20/(word) compare::w1#21 compare::@5/(word) compare::w1#5 )
(byte*) compare::ops#2 ← (const string) compare::$25
(byte*) compare::ops#2 ← (const byte*) compare::$25
to:compare::@11
compare::@20: scope:[compare] from compare::@5
(word) compare::w2#23 ← phi( compare::@5/(word) compare::w2#5 )
@ -550,7 +550,7 @@ compare::@31: scope:[compare] from compare::@22 compare::@4
(word) compare::w2#18 ← phi( compare::@22/(word) compare::w2#24 compare::@4/(word) compare::w2#4 )
(byte*) print_char_cursor#67 ← phi( compare::@22/(byte*) print_char_cursor#78 compare::@4/(byte*) print_char_cursor#79 )
(word) compare::w1#16 ← phi( compare::@22/(word) compare::w1#22 compare::@4/(word) compare::w1#4 )
(byte*) compare::ops#3 ← (const string) compare::$26
(byte*) compare::ops#3 ← (const byte*) compare::$26
to:compare::@11
compare::@22: scope:[compare] from compare::@4
(word) compare::w2#24 ← phi( compare::@4/(word) compare::w2#4 )
@ -563,7 +563,7 @@ compare::@32: scope:[compare] from compare::@24 compare::@3
(word) compare::w2#19 ← phi( compare::@24/(word) compare::w2#25 compare::@3/(word) compare::w2#3 )
(byte*) print_char_cursor#68 ← phi( compare::@24/(byte*) print_char_cursor#80 compare::@3/(byte*) print_char_cursor#81 )
(word) compare::w1#17 ← phi( compare::@24/(word) compare::w1#23 compare::@3/(word) compare::w1#3 )
(byte*) compare::ops#4 ← (const string) compare::$27
(byte*) compare::ops#4 ← (const byte*) compare::$27
to:compare::@11
compare::@24: scope:[compare] from compare::@3
(word) compare::w2#25 ← phi( compare::@3/(word) compare::w2#3 )
@ -576,7 +576,7 @@ compare::@33: scope:[compare] from compare::@2 compare::@26
(word) compare::w2#20 ← phi( compare::@2/(word) compare::w2#2 compare::@26/(word) compare::w2#26 )
(byte*) print_char_cursor#69 ← phi( compare::@2/(byte*) print_char_cursor#82 compare::@26/(byte*) print_char_cursor#83 )
(word) compare::w1#18 ← phi( compare::@2/(word) compare::w1#2 compare::@26/(word) compare::w1#24 )
(byte*) compare::ops#5 ← (const string) compare::$28
(byte*) compare::ops#5 ← (const byte*) compare::$28
to:compare::@11
compare::@26: scope:[compare] from compare::@2
(word) compare::w2#26 ← phi( compare::@2/(word) compare::w2#2 )
@ -632,7 +632,7 @@ compare::@34: scope:[compare] from compare::@1 compare::@28
(word) compare::w2#21 ← phi( compare::@1/(word) compare::w2#1 compare::@28/(word) compare::w2#27 )
(byte*) print_char_cursor#70 ← phi( compare::@1/(byte*) print_char_cursor#84 compare::@28/(byte*) print_char_cursor#85 )
(word) compare::w1#19 ← phi( compare::@1/(word) compare::w1#1 compare::@28/(word) compare::w1#25 )
(byte*) compare::ops#6 ← (const string) compare::$29
(byte*) compare::ops#6 ← (const byte*) compare::$29
to:compare::@11
compare::@28: scope:[compare] from compare::@1
(word) compare::w2#27 ← phi( compare::@1/(word) compare::w2#1 )
@ -688,12 +688,12 @@ SYMBOL TABLE SSA
(bool~) compare::$21
(bool~) compare::$22
(bool~) compare::$23
(const string) compare::$24[] = (string) "!="
(const string) compare::$25[] = (string) "=="
(const string) compare::$26[] = (string) ">="
(const string) compare::$27[] = (string) "> "
(const string) compare::$28[] = (string) "<="
(const string) compare::$29[] = (string) "< "
(const byte*) compare::$24[(byte) 3] = (string) "!="
(const byte*) compare::$25[(byte) 3] = (string) "=="
(const byte*) compare::$26[(byte) 3] = (string) ">="
(const byte*) compare::$27[(byte) 3] = (string) "> "
(const byte*) compare::$28[(byte) 3] = (string) "<="
(const byte*) compare::$29[(byte) 3] = (string) "< "
(bool~) compare::$3
(bool~) compare::$4
(bool~) compare::$5

@ -326,7 +326,7 @@ print_ln::@return: scope:[print_ln] from print_ln::@1
printu: scope:[printu] from main::@10 main::@11 main::@12 main::@13 main::@14 main::@15 main::@16 main::@17 main::@18 main::@19 main::@2 main::@20 main::@21 main::@3 main::@4 main::@5 main::@6 main::@7 main::@8 main::@9
[167] (byte) printu::res#20 ← phi( main::@10/(byte) printu::res#8 main::@11/(byte) printu::res#9 main::@12/(byte) printu::res#10 main::@13/(byte) printu::res#11 main::@14/(byte) printu::res#12 main::@15/(byte) printu::res#13 main::@16/(byte) printu::res#14 main::@17/(byte) printu::res#15 main::@18/(byte) printu::res#16 main::@19/(byte) printu::res#17 main::@2/(byte) printu::res#0 main::@20/(byte) printu::res#18 main::@21/(byte) printu::res#19 main::@3/(byte) printu::res#1 main::@4/(byte) printu::res#2 main::@5/(byte) printu::res#3 main::@6/(byte) printu::res#4 main::@7/(byte) printu::res#5 main::@8/(byte) printu::res#6 main::@9/(byte) printu::res#7 )
[167] (byte) printu::b#20 ← phi( main::@10/(byte) printu::b#8 main::@11/(byte) $37 main::@12/(byte) printu::b#10 main::@13/(byte) printu::b#11 main::@14/(byte) printu::b#12 main::@15/(byte) $37 main::@16/(byte) printu::b#14 main::@17/(byte) printu::b#15 main::@18/(byte) printu::b#16 main::@19/(byte) $37 main::@2/(byte) printu::b#0 main::@20/(byte) printu::b#18 main::@21/(byte) printu::b#19 main::@3/(byte) $37 main::@4/(byte) printu::b#2 main::@5/(byte) printu::b#3 main::@6/(byte) printu::b#4 main::@7/(byte) $37 main::@8/(byte) printu::b#6 main::@9/(byte) printu::b#7 )
[167] (byte*) printu::op#20 ← phi( main::@10/(const string) main::op8 main::@11/(const string) main::op8 main::@12/(const string) main::op8 main::@13/(const string) main::op8 main::@14/(const string) main::op12 main::@15/(const string) main::op12 main::@16/(const string) main::op12 main::@17/(const string) main::op12 main::@18/(const string) main::op16 main::@19/(const string) main::op16 main::@2/(const string) main::op main::@20/(const string) main::op16 main::@21/(const string) main::op16 main::@3/(const string) main::op main::@4/(const string) main::op main::@5/(const string) main::op main::@6/(const string) main::op4 main::@7/(const string) main::op4 main::@8/(const string) main::op4 main::@9/(const string) main::op4 )
[167] (byte*) printu::op#20 ← phi( main::@10/(const byte*) main::op8 main::@11/(const byte*) main::op8 main::@12/(const byte*) main::op8 main::@13/(const byte*) main::op8 main::@14/(const byte*) main::op12 main::@15/(const byte*) main::op12 main::@16/(const byte*) main::op12 main::@17/(const byte*) main::op12 main::@18/(const byte*) main::op16 main::@19/(const byte*) main::op16 main::@2/(const byte*) main::op main::@20/(const byte*) main::op16 main::@21/(const byte*) main::op16 main::@3/(const byte*) main::op main::@4/(const byte*) main::op main::@5/(const byte*) main::op main::@6/(const byte*) main::op4 main::@7/(const byte*) main::op4 main::@8/(const byte*) main::op4 main::@9/(const byte*) main::op4 )
[167] (byte) printu::a#20 ← phi( main::@10/(byte) printu::a#8 main::@11/(byte) printu::a#9 main::@12/(byte) printu::a#10 main::@13/(byte) printu::a#11 main::@14/(byte) printu::a#12 main::@15/(byte) printu::a#13 main::@16/(byte) printu::a#14 main::@17/(byte) printu::a#15 main::@18/(byte) printu::a#16 main::@19/(byte) printu::a#17 main::@2/(byte) printu::a#0 main::@20/(byte) printu::a#18 main::@21/(byte) printu::a#19 main::@3/(byte) printu::a#1 main::@4/(byte) printu::a#2 main::@5/(byte) printu::a#3 main::@6/(byte) printu::a#4 main::@7/(byte) printu::a#5 main::@8/(byte) printu::a#6 main::@9/(byte) printu::a#7 )
[167] (byte*) print_char_cursor#95 ← phi( main::@10/(byte*) print_char_cursor#151 main::@11/(byte*) print_char_cursor#55 main::@12/(byte*) print_char_cursor#55 main::@13/(byte*) print_char_cursor#55 main::@14/(byte*) print_char_cursor#155 main::@15/(byte*) print_char_cursor#55 main::@16/(byte*) print_char_cursor#55 main::@17/(byte*) print_char_cursor#55 main::@18/(byte*) print_char_cursor#159 main::@19/(byte*) print_char_cursor#55 main::@2/(byte*) print_char_cursor#120 main::@20/(byte*) print_char_cursor#55 main::@21/(byte*) print_char_cursor#55 main::@3/(byte*) print_char_cursor#55 main::@4/(byte*) print_char_cursor#55 main::@5/(byte*) print_char_cursor#55 main::@6/(byte*) print_char_cursor#167 main::@7/(byte*) print_char_cursor#55 main::@8/(byte*) print_char_cursor#55 main::@9/(byte*) print_char_cursor#55 )
[168] call print_char

@ -259,7 +259,7 @@ main::@2: scope:[main] from main::@1 main::@22
(byte) main::b#1 ← phi( main::@1/(byte) main::b#0 main::@22/(byte) main::b#10 )
(byte) main::a#3 ← phi( main::@1/(byte) main::a#2 main::@22/(byte) main::a#43 )
(byte) printu::a#0 ← (byte) main::a#3
(byte*) printu::op#0 ← (const string) main::op
(byte*) printu::op#0 ← (const byte*) main::op
(byte) printu::b#0 ← (byte) main::b#1
(byte) printu::res#0 ← (byte) main::r#41
call printu
@ -292,7 +292,7 @@ main::@3: scope:[main] from main::@23 main::@46
(byte) main::r#42 ← phi( main::@23/(byte) main::r#5 main::@46/(byte) main::r#2 )
(byte) main::a#5 ← phi( main::@23/(byte) main::a#44 main::@46/(byte) main::a#4 )
(byte) printu::a#1 ← (byte) main::a#5
(byte*) printu::op#1 ← (const string) main::op1
(byte*) printu::op#1 ← (const byte*) main::op1
(byte) printu::b#1 ← (number) $37
(byte) printu::res#1 ← (byte) main::r#42
call printu
@ -325,7 +325,7 @@ main::@4: scope:[main] from main::@24 main::@47
(byte) main::i#3 ← phi( main::@24/(byte) main::i#14 main::@47/(byte) main::i#2 )
(byte) main::a#7 ← phi( main::@24/(byte) main::a#45 main::@47/(byte) main::a#6 )
(byte) printu::a#2 ← (byte) main::a#7
(byte*) printu::op#2 ← (const string) main::op2
(byte*) printu::op#2 ← (const byte*) main::op2
(byte) printu::b#2 ← *((const byte*) main::cs + (byte) main::i#3)
(byte) printu::res#2 ← (byte) main::r#43
call printu
@ -358,7 +358,7 @@ main::@5: scope:[main] from main::@25 main::@48
(byte) main::r#44 ← phi( main::@25/(byte) main::r#9 main::@48/(byte) main::r#6 )
(byte) main::a#9 ← phi( main::@25/(byte) main::a#46 main::@48/(byte) main::a#8 )
(byte) printu::a#3 ← (byte) main::a#9
(byte*) printu::op#3 ← (const string) main::op3
(byte*) printu::op#3 ← (const byte*) main::op3
(byte) printu::b#3 ← (byte) main::a#9
(byte) printu::res#3 ← (byte) main::r#44
call printu
@ -401,7 +401,7 @@ main::@6: scope:[main] from main::@26 main::@50
(byte) main::b#3 ← phi( main::@26/(byte) main::b#12 main::@50/(byte) main::b#2 )
(byte) main::a#11 ← phi( main::@26/(byte) main::a#48 main::@50/(byte) main::a#10 )
(byte) printu::a#4 ← (byte) main::a#11
(byte*) printu::op#4 ← (const string) main::op4
(byte*) printu::op#4 ← (const byte*) main::op4
(byte) printu::b#4 ← (byte) main::b#3
(byte) printu::res#4 ← (byte) main::r#45
call printu
@ -434,7 +434,7 @@ main::@7: scope:[main] from main::@27 main::@51
(byte) main::r#46 ← phi( main::@27/(byte) main::r#13 main::@51/(byte) main::r#10 )
(byte) main::a#13 ← phi( main::@27/(byte) main::a#49 main::@51/(byte) main::a#12 )
(byte) printu::a#5 ← (byte) main::a#13
(byte*) printu::op#5 ← (const string) main::op5
(byte*) printu::op#5 ← (const byte*) main::op5
(byte) printu::b#5 ← (number) $37
(byte) printu::res#5 ← (byte) main::r#46
call printu
@ -467,7 +467,7 @@ main::@8: scope:[main] from main::@28 main::@52
(byte) main::i#5 ← phi( main::@28/(byte) main::i#16 main::@52/(byte) main::i#4 )
(byte) main::a#15 ← phi( main::@28/(byte) main::a#50 main::@52/(byte) main::a#14 )
(byte) printu::a#6 ← (byte) main::a#15
(byte*) printu::op#6 ← (const string) main::op6
(byte*) printu::op#6 ← (const byte*) main::op6
(byte) printu::b#6 ← *((const byte*) main::cs + (byte) main::i#5)
(byte) printu::res#6 ← (byte) main::r#47
call printu
@ -500,7 +500,7 @@ main::@9: scope:[main] from main::@29 main::@53
(byte) main::r#48 ← phi( main::@29/(byte) main::r#17 main::@53/(byte) main::r#14 )
(byte) main::a#17 ← phi( main::@29/(byte) main::a#51 main::@53/(byte) main::a#16 )
(byte) printu::a#7 ← (byte) main::a#17
(byte*) printu::op#7 ← (const string) main::op7
(byte*) printu::op#7 ← (const byte*) main::op7
(byte) printu::b#7 ← (byte) main::a#17
(byte) printu::res#7 ← (byte) main::r#48
call printu
@ -543,7 +543,7 @@ main::@10: scope:[main] from main::@30 main::@55
(byte) main::b#5 ← phi( main::@30/(byte) main::b#14 main::@55/(byte) main::b#4 )
(byte) main::a#19 ← phi( main::@30/(byte) main::a#53 main::@55/(byte) main::a#18 )
(byte) printu::a#8 ← (byte) main::a#19
(byte*) printu::op#8 ← (const string) main::op8
(byte*) printu::op#8 ← (const byte*) main::op8
(byte) printu::b#8 ← (byte) main::b#5
(byte) printu::res#8 ← (byte) main::r#49
call printu
@ -576,7 +576,7 @@ main::@11: scope:[main] from main::@31 main::@56
(byte) main::r#50 ← phi( main::@31/(byte) main::r#21 main::@56/(byte) main::r#18 )
(byte) main::a#21 ← phi( main::@31/(byte) main::a#54 main::@56/(byte) main::a#20 )
(byte) printu::a#9 ← (byte) main::a#21
(byte*) printu::op#9 ← (const string) main::op9
(byte*) printu::op#9 ← (const byte*) main::op9
(byte) printu::b#9 ← (number) $37
(byte) printu::res#9 ← (byte) main::r#50
call printu
@ -609,7 +609,7 @@ main::@12: scope:[main] from main::@32 main::@57
(byte) main::i#7 ← phi( main::@32/(byte) main::i#18 main::@57/(byte) main::i#6 )
(byte) main::a#23 ← phi( main::@32/(byte) main::a#55 main::@57/(byte) main::a#22 )
(byte) printu::a#10 ← (byte) main::a#23
(byte*) printu::op#10 ← (const string) main::op10
(byte*) printu::op#10 ← (const byte*) main::op10
(byte) printu::b#10 ← *((const byte*) main::cs + (byte) main::i#7)
(byte) printu::res#10 ← (byte) main::r#51
call printu
@ -642,7 +642,7 @@ main::@13: scope:[main] from main::@33 main::@58
(byte) main::r#52 ← phi( main::@33/(byte) main::r#25 main::@58/(byte) main::r#22 )
(byte) main::a#25 ← phi( main::@33/(byte) main::a#56 main::@58/(byte) main::a#24 )
(byte) printu::a#11 ← (byte) main::a#25
(byte*) printu::op#11 ← (const string) main::op11
(byte*) printu::op#11 ← (const byte*) main::op11
(byte) printu::b#11 ← (byte) main::a#25
(byte) printu::res#11 ← (byte) main::r#52
call printu
@ -685,7 +685,7 @@ main::@14: scope:[main] from main::@34 main::@60
(byte) main::b#7 ← phi( main::@34/(byte) main::b#16 main::@60/(byte) main::b#6 )
(byte) main::a#27 ← phi( main::@34/(byte) main::a#58 main::@60/(byte) main::a#26 )
(byte) printu::a#12 ← (byte) main::a#27
(byte*) printu::op#12 ← (const string) main::op12
(byte*) printu::op#12 ← (const byte*) main::op12
(byte) printu::b#12 ← (byte) main::b#7
(byte) printu::res#12 ← (byte) main::r#53
call printu
@ -718,7 +718,7 @@ main::@15: scope:[main] from main::@35 main::@61
(byte) main::r#54 ← phi( main::@35/(byte) main::r#29 main::@61/(byte) main::r#26 )
(byte) main::a#29 ← phi( main::@35/(byte) main::a#59 main::@61/(byte) main::a#28 )
(byte) printu::a#13 ← (byte) main::a#29
(byte*) printu::op#13 ← (const string) main::op13
(byte*) printu::op#13 ← (const byte*) main::op13
(byte) printu::b#13 ← (number) $37
(byte) printu::res#13 ← (byte) main::r#54
call printu
@ -751,7 +751,7 @@ main::@16: scope:[main] from main::@36 main::@62
(byte) main::i#9 ← phi( main::@36/(byte) main::i#20 main::@62/(byte) main::i#8 )
(byte) main::a#31 ← phi( main::@36/(byte) main::a#60 main::@62/(byte) main::a#30 )
(byte) printu::a#14 ← (byte) main::a#31
(byte*) printu::op#14 ← (const string) main::op14
(byte*) printu::op#14 ← (const byte*) main::op14
(byte) printu::b#14 ← *((const byte*) main::cs + (byte) main::i#9)
(byte) printu::res#14 ← (byte) main::r#55
call printu
@ -784,7 +784,7 @@ main::@17: scope:[main] from main::@37 main::@63
(byte) main::r#56 ← phi( main::@37/(byte) main::r#33 main::@63/(byte) main::r#30 )
(byte) main::a#33 ← phi( main::@37/(byte) main::a#61 main::@63/(byte) main::a#32 )
(byte) printu::a#15 ← (byte) main::a#33
(byte*) printu::op#15 ← (const string) main::op15
(byte*) printu::op#15 ← (const byte*) main::op15
(byte) printu::b#15 ← (byte) main::a#33
(byte) printu::res#15 ← (byte) main::r#56
call printu
@ -827,7 +827,7 @@ main::@18: scope:[main] from main::@38 main::@65
(byte) main::b#9 ← phi( main::@38/(byte) main::b#18 main::@65/(byte) main::b#8 )
(byte) main::a#35 ← phi( main::@38/(byte) main::a#63 main::@65/(byte) main::a#34 )
(byte) printu::a#16 ← (byte) main::a#35
(byte*) printu::op#16 ← (const string) main::op16
(byte*) printu::op#16 ← (const byte*) main::op16
(byte) printu::b#16 ← (byte) main::b#9
(byte) printu::res#16 ← (byte) main::r#57
call printu
@ -858,7 +858,7 @@ main::@19: scope:[main] from main::@39 main::@66
(byte) main::r#58 ← phi( main::@39/(byte) main::r#37 main::@66/(byte) main::r#34 )
(byte) main::a#37 ← phi( main::@39/(byte) main::a#64 main::@66/(byte) main::a#36 )
(byte) printu::a#17 ← (byte) main::a#37
(byte*) printu::op#17 ← (const string) main::op17
(byte*) printu::op#17 ← (const byte*) main::op17
(byte) printu::b#17 ← (number) $37
(byte) printu::res#17 ← (byte) main::r#58
call printu
@ -888,7 +888,7 @@ main::@20: scope:[main] from main::@40 main::@67
(byte) main::i#11 ← phi( main::@40/(byte) main::i#22 main::@67/(byte) main::i#10 )
(byte) main::a#39 ← phi( main::@40/(byte) main::a#65 main::@67/(byte) main::a#38 )
(byte) printu::a#18 ← (byte) main::a#39
(byte*) printu::op#18 ← (const string) main::op18
(byte*) printu::op#18 ← (const byte*) main::op18
(byte) printu::b#18 ← *((const byte*) main::cs + (byte) main::i#11)
(byte) printu::res#18 ← (byte) main::r#59
call printu
@ -918,7 +918,7 @@ main::@21: scope:[main] from main::@41 main::@68
(byte) main::r#60 ← phi( main::@41/(byte) main::r#40 main::@68/(byte) main::r#38 )
(byte) main::a#41 ← phi( main::@41/(byte) main::a#66 main::@68/(byte) main::a#40 )
(byte) printu::a#19 ← (byte) main::a#41
(byte*) printu::op#19 ← (const string) main::op19
(byte*) printu::op#19 ← (const byte*) main::op19
(byte) printu::b#19 ← (byte) main::a#41
(byte) printu::res#19 ← (byte) main::r#60
call printu
@ -1356,26 +1356,26 @@ SYMBOL TABLE SSA
(byte) main::i#7
(byte) main::i#8
(byte) main::i#9
(const string) main::op[] = (string) "< "
(const string) main::op1[] = (string) "< "
(const string) main::op10[] = (string) "<="
(const string) main::op11[] = (string) "<="
(const string) main::op12[] = (string) ">="
(const string) main::op13[] = (string) ">="
(const string) main::op14[] = (string) ">="
(const string) main::op15[] = (string) ">="
(const string) main::op16[] = (string) "=="
(const string) main::op17[] = (string) "=="
(const string) main::op18[] = (string) "=="
(const string) main::op19[] = (string) "=="
(const string) main::op2[] = (string) "< "
(const string) main::op3[] = (string) "< "
(const string) main::op4[] = (string) "> "
(const string) main::op5[] = (string) "> "
(const string) main::op6[] = (string) "> "
(const string) main::op7[] = (string) "> "
(const string) main::op8[] = (string) "<="
(const string) main::op9[] = (string) "<="
(const byte*) main::op[(byte) 3] = (string) "< "
(const byte*) main::op1[(byte) 3] = (string) "< "
(const byte*) main::op10[(byte) 3] = (string) "<="
(const byte*) main::op11[(byte) 3] = (string) "<="
(const byte*) main::op12[(byte) 3] = (string) ">="
(const byte*) main::op13[(byte) 3] = (string) ">="
(const byte*) main::op14[(byte) 3] = (string) ">="
(const byte*) main::op15[(byte) 3] = (string) ">="
(const byte*) main::op16[(byte) 3] = (string) "=="
(const byte*) main::op17[(byte) 3] = (string) "=="
(const byte*) main::op18[(byte) 3] = (string) "=="
(const byte*) main::op19[(byte) 3] = (string) "=="
(const byte*) main::op2[(byte) 3] = (string) "< "
(const byte*) main::op3[(byte) 3] = (string) "< "
(const byte*) main::op4[(byte) 3] = (string) "> "
(const byte*) main::op5[(byte) 3] = (string) "> "
(const byte*) main::op6[(byte) 3] = (string) "> "
(const byte*) main::op7[(byte) 3] = (string) "> "
(const byte*) main::op8[(byte) 3] = (string) "<="
(const byte*) main::op9[(byte) 3] = (string) "<="
(byte) main::r
(byte) main::r#0
(byte) main::r#1
@ -2309,6 +2309,11 @@ Successful SSA optimization Pass2ConstantIdentification
if() condition always false - eliminating [3] if((const word) memset::num#0<=(byte) 0) goto memset::@1
if() condition always true - replacing block destination [396] if(true) goto main::@43
Successful SSA optimization Pass2ConstantIfs
Consolidated constant strings into (const byte*) main::op
Consolidated constant strings into (const byte*) main::op4
Consolidated constant strings into (const byte*) main::op8
Consolidated constant strings into (const byte*) main::op12
Consolidated constant strings into (const byte*) main::op16
Successful SSA optimization Pass2ConstantStringConsolidation
Resolved ranged next value [390] main::i#1 ← ++ main::i#10 to ++
Resolved ranged comparison value [392] if(main::i#1!=rangelast(0,4)) goto main::@1 to (number) 5
@ -2410,17 +2415,17 @@ Inlining constant with var siblings (const byte) printu::b#17
Inlining constant with var siblings (const byte*) printu::op#18
Inlining constant with var siblings (const byte*) printu::op#19
Inlining constant with var siblings (const byte*) print_line_cursor#0
Constant inlined printu::op#0 = (const string) main::op
Constant inlined printu::op#1 = (const string) main::op
Constant inlined printu::op#8 = (const string) main::op8
Constant inlined printu::op#9 = (const string) main::op8
Constant inlined printu::op#6 = (const string) main::op4
Constant inlined printu::op#0 = (const byte*) main::op
Constant inlined printu::op#1 = (const byte*) main::op
Constant inlined printu::op#8 = (const byte*) main::op8
Constant inlined printu::op#9 = (const byte*) main::op8
Constant inlined printu::op#6 = (const byte*) main::op4
Constant inlined main::r#39 = (byte) '+'
Constant inlined printu::op#7 = (const string) main::op4
Constant inlined printu::op#4 = (const string) main::op4
Constant inlined printu::op#5 = (const string) main::op4
Constant inlined printu::op#2 = (const string) main::op
Constant inlined printu::op#3 = (const string) main::op
Constant inlined printu::op#7 = (const byte*) main::op4
Constant inlined printu::op#4 = (const byte*) main::op4
Constant inlined printu::op#5 = (const byte*) main::op4
Constant inlined printu::op#2 = (const byte*) main::op
Constant inlined printu::op#3 = (const byte*) main::op
Constant inlined main::r#33 = (byte) '+'
Constant inlined main::r#34 = (byte) '-'
Constant inlined main::r#31 = (byte) '+'
@ -2430,20 +2435,20 @@ Constant inlined main::r#38 = (byte) '-'
Constant inlined main::r#35 = (byte) '+'
Constant inlined main::r#36 = (byte) '-'
Constant inlined main::r#30 = (byte) '-'
Constant inlined main::op11 = (const string) main::op8
Constant inlined main::op11 = (const byte*) main::op8
Constant inlined printu::b#17 = (byte) $37
Constant inlined main::op10 = (const string) main::op8
Constant inlined main::op15 = (const string) main::op12
Constant inlined main::op10 = (const byte*) main::op8
Constant inlined main::op15 = (const byte*) main::op12
Constant inlined printu::b#13 = (byte) $37
Constant inlined main::op13 = (const string) main::op12
Constant inlined main::op13 = (const byte*) main::op12
Constant inlined print_line_cursor#0 = (byte*) 1024
Constant inlined main::op14 = (const string) main::op12
Constant inlined main::op14 = (const byte*) main::op12
Constant inlined memset::dst#0 = (byte*)(const void*) memset::str#0
Constant inlined main::r#40 = (byte) '+'
Constant inlined printu::op#17 = (const string) main::op16
Constant inlined printu::op#17 = (const byte*) main::op16
Constant inlined main::r#19 = (byte) '+'
Constant inlined printu::op#18 = (const string) main::op16
Constant inlined printu::op#19 = (const string) main::op16
Constant inlined printu::op#18 = (const byte*) main::op16
Constant inlined printu::op#19 = (const byte*) main::op16
Constant inlined main::r#17 = (byte) '+'
Constant inlined main::r#18 = (byte) '-'
Constant inlined main::a#0 = (byte) 7
@ -2455,10 +2460,10 @@ Constant inlined main::r#15 = (byte) '+'
Constant inlined main::r#16 = (byte) '-'
Constant inlined main::r#13 = (byte) '+'
Constant inlined main::r#14 = (byte) '-'
Constant inlined main::op19 = (const string) main::op16
Constant inlined main::op19 = (const byte*) main::op16
Constant inlined main::i#0 = (byte) 0
Constant inlined main::op17 = (const string) main::op16
Constant inlined main::op18 = (const string) main::op16
Constant inlined main::op17 = (const byte*) main::op16
Constant inlined main::op18 = (const byte*) main::op16
Constant inlined main::r#1 = (byte) '-'
Constant inlined main::r#8 = (byte) '-'
Constant inlined main::r#9 = (byte) '+'
@ -2474,29 +2479,29 @@ Constant inlined main::r#3 = (byte) '+'
Constant inlined print_char::ch#3 = (byte) ' '
Constant inlined main::r#22 = (byte) '-'
Constant inlined printu::b#5 = (byte) $37
Constant inlined main::op1 = (const string) main::op
Constant inlined printu::op#10 = (const string) main::op8
Constant inlined main::op1 = (const byte*) main::op
Constant inlined printu::op#10 = (const byte*) main::op8
Constant inlined print_char::ch#2 = (byte) ' '
Constant inlined main::r#23 = (byte) '+'
Constant inlined printu::op#11 = (const string) main::op8
Constant inlined printu::op#11 = (const byte*) main::op8
Constant inlined main::r#20 = (byte) '-'
Constant inlined printu::op#12 = (const string) main::op12
Constant inlined printu::op#12 = (const byte*) main::op12
Constant inlined main::r#21 = (byte) '+'
Constant inlined printu::op#13 = (const string) main::op12
Constant inlined printu::op#13 = (const byte*) main::op12
Constant inlined main::r#26 = (byte) '-'
Constant inlined printu::b#1 = (byte) $37
Constant inlined printu::op#14 = (const string) main::op12
Constant inlined printu::op#14 = (const byte*) main::op12
Constant inlined main::r#27 = (byte) '+'
Constant inlined printu::op#15 = (const string) main::op12
Constant inlined printu::op#15 = (const byte*) main::op12
Constant inlined main::r#24 = (byte) '-'
Constant inlined printu::op#16 = (const string) main::op16
Constant inlined printu::op#16 = (const byte*) main::op16
Constant inlined main::r#25 = (byte) '+'
Constant inlined main::op9 = (const string) main::op8
Constant inlined main::op6 = (const string) main::op4
Constant inlined main::op7 = (const string) main::op4
Constant inlined main::op5 = (const string) main::op4
Constant inlined main::op2 = (const string) main::op
Constant inlined main::op3 = (const string) main::op
Constant inlined main::op9 = (const byte*) main::op8
Constant inlined main::op6 = (const byte*) main::op4
Constant inlined main::op7 = (const byte*) main::op4
Constant inlined main::op5 = (const byte*) main::op4
Constant inlined main::op2 = (const byte*) main::op
Constant inlined main::op3 = (const byte*) main::op
Successful SSA optimization Pass2ConstantInlining
Added new block during phi lifting print_ln::@3(between print_ln::@1 and print_ln::@1)
Added new block during phi lifting main::@71(between main::@70 and main::@1)
@ -3052,7 +3057,7 @@ print_ln::@return: scope:[print_ln] from print_ln::@1
printu: scope:[printu] from main::@10 main::@11 main::@12 main::@13 main::@14 main::@15 main::@16 main::@17 main::@18 main::@19 main::@2 main::@20 main::@21 main::@3 main::@4 main::@5 main::@6 main::@7 main::@8 main::@9
[167] (byte) printu::res#20 ← phi( main::@10/(byte) printu::res#8 main::@11/(byte) printu::res#9 main::@12/(byte) printu::res#10 main::@13/(byte) printu::res#11 main::@14/(byte) printu::res#12 main::@15/(byte) printu::res#13 main::@16/(byte) printu::res#14 main::@17/(byte) printu::res#15 main::@18/(byte) printu::res#16 main::@19/(byte) printu::res#17 main::@2/(byte) printu::res#0 main::@20/(byte) printu::res#18 main::@21/(byte) printu::res#19 main::@3/(byte) printu::res#1 main::@4/(byte) printu::res#2 main::@5/(byte) printu::res#3 main::@6/(byte) printu::res#4 main::@7/(byte) printu::res#5 main::@8/(byte) printu::res#6 main::@9/(byte) printu::res#7 )
[167] (byte) printu::b#20 ← phi( main::@10/(byte) printu::b#8 main::@11/(byte) $37 main::@12/(byte) printu::b#10 main::@13/(byte) printu::b#11 main::@14/(byte) printu::b#12 main::@15/(byte) $37 main::@16/(byte) printu::b#14 main::@17/(byte) printu::b#15 main::@18/(byte) printu::b#16 main::@19/(byte) $37 main::@2/(byte) printu::b#0 main::@20/(byte) printu::b#18 main::@21/(byte) printu::b#19 main::@3/(byte) $37 main::@4/(byte) printu::b#2 main::@5/(byte) printu::b#3 main::@6/(byte) printu::b#4 main::@7/(byte) $37 main::@8/(byte) printu::b#6 main::@9/(byte) printu::b#7 )
[167] (byte*) printu::op#20 ← phi( main::@10/(const string) main::op8 main::@11/(const string) main::op8 main::@12/(const string) main::op8 main::@13/(const string) main::op8 main::@14/(const string) main::op12 main::@15/(const string) main::op12 main::@16/(const string) main::op12 main::@17/(const string) main::op12 main::@18/(const string) main::op16 main::@19/(const string) main::op16 main::@2/(const string) main::op main::@20/(const string) main::op16 main::@21/(const string) main::op16 main::@3/(const string) main::op main::@4/(const string) main::op main::@5/(const string) main::op main::@6/(const string) main::op4 main::@7/(const string) main::op4 main::@8/(const string) main::op4 main::@9/(const string) main::op4 )
[167] (byte*) printu::op#20 ← phi( main::@10/(const byte*) main::op8 main::@11/(const byte*) main::op8 main::@12/(const byte*) main::op8 main::@13/(const byte*) main::op8 main::@14/(const byte*) main::op12 main::@15/(const byte*) main::op12 main::@16/(const byte*) main::op12 main::@17/(const byte*) main::op12 main::@18/(const byte*) main::op16 main::@19/(const byte*) main::op16 main::@2/(const byte*) main::op main::@20/(const byte*) main::op16 main::@21/(const byte*) main::op16 main::@3/(const byte*) main::op main::@4/(const byte*) main::op main::@5/(const byte*) main::op main::@6/(const byte*) main::op4 main::@7/(const byte*) main::op4 main::@8/(const byte*) main::op4 main::@9/(const byte*) main::op4 )
[167] (byte) printu::a#20 ← phi( main::@10/(byte) printu::a#8 main::@11/(byte) printu::a#9 main::@12/(byte) printu::a#10 main::@13/(byte) printu::a#11 main::@14/(byte) printu::a#12 main::@15/(byte) printu::a#13 main::@16/(byte) printu::a#14 main::@17/(byte) printu::a#15 main::@18/(byte) printu::a#16 main::@19/(byte) printu::a#17 main::@2/(byte) printu::a#0 main::@20/(byte) printu::a#18 main::@21/(byte) printu::a#19 main::@3/(byte) printu::a#1 main::@4/(byte) printu::a#2 main::@5/(byte) printu::a#3 main::@6/(byte) printu::a#4 main::@7/(byte) printu::a#5 main::@8/(byte) printu::a#6 main::@9/(byte) printu::a#7 )
[167] (byte*) print_char_cursor#95 ← phi( main::@10/(byte*) print_char_cursor#151 main::@11/(byte*) print_char_cursor#55 main::@12/(byte*) print_char_cursor#55 main::@13/(byte*) print_char_cursor#55 main::@14/(byte*) print_char_cursor#155 main::@15/(byte*) print_char_cursor#55 main::@16/(byte*) print_char_cursor#55 main::@17/(byte*) print_char_cursor#55 main::@18/(byte*) print_char_cursor#159 main::@19/(byte*) print_char_cursor#55 main::@2/(byte*) print_char_cursor#120 main::@20/(byte*) print_char_cursor#55 main::@21/(byte*) print_char_cursor#55 main::@3/(byte*) print_char_cursor#55 main::@4/(byte*) print_char_cursor#55 main::@5/(byte*) print_char_cursor#55 main::@6/(byte*) print_char_cursor#167 main::@7/(byte*) print_char_cursor#55 main::@8/(byte*) print_char_cursor#55 main::@9/(byte*) print_char_cursor#55 )
[168] call print_char
@ -3523,7 +3528,7 @@ main: {
printu_from___b2:
// [167] phi (byte) printu::res#20 = (byte) printu::res#0 [phi:main::@2->printu#0] -- register_copy
// [167] phi (byte) printu::b#20 = (byte) printu::b#0 [phi:main::@2->printu#1] -- register_copy
// [167] phi (byte*) printu::op#20 = (const string) main::op [phi:main::@2->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op [phi:main::@2->printu#2] -- pbuz1=pbuc1
lda #<op
sta.z printu.op
lda #>op
@ -3570,7 +3575,7 @@ main: {
// [167] phi (byte) printu::b#20 = (byte) $37 [phi:main::@3->printu#1] -- vbuz1=vbuc1
lda #$37
sta.z printu.b
// [167] phi (byte*) printu::op#20 = (const string) main::op [phi:main::@3->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op [phi:main::@3->printu#2] -- pbuz1=pbuc1
lda #<op
sta.z printu.op
lda #>op
@ -3620,7 +3625,7 @@ main: {
printu_from___b4:
// [167] phi (byte) printu::res#20 = (byte) printu::res#2 [phi:main::@4->printu#0] -- register_copy
// [167] phi (byte) printu::b#20 = (byte) printu::b#2 [phi:main::@4->printu#1] -- register_copy
// [167] phi (byte*) printu::op#20 = (const string) main::op [phi:main::@4->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op [phi:main::@4->printu#2] -- pbuz1=pbuc1
lda #<op
sta.z printu.op
lda #>op
@ -3668,7 +3673,7 @@ main: {
printu_from___b5:
// [167] phi (byte) printu::res#20 = (byte) printu::res#3 [phi:main::@5->printu#0] -- register_copy
// [167] phi (byte) printu::b#20 = (byte) printu::b#3 [phi:main::@5->printu#1] -- register_copy
// [167] phi (byte*) printu::op#20 = (const string) main::op [phi:main::@5->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op [phi:main::@5->printu#2] -- pbuz1=pbuc1
lda #<op
sta.z printu.op
lda #>op
@ -3731,7 +3736,7 @@ main: {
printu_from___b6:
// [167] phi (byte) printu::res#20 = (byte) printu::res#4 [phi:main::@6->printu#0] -- register_copy
// [167] phi (byte) printu::b#20 = (byte) printu::b#4 [phi:main::@6->printu#1] -- register_copy
// [167] phi (byte*) printu::op#20 = (const string) main::op4 [phi:main::@6->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op4 [phi:main::@6->printu#2] -- pbuz1=pbuc1
lda #<op4
sta.z printu.op
lda #>op4
@ -3778,7 +3783,7 @@ main: {
// [167] phi (byte) printu::b#20 = (byte) $37 [phi:main::@7->printu#1] -- vbuz1=vbuc1
lda #$37
sta.z printu.b
// [167] phi (byte*) printu::op#20 = (const string) main::op4 [phi:main::@7->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op4 [phi:main::@7->printu#2] -- pbuz1=pbuc1
lda #<op4
sta.z printu.op
lda #>op4
@ -3828,7 +3833,7 @@ main: {
printu_from___b8:
// [167] phi (byte) printu::res#20 = (byte) printu::res#6 [phi:main::@8->printu#0] -- register_copy
// [167] phi (byte) printu::b#20 = (byte) printu::b#6 [phi:main::@8->printu#1] -- register_copy
// [167] phi (byte*) printu::op#20 = (const string) main::op4 [phi:main::@8->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op4 [phi:main::@8->printu#2] -- pbuz1=pbuc1
lda #<op4
sta.z printu.op
lda #>op4
@ -3876,7 +3881,7 @@ main: {
printu_from___b9:
// [167] phi (byte) printu::res#20 = (byte) printu::res#7 [phi:main::@9->printu#0] -- register_copy
// [167] phi (byte) printu::b#20 = (byte) printu::b#7 [phi:main::@9->printu#1] -- register_copy
// [167] phi (byte*) printu::op#20 = (const string) main::op4 [phi:main::@9->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op4 [phi:main::@9->printu#2] -- pbuz1=pbuc1
lda #<op4
sta.z printu.op
lda #>op4
@ -3939,7 +3944,7 @@ main: {
printu_from___b10:
// [167] phi (byte) printu::res#20 = (byte) printu::res#8 [phi:main::@10->printu#0] -- register_copy
// [167] phi (byte) printu::b#20 = (byte) printu::b#8 [phi:main::@10->printu#1] -- register_copy
// [167] phi (byte*) printu::op#20 = (const string) main::op8 [phi:main::@10->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op8 [phi:main::@10->printu#2] -- pbuz1=pbuc1
lda #<op8
sta.z printu.op
lda #>op8
@ -3986,7 +3991,7 @@ main: {
// [167] phi (byte) printu::b#20 = (byte) $37 [phi:main::@11->printu#1] -- vbuz1=vbuc1
lda #$37
sta.z printu.b
// [167] phi (byte*) printu::op#20 = (const string) main::op8 [phi:main::@11->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op8 [phi:main::@11->printu#2] -- pbuz1=pbuc1
lda #<op8
sta.z printu.op
lda #>op8
@ -4036,7 +4041,7 @@ main: {
printu_from___b12:
// [167] phi (byte) printu::res#20 = (byte) printu::res#10 [phi:main::@12->printu#0] -- register_copy
// [167] phi (byte) printu::b#20 = (byte) printu::b#10 [phi:main::@12->printu#1] -- register_copy
// [167] phi (byte*) printu::op#20 = (const string) main::op8 [phi:main::@12->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op8 [phi:main::@12->printu#2] -- pbuz1=pbuc1
lda #<op8
sta.z printu.op
lda #>op8
@ -4084,7 +4089,7 @@ main: {
printu_from___b13:
// [167] phi (byte) printu::res#20 = (byte) printu::res#11 [phi:main::@13->printu#0] -- register_copy
// [167] phi (byte) printu::b#20 = (byte) printu::b#11 [phi:main::@13->printu#1] -- register_copy
// [167] phi (byte*) printu::op#20 = (const string) main::op8 [phi:main::@13->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op8 [phi:main::@13->printu#2] -- pbuz1=pbuc1
lda #<op8
sta.z printu.op
lda #>op8
@ -4147,7 +4152,7 @@ main: {
printu_from___b14:
// [167] phi (byte) printu::res#20 = (byte) printu::res#12 [phi:main::@14->printu#0] -- register_copy
// [167] phi (byte) printu::b#20 = (byte) printu::b#12 [phi:main::@14->printu#1] -- register_copy
// [167] phi (byte*) printu::op#20 = (const string) main::op12 [phi:main::@14->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op12 [phi:main::@14->printu#2] -- pbuz1=pbuc1
lda #<op12
sta.z printu.op
lda #>op12
@ -4194,7 +4199,7 @@ main: {
// [167] phi (byte) printu::b#20 = (byte) $37 [phi:main::@15->printu#1] -- vbuz1=vbuc1
lda #$37
sta.z printu.b
// [167] phi (byte*) printu::op#20 = (const string) main::op12 [phi:main::@15->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op12 [phi:main::@15->printu#2] -- pbuz1=pbuc1
lda #<op12
sta.z printu.op
lda #>op12
@ -4244,7 +4249,7 @@ main: {
printu_from___b16:
// [167] phi (byte) printu::res#20 = (byte) printu::res#14 [phi:main::@16->printu#0] -- register_copy
// [167] phi (byte) printu::b#20 = (byte) printu::b#14 [phi:main::@16->printu#1] -- register_copy
// [167] phi (byte*) printu::op#20 = (const string) main::op12 [phi:main::@16->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op12 [phi:main::@16->printu#2] -- pbuz1=pbuc1
lda #<op12
sta.z printu.op
lda #>op12
@ -4292,7 +4297,7 @@ main: {
printu_from___b17:
// [167] phi (byte) printu::res#20 = (byte) printu::res#15 [phi:main::@17->printu#0] -- register_copy
// [167] phi (byte) printu::b#20 = (byte) printu::b#15 [phi:main::@17->printu#1] -- register_copy
// [167] phi (byte*) printu::op#20 = (const string) main::op12 [phi:main::@17->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op12 [phi:main::@17->printu#2] -- pbuz1=pbuc1
lda #<op12
sta.z printu.op
lda #>op12
@ -4355,7 +4360,7 @@ main: {
printu_from___b18:
// [167] phi (byte) printu::res#20 = (byte) printu::res#16 [phi:main::@18->printu#0] -- register_copy
// [167] phi (byte) printu::b#20 = (byte) printu::b#16 [phi:main::@18->printu#1] -- register_copy
// [167] phi (byte*) printu::op#20 = (const string) main::op16 [phi:main::@18->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op16 [phi:main::@18->printu#2] -- pbuz1=pbuc1
lda #<op16
sta.z printu.op
lda #>op16
@ -4402,7 +4407,7 @@ main: {
// [167] phi (byte) printu::b#20 = (byte) $37 [phi:main::@19->printu#1] -- vbuz1=vbuc1
lda #$37
sta.z printu.b
// [167] phi (byte*) printu::op#20 = (const string) main::op16 [phi:main::@19->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op16 [phi:main::@19->printu#2] -- pbuz1=pbuc1
lda #<op16
sta.z printu.op
lda #>op16
@ -4452,7 +4457,7 @@ main: {
printu_from___b20:
// [167] phi (byte) printu::res#20 = (byte) printu::res#18 [phi:main::@20->printu#0] -- register_copy
// [167] phi (byte) printu::b#20 = (byte) printu::b#18 [phi:main::@20->printu#1] -- register_copy
// [167] phi (byte*) printu::op#20 = (const string) main::op16 [phi:main::@20->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op16 [phi:main::@20->printu#2] -- pbuz1=pbuc1
lda #<op16
sta.z printu.op
lda #>op16
@ -4500,7 +4505,7 @@ main: {
printu_from___b21:
// [167] phi (byte) printu::res#20 = (byte) printu::res#19 [phi:main::@21->printu#0] -- register_copy
// [167] phi (byte) printu::b#20 = (byte) printu::b#19 [phi:main::@21->printu#1] -- register_copy
// [167] phi (byte*) printu::op#20 = (const string) main::op16 [phi:main::@21->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op16 [phi:main::@21->printu#2] -- pbuz1=pbuc1
lda #<op16
sta.z printu.op
lda #>op16
@ -5205,7 +5210,7 @@ main: {
printu_from___b2:
// [167] phi (byte) printu::res#20 = (byte) printu::res#0 [phi:main::@2->printu#0] -- register_copy
// [167] phi (byte) printu::b#20 = (byte) printu::b#0 [phi:main::@2->printu#1] -- register_copy
// [167] phi (byte*) printu::op#20 = (const string) main::op [phi:main::@2->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op [phi:main::@2->printu#2] -- pbuz1=pbuc1
lda #<op
sta.z printu.op
lda #>op
@ -5246,7 +5251,7 @@ main: {
// [167] phi (byte) printu::b#20 = (byte) $37 [phi:main::@3->printu#1] -- vbuz1=vbuc1
lda #$37
sta.z printu.b
// [167] phi (byte*) printu::op#20 = (const string) main::op [phi:main::@3->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op [phi:main::@3->printu#2] -- pbuz1=pbuc1
lda #<op
sta.z printu.op
lda #>op
@ -5290,7 +5295,7 @@ main: {
printu_from___b4:
// [167] phi (byte) printu::res#20 = (byte) printu::res#2 [phi:main::@4->printu#0] -- register_copy
// [167] phi (byte) printu::b#20 = (byte) printu::b#2 [phi:main::@4->printu#1] -- register_copy
// [167] phi (byte*) printu::op#20 = (const string) main::op [phi:main::@4->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op [phi:main::@4->printu#2] -- pbuz1=pbuc1
lda #<op
sta.z printu.op
lda #>op
@ -5332,7 +5337,7 @@ main: {
printu_from___b5:
// [167] phi (byte) printu::res#20 = (byte) printu::res#3 [phi:main::@5->printu#0] -- register_copy
// [167] phi (byte) printu::b#20 = (byte) printu::b#3 [phi:main::@5->printu#1] -- register_copy
// [167] phi (byte*) printu::op#20 = (const string) main::op [phi:main::@5->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op [phi:main::@5->printu#2] -- pbuz1=pbuc1
lda #<op
sta.z printu.op
lda #>op
@ -5389,7 +5394,7 @@ main: {
printu_from___b6:
// [167] phi (byte) printu::res#20 = (byte) printu::res#4 [phi:main::@6->printu#0] -- register_copy
// [167] phi (byte) printu::b#20 = (byte) printu::b#4 [phi:main::@6->printu#1] -- register_copy
// [167] phi (byte*) printu::op#20 = (const string) main::op4 [phi:main::@6->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op4 [phi:main::@6->printu#2] -- pbuz1=pbuc1
lda #<op4
sta.z printu.op
lda #>op4
@ -5430,7 +5435,7 @@ main: {
// [167] phi (byte) printu::b#20 = (byte) $37 [phi:main::@7->printu#1] -- vbuz1=vbuc1
lda #$37
sta.z printu.b
// [167] phi (byte*) printu::op#20 = (const string) main::op4 [phi:main::@7->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op4 [phi:main::@7->printu#2] -- pbuz1=pbuc1
lda #<op4
sta.z printu.op
lda #>op4
@ -5474,7 +5479,7 @@ main: {
printu_from___b8:
// [167] phi (byte) printu::res#20 = (byte) printu::res#6 [phi:main::@8->printu#0] -- register_copy
// [167] phi (byte) printu::b#20 = (byte) printu::b#6 [phi:main::@8->printu#1] -- register_copy
// [167] phi (byte*) printu::op#20 = (const string) main::op4 [phi:main::@8->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op4 [phi:main::@8->printu#2] -- pbuz1=pbuc1
lda #<op4
sta.z printu.op
lda #>op4
@ -5516,7 +5521,7 @@ main: {
printu_from___b9:
// [167] phi (byte) printu::res#20 = (byte) printu::res#7 [phi:main::@9->printu#0] -- register_copy
// [167] phi (byte) printu::b#20 = (byte) printu::b#7 [phi:main::@9->printu#1] -- register_copy
// [167] phi (byte*) printu::op#20 = (const string) main::op4 [phi:main::@9->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op4 [phi:main::@9->printu#2] -- pbuz1=pbuc1
lda #<op4
sta.z printu.op
lda #>op4
@ -5573,7 +5578,7 @@ main: {
printu_from___b10:
// [167] phi (byte) printu::res#20 = (byte) printu::res#8 [phi:main::@10->printu#0] -- register_copy
// [167] phi (byte) printu::b#20 = (byte) printu::b#8 [phi:main::@10->printu#1] -- register_copy
// [167] phi (byte*) printu::op#20 = (const string) main::op8 [phi:main::@10->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op8 [phi:main::@10->printu#2] -- pbuz1=pbuc1
lda #<op8
sta.z printu.op
lda #>op8
@ -5614,7 +5619,7 @@ main: {
// [167] phi (byte) printu::b#20 = (byte) $37 [phi:main::@11->printu#1] -- vbuz1=vbuc1
lda #$37
sta.z printu.b
// [167] phi (byte*) printu::op#20 = (const string) main::op8 [phi:main::@11->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op8 [phi:main::@11->printu#2] -- pbuz1=pbuc1
lda #<op8
sta.z printu.op
lda #>op8
@ -5658,7 +5663,7 @@ main: {
printu_from___b12:
// [167] phi (byte) printu::res#20 = (byte) printu::res#10 [phi:main::@12->printu#0] -- register_copy
// [167] phi (byte) printu::b#20 = (byte) printu::b#10 [phi:main::@12->printu#1] -- register_copy
// [167] phi (byte*) printu::op#20 = (const string) main::op8 [phi:main::@12->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op8 [phi:main::@12->printu#2] -- pbuz1=pbuc1
lda #<op8
sta.z printu.op
lda #>op8
@ -5700,7 +5705,7 @@ main: {
printu_from___b13:
// [167] phi (byte) printu::res#20 = (byte) printu::res#11 [phi:main::@13->printu#0] -- register_copy
// [167] phi (byte) printu::b#20 = (byte) printu::b#11 [phi:main::@13->printu#1] -- register_copy
// [167] phi (byte*) printu::op#20 = (const string) main::op8 [phi:main::@13->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op8 [phi:main::@13->printu#2] -- pbuz1=pbuc1
lda #<op8
sta.z printu.op
lda #>op8
@ -5757,7 +5762,7 @@ main: {
printu_from___b14:
// [167] phi (byte) printu::res#20 = (byte) printu::res#12 [phi:main::@14->printu#0] -- register_copy
// [167] phi (byte) printu::b#20 = (byte) printu::b#12 [phi:main::@14->printu#1] -- register_copy
// [167] phi (byte*) printu::op#20 = (const string) main::op12 [phi:main::@14->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op12 [phi:main::@14->printu#2] -- pbuz1=pbuc1
lda #<op12
sta.z printu.op
lda #>op12
@ -5798,7 +5803,7 @@ main: {
// [167] phi (byte) printu::b#20 = (byte) $37 [phi:main::@15->printu#1] -- vbuz1=vbuc1
lda #$37
sta.z printu.b
// [167] phi (byte*) printu::op#20 = (const string) main::op12 [phi:main::@15->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op12 [phi:main::@15->printu#2] -- pbuz1=pbuc1
lda #<op12
sta.z printu.op
lda #>op12
@ -5842,7 +5847,7 @@ main: {
printu_from___b16:
// [167] phi (byte) printu::res#20 = (byte) printu::res#14 [phi:main::@16->printu#0] -- register_copy
// [167] phi (byte) printu::b#20 = (byte) printu::b#14 [phi:main::@16->printu#1] -- register_copy
// [167] phi (byte*) printu::op#20 = (const string) main::op12 [phi:main::@16->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op12 [phi:main::@16->printu#2] -- pbuz1=pbuc1
lda #<op12
sta.z printu.op
lda #>op12
@ -5884,7 +5889,7 @@ main: {
printu_from___b17:
// [167] phi (byte) printu::res#20 = (byte) printu::res#15 [phi:main::@17->printu#0] -- register_copy
// [167] phi (byte) printu::b#20 = (byte) printu::b#15 [phi:main::@17->printu#1] -- register_copy
// [167] phi (byte*) printu::op#20 = (const string) main::op12 [phi:main::@17->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op12 [phi:main::@17->printu#2] -- pbuz1=pbuc1
lda #<op12
sta.z printu.op
lda #>op12
@ -5941,7 +5946,7 @@ main: {
printu_from___b18:
// [167] phi (byte) printu::res#20 = (byte) printu::res#16 [phi:main::@18->printu#0] -- register_copy
// [167] phi (byte) printu::b#20 = (byte) printu::b#16 [phi:main::@18->printu#1] -- register_copy
// [167] phi (byte*) printu::op#20 = (const string) main::op16 [phi:main::@18->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op16 [phi:main::@18->printu#2] -- pbuz1=pbuc1
lda #<op16
sta.z printu.op
lda #>op16
@ -5982,7 +5987,7 @@ main: {
// [167] phi (byte) printu::b#20 = (byte) $37 [phi:main::@19->printu#1] -- vbuz1=vbuc1
lda #$37
sta.z printu.b
// [167] phi (byte*) printu::op#20 = (const string) main::op16 [phi:main::@19->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op16 [phi:main::@19->printu#2] -- pbuz1=pbuc1
lda #<op16
sta.z printu.op
lda #>op16
@ -6026,7 +6031,7 @@ main: {
printu_from___b20:
// [167] phi (byte) printu::res#20 = (byte) printu::res#18 [phi:main::@20->printu#0] -- register_copy
// [167] phi (byte) printu::b#20 = (byte) printu::b#18 [phi:main::@20->printu#1] -- register_copy
// [167] phi (byte*) printu::op#20 = (const string) main::op16 [phi:main::@20->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op16 [phi:main::@20->printu#2] -- pbuz1=pbuc1
lda #<op16
sta.z printu.op
lda #>op16
@ -6068,7 +6073,7 @@ main: {
printu_from___b21:
// [167] phi (byte) printu::res#20 = (byte) printu::res#19 [phi:main::@21->printu#0] -- register_copy
// [167] phi (byte) printu::b#20 = (byte) printu::b#19 [phi:main::@21->printu#1] -- register_copy
// [167] phi (byte*) printu::op#20 = (const string) main::op16 [phi:main::@21->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op16 [phi:main::@21->printu#2] -- pbuz1=pbuc1
lda #<op16
sta.z printu.op
lda #>op16
@ -6765,11 +6770,11 @@ FINAL SYMBOL TABLE
(byte) main::i
(byte) main::i#1 i zp[1]:3 11.0
(byte) main::i#10 i zp[1]:3 0.8684210526315792
(const string) main::op[] = (string) "< "
(const string) main::op12[] = (string) ">="
(const string) main::op16[] = (string) "=="
(const string) main::op4[] = (string) "> "
(const string) main::op8[] = (string) "<="
(const byte*) main::op[(byte) 3] = (string) "< "
(const byte*) main::op12[(byte) 3] = (string) ">="
(const byte*) main::op16[(byte) 3] = (string) "=="
(const byte*) main::op4[(byte) 3] = (string) "> "
(const byte*) main::op8[(byte) 3] = (string) "<="
(byte) main::r
(byte) main::r#41 reg byte x 3.6666666666666665
(byte) main::r#42 reg byte x 5.5
@ -7040,7 +7045,7 @@ main: {
// [167] phi from main::@2 to printu [phi:main::@2->printu]
// [167] phi (byte) printu::res#20 = (byte) printu::res#0 [phi:main::@2->printu#0] -- register_copy
// [167] phi (byte) printu::b#20 = (byte) printu::b#0 [phi:main::@2->printu#1] -- register_copy
// [167] phi (byte*) printu::op#20 = (const string) main::op [phi:main::@2->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op [phi:main::@2->printu#2] -- pbuz1=pbuc1
lda #<op
sta.z printu.op
lda #>op
@ -7075,7 +7080,7 @@ main: {
// [167] phi (byte) printu::b#20 = (byte) $37 [phi:main::@3->printu#1] -- vbuz1=vbuc1
lda #$37
sta.z printu.b
// [167] phi (byte*) printu::op#20 = (const string) main::op [phi:main::@3->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op [phi:main::@3->printu#2] -- pbuz1=pbuc1
lda #<op
sta.z printu.op
lda #>op
@ -7113,7 +7118,7 @@ main: {
// [167] phi from main::@4 to printu [phi:main::@4->printu]
// [167] phi (byte) printu::res#20 = (byte) printu::res#2 [phi:main::@4->printu#0] -- register_copy
// [167] phi (byte) printu::b#20 = (byte) printu::b#2 [phi:main::@4->printu#1] -- register_copy
// [167] phi (byte*) printu::op#20 = (const string) main::op [phi:main::@4->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op [phi:main::@4->printu#2] -- pbuz1=pbuc1
lda #<op
sta.z printu.op
lda #>op
@ -7149,7 +7154,7 @@ main: {
// [167] phi from main::@5 to printu [phi:main::@5->printu]
// [167] phi (byte) printu::res#20 = (byte) printu::res#3 [phi:main::@5->printu#0] -- register_copy
// [167] phi (byte) printu::b#20 = (byte) printu::b#3 [phi:main::@5->printu#1] -- register_copy
// [167] phi (byte*) printu::op#20 = (const string) main::op [phi:main::@5->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op [phi:main::@5->printu#2] -- pbuz1=pbuc1
lda #<op
sta.z printu.op
lda #>op
@ -7198,7 +7203,7 @@ main: {
// [167] phi from main::@6 to printu [phi:main::@6->printu]
// [167] phi (byte) printu::res#20 = (byte) printu::res#4 [phi:main::@6->printu#0] -- register_copy
// [167] phi (byte) printu::b#20 = (byte) printu::b#4 [phi:main::@6->printu#1] -- register_copy
// [167] phi (byte*) printu::op#20 = (const string) main::op4 [phi:main::@6->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op4 [phi:main::@6->printu#2] -- pbuz1=pbuc1
lda #<op4
sta.z printu.op
lda #>op4
@ -7233,7 +7238,7 @@ main: {
// [167] phi (byte) printu::b#20 = (byte) $37 [phi:main::@7->printu#1] -- vbuz1=vbuc1
lda #$37
sta.z printu.b
// [167] phi (byte*) printu::op#20 = (const string) main::op4 [phi:main::@7->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op4 [phi:main::@7->printu#2] -- pbuz1=pbuc1
lda #<op4
sta.z printu.op
lda #>op4
@ -7271,7 +7276,7 @@ main: {
// [167] phi from main::@8 to printu [phi:main::@8->printu]
// [167] phi (byte) printu::res#20 = (byte) printu::res#6 [phi:main::@8->printu#0] -- register_copy
// [167] phi (byte) printu::b#20 = (byte) printu::b#6 [phi:main::@8->printu#1] -- register_copy
// [167] phi (byte*) printu::op#20 = (const string) main::op4 [phi:main::@8->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op4 [phi:main::@8->printu#2] -- pbuz1=pbuc1
lda #<op4
sta.z printu.op
lda #>op4
@ -7307,7 +7312,7 @@ main: {
// [167] phi from main::@9 to printu [phi:main::@9->printu]
// [167] phi (byte) printu::res#20 = (byte) printu::res#7 [phi:main::@9->printu#0] -- register_copy
// [167] phi (byte) printu::b#20 = (byte) printu::b#7 [phi:main::@9->printu#1] -- register_copy
// [167] phi (byte*) printu::op#20 = (const string) main::op4 [phi:main::@9->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op4 [phi:main::@9->printu#2] -- pbuz1=pbuc1
lda #<op4
sta.z printu.op
lda #>op4
@ -7356,7 +7361,7 @@ main: {
// [167] phi from main::@10 to printu [phi:main::@10->printu]
// [167] phi (byte) printu::res#20 = (byte) printu::res#8 [phi:main::@10->printu#0] -- register_copy
// [167] phi (byte) printu::b#20 = (byte) printu::b#8 [phi:main::@10->printu#1] -- register_copy
// [167] phi (byte*) printu::op#20 = (const string) main::op8 [phi:main::@10->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op8 [phi:main::@10->printu#2] -- pbuz1=pbuc1
lda #<op8
sta.z printu.op
lda #>op8
@ -7391,7 +7396,7 @@ main: {
// [167] phi (byte) printu::b#20 = (byte) $37 [phi:main::@11->printu#1] -- vbuz1=vbuc1
lda #$37
sta.z printu.b
// [167] phi (byte*) printu::op#20 = (const string) main::op8 [phi:main::@11->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op8 [phi:main::@11->printu#2] -- pbuz1=pbuc1
lda #<op8
sta.z printu.op
lda #>op8
@ -7429,7 +7434,7 @@ main: {
// [167] phi from main::@12 to printu [phi:main::@12->printu]
// [167] phi (byte) printu::res#20 = (byte) printu::res#10 [phi:main::@12->printu#0] -- register_copy
// [167] phi (byte) printu::b#20 = (byte) printu::b#10 [phi:main::@12->printu#1] -- register_copy
// [167] phi (byte*) printu::op#20 = (const string) main::op8 [phi:main::@12->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op8 [phi:main::@12->printu#2] -- pbuz1=pbuc1
lda #<op8
sta.z printu.op
lda #>op8
@ -7465,7 +7470,7 @@ main: {
// [167] phi from main::@13 to printu [phi:main::@13->printu]
// [167] phi (byte) printu::res#20 = (byte) printu::res#11 [phi:main::@13->printu#0] -- register_copy
// [167] phi (byte) printu::b#20 = (byte) printu::b#11 [phi:main::@13->printu#1] -- register_copy
// [167] phi (byte*) printu::op#20 = (const string) main::op8 [phi:main::@13->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op8 [phi:main::@13->printu#2] -- pbuz1=pbuc1
lda #<op8
sta.z printu.op
lda #>op8
@ -7514,7 +7519,7 @@ main: {
// [167] phi from main::@14 to printu [phi:main::@14->printu]
// [167] phi (byte) printu::res#20 = (byte) printu::res#12 [phi:main::@14->printu#0] -- register_copy
// [167] phi (byte) printu::b#20 = (byte) printu::b#12 [phi:main::@14->printu#1] -- register_copy
// [167] phi (byte*) printu::op#20 = (const string) main::op12 [phi:main::@14->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op12 [phi:main::@14->printu#2] -- pbuz1=pbuc1
lda #<op12
sta.z printu.op
lda #>op12
@ -7549,7 +7554,7 @@ main: {
// [167] phi (byte) printu::b#20 = (byte) $37 [phi:main::@15->printu#1] -- vbuz1=vbuc1
lda #$37
sta.z printu.b
// [167] phi (byte*) printu::op#20 = (const string) main::op12 [phi:main::@15->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op12 [phi:main::@15->printu#2] -- pbuz1=pbuc1
lda #<op12
sta.z printu.op
lda #>op12
@ -7587,7 +7592,7 @@ main: {
// [167] phi from main::@16 to printu [phi:main::@16->printu]
// [167] phi (byte) printu::res#20 = (byte) printu::res#14 [phi:main::@16->printu#0] -- register_copy
// [167] phi (byte) printu::b#20 = (byte) printu::b#14 [phi:main::@16->printu#1] -- register_copy
// [167] phi (byte*) printu::op#20 = (const string) main::op12 [phi:main::@16->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op12 [phi:main::@16->printu#2] -- pbuz1=pbuc1
lda #<op12
sta.z printu.op
lda #>op12
@ -7623,7 +7628,7 @@ main: {
// [167] phi from main::@17 to printu [phi:main::@17->printu]
// [167] phi (byte) printu::res#20 = (byte) printu::res#15 [phi:main::@17->printu#0] -- register_copy
// [167] phi (byte) printu::b#20 = (byte) printu::b#15 [phi:main::@17->printu#1] -- register_copy
// [167] phi (byte*) printu::op#20 = (const string) main::op12 [phi:main::@17->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op12 [phi:main::@17->printu#2] -- pbuz1=pbuc1
lda #<op12
sta.z printu.op
lda #>op12
@ -7672,7 +7677,7 @@ main: {
// [167] phi from main::@18 to printu [phi:main::@18->printu]
// [167] phi (byte) printu::res#20 = (byte) printu::res#16 [phi:main::@18->printu#0] -- register_copy
// [167] phi (byte) printu::b#20 = (byte) printu::b#16 [phi:main::@18->printu#1] -- register_copy
// [167] phi (byte*) printu::op#20 = (const string) main::op16 [phi:main::@18->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op16 [phi:main::@18->printu#2] -- pbuz1=pbuc1
lda #<op16
sta.z printu.op
lda #>op16
@ -7707,7 +7712,7 @@ main: {
// [167] phi (byte) printu::b#20 = (byte) $37 [phi:main::@19->printu#1] -- vbuz1=vbuc1
lda #$37
sta.z printu.b
// [167] phi (byte*) printu::op#20 = (const string) main::op16 [phi:main::@19->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op16 [phi:main::@19->printu#2] -- pbuz1=pbuc1
lda #<op16
sta.z printu.op
lda #>op16
@ -7745,7 +7750,7 @@ main: {
// [167] phi from main::@20 to printu [phi:main::@20->printu]
// [167] phi (byte) printu::res#20 = (byte) printu::res#18 [phi:main::@20->printu#0] -- register_copy
// [167] phi (byte) printu::b#20 = (byte) printu::b#18 [phi:main::@20->printu#1] -- register_copy
// [167] phi (byte*) printu::op#20 = (const string) main::op16 [phi:main::@20->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op16 [phi:main::@20->printu#2] -- pbuz1=pbuc1
lda #<op16
sta.z printu.op
lda #>op16
@ -7781,7 +7786,7 @@ main: {
// [167] phi from main::@21 to printu [phi:main::@21->printu]
// [167] phi (byte) printu::res#20 = (byte) printu::res#19 [phi:main::@21->printu#0] -- register_copy
// [167] phi (byte) printu::b#20 = (byte) printu::b#19 [phi:main::@21->printu#1] -- register_copy
// [167] phi (byte*) printu::op#20 = (const string) main::op16 [phi:main::@21->printu#2] -- pbuz1=pbuc1
// [167] phi (byte*) printu::op#20 = (const byte*) main::op16 [phi:main::@21->printu#2] -- pbuz1=pbuc1
lda #<op16
sta.z printu.op
lda #>op16

@ -83,11 +83,11 @@
(byte) main::i
(byte) main::i#1 i zp[1]:3 11.0
(byte) main::i#10 i zp[1]:3 0.8684210526315792
(const string) main::op[] = (string) "< "
(const string) main::op12[] = (string) ">="
(const string) main::op16[] = (string) "=="
(const string) main::op4[] = (string) "> "
(const string) main::op8[] = (string) "<="
(const byte*) main::op[(byte) 3] = (string) "< "
(const byte*) main::op12[(byte) 3] = (string) ">="
(const byte*) main::op16[(byte) 3] = (string) "=="
(const byte*) main::op4[(byte) 3] = (string) "> "
(const byte*) main::op8[(byte) 3] = (string) "<="
(byte) main::r
(byte) main::r#41 reg byte x 3.6666666666666665
(byte) main::r#42 reg byte x 5.5

@ -998,7 +998,7 @@ test_8u::@4: scope:[test_8u] from test_8u::@3
(byte) test_8u::divisor#2 ← phi( test_8u::@3/(byte) test_8u::divisor#3 )
(byte*) print_char_cursor#93 ← phi( test_8u::@3/(byte*) print_char_cursor#18 )
(byte*) print_char_cursor#29 ← (byte*) print_char_cursor#93
(byte*) print_str::str#1 ← (const string) test_8u::str
(byte*) print_str::str#1 ← (const byte*) test_8u::str
call print_str
to:test_8u::@5
test_8u::@5: scope:[test_8u] from test_8u::@4
@ -1019,7 +1019,7 @@ test_8u::@6: scope:[test_8u] from test_8u::@5
(byte) test_8u::res#2 ← phi( test_8u::@5/(byte) test_8u::res#3 )
(byte*) print_char_cursor#95 ← phi( test_8u::@5/(byte*) print_char_cursor#18 )
(byte*) print_char_cursor#31 ← (byte*) print_char_cursor#95
(byte*) print_str::str#2 ← (const string) test_8u::str1
(byte*) print_str::str#2 ← (const byte*) test_8u::str1
call print_str
to:test_8u::@7
test_8u::@7: scope:[test_8u] from test_8u::@6
@ -1038,7 +1038,7 @@ test_8u::@8: scope:[test_8u] from test_8u::@7
(byte) rem8u#37 ← phi( test_8u::@7/(byte) rem8u#46 )
(byte*) print_char_cursor#97 ← phi( test_8u::@7/(byte*) print_char_cursor#18 )
(byte*) print_char_cursor#33 ← (byte*) print_char_cursor#97
(byte*) print_str::str#3 ← (const string) test_8u::str2
(byte*) print_str::str#3 ← (const byte*) test_8u::str2
call print_str
to:test_8u::@9
test_8u::@9: scope:[test_8u] from test_8u::@8
@ -1122,7 +1122,7 @@ test_16u::@4: scope:[test_16u] from test_16u::@3
(word) test_16u::divisor#2 ← phi( test_16u::@3/(word) test_16u::divisor#3 )
(byte*) print_char_cursor#102 ← phi( test_16u::@3/(byte*) print_char_cursor#15 )
(byte*) print_char_cursor#38 ← (byte*) print_char_cursor#102
(byte*) print_str::str#4 ← (const string) test_16u::str
(byte*) print_str::str#4 ← (const byte*) test_16u::str
call print_str
to:test_16u::@5
test_16u::@5: scope:[test_16u] from test_16u::@4
@ -1143,7 +1143,7 @@ test_16u::@6: scope:[test_16u] from test_16u::@5
(word) test_16u::res#2 ← phi( test_16u::@5/(word) test_16u::res#3 )
(byte*) print_char_cursor#104 ← phi( test_16u::@5/(byte*) print_char_cursor#15 )
(byte*) print_char_cursor#40 ← (byte*) print_char_cursor#104
(byte*) print_str::str#5 ← (const string) test_16u::str1
(byte*) print_str::str#5 ← (const byte*) test_16u::str1
call print_str
to:test_16u::@7
test_16u::@7: scope:[test_16u] from test_16u::@6
@ -1162,7 +1162,7 @@ test_16u::@8: scope:[test_16u] from test_16u::@7
(word) rem16u#41 ← phi( test_16u::@7/(word) rem16u#50 )
(byte*) print_char_cursor#106 ← phi( test_16u::@7/(byte*) print_char_cursor#15 )
(byte*) print_char_cursor#42 ← (byte*) print_char_cursor#106
(byte*) print_str::str#6 ← (const string) test_16u::str2
(byte*) print_str::str#6 ← (const byte*) test_16u::str2
call print_str
to:test_16u::@9
test_16u::@9: scope:[test_16u] from test_16u::@8
@ -1249,7 +1249,7 @@ test_8s::@4: scope:[test_8s] from test_8s::@3
(signed byte) test_8s::divisor#2 ← phi( test_8s::@3/(signed byte) test_8s::divisor#3 )
(byte*) print_char_cursor#111 ← phi( test_8s::@3/(byte*) print_char_cursor#12 )
(byte*) print_char_cursor#47 ← (byte*) print_char_cursor#111
(byte*) print_str::str#7 ← (const string) test_8s::str
(byte*) print_str::str#7 ← (const byte*) test_8s::str
call print_str
to:test_8s::@5
test_8s::@5: scope:[test_8s] from test_8s::@4
@ -1272,7 +1272,7 @@ test_8s::@6: scope:[test_8s] from test_8s::@5
(signed byte) test_8s::res#2 ← phi( test_8s::@5/(signed byte) test_8s::res#3 )
(byte*) print_char_cursor#113 ← phi( test_8s::@5/(byte*) print_char_cursor#12 )
(byte*) print_char_cursor#49 ← (byte*) print_char_cursor#113
(byte*) print_str::str#8 ← (const string) test_8s::str1
(byte*) print_str::str#8 ← (const byte*) test_8s::str1
call print_str
to:test_8s::@7
test_8s::@7: scope:[test_8s] from test_8s::@6
@ -1293,7 +1293,7 @@ test_8s::@8: scope:[test_8s] from test_8s::@7
(signed byte) rem8s#19 ← phi( test_8s::@7/(signed byte) rem8s#24 )
(byte*) print_char_cursor#115 ← phi( test_8s::@7/(byte*) print_char_cursor#12 )
(byte*) print_char_cursor#51 ← (byte*) print_char_cursor#115
(byte*) print_str::str#9 ← (const string) test_8s::str2
(byte*) print_str::str#9 ← (const byte*) test_8s::str2
call print_str
to:test_8s::@9
test_8s::@9: scope:[test_8s] from test_8s::@8
@ -1387,7 +1387,7 @@ test_16s::@4: scope:[test_16s] from test_16s::@3
(signed word) test_16s::divisor#2 ← phi( test_16s::@3/(signed word) test_16s::divisor#3 )
(byte*) print_char_cursor#120 ← phi( test_16s::@3/(byte*) print_char_cursor#8 )
(byte*) print_char_cursor#56 ← (byte*) print_char_cursor#120
(byte*) print_str::str#10 ← (const string) test_16s::str
(byte*) print_str::str#10 ← (const byte*) test_16s::str
call print_str
to:test_16s::@5
test_16s::@5: scope:[test_16s] from test_16s::@4
@ -1410,7 +1410,7 @@ test_16s::@6: scope:[test_16s] from test_16s::@5
(signed word) test_16s::res#2 ← phi( test_16s::@5/(signed word) test_16s::res#3 )
(byte*) print_char_cursor#122 ← phi( test_16s::@5/(byte*) print_char_cursor#8 )
(byte*) print_char_cursor#58 ← (byte*) print_char_cursor#122
(byte*) print_str::str#11 ← (const string) test_16s::str1
(byte*) print_str::str#11 ← (const byte*) test_16s::str1
call print_str
to:test_16s::@7
test_16s::@7: scope:[test_16s] from test_16s::@6
@ -1431,7 +1431,7 @@ test_16s::@8: scope:[test_16s] from test_16s::@7
(signed word) rem16s#23 ← phi( test_16s::@7/(signed word) rem16s#28 )
(byte*) print_char_cursor#124 ← phi( test_16s::@7/(byte*) print_char_cursor#8 )
(byte*) print_char_cursor#60 ← (byte*) print_char_cursor#124
(byte*) print_str::str#12 ← (const string) test_16s::str2
(byte*) print_str::str#12 ← (const byte*) test_16s::str2
call print_str
to:test_16s::@9
test_16s::@9: scope:[test_16s] from test_16s::@8
@ -2567,9 +2567,9 @@ SYMBOL TABLE SSA
(signed word) test_16s::res#2
(signed word) test_16s::res#3
(signed word) test_16s::res#4
(const string) test_16s::str[] = (string) " / "
(const string) test_16s::str1[] = (string) " = "
(const string) test_16s::str2[] = (string) " "
(const byte*) test_16s::str[(byte) 4] = (string) " / "
(const byte*) test_16s::str1[(byte) 4] = (string) " = "
(const byte*) test_16s::str2[(byte) 2] = (string) " "
(void()) test_16u()
(word~) test_16u::$0
(byte~) test_16u::$10
@ -2615,9 +2615,9 @@ SYMBOL TABLE SSA
(word) test_16u::res#2
(word) test_16u::res#3
(word) test_16u::res#4
(const string) test_16u::str[] = (string) " / "
(const string) test_16u::str1[] = (string) " = "
(const string) test_16u::str2[] = (string) " "
(const byte*) test_16u::str[(byte) 4] = (string) " / "
(const byte*) test_16u::str1[(byte) 4] = (string) " = "
(const byte*) test_16u::str2[(byte) 2] = (string) " "
(void()) test_8s()
(signed byte~) test_8s::$0
(bool~) test_8s::$9
@ -2661,9 +2661,9 @@ SYMBOL TABLE SSA
(signed byte) test_8s::res#2
(signed byte) test_8s::res#3
(signed byte) test_8s::res#4
(const string) test_8s::str[] = (string) " / "
(const string) test_8s::str1[] = (string) " = "
(const string) test_8s::str2[] = (string) " "
(const byte*) test_8s::str[(byte) 4] = (string) " / "
(const byte*) test_8s::str1[(byte) 4] = (string) " = "
(const byte*) test_8s::str2[(byte) 2] = (string) " "
(void()) test_8u()
(byte~) test_8u::$0
(bool~) test_8u::$9
@ -2707,9 +2707,9 @@ SYMBOL TABLE SSA
(byte) test_8u::res#2
(byte) test_8u::res#3
(byte) test_8u::res#4
(const string) test_8u::str[] = (string) " / "
(const string) test_8u::str1[] = (string) " = "
(const string) test_8u::str2[] = (string) " "
(const byte*) test_8u::str[(byte) 4] = (string) " / "
(const byte*) test_8u::str1[(byte) 4] = (string) " = "
(const byte*) test_8u::str2[(byte) 2] = (string) " "
Adding number conversion cast (unumber) 0 in (bool~) memset::$0 ← (word) memset::num#1 > (number) 0
Adding number conversion cast (unumber) 0 in (bool~) print_str::$0 ← (number) 0 != *((byte*) print_str::str#13)
@ -3339,6 +3339,9 @@ Constant (const void*) memset::return#2 = memset::str#0
Successful SSA optimization Pass2ConstantIdentification
if() condition always false - eliminating [3] if((const word) memset::num#0<=(byte) 0) goto memset::@1
Successful SSA optimization Pass2ConstantIfs
Consolidated constant strings into (const string) str
Consolidated constant strings into (const string) str1
Consolidated constant strings into (const string) str2
Successful SSA optimization Pass2ConstantStringConsolidation
Resolved ranged next value [179] divr8u::i#1 ← ++ divr8u::i#2 to ++
Resolved ranged comparison value [181] if(divr8u::i#1!=rangelast(0,7)) goto divr8u::@1 to (number) 8

@ -133,7 +133,7 @@ print_ln::@return: scope:[print_ln] from print_ln::@1
(void()) print_str((byte*) print_str::str)
print_str: scope:[print_str] from mul16s_compare::@1 mul16s_compare::@13 mul16s_error mul16s_error::@2 mul16s_error::@4 mul16s_error::@6 mul16s_error::@8 mul16u_compare::@1 mul16u_compare::@13 mul16u_error mul16u_error::@2 mul16u_error::@4 mul16u_error::@6 mul16u_error::@8
[64] (byte*) print_char_cursor#154 ← phi( mul16s_compare::@1/(byte*) print_char_cursor#149 mul16s_compare::@13/(byte*) print_char_cursor#180 mul16s_error/(byte*) print_char_cursor#132 mul16s_error::@2/(byte*) print_char_cursor#22 mul16s_error::@4/(byte*) print_char_cursor#22 mul16s_error::@6/(byte*) print_char_cursor#22 mul16s_error::@8/(byte*) print_char_cursor#22 mul16u_compare::@1/(byte*) print_char_cursor#145 mul16u_compare::@13/(byte*) print_char_cursor#187 mul16u_error/(byte*) print_char_cursor#132 mul16u_error::@2/(byte*) print_char_cursor#22 mul16u_error::@4/(byte*) print_char_cursor#22 mul16u_error::@6/(byte*) print_char_cursor#22 mul16u_error::@8/(byte*) print_char_cursor#22 )
[64] (byte*) print_str::str#17 ← phi( mul16s_compare::@1/(const string) str mul16s_compare::@13/(const string) mul16s_compare::str1 mul16s_error/(const string) mul16s_error::str mul16s_error::@2/(const string) str1 mul16s_error::@4/(const string) str2 mul16s_error::@6/(const string) str3 mul16s_error::@8/(const string) str4 mul16u_compare::@1/(const string) str mul16u_compare::@13/(const string) mul16u_compare::str1 mul16u_error/(const string) mul16u_error::str mul16u_error::@2/(const string) str1 mul16u_error::@4/(const string) str2 mul16u_error::@6/(const string) str3 mul16u_error::@8/(const string) str4 )
[64] (byte*) print_str::str#17 ← phi( mul16s_compare::@1/(const string) str mul16s_compare::@13/(const byte*) mul16s_compare::str1 mul16s_error/(const byte*) mul16s_error::str mul16s_error::@2/(const string) str1 mul16s_error::@4/(const string) str2 mul16s_error::@6/(const string) str3 mul16s_error::@8/(const string) str4 mul16u_compare::@1/(const string) str mul16u_compare::@13/(const byte*) mul16u_compare::str1 mul16u_error/(const byte*) mul16u_error::str mul16u_error::@2/(const string) str1 mul16u_error::@4/(const string) str2 mul16u_error::@6/(const string) str3 mul16u_error::@8/(const string) str4 )
to:print_str::@1
print_str::@1: scope:[print_str] from print_str print_str::@2
[65] (byte*) print_char_cursor#132 ← phi( print_str/(byte*) print_char_cursor#154 print_str::@2/(byte*) print_char_cursor#1 )

@ -876,7 +876,7 @@ mul16u_compare::@1: scope:[mul16u_compare] from mul16u_compare mul16u_compare::
(word) mul16u_compare::b#9 ← phi( mul16u_compare/(word) mul16u_compare::b#0 mul16u_compare::@10/(word) mul16u_compare::b#12 )
(word) mul16u_compare::a#9 ← phi( mul16u_compare/(word) mul16u_compare::a#0 mul16u_compare::@10/(word) mul16u_compare::a#12 )
(byte*) print_char_cursor#145 ← phi( mul16u_compare/(byte*) print_char_cursor#157 mul16u_compare::@10/(byte*) print_char_cursor#158 )
(byte*) print_str::str#1 ← (const string) mul16u_compare::str
(byte*) print_str::str#1 ← (const byte*) mul16u_compare::str
call print_str
to:mul16u_compare::@12
mul16u_compare::@12: scope:[mul16u_compare] from mul16u_compare::@1
@ -1066,7 +1066,7 @@ mul16u_compare::@17: scope:[mul16u_compare] from mul16u_compare::@11
(byte*) print_line_cursor#32 ← phi( mul16u_compare::@11/(byte*) print_line_cursor#2 )
(byte*) print_line_cursor#11 ← (byte*) print_line_cursor#32
(byte*) print_char_cursor#33 ← (byte*) print_char_cursor#98
(byte*) print_str::str#2 ← (const string) mul16u_compare::str1
(byte*) print_str::str#2 ← (const byte*) mul16u_compare::str1
call print_str
to:mul16u_compare::@18
mul16u_compare::@18: scope:[mul16u_compare] from mul16u_compare::@17
@ -1091,7 +1091,7 @@ mul16u_error: scope:[mul16u_error] from mul16u_compare::@8
(word) mul16u_error::b#4 ← phi( mul16u_compare::@8/(word) mul16u_error::b#0 )
(word) mul16u_error::a#2 ← phi( mul16u_compare::@8/(word) mul16u_error::a#0 )
(byte*) print_char_cursor#148 ← phi( mul16u_compare::@8/(byte*) print_char_cursor#146 )
(byte*) print_str::str#3 ← (const string) mul16u_error::str
(byte*) print_str::str#3 ← (const byte*) mul16u_error::str
call print_str
to:mul16u_error::@1
mul16u_error::@1: scope:[mul16u_error] from mul16u_error
@ -1114,7 +1114,7 @@ mul16u_error::@2: scope:[mul16u_error] from mul16u_error::@1
(word) mul16u_error::b#2 ← phi( mul16u_error::@1/(word) mul16u_error::b#3 )
(byte*) print_char_cursor#102 ← phi( mul16u_error::@1/(byte*) print_char_cursor#11 )
(byte*) print_char_cursor#37 ← (byte*) print_char_cursor#102
(byte*) print_str::str#4 ← (const string) mul16u_error::str1
(byte*) print_str::str#4 ← (const byte*) mul16u_error::str1
call print_str
to:mul16u_error::@3
mul16u_error::@3: scope:[mul16u_error] from mul16u_error::@2
@ -1135,7 +1135,7 @@ mul16u_error::@4: scope:[mul16u_error] from mul16u_error::@3
(dword) mul16u_error::ms#2 ← phi( mul16u_error::@3/(dword) mul16u_error::ms#3 )
(byte*) print_char_cursor#104 ← phi( mul16u_error::@3/(byte*) print_char_cursor#11 )
(byte*) print_char_cursor#39 ← (byte*) print_char_cursor#104
(byte*) print_str::str#5 ← (const string) mul16u_error::str2
(byte*) print_str::str#5 ← (const byte*) mul16u_error::str2
call print_str
to:mul16u_error::@5
mul16u_error::@5: scope:[mul16u_error] from mul16u_error::@4
@ -1154,7 +1154,7 @@ mul16u_error::@6: scope:[mul16u_error] from mul16u_error::@5
(dword) mul16u_error::mn#2 ← phi( mul16u_error::@5/(dword) mul16u_error::mn#3 )
(byte*) print_char_cursor#106 ← phi( mul16u_error::@5/(byte*) print_char_cursor#14 )
(byte*) print_char_cursor#41 ← (byte*) print_char_cursor#106
(byte*) print_str::str#6 ← (const string) mul16u_error::str3
(byte*) print_str::str#6 ← (const byte*) mul16u_error::str3
call print_str
to:mul16u_error::@7
mul16u_error::@7: scope:[mul16u_error] from mul16u_error::@6
@ -1171,7 +1171,7 @@ mul16u_error::@8: scope:[mul16u_error] from mul16u_error::@7
(dword) mul16u_error::mf#2 ← phi( mul16u_error::@7/(dword) mul16u_error::mf#3 )
(byte*) print_char_cursor#108 ← phi( mul16u_error::@7/(byte*) print_char_cursor#14 )
(byte*) print_char_cursor#43 ← (byte*) print_char_cursor#108
(byte*) print_str::str#7 ← (const string) mul16u_error::str4
(byte*) print_str::str#7 ← (const byte*) mul16u_error::str4
call print_str
to:mul16u_error::@9
mul16u_error::@9: scope:[mul16u_error] from mul16u_error::@8
@ -1216,7 +1216,7 @@ mul16s_compare::@1: scope:[mul16s_compare] from mul16s_compare mul16s_compare::
(signed word) mul16s_compare::b#9 ← phi( mul16s_compare/(signed word) mul16s_compare::b#0 mul16s_compare::@10/(signed word) mul16s_compare::b#12 )
(signed word) mul16s_compare::a#9 ← phi( mul16s_compare/(signed word) mul16s_compare::a#0 mul16s_compare::@10/(signed word) mul16s_compare::a#12 )
(byte*) print_char_cursor#149 ← phi( mul16s_compare/(byte*) print_char_cursor#160 mul16s_compare::@10/(byte*) print_char_cursor#161 )
(byte*) print_str::str#8 ← (const string) mul16s_compare::str
(byte*) print_str::str#8 ← (const byte*) mul16s_compare::str
call print_str
to:mul16s_compare::@12
mul16s_compare::@12: scope:[mul16s_compare] from mul16s_compare::@1
@ -1406,7 +1406,7 @@ mul16s_compare::@17: scope:[mul16s_compare] from mul16s_compare::@11
(byte*) print_line_cursor#38 ← phi( mul16s_compare::@11/(byte*) print_line_cursor#2 )
(byte*) print_line_cursor#17 ← (byte*) print_line_cursor#38
(byte*) print_char_cursor#51 ← (byte*) print_char_cursor#116
(byte*) print_str::str#9 ← (const string) mul16s_compare::str1
(byte*) print_str::str#9 ← (const byte*) mul16s_compare::str1
call print_str
to:mul16s_compare::@18
mul16s_compare::@18: scope:[mul16s_compare] from mul16s_compare::@17
@ -1431,7 +1431,7 @@ mul16s_error: scope:[mul16s_error] from mul16s_compare::@8
(signed word) mul16s_error::b#4 ← phi( mul16s_compare::@8/(signed word) mul16s_error::b#0 )
(signed word) mul16s_error::a#2 ← phi( mul16s_compare::@8/(signed word) mul16s_error::a#0 )
(byte*) print_char_cursor#152 ← phi( mul16s_compare::@8/(byte*) print_char_cursor#150 )
(byte*) print_str::str#10 ← (const string) mul16s_error::str
(byte*) print_str::str#10 ← (const byte*) mul16s_error::str
call print_str
to:mul16s_error::@1
mul16s_error::@1: scope:[mul16s_error] from mul16s_error
@ -1454,7 +1454,7 @@ mul16s_error::@2: scope:[mul16s_error] from mul16s_error::@1
(signed word) mul16s_error::b#2 ← phi( mul16s_error::@1/(signed word) mul16s_error::b#3 )
(byte*) print_char_cursor#120 ← phi( mul16s_error::@1/(byte*) print_char_cursor#8 )
(byte*) print_char_cursor#55 ← (byte*) print_char_cursor#120
(byte*) print_str::str#11 ← (const string) mul16s_error::str1
(byte*) print_str::str#11 ← (const byte*) mul16s_error::str1
call print_str
to:mul16s_error::@3
mul16s_error::@3: scope:[mul16s_error] from mul16s_error::@2
@ -1475,7 +1475,7 @@ mul16s_error::@4: scope:[mul16s_error] from mul16s_error::@3
(signed dword) mul16s_error::ms#2 ← phi( mul16s_error::@3/(signed dword) mul16s_error::ms#3 )
(byte*) print_char_cursor#122 ← phi( mul16s_error::@3/(byte*) print_char_cursor#8 )
(byte*) print_char_cursor#57 ← (byte*) print_char_cursor#122
(byte*) print_str::str#12 ← (const string) mul16s_error::str2
(byte*) print_str::str#12 ← (const byte*) mul16s_error::str2
call print_str
to:mul16s_error::@5
mul16s_error::@5: scope:[mul16s_error] from mul16s_error::@4
@ -1494,7 +1494,7 @@ mul16s_error::@6: scope:[mul16s_error] from mul16s_error::@5
(signed dword) mul16s_error::mn#2 ← phi( mul16s_error::@5/(signed dword) mul16s_error::mn#3 )
(byte*) print_char_cursor#124 ← phi( mul16s_error::@5/(byte*) print_char_cursor#18 )
(byte*) print_char_cursor#59 ← (byte*) print_char_cursor#124
(byte*) print_str::str#13 ← (const string) mul16s_error::str3
(byte*) print_str::str#13 ← (const byte*) mul16s_error::str3
call print_str
to:mul16s_error::@7
mul16s_error::@7: scope:[mul16s_error] from mul16s_error::@6
@ -1511,7 +1511,7 @@ mul16s_error::@8: scope:[mul16s_error] from mul16s_error::@7
(signed dword) mul16s_error::mf#2 ← phi( mul16s_error::@7/(signed dword) mul16s_error::mf#3 )
(byte*) print_char_cursor#126 ← phi( mul16s_error::@7/(byte*) print_char_cursor#18 )
(byte*) print_char_cursor#61 ← (byte*) print_char_cursor#126
(byte*) print_str::str#14 ← (const string) mul16s_error::str4
(byte*) print_str::str#14 ← (const byte*) mul16s_error::str4
call print_str
to:mul16s_error::@9
mul16s_error::@9: scope:[mul16s_error] from mul16s_error::@8
@ -1786,8 +1786,8 @@ SYMBOL TABLE SSA
(byte) mul16s_compare::ok#2
(byte) mul16s_compare::ok#3
(byte) mul16s_compare::ok#4
(const string) mul16s_compare::str[] = (string) "."
(const string) mul16s_compare::str1[] = (string) "signed word multiply results match!"
(const byte*) mul16s_compare::str[(byte) 2] = (string) "."
(const byte*) mul16s_compare::str1[(byte) $24] = (string) "signed word multiply results match!"
(void()) mul16s_error((signed word) mul16s_error::a , (signed word) mul16s_error::b , (signed dword) mul16s_error::ms , (signed dword) mul16s_error::mn , (signed dword) mul16s_error::mf)
(label) mul16s_error::@1
(label) mul16s_error::@10
@ -1841,11 +1841,11 @@ SYMBOL TABLE SSA
(signed dword) mul16s_error::ms#4
(signed dword) mul16s_error::ms#5
(signed dword) mul16s_error::ms#6
(const string) mul16s_error::str[] = (string) "signed word multiply mismatch "
(const string) mul16s_error::str1[] = (string) "*"
(const string) mul16s_error::str2[] = (string) " slow:"
(const string) mul16s_error::str3[] = (string) " / normal:"
(const string) mul16s_error::str4[] = (string) " / fast:"
(const byte*) mul16s_error::str[(byte) $1f] = (string) "signed word multiply mismatch "
(const byte*) mul16s_error::str1[(byte) 2] = (string) "*"
(const byte*) mul16s_error::str2[(byte) 7] = (string) " slow:"
(const byte*) mul16s_error::str3[(byte) $b] = (string) " / normal:"
(const byte*) mul16s_error::str4[(byte) 9] = (string) " / fast:"
(dword()) mul16u((word) mul16u::a , (word) mul16u::b)
(bool~) mul16u::$0
(number~) mul16u::$1
@ -2018,8 +2018,8 @@ SYMBOL TABLE SSA
(byte) mul16u_compare::ok#2
(byte) mul16u_compare::ok#3
(byte) mul16u_compare::ok#4
(const string) mul16u_compare::str[] = (string) "."
(const string) mul16u_compare::str1[] = (string) "word multiply results match!"
(const byte*) mul16u_compare::str[(byte) 2] = (string) "."
(const byte*) mul16u_compare::str1[(byte) $1d] = (string) "word multiply results match!"
(void()) mul16u_error((word) mul16u_error::a , (word) mul16u_error::b , (dword) mul16u_error::ms , (dword) mul16u_error::mn , (dword) mul16u_error::mf)
(label) mul16u_error::@1
(label) mul16u_error::@10
@ -2073,11 +2073,11 @@ SYMBOL TABLE SSA
(dword) mul16u_error::ms#4
(dword) mul16u_error::ms#5
(dword) mul16u_error::ms#6
(const string) mul16u_error::str[] = (string) "multiply mismatch "
(const string) mul16u_error::str1[] = (string) "*"
(const string) mul16u_error::str2[] = (string) " slow:"
(const string) mul16u_error::str3[] = (string) " / normal:"
(const string) mul16u_error::str4[] = (string) " / fast:"
(const byte*) mul16u_error::str[(byte) $13] = (string) "multiply mismatch "
(const byte*) mul16u_error::str1[(byte) 2] = (string) "*"
(const byte*) mul16u_error::str2[(byte) 7] = (string) " slow:"
(const byte*) mul16u_error::str3[(byte) $b] = (string) " / normal:"
(const byte*) mul16u_error::str4[(byte) 9] = (string) " / fast:"
(signed dword()) mulf16s((signed word) mulf16s::a , (signed word) mulf16s::b)
(word~) mulf16s::$0
(word~) mulf16s::$1
@ -3443,6 +3443,11 @@ Constant (const void*) memset::return#2 = memset::str#0
Successful SSA optimization Pass2ConstantIdentification
if() condition always false - eliminating [3] if((const word) memset::num#0<=(byte) 0) goto memset::@1
Successful SSA optimization Pass2ConstantIfs
Consolidated constant strings into (const string) str
Consolidated constant strings into (const string) str1
Consolidated constant strings into (const string) str2
Consolidated constant strings into (const string) str3
Consolidated constant strings into (const string) str4
Successful SSA optimization Pass2ConstantStringConsolidation
Resolved ranged next value [429] mul16u_compare::j#1 ← ++ mul16u_compare::j#10 to ++
Resolved ranged comparison value [431] if(mul16u_compare::j#1!=rangelast(0,$f)) goto mul16u_compare::@2 to (number) $10
@ -3553,12 +3558,12 @@ Constant inlined mul16u_compare::a#0 = (word) 0
Constant inlined mul16s_compare::j#0 = (byte) 0
Constant inlined mul16u_compare::j#0 = (byte) 0
Constant inlined print_line_cursor#0 = (byte*) 1024
Constant inlined print_str::str#9 = (const string) mul16s_compare::str1
Constant inlined print_str::str#9 = (const byte*) mul16s_compare::str1
Constant inlined mulf_init::sqr1_hi#0 = (const byte*) mulf_sqr1_hi+(byte) 1
Constant inlined mulf_init::sqr1_lo#0 = (const byte*) mulf_sqr1_lo+(byte) 1
Constant inlined print_str::str#4 = (const string) str1
Constant inlined print_str::str#3 = (const string) mul16u_error::str
Constant inlined print_str::str#2 = (const string) mul16u_compare::str1
Constant inlined print_str::str#3 = (const byte*) mul16u_error::str
Constant inlined print_str::str#2 = (const byte*) mul16u_compare::str1
Constant inlined memset::dst#0 = (byte*)(const void*) memset::str#0
Constant inlined print_str::str#1 = (const string) str
Constant inlined print_str::str#8 = (const string) str
@ -3571,7 +3576,7 @@ Constant inlined mul16s_compare::str = (const string) str
Constant inlined print_str::str#13 = (const string) str3
Constant inlined print_str::str#12 = (const string) str2
Constant inlined print_str::str#11 = (const string) str1
Constant inlined print_str::str#10 = (const string) mul16s_error::str
Constant inlined print_str::str#10 = (const byte*) mul16s_error::str
Constant inlined muls16s::m#0 = (signed dword) 0
Constant inlined mul16s_compare::ok#0 = (byte) 1
Constant inlined mul16s_compare::ok#1 = (byte) 0
@ -4058,7 +4063,7 @@ print_ln::@return: scope:[print_ln] from print_ln::@1
(void()) print_str((byte*) print_str::str)
print_str: scope:[print_str] from mul16s_compare::@1 mul16s_compare::@13 mul16s_error mul16s_error::@2 mul16s_error::@4 mul16s_error::@6 mul16s_error::@8 mul16u_compare::@1 mul16u_compare::@13 mul16u_error mul16u_error::@2 mul16u_error::@4 mul16u_error::@6 mul16u_error::@8
[64] (byte*) print_char_cursor#154 ← phi( mul16s_compare::@1/(byte*) print_char_cursor#149 mul16s_compare::@13/(byte*) print_char_cursor#180 mul16s_error/(byte*) print_char_cursor#132 mul16s_error::@2/(byte*) print_char_cursor#22 mul16s_error::@4/(byte*) print_char_cursor#22 mul16s_error::@6/(byte*) print_char_cursor#22 mul16s_error::@8/(byte*) print_char_cursor#22 mul16u_compare::@1/(byte*) print_char_cursor#145 mul16u_compare::@13/(byte*) print_char_cursor#187 mul16u_error/(byte*) print_char_cursor#132 mul16u_error::@2/(byte*) print_char_cursor#22 mul16u_error::@4/(byte*) print_char_cursor#22 mul16u_error::@6/(byte*) print_char_cursor#22 mul16u_error::@8/(byte*) print_char_cursor#22 )
[64] (byte*) print_str::str#17 ← phi( mul16s_compare::@1/(const string) str mul16s_compare::@13/(const string) mul16s_compare::str1 mul16s_error/(const string) mul16s_error::str mul16s_error::@2/(const string) str1 mul16s_error::@4/(const string) str2 mul16s_error::@6/(const string) str3 mul16s_error::@8/(const string) str4 mul16u_compare::@1/(const string) str mul16u_compare::@13/(const string) mul16u_compare::str1 mul16u_error/(const string) mul16u_error::str mul16u_error::@2/(const string) str1 mul16u_error::@4/(const string) str2 mul16u_error::@6/(const string) str3 mul16u_error::@8/(const string) str4 )
[64] (byte*) print_str::str#17 ← phi( mul16s_compare::@1/(const string) str mul16s_compare::@13/(const byte*) mul16s_compare::str1 mul16s_error/(const byte*) mul16s_error::str mul16s_error::@2/(const string) str1 mul16s_error::@4/(const string) str2 mul16s_error::@6/(const string) str3 mul16s_error::@8/(const string) str4 mul16u_compare::@1/(const string) str mul16u_compare::@13/(const byte*) mul16u_compare::str1 mul16u_error/(const byte*) mul16u_error::str mul16u_error::@2/(const string) str1 mul16u_error::@4/(const string) str2 mul16u_error::@6/(const string) str3 mul16u_error::@8/(const string) str4 )
to:print_str::@1
print_str::@1: scope:[print_str] from print_str print_str::@2
[65] (byte*) print_char_cursor#132 ← phi( print_str/(byte*) print_char_cursor#154 print_str::@2/(byte*) print_char_cursor#1 )
@ -5588,7 +5593,7 @@ mul16s_compare: {
// [64] phi from mul16s_compare::@13 to print_str [phi:mul16s_compare::@13->print_str]
print_str_from___b13:
// [64] phi (byte*) print_char_cursor#154 = (byte*) print_char_cursor#180 [phi:mul16s_compare::@13->print_str#0] -- register_copy
// [64] phi (byte*) print_str::str#17 = (const string) mul16s_compare::str1 [phi:mul16s_compare::@13->print_str#1] -- pbuz1=pbuc1
// [64] phi (byte*) print_str::str#17 = (const byte*) mul16s_compare::str1 [phi:mul16s_compare::@13->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -5696,7 +5701,7 @@ mul16s_error: {
// [64] phi from mul16s_error to print_str [phi:mul16s_error->print_str]
print_str_from_mul16s_error:
// [64] phi (byte*) print_char_cursor#154 = (byte*) print_char_cursor#132 [phi:mul16s_error->print_str#0] -- register_copy
// [64] phi (byte*) print_str::str#17 = (const string) mul16s_error::str [phi:mul16s_error->print_str#1] -- pbuz1=pbuc1
// [64] phi (byte*) print_str::str#17 = (const byte*) mul16s_error::str [phi:mul16s_error->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -7150,7 +7155,7 @@ mul16u_compare: {
// [64] phi from mul16u_compare::@13 to print_str [phi:mul16u_compare::@13->print_str]
print_str_from___b13:
// [64] phi (byte*) print_char_cursor#154 = (byte*) print_char_cursor#187 [phi:mul16u_compare::@13->print_str#0] -- register_copy
// [64] phi (byte*) print_str::str#17 = (const string) mul16u_compare::str1 [phi:mul16u_compare::@13->print_str#1] -- pbuz1=pbuc1
// [64] phi (byte*) print_str::str#17 = (const byte*) mul16u_compare::str1 [phi:mul16u_compare::@13->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -7183,7 +7188,7 @@ mul16u_error: {
// [64] phi from mul16u_error to print_str [phi:mul16u_error->print_str]
print_str_from_mul16u_error:
// [64] phi (byte*) print_char_cursor#154 = (byte*) print_char_cursor#132 [phi:mul16u_error->print_str#0] -- register_copy
// [64] phi (byte*) print_str::str#17 = (const string) mul16u_error::str [phi:mul16u_error->print_str#1] -- pbuz1=pbuc1
// [64] phi (byte*) print_str::str#17 = (const byte*) mul16u_error::str [phi:mul16u_error->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -8578,7 +8583,7 @@ mul16s_compare: {
// [64] phi from mul16s_compare::@13 to print_str [phi:mul16s_compare::@13->print_str]
print_str_from___b13:
// [64] phi (byte*) print_char_cursor#154 = (byte*) print_char_cursor#180 [phi:mul16s_compare::@13->print_str#0] -- register_copy
// [64] phi (byte*) print_str::str#17 = (const string) mul16s_compare::str1 [phi:mul16s_compare::@13->print_str#1] -- pbuz1=pbuc1
// [64] phi (byte*) print_str::str#17 = (const byte*) mul16s_compare::str1 [phi:mul16s_compare::@13->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -8686,7 +8691,7 @@ mul16s_error: {
// [64] phi from mul16s_error to print_str [phi:mul16s_error->print_str]
print_str_from_mul16s_error:
// [64] phi (byte*) print_char_cursor#154 = (byte*) print_char_cursor#132 [phi:mul16s_error->print_str#0] -- register_copy
// [64] phi (byte*) print_str::str#17 = (const string) mul16s_error::str [phi:mul16s_error->print_str#1] -- pbuz1=pbuc1
// [64] phi (byte*) print_str::str#17 = (const byte*) mul16s_error::str [phi:mul16s_error->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -9941,7 +9946,7 @@ mul16u_compare: {
// [64] phi from mul16u_compare::@13 to print_str [phi:mul16u_compare::@13->print_str]
print_str_from___b13:
// [64] phi (byte*) print_char_cursor#154 = (byte*) print_char_cursor#187 [phi:mul16u_compare::@13->print_str#0] -- register_copy
// [64] phi (byte*) print_str::str#17 = (const string) mul16u_compare::str1 [phi:mul16u_compare::@13->print_str#1] -- pbuz1=pbuc1
// [64] phi (byte*) print_str::str#17 = (const byte*) mul16u_compare::str1 [phi:mul16u_compare::@13->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -9974,7 +9979,7 @@ mul16u_error: {
// [64] phi from mul16u_error to print_str [phi:mul16u_error->print_str]
print_str_from_mul16u_error:
// [64] phi (byte*) print_char_cursor#154 = (byte*) print_char_cursor#132 [phi:mul16u_error->print_str#0] -- register_copy
// [64] phi (byte*) print_str::str#17 = (const string) mul16u_error::str [phi:mul16u_error->print_str#1] -- pbuz1=pbuc1
// [64] phi (byte*) print_str::str#17 = (const byte*) mul16u_error::str [phi:mul16u_error->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -11024,7 +11029,7 @@ FINAL SYMBOL TABLE
(byte) mul16s_compare::ok
(byte) mul16s_compare::ok#3 reg byte x 202.0
(byte) mul16s_compare::ok#4 reg byte x 33.666666666666664
(const string) mul16s_compare::str1[] = (string) "signed word multiply results match!"
(const byte*) mul16s_compare::str1[(byte) $24] = (string) "signed word multiply results match!"
(void()) mul16s_error((signed word) mul16s_error::a , (signed word) mul16s_error::b , (signed dword) mul16s_error::ms , (signed dword) mul16s_error::mn , (signed dword) mul16s_error::mf)
(label) mul16s_error::@1
(label) mul16s_error::@10
@ -11047,7 +11052,7 @@ FINAL SYMBOL TABLE
(signed dword) mul16s_error::mn#0 mn zp[4]:6 0.25
(signed dword) mul16s_error::ms
(signed dword) mul16s_error::ms#0 ms zp[4]:2 0.3076923076923077
(const string) mul16s_error::str[] = (string) "signed word multiply mismatch "
(const byte*) mul16s_error::str[(byte) $1f] = (string) "signed word multiply mismatch "
(dword()) mul16u((word) mul16u::a , (word) mul16u::b)
(byte~) mul16u::$1 reg byte a 2002.0
(label) mul16u::@1
@ -11116,7 +11121,7 @@ FINAL SYMBOL TABLE
(byte) mul16u_compare::ok
(byte) mul16u_compare::ok#3 reg byte x 202.0
(byte) mul16u_compare::ok#4 reg byte x 33.666666666666664
(const string) mul16u_compare::str1[] = (string) "word multiply results match!"
(const byte*) mul16u_compare::str1[(byte) $1d] = (string) "word multiply results match!"
(void()) mul16u_error((word) mul16u_error::a , (word) mul16u_error::b , (dword) mul16u_error::ms , (dword) mul16u_error::mn , (dword) mul16u_error::mf)
(label) mul16u_error::@1
(label) mul16u_error::@10
@ -11139,7 +11144,7 @@ FINAL SYMBOL TABLE
(dword) mul16u_error::mn#0 mn zp[4]:6 0.25
(dword) mul16u_error::ms
(dword) mul16u_error::ms#0 ms zp[4]:2 0.3076923076923077
(const string) mul16u_error::str[] = (string) "multiply mismatch "
(const byte*) mul16u_error::str[(byte) $13] = (string) "multiply mismatch "
(signed dword()) mulf16s((signed word) mulf16s::a , (signed word) mulf16s::b)
(word~) mulf16s::$13 zp[2]:26 4.0
(word~) mulf16s::$16 zp[2]:24 4.0
@ -11662,7 +11667,7 @@ mul16s_compare: {
// [56] call print_str
// [64] phi from mul16s_compare::@13 to print_str [phi:mul16s_compare::@13->print_str]
// [64] phi (byte*) print_char_cursor#154 = (byte*) print_char_cursor#180 [phi:mul16s_compare::@13->print_str#0] -- register_copy
// [64] phi (byte*) print_str::str#17 = (const string) mul16s_compare::str1 [phi:mul16s_compare::@13->print_str#1] -- pbuz1=pbuc1
// [64] phi (byte*) print_str::str#17 = (const byte*) mul16s_compare::str1 [phi:mul16s_compare::@13->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -11763,7 +11768,7 @@ mul16s_error: {
// [72] call print_str
// [64] phi from mul16s_error to print_str [phi:mul16s_error->print_str]
// [64] phi (byte*) print_char_cursor#154 = (byte*) print_char_cursor#132 [phi:mul16s_error->print_str#0] -- register_copy
// [64] phi (byte*) print_str::str#17 = (const string) mul16s_error::str [phi:mul16s_error->print_str#1] -- pbuz1=pbuc1
// [64] phi (byte*) print_str::str#17 = (const byte*) mul16s_error::str [phi:mul16s_error->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -12925,7 +12930,7 @@ mul16u_compare: {
// [246] call print_str
// [64] phi from mul16u_compare::@13 to print_str [phi:mul16u_compare::@13->print_str]
// [64] phi (byte*) print_char_cursor#154 = (byte*) print_char_cursor#187 [phi:mul16u_compare::@13->print_str#0] -- register_copy
// [64] phi (byte*) print_str::str#17 = (const string) mul16u_compare::str1 [phi:mul16u_compare::@13->print_str#1] -- pbuz1=pbuc1
// [64] phi (byte*) print_str::str#17 = (const byte*) mul16u_compare::str1 [phi:mul16u_compare::@13->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -12955,7 +12960,7 @@ mul16u_error: {
// [250] call print_str
// [64] phi from mul16u_error to print_str [phi:mul16u_error->print_str]
// [64] phi (byte*) print_char_cursor#154 = (byte*) print_char_cursor#132 [phi:mul16u_error->print_str#0] -- register_copy
// [64] phi (byte*) print_str::str#17 = (const string) mul16u_error::str [phi:mul16u_error->print_str#1] -- pbuz1=pbuc1
// [64] phi (byte*) print_str::str#17 = (const byte*) mul16u_error::str [phi:mul16u_error->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str

@ -91,7 +91,7 @@
(byte) mul16s_compare::ok
(byte) mul16s_compare::ok#3 reg byte x 202.0
(byte) mul16s_compare::ok#4 reg byte x 33.666666666666664
(const string) mul16s_compare::str1[] = (string) "signed word multiply results match!"
(const byte*) mul16s_compare::str1[(byte) $24] = (string) "signed word multiply results match!"
(void()) mul16s_error((signed word) mul16s_error::a , (signed word) mul16s_error::b , (signed dword) mul16s_error::ms , (signed dword) mul16s_error::mn , (signed dword) mul16s_error::mf)
(label) mul16s_error::@1
(label) mul16s_error::@10
@ -114,7 +114,7 @@
(signed dword) mul16s_error::mn#0 mn zp[4]:6 0.25
(signed dword) mul16s_error::ms
(signed dword) mul16s_error::ms#0 ms zp[4]:2 0.3076923076923077
(const string) mul16s_error::str[] = (string) "signed word multiply mismatch "
(const byte*) mul16s_error::str[(byte) $1f] = (string) "signed word multiply mismatch "
(dword()) mul16u((word) mul16u::a , (word) mul16u::b)
(byte~) mul16u::$1 reg byte a 2002.0
(label) mul16u::@1
@ -183,7 +183,7 @@
(byte) mul16u_compare::ok
(byte) mul16u_compare::ok#3 reg byte x 202.0
(byte) mul16u_compare::ok#4 reg byte x 33.666666666666664
(const string) mul16u_compare::str1[] = (string) "word multiply results match!"
(const byte*) mul16u_compare::str1[(byte) $1d] = (string) "word multiply results match!"
(void()) mul16u_error((word) mul16u_error::a , (word) mul16u_error::b , (dword) mul16u_error::ms , (dword) mul16u_error::mn , (dword) mul16u_error::mf)
(label) mul16u_error::@1
(label) mul16u_error::@10
@ -206,7 +206,7 @@
(dword) mul16u_error::mn#0 mn zp[4]:6 0.25
(dword) mul16u_error::ms
(dword) mul16u_error::ms#0 ms zp[4]:2 0.3076923076923077
(const string) mul16u_error::str[] = (string) "multiply mismatch "
(const byte*) mul16u_error::str[(byte) $13] = (string) "multiply mismatch "
(signed dword()) mulf16s((signed word) mulf16s::a , (signed word) mulf16s::b)
(word~) mulf16s::$13 zp[2]:26 4.0
(word~) mulf16s::$16 zp[2]:24 4.0

@ -247,7 +247,7 @@ print_byte::@return: scope:[print_byte] from print_byte::@1
(void()) print_str((byte*) print_str::str)
print_str: scope:[print_str] from mul8s_compare::@2 mul8s_error mul8s_error::@2 mul8s_error::@4 mul8s_error::@6 mul8s_error::@8 mul8u_compare::@9 mul8u_error mul8u_error::@2 mul8u_error::@4 mul8u_error::@6 mul8u_error::@8 mulf_tables_cmp::@3 mulf_tables_cmp::@5 mulf_tables_cmp::@9
[114] (byte*) print_char_cursor#155 ← phi( mul8s_compare::@2/(byte*) print_char_cursor#189 mul8s_error/(byte*) print_char_cursor#190 mul8s_error::@2/(byte*) print_char_cursor#19 mul8s_error::@4/(byte*) print_char_cursor#19 mul8s_error::@6/(byte*) print_char_cursor#19 mul8s_error::@8/(byte*) print_char_cursor#19 mul8u_compare::@9/(byte*) print_char_cursor#100 mul8u_error/(byte*) print_char_cursor#100 mul8u_error::@2/(byte*) print_char_cursor#19 mul8u_error::@4/(byte*) print_char_cursor#19 mul8u_error::@6/(byte*) print_char_cursor#19 mul8u_error::@8/(byte*) print_char_cursor#19 mulf_tables_cmp::@9/(byte*) print_char_cursor#19 mulf_tables_cmp::@3/(byte*) 1024 mulf_tables_cmp::@5/(byte*) 1024 )
[114] (byte*) print_str::str#18 ← phi( mul8s_compare::@2/(const string) mul8s_compare::str mul8s_error/(const string) mul8s_error::str mul8s_error::@2/(const string) str1 mul8s_error::@4/(const string) str2 mul8s_error::@6/(const string) str3 mul8s_error::@8/(const string) str4 mul8u_compare::@9/(const string) mul8u_compare::str mul8u_error/(const string) mul8u_error::str mul8u_error::@2/(const string) str1 mul8u_error::@4/(const string) str2 mul8u_error::@6/(const string) str3 mul8u_error::@8/(const string) str4 mulf_tables_cmp::@9/(const string) mulf_tables_cmp::str2 mulf_tables_cmp::@3/(const string) mulf_tables_cmp::str mulf_tables_cmp::@5/(const string) mulf_tables_cmp::str1 )
[114] (byte*) print_str::str#18 ← phi( mul8s_compare::@2/(const byte*) mul8s_compare::str mul8s_error/(const byte*) mul8s_error::str mul8s_error::@2/(const string) str1 mul8s_error::@4/(const string) str2 mul8s_error::@6/(const string) str3 mul8s_error::@8/(const string) str4 mul8u_compare::@9/(const byte*) mul8u_compare::str mul8u_error/(const byte*) mul8u_error::str mul8u_error::@2/(const string) str1 mul8u_error::@4/(const string) str2 mul8u_error::@6/(const string) str3 mul8u_error::@8/(const string) str4 mulf_tables_cmp::@9/(const byte*) mulf_tables_cmp::str2 mulf_tables_cmp::@3/(const byte*) mulf_tables_cmp::str mulf_tables_cmp::@5/(const byte*) mulf_tables_cmp::str1 )
to:print_str::@1
print_str::@1: scope:[print_str] from print_str print_str::@2
[115] (byte*) print_char_cursor#134 ← phi( print_str/(byte*) print_char_cursor#155 print_str::@2/(byte*) print_char_cursor#1 )

@ -961,7 +961,7 @@ mulf_tables_cmp::@2: scope:[mulf_tables_cmp] from mulf_tables_cmp::@1
mulf_tables_cmp::@3: scope:[mulf_tables_cmp] from mulf_tables_cmp::@1
(byte*) print_line_cursor#58 ← phi( mulf_tables_cmp::@1/(byte*) print_line_cursor#66 )
(byte*) print_char_cursor#146 ← phi( mulf_tables_cmp::@1/(byte*) print_char_cursor#159 )
(byte*) print_str::str#1 ← (const string) mulf_tables_cmp::str
(byte*) print_str::str#1 ← (const byte*) mulf_tables_cmp::str
call print_str
to:mulf_tables_cmp::@10
mulf_tables_cmp::@10: scope:[mulf_tables_cmp] from mulf_tables_cmp::@3
@ -990,7 +990,7 @@ mulf_tables_cmp::@7: scope:[mulf_tables_cmp] from mulf_tables_cmp::@2
(byte*) mulf_tables_cmp::asm_sqr#6 ← phi( mulf_tables_cmp::@2/(byte*) mulf_tables_cmp::asm_sqr#2 )
(byte*) print_char_cursor#147 ← phi( mulf_tables_cmp::@2/(byte*) print_char_cursor#160 )
*((const byte*) BGCOL) ← (number) 2
(byte*) print_str::str#2 ← (const string) mulf_tables_cmp::str1
(byte*) print_str::str#2 ← (const byte*) mulf_tables_cmp::str1
call print_str
to:mulf_tables_cmp::@12
mulf_tables_cmp::@12: scope:[mulf_tables_cmp] from mulf_tables_cmp::@7
@ -1008,7 +1008,7 @@ mulf_tables_cmp::@13: scope:[mulf_tables_cmp] from mulf_tables_cmp::@12
(byte*) mulf_tables_cmp::kc_sqr#6 ← phi( mulf_tables_cmp::@12/(byte*) mulf_tables_cmp::kc_sqr#7 )
(byte*) print_char_cursor#97 ← phi( mulf_tables_cmp::@12/(byte*) print_char_cursor#15 )
(byte*) print_char_cursor#31 ← (byte*) print_char_cursor#97
(byte*) print_str::str#3 ← (const string) mulf_tables_cmp::str2
(byte*) print_str::str#3 ← (const byte*) mulf_tables_cmp::str2
call print_str
to:mulf_tables_cmp::@14
mulf_tables_cmp::@14: scope:[mulf_tables_cmp] from mulf_tables_cmp::@13
@ -1192,7 +1192,7 @@ mul8u_compare::@10: scope:[mul8u_compare] from mul8u_compare::@5
mul8u_compare::@11: scope:[mul8u_compare] from mul8u_compare::@10
(byte*) print_line_cursor#61 ← phi( mul8u_compare::@10/(byte*) print_line_cursor#70 )
(byte*) print_char_cursor#149 ← phi( mul8u_compare::@10/(byte*) print_char_cursor#162 )
(byte*) print_str::str#4 ← (const string) mul8u_compare::str
(byte*) print_str::str#4 ← (const byte*) mul8u_compare::str
call print_str
to:mul8u_compare::@16
mul8u_compare::@16: scope:[mul8u_compare] from mul8u_compare::@11
@ -1217,7 +1217,7 @@ mul8u_error: scope:[mul8u_error] from mul8u_compare::@8
(byte) mul8u_error::b#4 ← phi( mul8u_compare::@8/(byte) mul8u_error::b#0 )
(byte) mul8u_error::a#2 ← phi( mul8u_compare::@8/(byte) mul8u_error::a#0 )
(byte*) print_char_cursor#150 ← phi( mul8u_compare::@8/(byte*) print_char_cursor#148 )
(byte*) print_str::str#5 ← (const string) mul8u_error::str
(byte*) print_str::str#5 ← (const byte*) mul8u_error::str
call print_str
to:mul8u_error::@1
mul8u_error::@1: scope:[mul8u_error] from mul8u_error
@ -1240,7 +1240,7 @@ mul8u_error::@2: scope:[mul8u_error] from mul8u_error::@1
(byte) mul8u_error::b#2 ← phi( mul8u_error::@1/(byte) mul8u_error::b#3 )
(byte*) print_char_cursor#106 ← phi( mul8u_error::@1/(byte*) print_char_cursor#18 )
(byte*) print_char_cursor#40 ← (byte*) print_char_cursor#106
(byte*) print_str::str#6 ← (const string) mul8u_error::str1
(byte*) print_str::str#6 ← (const byte*) mul8u_error::str1
call print_str
to:mul8u_error::@3
mul8u_error::@3: scope:[mul8u_error] from mul8u_error::@2
@ -1261,7 +1261,7 @@ mul8u_error::@4: scope:[mul8u_error] from mul8u_error::@3
(word) mul8u_error::ms#2 ← phi( mul8u_error::@3/(word) mul8u_error::ms#3 )
(byte*) print_char_cursor#108 ← phi( mul8u_error::@3/(byte*) print_char_cursor#18 )
(byte*) print_char_cursor#42 ← (byte*) print_char_cursor#108
(byte*) print_str::str#7 ← (const string) mul8u_error::str2
(byte*) print_str::str#7 ← (const byte*) mul8u_error::str2
call print_str
to:mul8u_error::@5
mul8u_error::@5: scope:[mul8u_error] from mul8u_error::@4
@ -1280,7 +1280,7 @@ mul8u_error::@6: scope:[mul8u_error] from mul8u_error::@5
(word) mul8u_error::mn#2 ← phi( mul8u_error::@5/(word) mul8u_error::mn#3 )
(byte*) print_char_cursor#110 ← phi( mul8u_error::@5/(byte*) print_char_cursor#15 )
(byte*) print_char_cursor#44 ← (byte*) print_char_cursor#110
(byte*) print_str::str#8 ← (const string) mul8u_error::str3
(byte*) print_str::str#8 ← (const byte*) mul8u_error::str3
call print_str
to:mul8u_error::@7
mul8u_error::@7: scope:[mul8u_error] from mul8u_error::@6
@ -1297,7 +1297,7 @@ mul8u_error::@8: scope:[mul8u_error] from mul8u_error::@7
(word) mul8u_error::mf#2 ← phi( mul8u_error::@7/(word) mul8u_error::mf#3 )
(byte*) print_char_cursor#112 ← phi( mul8u_error::@7/(byte*) print_char_cursor#15 )
(byte*) print_char_cursor#46 ← (byte*) print_char_cursor#112
(byte*) print_str::str#9 ← (const string) mul8u_error::str4
(byte*) print_str::str#9 ← (const byte*) mul8u_error::str4
call print_str
to:mul8u_error::@9
mul8u_error::@9: scope:[mul8u_error] from mul8u_error::@8
@ -1350,7 +1350,7 @@ mul8s_compare::@2: scope:[mul8s_compare] from mul8s_compare::@1
mul8s_compare::@3: scope:[mul8s_compare] from mul8s_compare::@1
(byte*) print_line_cursor#63 ← phi( mul8s_compare::@1/(byte*) print_line_cursor#72 )
(byte*) print_char_cursor#151 ← phi( mul8s_compare::@1/(byte*) print_char_cursor#163 )
(byte*) print_str::str#10 ← (const string) mul8s_compare::str
(byte*) print_str::str#10 ← (const byte*) mul8s_compare::str
call print_str
to:mul8s_compare::@20
mul8s_compare::@20: scope:[mul8s_compare] from mul8s_compare::@3
@ -1523,7 +1523,7 @@ mul8s_error: scope:[mul8s_error] from mul8s_compare::@14
(signed byte) mul8s_error::b#4 ← phi( mul8s_compare::@14/(signed byte) mul8s_error::b#0 )
(signed byte) mul8s_error::a#2 ← phi( mul8s_compare::@14/(signed byte) mul8s_error::a#0 )
(byte*) print_char_cursor#153 ← phi( mul8s_compare::@14/(byte*) print_char_cursor#152 )
(byte*) print_str::str#11 ← (const string) mul8s_error::str
(byte*) print_str::str#11 ← (const byte*) mul8s_error::str
call print_str
to:mul8s_error::@1
mul8s_error::@1: scope:[mul8s_error] from mul8s_error
@ -1546,7 +1546,7 @@ mul8s_error::@2: scope:[mul8s_error] from mul8s_error::@1
(signed byte) mul8s_error::b#2 ← phi( mul8s_error::@1/(signed byte) mul8s_error::b#3 )
(byte*) print_char_cursor#122 ← phi( mul8s_error::@1/(byte*) print_char_cursor#12 )
(byte*) print_char_cursor#56 ← (byte*) print_char_cursor#122
(byte*) print_str::str#12 ← (const string) mul8s_error::str1
(byte*) print_str::str#12 ← (const byte*) mul8s_error::str1
call print_str
to:mul8s_error::@3
mul8s_error::@3: scope:[mul8s_error] from mul8s_error::@2
@ -1567,7 +1567,7 @@ mul8s_error::@4: scope:[mul8s_error] from mul8s_error::@3
(signed word) mul8s_error::ms#2 ← phi( mul8s_error::@3/(signed word) mul8s_error::ms#3 )
(byte*) print_char_cursor#124 ← phi( mul8s_error::@3/(byte*) print_char_cursor#12 )
(byte*) print_char_cursor#58 ← (byte*) print_char_cursor#124
(byte*) print_str::str#13 ← (const string) mul8s_error::str2
(byte*) print_str::str#13 ← (const byte*) mul8s_error::str2
call print_str
to:mul8s_error::@5
mul8s_error::@5: scope:[mul8s_error] from mul8s_error::@4
@ -1586,7 +1586,7 @@ mul8s_error::@6: scope:[mul8s_error] from mul8s_error::@5
(signed word) mul8s_error::mn#2 ← phi( mul8s_error::@5/(signed word) mul8s_error::mn#3 )
(byte*) print_char_cursor#126 ← phi( mul8s_error::@5/(byte*) print_char_cursor#8 )
(byte*) print_char_cursor#60 ← (byte*) print_char_cursor#126
(byte*) print_str::str#14 ← (const string) mul8s_error::str3
(byte*) print_str::str#14 ← (const byte*) mul8s_error::str3
call print_str
to:mul8s_error::@7
mul8s_error::@7: scope:[mul8s_error] from mul8s_error::@6
@ -1603,7 +1603,7 @@ mul8s_error::@8: scope:[mul8s_error] from mul8s_error::@7
(signed word) mul8s_error::mf#2 ← phi( mul8s_error::@7/(signed word) mul8s_error::mf#3 )
(byte*) print_char_cursor#128 ← phi( mul8s_error::@7/(byte*) print_char_cursor#8 )
(byte*) print_char_cursor#62 ← (byte*) print_char_cursor#128
(byte*) print_str::str#15 ← (const string) mul8s_error::str4
(byte*) print_str::str#15 ← (const byte*) mul8s_error::str4
call print_str
to:mul8s_error::@9
mul8s_error::@9: scope:[mul8s_error] from mul8s_error::@8
@ -1850,7 +1850,7 @@ SYMBOL TABLE SSA
(byte) mul8s_compare::ok#2
(byte) mul8s_compare::ok#3
(byte) mul8s_compare::ok#4
(const string) mul8s_compare::str[] = (string) "signed multiply results match!"
(const byte*) mul8s_compare::str[(byte) $1f] = (string) "signed multiply results match!"
(void()) mul8s_error((signed byte) mul8s_error::a , (signed byte) mul8s_error::b , (signed word) mul8s_error::ms , (signed word) mul8s_error::mn , (signed word) mul8s_error::mf)
(label) mul8s_error::@1
(label) mul8s_error::@10
@ -1904,11 +1904,11 @@ SYMBOL TABLE SSA
(signed word) mul8s_error::ms#4
(signed word) mul8s_error::ms#5
(signed word) mul8s_error::ms#6
(const string) mul8s_error::str[] = (string) "signed multiply mismatch "
(const string) mul8s_error::str1[] = (string) "*"
(const string) mul8s_error::str2[] = (string) " slow:"
(const string) mul8s_error::str3[] = (string) " / normal:"
(const string) mul8s_error::str4[] = (string) " / fast:"
(const byte*) mul8s_error::str[(byte) $1a] = (string) "signed multiply mismatch "
(const byte*) mul8s_error::str1[(byte) 2] = (string) "*"
(const byte*) mul8s_error::str2[(byte) 7] = (string) " slow:"
(const byte*) mul8s_error::str3[(byte) $b] = (string) " / normal:"
(const byte*) mul8s_error::str4[(byte) 9] = (string) " / fast:"
(word()) mul8u((byte) mul8u::a , (byte) mul8u::b)
(bool~) mul8u::$0
(number~) mul8u::$1
@ -2046,7 +2046,7 @@ SYMBOL TABLE SSA
(byte) mul8u_compare::ok#2
(byte) mul8u_compare::ok#3
(byte) mul8u_compare::ok#4
(const string) mul8u_compare::str[] = (string) "multiply results match!"
(const byte*) mul8u_compare::str[(byte) $18] = (string) "multiply results match!"
(void()) mul8u_error((byte) mul8u_error::a , (byte) mul8u_error::b , (word) mul8u_error::ms , (word) mul8u_error::mn , (word) mul8u_error::mf)
(label) mul8u_error::@1
(label) mul8u_error::@10
@ -2100,11 +2100,11 @@ SYMBOL TABLE SSA
(word) mul8u_error::ms#4
(word) mul8u_error::ms#5
(word) mul8u_error::ms#6
(const string) mul8u_error::str[] = (string) "multiply mismatch "
(const string) mul8u_error::str1[] = (string) "*"
(const string) mul8u_error::str2[] = (string) " slow:"
(const string) mul8u_error::str3[] = (string) " / normal:"
(const string) mul8u_error::str4[] = (string) " / fast:"
(const byte*) mul8u_error::str[(byte) $13] = (string) "multiply mismatch "
(const byte*) mul8u_error::str1[(byte) 2] = (string) "*"
(const byte*) mul8u_error::str2[(byte) 7] = (string) " slow:"
(const byte*) mul8u_error::str3[(byte) $b] = (string) " / normal:"
(const byte*) mul8u_error::str4[(byte) 9] = (string) " / fast:"
(const byte*) mula_sqr1_hi[(number) $200] = { fill( $200, 0) }
(const byte*) mula_sqr1_lo[(number) $200] = { fill( $200, 0) }
(const byte*) mula_sqr2_hi[(number) $200] = { fill( $200, 0) }
@ -2348,9 +2348,9 @@ SYMBOL TABLE SSA
(byte*) mulf_tables_cmp::kc_sqr#6
(byte*) mulf_tables_cmp::kc_sqr#7
(byte*) mulf_tables_cmp::kc_sqr#8
(const string) mulf_tables_cmp::str[] = (string) "multiply tables match!"
(const string) mulf_tables_cmp::str1[] = (string) "multiply table mismatch at "
(const string) mulf_tables_cmp::str2[] = (string) " / "
(const byte*) mulf_tables_cmp::str[(byte) $17] = (string) "multiply tables match!"
(const byte*) mulf_tables_cmp::str1[(byte) $1c] = (string) "multiply table mismatch at "
(const byte*) mulf_tables_cmp::str2[(byte) 4] = (string) " / "
(signed word()) muls8s((signed byte) muls8s::a , (signed byte) muls8s::b)
(bool~) muls8s::$0
(bool~) muls8s::$1
@ -3571,6 +3571,10 @@ Constant (const void*) memset::return#2 = memset::str#0
Successful SSA optimization Pass2ConstantIdentification
if() condition always false - eliminating [3] if((const word) memset::num#0<=(byte) 0) goto memset::@1
Successful SSA optimization Pass2ConstantIfs
Consolidated constant strings into (const string) str1
Consolidated constant strings into (const string) str2
Consolidated constant strings into (const string) str3
Consolidated constant strings into (const string) str4
Successful SSA optimization Pass2ConstantStringConsolidation
Resolved ranged next value [495] mul8u_compare::b#1 ← ++ mul8u_compare::b#10 to ++
Resolved ranged comparison value [497] if(mul8u_compare::b#1!=rangelast(0,$ff)) goto mul8u_compare::@2 to (number) 0
@ -3672,20 +3676,20 @@ Constant inlined mul8u::res#0 = (word) 0
Constant inlined mulf_init::sqr1_hi#0 = (const byte*) mulf_sqr1_hi+(byte) 1
Constant inlined mul8s_compare::ok#2 = (byte) 0
Constant inlined mulf_init::sqr1_lo#0 = (const byte*) mulf_sqr1_lo+(byte) 1
Constant inlined print_str::str#4 = (const string) mul8u_compare::str
Constant inlined print_str::str#3 = (const string) mulf_tables_cmp::str2
Constant inlined print_str::str#2 = (const string) mulf_tables_cmp::str1
Constant inlined print_str::str#4 = (const byte*) mul8u_compare::str
Constant inlined print_str::str#3 = (const byte*) mulf_tables_cmp::str2
Constant inlined print_str::str#2 = (const byte*) mulf_tables_cmp::str1
Constant inlined memset::dst#0 = (byte*)(const void*) memset::str#0
Constant inlined print_str::str#1 = (const string) mulf_tables_cmp::str
Constant inlined print_str::str#1 = (const byte*) mulf_tables_cmp::str
Constant inlined print_str::str#8 = (const string) str3
Constant inlined print_str::str#7 = (const string) str2
Constant inlined print_str::str#6 = (const string) str1
Constant inlined print_str::str#5 = (const string) mul8u_error::str
Constant inlined print_str::str#5 = (const byte*) mul8u_error::str
Constant inlined mulf_init::c#0 = (byte) 0
Constant inlined print_str::str#13 = (const string) str2
Constant inlined print_str::str#12 = (const string) str1
Constant inlined print_str::str#11 = (const string) mul8s_error::str
Constant inlined print_str::str#10 = (const string) mul8s_compare::str
Constant inlined print_str::str#11 = (const byte*) mul8s_error::str
Constant inlined print_str::str#10 = (const byte*) mul8s_compare::str
Constant inlined print_str::str#15 = (const string) str4
Constant inlined print_str::str#14 = (const string) str3
Constant inlined mul8u_compare::a#0 = (byte) 0
@ -4304,7 +4308,7 @@ print_byte::@return: scope:[print_byte] from print_byte::@1
(void()) print_str((byte*) print_str::str)
print_str: scope:[print_str] from mul8s_compare::@2 mul8s_error mul8s_error::@2 mul8s_error::@4 mul8s_error::@6 mul8s_error::@8 mul8u_compare::@9 mul8u_error mul8u_error::@2 mul8u_error::@4 mul8u_error::@6 mul8u_error::@8 mulf_tables_cmp::@3 mulf_tables_cmp::@5 mulf_tables_cmp::@9
[114] (byte*) print_char_cursor#155 ← phi( mul8s_compare::@2/(byte*) print_char_cursor#189 mul8s_error/(byte*) print_char_cursor#190 mul8s_error::@2/(byte*) print_char_cursor#19 mul8s_error::@4/(byte*) print_char_cursor#19 mul8s_error::@6/(byte*) print_char_cursor#19 mul8s_error::@8/(byte*) print_char_cursor#19 mul8u_compare::@9/(byte*) print_char_cursor#100 mul8u_error/(byte*) print_char_cursor#100 mul8u_error::@2/(byte*) print_char_cursor#19 mul8u_error::@4/(byte*) print_char_cursor#19 mul8u_error::@6/(byte*) print_char_cursor#19 mul8u_error::@8/(byte*) print_char_cursor#19 mulf_tables_cmp::@9/(byte*) print_char_cursor#19 mulf_tables_cmp::@3/(byte*) 1024 mulf_tables_cmp::@5/(byte*) 1024 )
[114] (byte*) print_str::str#18 ← phi( mul8s_compare::@2/(const string) mul8s_compare::str mul8s_error/(const string) mul8s_error::str mul8s_error::@2/(const string) str1 mul8s_error::@4/(const string) str2 mul8s_error::@6/(const string) str3 mul8s_error::@8/(const string) str4 mul8u_compare::@9/(const string) mul8u_compare::str mul8u_error/(const string) mul8u_error::str mul8u_error::@2/(const string) str1 mul8u_error::@4/(const string) str2 mul8u_error::@6/(const string) str3 mul8u_error::@8/(const string) str4 mulf_tables_cmp::@9/(const string) mulf_tables_cmp::str2 mulf_tables_cmp::@3/(const string) mulf_tables_cmp::str mulf_tables_cmp::@5/(const string) mulf_tables_cmp::str1 )
[114] (byte*) print_str::str#18 ← phi( mul8s_compare::@2/(const byte*) mul8s_compare::str mul8s_error/(const byte*) mul8s_error::str mul8s_error::@2/(const string) str1 mul8s_error::@4/(const string) str2 mul8s_error::@6/(const string) str3 mul8s_error::@8/(const string) str4 mul8u_compare::@9/(const byte*) mul8u_compare::str mul8u_error/(const byte*) mul8u_error::str mul8u_error::@2/(const string) str1 mul8u_error::@4/(const string) str2 mul8u_error::@6/(const string) str3 mul8u_error::@8/(const string) str4 mulf_tables_cmp::@9/(const byte*) mulf_tables_cmp::str2 mulf_tables_cmp::@3/(const byte*) mulf_tables_cmp::str mulf_tables_cmp::@5/(const byte*) mulf_tables_cmp::str1 )
to:print_str::@1
print_str::@1: scope:[print_str] from print_str print_str::@2
[115] (byte*) print_char_cursor#134 ← phi( print_str/(byte*) print_char_cursor#155 print_str::@2/(byte*) print_char_cursor#1 )
@ -5500,7 +5504,7 @@ mul8s_compare: {
// [114] phi from mul8s_compare::@2 to print_str [phi:mul8s_compare::@2->print_str]
print_str_from___b2:
// [114] phi (byte*) print_char_cursor#155 = (byte*) print_char_cursor#189 [phi:mul8s_compare::@2->print_str#0] -- register_copy
// [114] phi (byte*) print_str::str#18 = (const string) mul8s_compare::str [phi:mul8s_compare::@2->print_str#1] -- pbuz1=pbuc1
// [114] phi (byte*) print_str::str#18 = (const byte*) mul8s_compare::str [phi:mul8s_compare::@2->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -5719,7 +5723,7 @@ mul8s_error: {
// [114] phi from mul8s_error to print_str [phi:mul8s_error->print_str]
print_str_from_mul8s_error:
// [114] phi (byte*) print_char_cursor#155 = (byte*) print_char_cursor#190 [phi:mul8s_error->print_str#0] -- register_copy
// [114] phi (byte*) print_str::str#18 = (const string) mul8s_error::str [phi:mul8s_error->print_str#1] -- pbuz1=pbuc1
// [114] phi (byte*) print_str::str#18 = (const byte*) mul8s_error::str [phi:mul8s_error->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -6879,7 +6883,7 @@ mul8u_compare: {
// [114] phi from mul8u_compare::@9 to print_str [phi:mul8u_compare::@9->print_str]
print_str_from___b9:
// [114] phi (byte*) print_char_cursor#155 = (byte*) print_char_cursor#100 [phi:mul8u_compare::@9->print_str#0] -- register_copy
// [114] phi (byte*) print_str::str#18 = (const string) mul8u_compare::str [phi:mul8u_compare::@9->print_str#1] -- pbuz1=pbuc1
// [114] phi (byte*) print_str::str#18 = (const byte*) mul8u_compare::str [phi:mul8u_compare::@9->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -6912,7 +6916,7 @@ mul8u_error: {
// [114] phi from mul8u_error to print_str [phi:mul8u_error->print_str]
print_str_from_mul8u_error:
// [114] phi (byte*) print_char_cursor#155 = (byte*) print_char_cursor#100 [phi:mul8u_error->print_str#0] -- register_copy
// [114] phi (byte*) print_str::str#18 = (const string) mul8u_error::str [phi:mul8u_error->print_str#1] -- pbuz1=pbuc1
// [114] phi (byte*) print_str::str#18 = (const byte*) mul8u_error::str [phi:mul8u_error->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -7221,7 +7225,7 @@ mulf_tables_cmp: {
sta.z print_char_cursor
lda #>$400
sta.z print_char_cursor+1
// [114] phi (byte*) print_str::str#18 = (const string) mulf_tables_cmp::str [phi:mulf_tables_cmp::@3->print_str#1] -- pbuz1=pbuc1
// [114] phi (byte*) print_str::str#18 = (const byte*) mulf_tables_cmp::str [phi:mulf_tables_cmp::@3->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -7281,7 +7285,7 @@ mulf_tables_cmp: {
sta.z print_char_cursor
lda #>$400
sta.z print_char_cursor+1
// [114] phi (byte*) print_str::str#18 = (const string) mulf_tables_cmp::str1 [phi:mulf_tables_cmp::@5->print_str#1] -- pbuz1=pbuc1
// [114] phi (byte*) print_str::str#18 = (const byte*) mulf_tables_cmp::str1 [phi:mulf_tables_cmp::@5->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -7310,7 +7314,7 @@ mulf_tables_cmp: {
// [114] phi from mulf_tables_cmp::@9 to print_str [phi:mulf_tables_cmp::@9->print_str]
print_str_from___b9:
// [114] phi (byte*) print_char_cursor#155 = (byte*) print_char_cursor#19 [phi:mulf_tables_cmp::@9->print_str#0] -- register_copy
// [114] phi (byte*) print_str::str#18 = (const string) mulf_tables_cmp::str2 [phi:mulf_tables_cmp::@9->print_str#1] -- pbuz1=pbuc1
// [114] phi (byte*) print_str::str#18 = (const byte*) mulf_tables_cmp::str2 [phi:mulf_tables_cmp::@9->print_str#1] -- pbuz1=pbuc1
lda #<str2
sta.z print_str.str
lda #>str2
@ -8336,7 +8340,7 @@ mul8s_compare: {
// [114] phi from mul8s_compare::@2 to print_str [phi:mul8s_compare::@2->print_str]
print_str_from___b2:
// [114] phi (byte*) print_char_cursor#155 = (byte*) print_char_cursor#189 [phi:mul8s_compare::@2->print_str#0] -- register_copy
// [114] phi (byte*) print_str::str#18 = (const string) mul8s_compare::str [phi:mul8s_compare::@2->print_str#1] -- pbuz1=pbuc1
// [114] phi (byte*) print_str::str#18 = (const byte*) mul8s_compare::str [phi:mul8s_compare::@2->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -8507,7 +8511,7 @@ mul8s_error: {
// [114] phi from mul8s_error to print_str [phi:mul8s_error->print_str]
print_str_from_mul8s_error:
// [114] phi (byte*) print_char_cursor#155 = (byte*) print_char_cursor#190 [phi:mul8s_error->print_str#0] -- register_copy
// [114] phi (byte*) print_str::str#18 = (const string) mul8s_error::str [phi:mul8s_error->print_str#1] -- pbuz1=pbuc1
// [114] phi (byte*) print_str::str#18 = (const byte*) mul8s_error::str [phi:mul8s_error->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -9514,7 +9518,7 @@ mul8u_compare: {
// [114] phi from mul8u_compare::@9 to print_str [phi:mul8u_compare::@9->print_str]
print_str_from___b9:
// [114] phi (byte*) print_char_cursor#155 = (byte*) print_char_cursor#100 [phi:mul8u_compare::@9->print_str#0] -- register_copy
// [114] phi (byte*) print_str::str#18 = (const string) mul8u_compare::str [phi:mul8u_compare::@9->print_str#1] -- pbuz1=pbuc1
// [114] phi (byte*) print_str::str#18 = (const byte*) mul8u_compare::str [phi:mul8u_compare::@9->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -9546,7 +9550,7 @@ mul8u_error: {
// [114] phi from mul8u_error to print_str [phi:mul8u_error->print_str]
print_str_from_mul8u_error:
// [114] phi (byte*) print_char_cursor#155 = (byte*) print_char_cursor#100 [phi:mul8u_error->print_str#0] -- register_copy
// [114] phi (byte*) print_str::str#18 = (const string) mul8u_error::str [phi:mul8u_error->print_str#1] -- pbuz1=pbuc1
// [114] phi (byte*) print_str::str#18 = (const byte*) mul8u_error::str [phi:mul8u_error->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -9828,7 +9832,7 @@ mulf_tables_cmp: {
sta.z print_char_cursor
lda #>$400
sta.z print_char_cursor+1
// [114] phi (byte*) print_str::str#18 = (const string) mulf_tables_cmp::str [phi:mulf_tables_cmp::@3->print_str#1] -- pbuz1=pbuc1
// [114] phi (byte*) print_str::str#18 = (const byte*) mulf_tables_cmp::str [phi:mulf_tables_cmp::@3->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -9888,7 +9892,7 @@ mulf_tables_cmp: {
sta.z print_char_cursor
lda #>$400
sta.z print_char_cursor+1
// [114] phi (byte*) print_str::str#18 = (const string) mulf_tables_cmp::str1 [phi:mulf_tables_cmp::@5->print_str#1] -- pbuz1=pbuc1
// [114] phi (byte*) print_str::str#18 = (const byte*) mulf_tables_cmp::str1 [phi:mulf_tables_cmp::@5->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -9913,7 +9917,7 @@ mulf_tables_cmp: {
// [114] phi from mulf_tables_cmp::@9 to print_str [phi:mulf_tables_cmp::@9->print_str]
print_str_from___b9:
// [114] phi (byte*) print_char_cursor#155 = (byte*) print_char_cursor#19 [phi:mulf_tables_cmp::@9->print_str#0] -- register_copy
// [114] phi (byte*) print_str::str#18 = (const string) mulf_tables_cmp::str2 [phi:mulf_tables_cmp::@9->print_str#1] -- pbuz1=pbuc1
// [114] phi (byte*) print_str::str#18 = (const byte*) mulf_tables_cmp::str2 [phi:mulf_tables_cmp::@9->print_str#1] -- pbuz1=pbuc1
lda #<str2
sta.z print_str.str
lda #>str2
@ -10868,7 +10872,7 @@ FINAL SYMBOL TABLE
(byte) mul8s_compare::ok
(byte) mul8s_compare::ok#3 reg byte x 202.0
(byte) mul8s_compare::ok#4 reg byte x 33.666666666666664
(const string) mul8s_compare::str[] = (string) "signed multiply results match!"
(const byte*) mul8s_compare::str[(byte) $1f] = (string) "signed multiply results match!"
(void()) mul8s_error((signed byte) mul8s_error::a , (signed byte) mul8s_error::b , (signed word) mul8s_error::ms , (signed word) mul8s_error::mn , (signed word) mul8s_error::mf)
(label) mul8s_error::@1
(label) mul8s_error::@10
@ -10891,7 +10895,7 @@ FINAL SYMBOL TABLE
(signed word) mul8s_error::mn#0 mn zp[2]:8 0.25
(signed word) mul8s_error::ms
(signed word) mul8s_error::ms#0 ms zp[2]:4 0.3076923076923077
(const string) mul8s_error::str[] = (string) "signed multiply mismatch "
(const byte*) mul8s_error::str[(byte) $1a] = (string) "signed multiply mismatch "
(word()) mul8u((byte) mul8u::a , (byte) mul8u::b)
(byte~) mul8u::$1 reg byte a 2002.0
(label) mul8u::@1
@ -10951,7 +10955,7 @@ FINAL SYMBOL TABLE
(byte) mul8u_compare::ok
(byte) mul8u_compare::ok#3 reg byte x 202.0
(byte) mul8u_compare::ok#4 reg byte x 33.666666666666664
(const string) mul8u_compare::str[] = (string) "multiply results match!"
(const byte*) mul8u_compare::str[(byte) $18] = (string) "multiply results match!"
(void()) mul8u_error((byte) mul8u_error::a , (byte) mul8u_error::b , (word) mul8u_error::ms , (word) mul8u_error::mn , (word) mul8u_error::mf)
(label) mul8u_error::@1
(label) mul8u_error::@10
@ -10974,7 +10978,7 @@ FINAL SYMBOL TABLE
(word) mul8u_error::mn#0 mn zp[2]:8 0.25
(word) mul8u_error::ms
(word) mul8u_error::ms#0 ms zp[2]:4 0.3076923076923077
(const string) mul8u_error::str[] = (string) "multiply mismatch "
(const byte*) mul8u_error::str[(byte) $13] = (string) "multiply mismatch "
(const byte*) mula_sqr1_hi[(number) $200] = { fill( $200, 0) }
(const byte*) mula_sqr1_lo[(number) $200] = { fill( $200, 0) }
(const byte*) mula_sqr2_hi[(number) $200] = { fill( $200, 0) }
@ -11112,9 +11116,9 @@ FINAL SYMBOL TABLE
(byte*) mulf_tables_cmp::kc_sqr
(byte*) mulf_tables_cmp::kc_sqr#1 kc_sqr zp[2]:2 22.0
(byte*) mulf_tables_cmp::kc_sqr#2 kc_sqr zp[2]:2 4.4
(const string) mulf_tables_cmp::str[] = (string) "multiply tables match!"
(const string) mulf_tables_cmp::str1[] = (string) "multiply table mismatch at "
(const string) mulf_tables_cmp::str2[] = (string) " / "
(const byte*) mulf_tables_cmp::str[(byte) $17] = (string) "multiply tables match!"
(const byte*) mulf_tables_cmp::str1[(byte) $1c] = (string) "multiply table mismatch at "
(const byte*) mulf_tables_cmp::str2[(byte) 4] = (string) " / "
(signed word()) muls8s((signed byte) muls8s::a , (signed byte) muls8s::b)
(label) muls8s::@1
(label) muls8s::@2
@ -11390,7 +11394,7 @@ mul8s_compare: {
// [21] call print_str
// [114] phi from mul8s_compare::@2 to print_str [phi:mul8s_compare::@2->print_str]
// [114] phi (byte*) print_char_cursor#155 = (byte*) print_char_cursor#189 [phi:mul8s_compare::@2->print_str#0] -- register_copy
// [114] phi (byte*) print_str::str#18 = (const string) mul8s_compare::str [phi:mul8s_compare::@2->print_str#1] -- pbuz1=pbuc1
// [114] phi (byte*) print_str::str#18 = (const byte*) mul8s_compare::str [phi:mul8s_compare::@2->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -11546,7 +11550,7 @@ mul8s_error: {
// [58] call print_str
// [114] phi from mul8s_error to print_str [phi:mul8s_error->print_str]
// [114] phi (byte*) print_char_cursor#155 = (byte*) print_char_cursor#190 [phi:mul8s_error->print_str#0] -- register_copy
// [114] phi (byte*) print_str::str#18 = (const string) mul8s_error::str [phi:mul8s_error->print_str#1] -- pbuz1=pbuc1
// [114] phi (byte*) print_str::str#18 = (const byte*) mul8s_error::str [phi:mul8s_error->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -12453,7 +12457,7 @@ mul8u_compare: {
// [240] call print_str
// [114] phi from mul8u_compare::@9 to print_str [phi:mul8u_compare::@9->print_str]
// [114] phi (byte*) print_char_cursor#155 = (byte*) print_char_cursor#100 [phi:mul8u_compare::@9->print_str#0] -- register_copy
// [114] phi (byte*) print_str::str#18 = (const string) mul8u_compare::str [phi:mul8u_compare::@9->print_str#1] -- pbuz1=pbuc1
// [114] phi (byte*) print_str::str#18 = (const byte*) mul8u_compare::str [phi:mul8u_compare::@9->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -12482,7 +12486,7 @@ mul8u_error: {
// [244] call print_str
// [114] phi from mul8u_error to print_str [phi:mul8u_error->print_str]
// [114] phi (byte*) print_char_cursor#155 = (byte*) print_char_cursor#100 [phi:mul8u_error->print_str#0] -- register_copy
// [114] phi (byte*) print_str::str#18 = (const string) mul8u_error::str [phi:mul8u_error->print_str#1] -- pbuz1=pbuc1
// [114] phi (byte*) print_str::str#18 = (const byte*) mul8u_error::str [phi:mul8u_error->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -12725,7 +12729,7 @@ mulf_tables_cmp: {
sta.z print_char_cursor
lda #>$400
sta.z print_char_cursor+1
// [114] phi (byte*) print_str::str#18 = (const string) mulf_tables_cmp::str [phi:mulf_tables_cmp::@3->print_str#1] -- pbuz1=pbuc1
// [114] phi (byte*) print_str::str#18 = (const byte*) mulf_tables_cmp::str [phi:mulf_tables_cmp::@3->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -12777,7 +12781,7 @@ mulf_tables_cmp: {
sta.z print_char_cursor
lda #>$400
sta.z print_char_cursor+1
// [114] phi (byte*) print_str::str#18 = (const string) mulf_tables_cmp::str1 [phi:mulf_tables_cmp::@5->print_str#1] -- pbuz1=pbuc1
// [114] phi (byte*) print_str::str#18 = (const byte*) mulf_tables_cmp::str1 [phi:mulf_tables_cmp::@5->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -12797,7 +12801,7 @@ mulf_tables_cmp: {
// [296] call print_str
// [114] phi from mulf_tables_cmp::@9 to print_str [phi:mulf_tables_cmp::@9->print_str]
// [114] phi (byte*) print_char_cursor#155 = (byte*) print_char_cursor#19 [phi:mulf_tables_cmp::@9->print_str#0] -- register_copy
// [114] phi (byte*) print_str::str#18 = (const string) mulf_tables_cmp::str2 [phi:mulf_tables_cmp::@9->print_str#1] -- pbuz1=pbuc1
// [114] phi (byte*) print_str::str#18 = (const byte*) mulf_tables_cmp::str2 [phi:mulf_tables_cmp::@9->print_str#1] -- pbuz1=pbuc1
lda #<str2
sta.z print_str.str
lda #>str2

@ -83,7 +83,7 @@
(byte) mul8s_compare::ok
(byte) mul8s_compare::ok#3 reg byte x 202.0
(byte) mul8s_compare::ok#4 reg byte x 33.666666666666664
(const string) mul8s_compare::str[] = (string) "signed multiply results match!"
(const byte*) mul8s_compare::str[(byte) $1f] = (string) "signed multiply results match!"
(void()) mul8s_error((signed byte) mul8s_error::a , (signed byte) mul8s_error::b , (signed word) mul8s_error::ms , (signed word) mul8s_error::mn , (signed word) mul8s_error::mf)
(label) mul8s_error::@1
(label) mul8s_error::@10
@ -106,7 +106,7 @@
(signed word) mul8s_error::mn#0 mn zp[2]:8 0.25
(signed word) mul8s_error::ms
(signed word) mul8s_error::ms#0 ms zp[2]:4 0.3076923076923077
(const string) mul8s_error::str[] = (string) "signed multiply mismatch "
(const byte*) mul8s_error::str[(byte) $1a] = (string) "signed multiply mismatch "
(word()) mul8u((byte) mul8u::a , (byte) mul8u::b)
(byte~) mul8u::$1 reg byte a 2002.0
(label) mul8u::@1
@ -166,7 +166,7 @@
(byte) mul8u_compare::ok
(byte) mul8u_compare::ok#3 reg byte x 202.0
(byte) mul8u_compare::ok#4 reg byte x 33.666666666666664
(const string) mul8u_compare::str[] = (string) "multiply results match!"
(const byte*) mul8u_compare::str[(byte) $18] = (string) "multiply results match!"
(void()) mul8u_error((byte) mul8u_error::a , (byte) mul8u_error::b , (word) mul8u_error::ms , (word) mul8u_error::mn , (word) mul8u_error::mf)
(label) mul8u_error::@1
(label) mul8u_error::@10
@ -189,7 +189,7 @@
(word) mul8u_error::mn#0 mn zp[2]:8 0.25
(word) mul8u_error::ms
(word) mul8u_error::ms#0 ms zp[2]:4 0.3076923076923077
(const string) mul8u_error::str[] = (string) "multiply mismatch "
(const byte*) mul8u_error::str[(byte) $13] = (string) "multiply mismatch "
(const byte*) mula_sqr1_hi[(number) $200] = { fill( $200, 0) }
(const byte*) mula_sqr1_lo[(number) $200] = { fill( $200, 0) }
(const byte*) mula_sqr2_hi[(number) $200] = { fill( $200, 0) }
@ -327,9 +327,9 @@
(byte*) mulf_tables_cmp::kc_sqr
(byte*) mulf_tables_cmp::kc_sqr#1 kc_sqr zp[2]:2 22.0
(byte*) mulf_tables_cmp::kc_sqr#2 kc_sqr zp[2]:2 4.4
(const string) mulf_tables_cmp::str[] = (string) "multiply tables match!"
(const string) mulf_tables_cmp::str1[] = (string) "multiply table mismatch at "
(const string) mulf_tables_cmp::str2[] = (string) " / "
(const byte*) mulf_tables_cmp::str[(byte) $17] = (string) "multiply tables match!"
(const byte*) mulf_tables_cmp::str1[(byte) $1c] = (string) "multiply table mismatch at "
(const byte*) mulf_tables_cmp::str2[(byte) 4] = (string) " / "
(signed word()) muls8s((signed byte) muls8s::a , (signed byte) muls8s::b)
(label) muls8s::@1
(label) muls8s::@2

@ -43,7 +43,7 @@ main::@5: scope:[main] from main::@2
print_str_ln: scope:[print_str_ln] from game_ready::@1 main::@3
[16] (byte*) print_line_cursor#22 ← phi( game_ready::@1/(byte*) print_line_cursor#24 main::@3/(byte*) print_line_cursor#14 )
[16] (byte*) print_char_cursor#27 ← phi( game_ready::@1/(byte*) print_char_cursor#30 main::@3/(byte*) print_char_cursor#41 )
[16] (byte*) print_str_ln::str#2 ← phi( game_ready::@1/(const string) game_ready::str main::@3/(const string) main::str )
[16] (byte*) print_str_ln::str#2 ← phi( game_ready::@1/(const byte*) game_ready::str main::@3/(const byte*) main::str )
[17] (byte*) print_str::str#0 ← (byte*) print_str_ln::str#2
[18] call print_str
to:print_str_ln::@1

@ -187,7 +187,7 @@ main::@3: scope:[main] from main::@5
(byte) main::i#6 ← phi( main::@5/(byte) main::i#3 )
(byte*) print_line_cursor#25 ← phi( main::@5/(byte*) print_line_cursor#5 )
(byte*) print_char_cursor#31 ← phi( main::@5/(byte*) print_char_cursor#8 )
(byte*) print_str_ln::str#0 ← (const string) main::str
(byte*) print_str_ln::str#0 ← (const byte*) main::str
call print_str_ln
to:main::@6
main::@6: scope:[main] from main::@3
@ -221,7 +221,7 @@ game_ready::@1: scope:[game_ready] from game_ready game_ready::@2
(byte) action_count#15 ← phi( game_ready/(byte) action_count#9 game_ready::@2/(byte) action_count#4 )
(byte*) print_line_cursor#27 ← phi( game_ready/(byte*) print_line_cursor#31 game_ready::@2/(byte*) print_line_cursor#32 )
(byte*) print_char_cursor#33 ← phi( game_ready/(byte*) print_char_cursor#37 game_ready::@2/(byte*) print_char_cursor#38 )
(byte*) print_str_ln::str#1 ← (const string) game_ready::str
(byte*) print_str_ln::str#1 ← (const byte*) game_ready::str
call print_str_ln
to:game_ready::@4
game_ready::@4: scope:[game_ready] from game_ready::@1
@ -313,7 +313,7 @@ SYMBOL TABLE SSA
(bool) game_ready::return#2
(bool) game_ready::return#3
(bool) game_ready::return#4
(const string) game_ready::str[] = (string) "ready"
(const byte*) game_ready::str[(byte) 6] = (string) "ready"
(void()) main()
(bool~) main::$0
(bool~) main::$1
@ -332,7 +332,7 @@ SYMBOL TABLE SSA
(byte) main::i#4
(byte) main::i#5
(byte) main::i#6
(const string) main::str[] = (string) "ready!"
(const byte*) main::str[(byte) 7] = (string) "ready!"
(byte*) print_char_cursor
(byte*) print_char_cursor#0
(byte*) print_char_cursor#1
@ -547,9 +547,9 @@ Inlining constant with var siblings (const byte*) print_char_cursor#0
Inlining constant with var siblings (const byte) action_count#0
Inlining constant with var siblings (const byte) action_count#4
Constant inlined action_count#4 = (const byte) READY_FRAMES
Constant inlined print_str_ln::str#1 = (const string) game_ready::str
Constant inlined print_str_ln::str#1 = (const byte*) game_ready::str
Constant inlined main::i#0 = (byte) 0
Constant inlined print_str_ln::str#0 = (const string) main::str
Constant inlined print_str_ln::str#0 = (const byte*) main::str
Constant inlined print_char_cursor#0 = (byte*) 1024
Constant inlined action_count#0 = (byte) 0
Successful SSA optimization Pass2ConstantInlining
@ -659,7 +659,7 @@ main::@5: scope:[main] from main::@2
print_str_ln: scope:[print_str_ln] from game_ready::@1 main::@3
[16] (byte*) print_line_cursor#22 ← phi( game_ready::@1/(byte*) print_line_cursor#24 main::@3/(byte*) print_line_cursor#14 )
[16] (byte*) print_char_cursor#27 ← phi( game_ready::@1/(byte*) print_char_cursor#30 main::@3/(byte*) print_char_cursor#41 )
[16] (byte*) print_str_ln::str#2 ← phi( game_ready::@1/(const string) game_ready::str main::@3/(const string) main::str )
[16] (byte*) print_str_ln::str#2 ← phi( game_ready::@1/(const byte*) game_ready::str main::@3/(const byte*) main::str )
[17] (byte*) print_str::str#0 ← (byte*) print_str_ln::str#2
[18] call print_str
to:print_str_ln::@1
@ -871,7 +871,7 @@ main: {
print_str_ln_from___b3:
// [16] phi (byte*) print_line_cursor#22 = (byte*) print_line_cursor#14 [phi:main::@3->print_str_ln#0] -- register_copy
// [16] phi (byte*) print_char_cursor#27 = (byte*) print_char_cursor#41 [phi:main::@3->print_str_ln#1] -- register_copy
// [16] phi (byte*) print_str_ln::str#2 = (const string) main::str [phi:main::@3->print_str_ln#2] -- pbuz1=pbuc1
// [16] phi (byte*) print_str_ln::str#2 = (const byte*) main::str [phi:main::@3->print_str_ln#2] -- pbuz1=pbuc1
lda #<str
sta.z print_str_ln.str
lda #>str
@ -1042,7 +1042,7 @@ game_ready: {
print_str_ln_from___b1:
// [16] phi (byte*) print_line_cursor#22 = (byte*) print_line_cursor#24 [phi:game_ready::@1->print_str_ln#0] -- register_copy
// [16] phi (byte*) print_char_cursor#27 = (byte*) print_char_cursor#30 [phi:game_ready::@1->print_str_ln#1] -- register_copy
// [16] phi (byte*) print_str_ln::str#2 = (const string) game_ready::str [phi:game_ready::@1->print_str_ln#2] -- pbuz1=pbuc1
// [16] phi (byte*) print_str_ln::str#2 = (const byte*) game_ready::str [phi:game_ready::@1->print_str_ln#2] -- pbuz1=pbuc1
lda #<str
sta.z print_str_ln.str
lda #>str
@ -1196,7 +1196,7 @@ main: {
print_str_ln_from___b3:
// [16] phi (byte*) print_line_cursor#22 = (byte*) print_line_cursor#14 [phi:main::@3->print_str_ln#0] -- register_copy
// [16] phi (byte*) print_char_cursor#27 = (byte*) print_char_cursor#41 [phi:main::@3->print_str_ln#1] -- register_copy
// [16] phi (byte*) print_str_ln::str#2 = (const string) main::str [phi:main::@3->print_str_ln#2] -- pbuz1=pbuc1
// [16] phi (byte*) print_str_ln::str#2 = (const byte*) main::str [phi:main::@3->print_str_ln#2] -- pbuz1=pbuc1
lda #<str
sta.z print_str_ln.str
lda #>str
@ -1359,7 +1359,7 @@ game_ready: {
print_str_ln_from___b1:
// [16] phi (byte*) print_line_cursor#22 = (byte*) print_line_cursor#24 [phi:game_ready::@1->print_str_ln#0] -- register_copy
// [16] phi (byte*) print_char_cursor#27 = (byte*) print_char_cursor#30 [phi:game_ready::@1->print_str_ln#1] -- register_copy
// [16] phi (byte*) print_str_ln::str#2 = (const string) game_ready::str [phi:game_ready::@1->print_str_ln#2] -- pbuz1=pbuc1
// [16] phi (byte*) print_str_ln::str#2 = (const byte*) game_ready::str [phi:game_ready::@1->print_str_ln#2] -- pbuz1=pbuc1
lda #<str
sta.z print_str_ln.str
lda #>str
@ -1471,7 +1471,7 @@ FINAL SYMBOL TABLE
(bool) game_ready::return
(bool) game_ready::return#0 reg byte a 22.0
(bool) game_ready::return#1 reg byte a 4.333333333333333
(const string) game_ready::str[] = (string) "ready"
(const byte*) game_ready::str[(byte) 6] = (string) "ready"
(void()) main()
(bool~) main::$0 reg byte a 22.0
(label) main::@1
@ -1483,7 +1483,7 @@ FINAL SYMBOL TABLE
(byte) main::i
(byte) main::i#1 i zp[1]:2 11.0
(byte) main::i#2 i zp[1]:2 3.142857142857143
(const string) main::str[] = (string) "ready!"
(const byte*) main::str[(byte) 7] = (string) "ready!"
(byte*) print_char_cursor
(byte*) print_char_cursor#17 print_char_cursor zp[2]:7 40.6
(byte*) print_char_cursor#27 print_char_cursor zp[2]:7 5.0
@ -1588,7 +1588,7 @@ main: {
// [16] phi from main::@3 to print_str_ln [phi:main::@3->print_str_ln]
// [16] phi (byte*) print_line_cursor#22 = (byte*) print_line_cursor#14 [phi:main::@3->print_str_ln#0] -- register_copy
// [16] phi (byte*) print_char_cursor#27 = (byte*) print_char_cursor#41 [phi:main::@3->print_str_ln#1] -- register_copy
// [16] phi (byte*) print_str_ln::str#2 = (const string) main::str [phi:main::@3->print_str_ln#2] -- pbuz1=pbuc1
// [16] phi (byte*) print_str_ln::str#2 = (const byte*) main::str [phi:main::@3->print_str_ln#2] -- pbuz1=pbuc1
lda #<str
sta.z print_str_ln.str
lda #>str
@ -1735,7 +1735,7 @@ game_ready: {
// [16] phi from game_ready::@1 to print_str_ln [phi:game_ready::@1->print_str_ln]
// [16] phi (byte*) print_line_cursor#22 = (byte*) print_line_cursor#24 [phi:game_ready::@1->print_str_ln#0] -- register_copy
// [16] phi (byte*) print_char_cursor#27 = (byte*) print_char_cursor#30 [phi:game_ready::@1->print_str_ln#1] -- register_copy
// [16] phi (byte*) print_str_ln::str#2 = (const string) game_ready::str [phi:game_ready::@1->print_str_ln#2] -- pbuz1=pbuc1
// [16] phi (byte*) print_str_ln::str#2 = (const byte*) game_ready::str [phi:game_ready::@1->print_str_ln#2] -- pbuz1=pbuc1
lda #<str
sta.z print_str_ln.str
lda #>str

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