1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-12-27 09:31:18 +00:00

Work in progress: eliminating SymbolType.STRING

This commit is contained in:
jespergravgaard 2020-02-06 22:29:41 +01:00
parent fda0940062
commit a612562dc7
13 changed files with 268 additions and 268 deletions

View File

@ -5,10 +5,8 @@ import dk.camelot64.kickc.model.symbols.ArraySpec;
import dk.camelot64.kickc.model.symbols.ProgramScope;
import dk.camelot64.kickc.model.symbols.Variable;
import dk.camelot64.kickc.model.types.SymbolType;
import dk.camelot64.kickc.model.values.ConstantRef;
import dk.camelot64.kickc.model.values.ConstantString;
import dk.camelot64.kickc.model.values.ConstantValue;
import dk.camelot64.kickc.model.values.ScopeRef;
import dk.camelot64.kickc.model.types.SymbolTypePointer;
import dk.camelot64.kickc.model.values.*;
import java.util.ArrayList;
import java.util.LinkedHashMap;
@ -93,7 +91,9 @@ public class Pass2ConstantStringConsolidation extends Pass2SsaOptimization {
// Create a new root - and roll around again
ProgramScope rootScope = getScope();
String localName = getRootName(constantVars);
Variable newRootConstant = Variable.createConstant(localName, SymbolType.STRING, rootScope, new ArraySpec(), constString, segmentData);
final long stringLength = constString.getStringLength();
final ConstantInteger arraySize = new ConstantInteger(stringLength, stringLength<256?SymbolType.BYTE : SymbolType.WORD);
Variable newRootConstant = Variable.createConstant(localName, new SymbolTypePointer(SymbolType.BYTE), rootScope, new ArraySpec(arraySize), constString, segmentData);
rootScope.add(newRootConstant);
rootConstant = newRootConstant;
}

View File

@ -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 byte*) test_sbytes::msg2 test_sbytes::@3/(const byte*) test_sbytes::msg3 test_sbytes::@4/(const byte*) test_sbytes::msg4 )
[22] (byte*) assert_sbyte::msg#5 ← phi( test_sbytes/(const byte*) msg test_sbytes::@1/(const byte*) 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
@ -85,7 +85,7 @@ assert_sbyte::@1: scope:[assert_sbyte] from assert_sbyte::@5
(void()) print_str((byte*) print_str::str)
print_str: scope:[print_str] from assert_byte assert_byte::@1 assert_byte::@3 assert_byte::@4 assert_sbyte assert_sbyte::@1 assert_sbyte::@3 assert_sbyte::@4
[36] (byte*) print_char_cursor#80 ← phi( assert_byte/(byte*) print_char_cursor#70 assert_byte::@1/(byte*) print_char_cursor#2 assert_byte::@3/(byte*) print_char_cursor#2 assert_byte::@4/(byte*) print_char_cursor#2 assert_sbyte/(byte*) print_char_cursor#85 assert_sbyte::@1/(byte*) print_char_cursor#2 assert_sbyte::@3/(byte*) print_char_cursor#2 assert_sbyte::@4/(byte*) print_char_cursor#2 )
[36] (byte*) print_str::str#11 ← phi( assert_byte/(byte*) print_str::str#1 assert_byte::@1/(const string) str1 assert_byte::@3/(const string) str2 assert_byte::@4/(const string) str assert_sbyte/(byte*) print_str::str#5 assert_sbyte::@1/(const string) str1 assert_sbyte::@3/(const string) str2 assert_sbyte::@4/(const string) str )
[36] (byte*) print_str::str#11 ← phi( assert_byte/(byte*) print_str::str#1 assert_byte::@1/(const byte*) str1 assert_byte::@3/(const byte*) str2 assert_byte::@4/(const byte*) str assert_sbyte/(byte*) print_str::str#5 assert_sbyte::@1/(const byte*) str1 assert_sbyte::@3/(const byte*) str2 assert_sbyte::@4/(const byte*) str )
to:print_str::@1
print_str::@1: scope:[print_str] from print_str print_str::@2
[37] (byte*) print_char_cursor#2 ← phi( print_str/(byte*) print_char_cursor#80 print_str::@2/(byte*) print_char_cursor#1 )
@ -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 byte*) test_bytes::msg2 )
[55] (byte*) assert_byte::msg#3 ← phi( test_bytes/(const byte*) msg test_bytes::@1/(const byte*) 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

View File

@ -1114,11 +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
Consolidated constant strings into (const byte*) msg
Consolidated constant strings into (const byte*) msg1
Consolidated constant strings into (const byte*) str
Consolidated constant strings into (const byte*) str1
Consolidated constant strings into (const byte*) str2
Successful SSA optimization Pass2ConstantStringConsolidation
Simplifying expression containing zero 2 in
Simplifying expression containing zero 2 in
@ -1176,17 +1176,17 @@ Inlining constant with var siblings (const signed byte) assert_sbyte::b#1
Inlining constant with var siblings (const signed byte) assert_sbyte::b#2
Inlining constant with var siblings (const signed byte) assert_sbyte::b#3
Inlining constant with var siblings (const byte*) print_line_cursor#0
Constant inlined test_bytes::msg = (const string) msg
Constant inlined test_sbytes::msg = (const string) msg
Constant inlined test_bytes::msg = (const byte*) msg
Constant inlined test_sbytes::msg = (const byte*) msg
Constant inlined assert_sbyte::b#2 = (const signed byte) test_sbytes::bd#0
Constant inlined assert_sbyte::c#1 = (signed byte) 2
Constant inlined assert_sbyte::b#1 = (const signed byte) test_sbytes::bc#0
Constant inlined assert_sbyte::c#0 = (signed byte) 0
Constant inlined assert_byte::b#0 = (const byte) test_bytes::bb
Constant inlined assert_sbyte::str1 = (const string) str1
Constant inlined assert_sbyte::str1 = (const byte*) str1
Constant inlined assert_sbyte::b#0 = (const signed byte) test_sbytes::bb
Constant inlined assert_byte::b#1 = (const byte) test_bytes::bc#0
Constant inlined assert_sbyte::str2 = (const string) str2
Constant inlined assert_sbyte::str2 = (const byte*) str2
Constant inlined assert_byte::c#0 = (byte) 0
Constant inlined assert_byte::b#2 = (const byte) test_bytes::bd#0
Constant inlined assert_byte::c#1 = (byte) 2
@ -1199,28 +1199,28 @@ Constant inlined test_bytes::$4 = (signed byte)(const byte) test_bytes::bc#0-(si
Constant inlined assert_sbyte::c#3 = (signed byte) 2
Constant inlined assert_sbyte::b#3 = (const signed byte) test_sbytes::be#0
Constant inlined assert_sbyte::c#2 = (signed byte) -2
Constant inlined assert_byte::str2 = (const string) str2
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::str2 = (const byte*) str2
Constant inlined assert_byte::msg#0 = (const byte*) msg
Constant inlined test_sbytes::msg1 = (const byte*) msg1
Constant inlined assert_byte::str1 = (const byte*) str1
Constant inlined assert_byte::msg#1 = (const byte*) msg1
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#0 = (const byte*) msg
Constant inlined assert_sbyte::msg#1 = (const byte*) msg1
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 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::str = (const byte*) str
Constant inlined assert_byte::str = (const byte*) str
Constant inlined test_bytes::msg1 = (const byte*) msg1
Constant inlined print_str::str#4 = (const byte*) str2
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 print_str::str#3 = (const byte*) str1
Constant inlined print_str::str#2 = (const byte*) str
Constant inlined memset::dst#0 = (byte*)(const void*) memset::str#0
Constant inlined print_str::str#8 = (const string) str2
Constant inlined print_str::str#7 = (const string) str1
Constant inlined print_str::str#6 = (const string) str
Constant inlined print_str::str#8 = (const byte*) str2
Constant inlined print_str::str#7 = (const byte*) str1
Constant inlined print_str::str#6 = (const byte*) 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
@ -1385,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 byte*) test_sbytes::msg2 test_sbytes::@3/(const byte*) test_sbytes::msg3 test_sbytes::@4/(const byte*) test_sbytes::msg4 )
[22] (byte*) assert_sbyte::msg#5 ← phi( test_sbytes/(const byte*) msg test_sbytes::@1/(const byte*) 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
@ -1416,7 +1416,7 @@ assert_sbyte::@1: scope:[assert_sbyte] from assert_sbyte::@5
(void()) print_str((byte*) print_str::str)
print_str: scope:[print_str] from assert_byte assert_byte::@1 assert_byte::@3 assert_byte::@4 assert_sbyte assert_sbyte::@1 assert_sbyte::@3 assert_sbyte::@4
[36] (byte*) print_char_cursor#80 ← phi( assert_byte/(byte*) print_char_cursor#70 assert_byte::@1/(byte*) print_char_cursor#2 assert_byte::@3/(byte*) print_char_cursor#2 assert_byte::@4/(byte*) print_char_cursor#2 assert_sbyte/(byte*) print_char_cursor#85 assert_sbyte::@1/(byte*) print_char_cursor#2 assert_sbyte::@3/(byte*) print_char_cursor#2 assert_sbyte::@4/(byte*) print_char_cursor#2 )
[36] (byte*) print_str::str#11 ← phi( assert_byte/(byte*) print_str::str#1 assert_byte::@1/(const string) str1 assert_byte::@3/(const string) str2 assert_byte::@4/(const string) str assert_sbyte/(byte*) print_str::str#5 assert_sbyte::@1/(const string) str1 assert_sbyte::@3/(const string) str2 assert_sbyte::@4/(const string) str )
[36] (byte*) print_str::str#11 ← phi( assert_byte/(byte*) print_str::str#1 assert_byte::@1/(const byte*) str1 assert_byte::@3/(const byte*) str2 assert_byte::@4/(const byte*) str assert_sbyte/(byte*) print_str::str#5 assert_sbyte::@1/(const byte*) str1 assert_sbyte::@3/(const byte*) str2 assert_sbyte::@4/(const byte*) str )
to:print_str::@1
print_str::@1: scope:[print_str] from print_str print_str::@2
[37] (byte*) print_char_cursor#2 ← phi( print_str/(byte*) print_char_cursor#80 print_str::@2/(byte*) print_char_cursor#1 )
@ -1468,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 byte*) test_bytes::msg2 )
[55] (byte*) assert_byte::msg#3 ← phi( test_bytes/(const byte*) msg test_bytes::@1/(const byte*) 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
@ -1687,7 +1687,7 @@ test_sbytes: {
// [22] phi (signed byte) assert_sbyte::b#5 = (const signed byte) test_sbytes::bb [phi:test_sbytes->assert_sbyte#1] -- vbsz1=vbsc1
lda #bb
sta.z assert_sbyte.b
// [22] phi (byte*) assert_sbyte::msg#5 = (const string) msg [phi:test_sbytes->assert_sbyte#2] -- pbuz1=pbuc1
// [22] phi (byte*) assert_sbyte::msg#5 = (const byte*) msg [phi:test_sbytes->assert_sbyte#2] -- pbuz1=pbuc1
lda #<msg
sta.z assert_sbyte.msg
lda #>msg
@ -1707,7 +1707,7 @@ test_sbytes: {
// [22] phi (signed byte) assert_sbyte::b#5 = (const signed byte) test_sbytes::bc#0 [phi:test_sbytes::@1->assert_sbyte#1] -- vbsz1=vbsc1
lda #bc
sta.z assert_sbyte.b
// [22] phi (byte*) assert_sbyte::msg#5 = (const string) msg1 [phi:test_sbytes::@1->assert_sbyte#2] -- pbuz1=pbuc1
// [22] phi (byte*) assert_sbyte::msg#5 = (const byte*) msg1 [phi:test_sbytes::@1->assert_sbyte#2] -- pbuz1=pbuc1
lda #<msg1
sta.z assert_sbyte.msg
lda #>msg1
@ -1816,7 +1816,7 @@ assert_sbyte: {
// [36] phi from assert_sbyte::@4 to print_str [phi:assert_sbyte::@4->print_str]
print_str_from___b4:
// [36] phi (byte*) print_char_cursor#80 = (byte*) print_char_cursor#2 [phi:assert_sbyte::@4->print_str#0] -- register_copy
// [36] phi (byte*) print_str::str#11 = (const string) str [phi:assert_sbyte::@4->print_str#1] -- pbuz1=pbuc1
// [36] phi (byte*) print_str::str#11 = (const byte*) str [phi:assert_sbyte::@4->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -1838,7 +1838,7 @@ assert_sbyte: {
// [36] phi from assert_sbyte::@3 to print_str [phi:assert_sbyte::@3->print_str]
print_str_from___b3:
// [36] phi (byte*) print_char_cursor#80 = (byte*) print_char_cursor#2 [phi:assert_sbyte::@3->print_str#0] -- register_copy
// [36] phi (byte*) print_str::str#11 = (const string) str2 [phi:assert_sbyte::@3->print_str#1] -- pbuz1=pbuc1
// [36] phi (byte*) print_str::str#11 = (const byte*) str2 [phi:assert_sbyte::@3->print_str#1] -- pbuz1=pbuc1
lda #<str2
sta.z print_str.str
lda #>str2
@ -1869,7 +1869,7 @@ assert_sbyte: {
// [36] phi from assert_sbyte::@1 to print_str [phi:assert_sbyte::@1->print_str]
print_str_from___b1:
// [36] phi (byte*) print_char_cursor#80 = (byte*) print_char_cursor#2 [phi:assert_sbyte::@1->print_str#0] -- register_copy
// [36] phi (byte*) print_str::str#11 = (const string) str1 [phi:assert_sbyte::@1->print_str#1] -- pbuz1=pbuc1
// [36] phi (byte*) print_str::str#11 = (const byte*) str1 [phi:assert_sbyte::@1->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -1977,7 +1977,7 @@ test_bytes: {
sta.z print_char_cursor
lda #>$400
sta.z print_char_cursor+1
// [55] phi (byte*) assert_byte::msg#3 = (const string) msg [phi:test_bytes->assert_byte#4] -- pbuz1=pbuc1
// [55] phi (byte*) assert_byte::msg#3 = (const byte*) msg [phi:test_bytes->assert_byte#4] -- pbuz1=pbuc1
lda #<msg
sta.z assert_byte.msg
lda #>msg
@ -2002,7 +2002,7 @@ test_bytes: {
lda #bc
sta.z assert_byte.b
// [55] phi (byte*) print_char_cursor#70 = (byte*) print_char_cursor#91 [phi:test_bytes::@1->assert_byte#3] -- register_copy
// [55] phi (byte*) assert_byte::msg#3 = (const string) msg1 [phi:test_bytes::@1->assert_byte#4] -- pbuz1=pbuc1
// [55] phi (byte*) assert_byte::msg#3 = (const byte*) msg1 [phi:test_bytes::@1->assert_byte#4] -- pbuz1=pbuc1
lda #<msg1
sta.z assert_byte.msg
lda #>msg1
@ -2067,7 +2067,7 @@ assert_byte: {
// [36] phi from assert_byte::@4 to print_str [phi:assert_byte::@4->print_str]
print_str_from___b4:
// [36] phi (byte*) print_char_cursor#80 = (byte*) print_char_cursor#2 [phi:assert_byte::@4->print_str#0] -- register_copy
// [36] phi (byte*) print_str::str#11 = (const string) str [phi:assert_byte::@4->print_str#1] -- pbuz1=pbuc1
// [36] phi (byte*) print_str::str#11 = (const byte*) str [phi:assert_byte::@4->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -2089,7 +2089,7 @@ assert_byte: {
// [36] phi from assert_byte::@3 to print_str [phi:assert_byte::@3->print_str]
print_str_from___b3:
// [36] phi (byte*) print_char_cursor#80 = (byte*) print_char_cursor#2 [phi:assert_byte::@3->print_str#0] -- register_copy
// [36] phi (byte*) print_str::str#11 = (const string) str2 [phi:assert_byte::@3->print_str#1] -- pbuz1=pbuc1
// [36] phi (byte*) print_str::str#11 = (const byte*) str2 [phi:assert_byte::@3->print_str#1] -- pbuz1=pbuc1
lda #<str2
sta.z print_str.str
lda #>str2
@ -2120,7 +2120,7 @@ assert_byte: {
// [36] phi from assert_byte::@1 to print_str [phi:assert_byte::@1->print_str]
print_str_from___b1:
// [36] phi (byte*) print_char_cursor#80 = (byte*) print_char_cursor#2 [phi:assert_byte::@1->print_str#0] -- register_copy
// [36] phi (byte*) print_str::str#11 = (const string) str1 [phi:assert_byte::@1->print_str#1] -- pbuz1=pbuc1
// [36] phi (byte*) print_str::str#11 = (const byte*) str1 [phi:assert_byte::@1->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -2359,7 +2359,7 @@ test_sbytes: {
sta.z assert_sbyte.c
// [22] phi (signed byte) assert_sbyte::b#5 = (const signed byte) test_sbytes::bb [phi:test_sbytes->assert_sbyte#1] -- vbsxx=vbsc1
ldx #bb
// [22] phi (byte*) assert_sbyte::msg#5 = (const string) msg [phi:test_sbytes->assert_sbyte#2] -- pbuz1=pbuc1
// [22] phi (byte*) assert_sbyte::msg#5 = (const byte*) msg [phi:test_sbytes->assert_sbyte#2] -- pbuz1=pbuc1
lda #<msg
sta.z assert_sbyte.msg
lda #>msg
@ -2378,7 +2378,7 @@ test_sbytes: {
sta.z assert_sbyte.c
// [22] phi (signed byte) assert_sbyte::b#5 = (const signed byte) test_sbytes::bc#0 [phi:test_sbytes::@1->assert_sbyte#1] -- vbsxx=vbsc1
ldx #bc
// [22] phi (byte*) assert_sbyte::msg#5 = (const string) msg1 [phi:test_sbytes::@1->assert_sbyte#2] -- pbuz1=pbuc1
// [22] phi (byte*) assert_sbyte::msg#5 = (const byte*) msg1 [phi:test_sbytes::@1->assert_sbyte#2] -- pbuz1=pbuc1
lda #<msg1
sta.z assert_sbyte.msg
lda #>msg1
@ -2479,7 +2479,7 @@ assert_sbyte: {
// [36] phi from assert_sbyte::@4 to print_str [phi:assert_sbyte::@4->print_str]
print_str_from___b4:
// [36] phi (byte*) print_char_cursor#80 = (byte*) print_char_cursor#2 [phi:assert_sbyte::@4->print_str#0] -- register_copy
// [36] phi (byte*) print_str::str#11 = (const string) str [phi:assert_sbyte::@4->print_str#1] -- pbuz1=pbuc1
// [36] phi (byte*) print_str::str#11 = (const byte*) str [phi:assert_sbyte::@4->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -2500,7 +2500,7 @@ assert_sbyte: {
// [36] phi from assert_sbyte::@3 to print_str [phi:assert_sbyte::@3->print_str]
print_str_from___b3:
// [36] phi (byte*) print_char_cursor#80 = (byte*) print_char_cursor#2 [phi:assert_sbyte::@3->print_str#0] -- register_copy
// [36] phi (byte*) print_str::str#11 = (const string) str2 [phi:assert_sbyte::@3->print_str#1] -- pbuz1=pbuc1
// [36] phi (byte*) print_str::str#11 = (const byte*) str2 [phi:assert_sbyte::@3->print_str#1] -- pbuz1=pbuc1
lda #<str2
sta.z print_str.str
lda #>str2
@ -2531,7 +2531,7 @@ assert_sbyte: {
// [36] phi from assert_sbyte::@1 to print_str [phi:assert_sbyte::@1->print_str]
print_str_from___b1:
// [36] phi (byte*) print_char_cursor#80 = (byte*) print_char_cursor#2 [phi:assert_sbyte::@1->print_str#0] -- register_copy
// [36] phi (byte*) print_str::str#11 = (const string) str1 [phi:assert_sbyte::@1->print_str#1] -- pbuz1=pbuc1
// [36] phi (byte*) print_str::str#11 = (const byte*) str1 [phi:assert_sbyte::@1->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -2638,7 +2638,7 @@ test_bytes: {
sta.z print_char_cursor
lda #>$400
sta.z print_char_cursor+1
// [55] phi (byte*) assert_byte::msg#3 = (const string) msg [phi:test_bytes->assert_byte#4] -- pbuz1=pbuc1
// [55] phi (byte*) assert_byte::msg#3 = (const byte*) msg [phi:test_bytes->assert_byte#4] -- pbuz1=pbuc1
lda #<msg
sta.z assert_byte.msg
lda #>msg
@ -2662,7 +2662,7 @@ test_bytes: {
// [55] phi (byte) assert_byte::b#3 = (const byte) test_bytes::bc#0 [phi:test_bytes::@1->assert_byte#2] -- vbuxx=vbuc1
ldx #bc
// [55] phi (byte*) print_char_cursor#70 = (byte*) print_char_cursor#91 [phi:test_bytes::@1->assert_byte#3] -- register_copy
// [55] phi (byte*) assert_byte::msg#3 = (const string) msg1 [phi:test_bytes::@1->assert_byte#4] -- pbuz1=pbuc1
// [55] phi (byte*) assert_byte::msg#3 = (const byte*) msg1 [phi:test_bytes::@1->assert_byte#4] -- pbuz1=pbuc1
lda #<msg1
sta.z assert_byte.msg
lda #>msg1
@ -2721,7 +2721,7 @@ assert_byte: {
// [36] phi from assert_byte::@4 to print_str [phi:assert_byte::@4->print_str]
print_str_from___b4:
// [36] phi (byte*) print_char_cursor#80 = (byte*) print_char_cursor#2 [phi:assert_byte::@4->print_str#0] -- register_copy
// [36] phi (byte*) print_str::str#11 = (const string) str [phi:assert_byte::@4->print_str#1] -- pbuz1=pbuc1
// [36] phi (byte*) print_str::str#11 = (const byte*) str [phi:assert_byte::@4->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -2742,7 +2742,7 @@ assert_byte: {
// [36] phi from assert_byte::@3 to print_str [phi:assert_byte::@3->print_str]
print_str_from___b3:
// [36] phi (byte*) print_char_cursor#80 = (byte*) print_char_cursor#2 [phi:assert_byte::@3->print_str#0] -- register_copy
// [36] phi (byte*) print_str::str#11 = (const string) str2 [phi:assert_byte::@3->print_str#1] -- pbuz1=pbuc1
// [36] phi (byte*) print_str::str#11 = (const byte*) str2 [phi:assert_byte::@3->print_str#1] -- pbuz1=pbuc1
lda #<str2
sta.z print_str.str
lda #>str2
@ -2773,7 +2773,7 @@ assert_byte: {
// [36] phi from assert_byte::@1 to print_str [phi:assert_byte::@1->print_str]
print_str_from___b1:
// [36] phi (byte*) print_char_cursor#80 = (byte*) print_char_cursor#2 [phi:assert_byte::@1->print_str#0] -- register_copy
// [36] phi (byte*) print_str::str#11 = (const string) str1 [phi:assert_byte::@1->print_str#1] -- pbuz1=pbuc1
// [36] phi (byte*) print_str::str#11 = (const byte*) str1 [phi:assert_byte::@1->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -3026,8 +3026,8 @@ FINAL SYMBOL TABLE
(void*) memset::return
(void*) memset::str
(const void*) memset::str#0 str = (void*)(byte*) 1024
(const string) msg[] = (string) "0=0"
(const string) msg1[] = (string) "0+2=2"
(const byte*) msg[(byte) 4] = (string) "0=0"
(const byte*) msg1[(byte) 6] = (string) "0+2=2"
(byte*) print_char_cursor
(byte*) print_char_cursor#1 print_char_cursor zp[2]:2 11.0
(byte*) print_char_cursor#2 print_char_cursor zp[2]:2 2.230769230769231
@ -3057,9 +3057,9 @@ FINAL SYMBOL TABLE
(byte*) print_str::str#10 str zp[2]:7 11.5
(byte*) print_str::str#11 str zp[2]:7 6.0
(byte*) print_str::str#5 str zp[2]:7 2.0
(const string) str[] = (string) " "
(const string) str1[] = (string) "fail!"
(const string) str2[] = (string) "ok"
(const byte*) str[(byte) 2] = (string) " "
(const byte*) str1[(byte) 6] = (string) "fail!"
(const byte*) str2[(byte) 3] = (string) "ok"
(void()) test_bytes()
(label) test_bytes::@1
(label) test_bytes::@2
@ -3159,7 +3159,7 @@ test_sbytes: {
sta.z assert_sbyte.c
// [22] phi (signed byte) assert_sbyte::b#5 = (const signed byte) test_sbytes::bb [phi:test_sbytes->assert_sbyte#1] -- vbsxx=vbsc1
ldx #bb
// [22] phi (byte*) assert_sbyte::msg#5 = (const string) msg [phi:test_sbytes->assert_sbyte#2] -- pbuz1=pbuc1
// [22] phi (byte*) assert_sbyte::msg#5 = (const byte*) msg [phi:test_sbytes->assert_sbyte#2] -- pbuz1=pbuc1
lda #<msg
sta.z assert_sbyte.msg
lda #>msg
@ -3175,7 +3175,7 @@ test_sbytes: {
sta.z assert_sbyte.c
// [22] phi (signed byte) assert_sbyte::b#5 = (const signed byte) test_sbytes::bc#0 [phi:test_sbytes::@1->assert_sbyte#1] -- vbsxx=vbsc1
ldx #bc
// [22] phi (byte*) assert_sbyte::msg#5 = (const string) msg1 [phi:test_sbytes::@1->assert_sbyte#2] -- pbuz1=pbuc1
// [22] phi (byte*) assert_sbyte::msg#5 = (const byte*) msg1 [phi:test_sbytes::@1->assert_sbyte#2] -- pbuz1=pbuc1
lda #<msg1
sta.z assert_sbyte.msg
lda #>msg1
@ -3264,7 +3264,7 @@ assert_sbyte: {
// [27] call print_str
// [36] phi from assert_sbyte::@4 to print_str [phi:assert_sbyte::@4->print_str]
// [36] phi (byte*) print_char_cursor#80 = (byte*) print_char_cursor#2 [phi:assert_sbyte::@4->print_str#0] -- register_copy
// [36] phi (byte*) print_str::str#11 = (const string) str [phi:assert_sbyte::@4->print_str#1] -- pbuz1=pbuc1
// [36] phi (byte*) print_str::str#11 = (const byte*) str [phi:assert_sbyte::@4->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -3281,7 +3281,7 @@ assert_sbyte: {
// [30] call print_str
// [36] phi from assert_sbyte::@3 to print_str [phi:assert_sbyte::@3->print_str]
// [36] phi (byte*) print_char_cursor#80 = (byte*) print_char_cursor#2 [phi:assert_sbyte::@3->print_str#0] -- register_copy
// [36] phi (byte*) print_str::str#11 = (const string) str2 [phi:assert_sbyte::@3->print_str#1] -- pbuz1=pbuc1
// [36] phi (byte*) print_str::str#11 = (const byte*) str2 [phi:assert_sbyte::@3->print_str#1] -- pbuz1=pbuc1
lda #<str2
sta.z print_str.str
lda #>str2
@ -3309,7 +3309,7 @@ assert_sbyte: {
// [35] call print_str
// [36] phi from assert_sbyte::@1 to print_str [phi:assert_sbyte::@1->print_str]
// [36] phi (byte*) print_char_cursor#80 = (byte*) print_char_cursor#2 [phi:assert_sbyte::@1->print_str#0] -- register_copy
// [36] phi (byte*) print_str::str#11 = (const string) str1 [phi:assert_sbyte::@1->print_str#1] -- pbuz1=pbuc1
// [36] phi (byte*) print_str::str#11 = (const byte*) str1 [phi:assert_sbyte::@1->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -3412,7 +3412,7 @@ test_bytes: {
sta.z print_char_cursor
lda #>$400
sta.z print_char_cursor+1
// [55] phi (byte*) assert_byte::msg#3 = (const string) msg [phi:test_bytes->assert_byte#4] -- pbuz1=pbuc1
// [55] phi (byte*) assert_byte::msg#3 = (const byte*) msg [phi:test_bytes->assert_byte#4] -- pbuz1=pbuc1
lda #<msg
sta.z assert_byte.msg
lda #>msg
@ -3434,7 +3434,7 @@ test_bytes: {
// [55] phi (byte) assert_byte::b#3 = (const byte) test_bytes::bc#0 [phi:test_bytes::@1->assert_byte#2] -- vbuxx=vbuc1
ldx #bc
// [55] phi (byte*) print_char_cursor#70 = (byte*) print_char_cursor#91 [phi:test_bytes::@1->assert_byte#3] -- register_copy
// [55] phi (byte*) assert_byte::msg#3 = (const string) msg1 [phi:test_bytes::@1->assert_byte#4] -- pbuz1=pbuc1
// [55] phi (byte*) assert_byte::msg#3 = (const byte*) msg1 [phi:test_bytes::@1->assert_byte#4] -- pbuz1=pbuc1
lda #<msg1
sta.z assert_byte.msg
lda #>msg1
@ -3487,7 +3487,7 @@ assert_byte: {
// [59] call print_str
// [36] phi from assert_byte::@4 to print_str [phi:assert_byte::@4->print_str]
// [36] phi (byte*) print_char_cursor#80 = (byte*) print_char_cursor#2 [phi:assert_byte::@4->print_str#0] -- register_copy
// [36] phi (byte*) print_str::str#11 = (const string) str [phi:assert_byte::@4->print_str#1] -- pbuz1=pbuc1
// [36] phi (byte*) print_str::str#11 = (const byte*) str [phi:assert_byte::@4->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -3504,7 +3504,7 @@ assert_byte: {
// [62] call print_str
// [36] phi from assert_byte::@3 to print_str [phi:assert_byte::@3->print_str]
// [36] phi (byte*) print_char_cursor#80 = (byte*) print_char_cursor#2 [phi:assert_byte::@3->print_str#0] -- register_copy
// [36] phi (byte*) print_str::str#11 = (const string) str2 [phi:assert_byte::@3->print_str#1] -- pbuz1=pbuc1
// [36] phi (byte*) print_str::str#11 = (const byte*) str2 [phi:assert_byte::@3->print_str#1] -- pbuz1=pbuc1
lda #<str2
sta.z print_str.str
lda #>str2
@ -3532,7 +3532,7 @@ assert_byte: {
// [67] call print_str
// [36] phi from assert_byte::@1 to print_str [phi:assert_byte::@1->print_str]
// [36] phi (byte*) print_char_cursor#80 = (byte*) print_char_cursor#2 [phi:assert_byte::@1->print_str#0] -- register_copy
// [36] phi (byte*) print_str::str#11 = (const string) str1 [phi:assert_byte::@1->print_str#1] -- pbuz1=pbuc1
// [36] phi (byte*) print_str::str#11 = (const byte*) str1 [phi:assert_byte::@1->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1

View File

@ -54,8 +54,8 @@
(void*) memset::return
(void*) memset::str
(const void*) memset::str#0 str = (void*)(byte*) 1024
(const string) msg[] = (string) "0=0"
(const string) msg1[] = (string) "0+2=2"
(const byte*) msg[(byte) 4] = (string) "0=0"
(const byte*) msg1[(byte) 6] = (string) "0+2=2"
(byte*) print_char_cursor
(byte*) print_char_cursor#1 print_char_cursor zp[2]:2 11.0
(byte*) print_char_cursor#2 print_char_cursor zp[2]:2 2.230769230769231
@ -85,9 +85,9 @@
(byte*) print_str::str#10 str zp[2]:7 11.5
(byte*) print_str::str#11 str zp[2]:7 6.0
(byte*) print_str::str#5 str zp[2]:7 2.0
(const string) str[] = (string) " "
(const string) str1[] = (string) "fail!"
(const string) str2[] = (string) "ok"
(const byte*) str[(byte) 2] = (string) " "
(const byte*) str1[(byte) 6] = (string) "fail!"
(const byte*) str2[(byte) 3] = (string) "ok"
(void()) test_bytes()
(label) test_bytes::@1
(label) test_bytes::@2

View File

@ -173,7 +173,7 @@ print_byte::@return: scope:[print_byte] from print_byte::@1
(void()) print_str((byte*) print_str::str)
print_str: scope:[print_str] from test_16s::@3 test_16s::@5 test_16s::@7 test_16u::@3 test_16u::@5 test_16u::@7 test_8s::@3 test_8s::@5 test_8s::@7 test_8u::@3 test_8u::@5 test_8u::@7
[79] (byte*) print_str::str#15 ← phi( test_16s::@3/(const string) str test_16s::@5/(const string) str1 test_16s::@7/(const string) str2 test_16u::@3/(const string) str test_16u::@5/(const string) str1 test_16u::@7/(const string) str2 test_8s::@3/(const string) str test_8s::@5/(const string) str1 test_8s::@7/(const string) str2 test_8u::@3/(const string) str test_8u::@5/(const string) str1 test_8u::@7/(const string) str2 )
[79] (byte*) print_str::str#15 ← phi( test_16s::@3/(const byte*) str test_16s::@5/(const byte*) str1 test_16s::@7/(const byte*) str2 test_16u::@3/(const byte*) str test_16u::@5/(const byte*) str1 test_16u::@7/(const byte*) str2 test_8s::@3/(const byte*) str test_8s::@5/(const byte*) str1 test_8s::@7/(const byte*) str2 test_8u::@3/(const byte*) str test_8u::@5/(const byte*) str1 test_8u::@7/(const byte*) str2 )
to:print_str::@1
print_str::@1: scope:[print_str] from print_str print_str::@2
[80] (byte*) print_char_cursor#130 ← phi( print_str/(byte*) print_char_cursor#19 print_str::@2/(byte*) print_char_cursor#1 )

View File

@ -3339,9 +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
Consolidated constant strings into (const byte*) str
Consolidated constant strings into (const byte*) str1
Consolidated constant strings into (const byte*) 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
@ -3472,51 +3472,51 @@ Inlining constant with var siblings (const byte) test_8s::i#0
Inlining constant with var siblings (const byte) test_16s::i#0
Inlining constant with var siblings (const byte*) print_line_cursor#0
Constant inlined divr16u::rem#3 = (byte) 0
Constant inlined test_16s::str = (const string) str
Constant inlined test_8s::str1 = (const string) str1
Constant inlined test_16s::str = (const byte*) str
Constant inlined test_8s::str1 = (const byte*) str1
Constant inlined divr16u::i#0 = (byte) 0
Constant inlined test_8s::str2 = (const string) str2
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) str
Constant inlined test_8s::str2 = (const byte*) str2
Constant inlined print_str::str#12 = (const byte*) str2
Constant inlined print_str::str#11 = (const byte*) str1
Constant inlined print_str::str#10 = (const byte*) str
Constant inlined divr16s::neg#1 = (byte) 1
Constant inlined divr8u::i#0 = (byte) 0
Constant inlined divr16s::neg#0 = (byte) 0
Constant inlined test_16u::i#0 = (byte) 0
Constant inlined test_8u::str2 = (const string) str2
Constant inlined test_8u::str2 = (const byte*) str2
Constant inlined memset::$2 = (byte*)(const void*) memset::str#0
Constant inlined divr16u::quotient#0 = (word) 0
Constant inlined test_8u::str1 = (const string) str1
Constant inlined test_8u::str1 = (const byte*) str1
Constant inlined test_8u::i#0 = (byte) 0
Constant inlined test_8s::str = (const string) str
Constant inlined test_16s::str1 = (const string) str1
Constant inlined test_8s::str = (const byte*) str
Constant inlined test_16s::str1 = (const byte*) str1
Constant inlined print_line_cursor#0 = (byte*) 1024
Constant inlined test_16s::str2 = (const string) str2
Constant inlined test_16s::str2 = (const byte*) str2
Constant inlined test_16s::i#0 = (byte) 0
Constant inlined divr8u::rem#0 = (byte) 0
Constant inlined print_char::ch#3 = (byte) ' '
Constant inlined divr8u::quotient#0 = (byte) 0
Constant inlined test_16u::str1 = (const string) str1
Constant inlined test_16u::str1 = (const byte*) str1
Constant inlined print_char::ch#2 = (byte) '-'
Constant inlined test_16u::str = (const string) str
Constant inlined print_str::str#9 = (const string) str2
Constant inlined test_16u::str2 = (const string) str2
Constant inlined test_16u::str = (const byte*) str
Constant inlined print_str::str#9 = (const byte*) str2
Constant inlined test_16u::str2 = (const byte*) str2
Constant inlined print_char::ch#1 = (byte) ' '
Constant inlined print_char::ch#0 = (byte) '-'
Constant inlined print_str::str#4 = (const string) str
Constant inlined print_str::str#3 = (const string) str2
Constant inlined print_str::str#4 = (const byte*) str
Constant inlined print_str::str#3 = (const byte*) str2
Constant inlined div8s::neg#1 = (byte) 1
Constant inlined print_str::str#2 = (const string) str1
Constant inlined print_str::str#2 = (const byte*) str1
Constant inlined memset::dst#0 = (byte*)(const void*) memset::str#0
Constant inlined div8s::neg#0 = (byte) 0
Constant inlined print_str::str#1 = (const string) str
Constant inlined print_str::str#8 = (const string) str1
Constant inlined print_str::str#7 = (const string) str
Constant inlined test_8u::str = (const string) str
Constant inlined print_str::str#6 = (const string) str2
Constant inlined print_str::str#1 = (const byte*) str
Constant inlined print_str::str#8 = (const byte*) str1
Constant inlined print_str::str#7 = (const byte*) str
Constant inlined test_8u::str = (const byte*) str
Constant inlined print_str::str#6 = (const byte*) str2
Constant inlined divr16s::remu#1 = (word) 0
Constant inlined test_8s::i#0 = (byte) 0
Constant inlined print_str::str#5 = (const string) str1
Constant inlined print_str::str#5 = (const byte*) str1
Constant inlined divr16s::remu#2 = (word) 0
Successful SSA optimization Pass2ConstantInlining
Identical Phi Values (word) divr16s::remu#3 (word) 0
@ -4004,7 +4004,7 @@ print_byte::@return: scope:[print_byte] from print_byte::@1
(void()) print_str((byte*) print_str::str)
print_str: scope:[print_str] from test_16s::@3 test_16s::@5 test_16s::@7 test_16u::@3 test_16u::@5 test_16u::@7 test_8s::@3 test_8s::@5 test_8s::@7 test_8u::@3 test_8u::@5 test_8u::@7
[79] (byte*) print_str::str#15 ← phi( test_16s::@3/(const string) str test_16s::@5/(const string) str1 test_16s::@7/(const string) str2 test_16u::@3/(const string) str test_16u::@5/(const string) str1 test_16u::@7/(const string) str2 test_8s::@3/(const string) str test_8s::@5/(const string) str1 test_8s::@7/(const string) str2 test_8u::@3/(const string) str test_8u::@5/(const string) str1 test_8u::@7/(const string) str2 )
[79] (byte*) print_str::str#15 ← phi( test_16s::@3/(const byte*) str test_16s::@5/(const byte*) str1 test_16s::@7/(const byte*) str2 test_16u::@3/(const byte*) str test_16u::@5/(const byte*) str1 test_16u::@7/(const byte*) str2 test_8s::@3/(const byte*) str test_8s::@5/(const byte*) str1 test_8s::@7/(const byte*) str2 test_8u::@3/(const byte*) str test_8u::@5/(const byte*) str1 test_8u::@7/(const byte*) str2 )
to:print_str::@1
print_str::@1: scope:[print_str] from print_str print_str::@2
[80] (byte*) print_char_cursor#130 ← phi( print_str/(byte*) print_char_cursor#19 print_str::@2/(byte*) print_char_cursor#1 )
@ -5167,7 +5167,7 @@ test_16s: {
// [29] call print_str
// [79] phi from test_16s::@3 to print_str [phi:test_16s::@3->print_str]
print_str_from___b3:
// [79] phi (byte*) print_str::str#15 = (const string) str [phi:test_16s::@3->print_str#0] -- pbuz1=pbuc1
// [79] phi (byte*) print_str::str#15 = (const byte*) str [phi:test_16s::@3->print_str#0] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -5195,7 +5195,7 @@ test_16s: {
// [33] call print_str
// [79] phi from test_16s::@5 to print_str [phi:test_16s::@5->print_str]
print_str_from___b5:
// [79] phi (byte*) print_str::str#15 = (const string) str1 [phi:test_16s::@5->print_str#0] -- pbuz1=pbuc1
// [79] phi (byte*) print_str::str#15 = (const byte*) str1 [phi:test_16s::@5->print_str#0] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -5223,7 +5223,7 @@ test_16s: {
// [37] call print_str
// [79] phi from test_16s::@7 to print_str [phi:test_16s::@7->print_str]
print_str_from___b7:
// [79] phi (byte*) print_str::str#15 = (const string) str2 [phi:test_16s::@7->print_str#0] -- pbuz1=pbuc1
// [79] phi (byte*) print_str::str#15 = (const byte*) str2 [phi:test_16s::@7->print_str#0] -- pbuz1=pbuc1
lda #<str2
sta.z print_str.str
lda #>str2
@ -5934,7 +5934,7 @@ test_8s: {
// [147] call print_str
// [79] phi from test_8s::@3 to print_str [phi:test_8s::@3->print_str]
print_str_from___b3:
// [79] phi (byte*) print_str::str#15 = (const string) str [phi:test_8s::@3->print_str#0] -- pbuz1=pbuc1
// [79] phi (byte*) print_str::str#15 = (const byte*) str [phi:test_8s::@3->print_str#0] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -5960,7 +5960,7 @@ test_8s: {
// [151] call print_str
// [79] phi from test_8s::@5 to print_str [phi:test_8s::@5->print_str]
print_str_from___b5:
// [79] phi (byte*) print_str::str#15 = (const string) str1 [phi:test_8s::@5->print_str#0] -- pbuz1=pbuc1
// [79] phi (byte*) print_str::str#15 = (const byte*) str1 [phi:test_8s::@5->print_str#0] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -5986,7 +5986,7 @@ test_8s: {
// [155] call print_str
// [79] phi from test_8s::@7 to print_str [phi:test_8s::@7->print_str]
print_str_from___b7:
// [79] phi (byte*) print_str::str#15 = (const string) str2 [phi:test_8s::@7->print_str#0] -- pbuz1=pbuc1
// [79] phi (byte*) print_str::str#15 = (const byte*) str2 [phi:test_8s::@7->print_str#0] -- pbuz1=pbuc1
lda #<str2
sta.z print_str.str
lda #>str2
@ -6475,7 +6475,7 @@ test_16u: {
// [236] call print_str
// [79] phi from test_16u::@3 to print_str [phi:test_16u::@3->print_str]
print_str_from___b3:
// [79] phi (byte*) print_str::str#15 = (const string) str [phi:test_16u::@3->print_str#0] -- pbuz1=pbuc1
// [79] phi (byte*) print_str::str#15 = (const byte*) str [phi:test_16u::@3->print_str#0] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -6503,7 +6503,7 @@ test_16u: {
// [240] call print_str
// [79] phi from test_16u::@5 to print_str [phi:test_16u::@5->print_str]
print_str_from___b5:
// [79] phi (byte*) print_str::str#15 = (const string) str1 [phi:test_16u::@5->print_str#0] -- pbuz1=pbuc1
// [79] phi (byte*) print_str::str#15 = (const byte*) str1 [phi:test_16u::@5->print_str#0] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -6531,7 +6531,7 @@ test_16u: {
// [244] call print_str
// [79] phi from test_16u::@7 to print_str [phi:test_16u::@7->print_str]
print_str_from___b7:
// [79] phi (byte*) print_str::str#15 = (const string) str2 [phi:test_16u::@7->print_str#0] -- pbuz1=pbuc1
// [79] phi (byte*) print_str::str#15 = (const byte*) str2 [phi:test_16u::@7->print_str#0] -- pbuz1=pbuc1
lda #<str2
sta.z print_str.str
lda #>str2
@ -6694,7 +6694,7 @@ test_8u: {
// [270] call print_str
// [79] phi from test_8u::@3 to print_str [phi:test_8u::@3->print_str]
print_str_from___b3:
// [79] phi (byte*) print_str::str#15 = (const string) str [phi:test_8u::@3->print_str#0] -- pbuz1=pbuc1
// [79] phi (byte*) print_str::str#15 = (const byte*) str [phi:test_8u::@3->print_str#0] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -6720,7 +6720,7 @@ test_8u: {
// [274] call print_str
// [79] phi from test_8u::@5 to print_str [phi:test_8u::@5->print_str]
print_str_from___b5:
// [79] phi (byte*) print_str::str#15 = (const string) str1 [phi:test_8u::@5->print_str#0] -- pbuz1=pbuc1
// [79] phi (byte*) print_str::str#15 = (const byte*) str1 [phi:test_8u::@5->print_str#0] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -6746,7 +6746,7 @@ test_8u: {
// [278] call print_str
// [79] phi from test_8u::@7 to print_str [phi:test_8u::@7->print_str]
print_str_from___b7:
// [79] phi (byte*) print_str::str#15 = (const string) str2 [phi:test_8u::@7->print_str#0] -- pbuz1=pbuc1
// [79] phi (byte*) print_str::str#15 = (const byte*) str2 [phi:test_8u::@7->print_str#0] -- pbuz1=pbuc1
lda #<str2
sta.z print_str.str
lda #>str2
@ -7532,7 +7532,7 @@ test_16s: {
// [29] call print_str
// [79] phi from test_16s::@3 to print_str [phi:test_16s::@3->print_str]
print_str_from___b3:
// [79] phi (byte*) print_str::str#15 = (const string) str [phi:test_16s::@3->print_str#0] -- pbuz1=pbuc1
// [79] phi (byte*) print_str::str#15 = (const byte*) str [phi:test_16s::@3->print_str#0] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -7560,7 +7560,7 @@ test_16s: {
// [33] call print_str
// [79] phi from test_16s::@5 to print_str [phi:test_16s::@5->print_str]
print_str_from___b5:
// [79] phi (byte*) print_str::str#15 = (const string) str1 [phi:test_16s::@5->print_str#0] -- pbuz1=pbuc1
// [79] phi (byte*) print_str::str#15 = (const byte*) str1 [phi:test_16s::@5->print_str#0] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -7588,7 +7588,7 @@ test_16s: {
// [37] call print_str
// [79] phi from test_16s::@7 to print_str [phi:test_16s::@7->print_str]
print_str_from___b7:
// [79] phi (byte*) print_str::str#15 = (const string) str2 [phi:test_16s::@7->print_str#0] -- pbuz1=pbuc1
// [79] phi (byte*) print_str::str#15 = (const byte*) str2 [phi:test_16s::@7->print_str#0] -- pbuz1=pbuc1
lda #<str2
sta.z print_str.str
lda #>str2
@ -8203,7 +8203,7 @@ test_8s: {
// [147] call print_str
// [79] phi from test_8s::@3 to print_str [phi:test_8s::@3->print_str]
print_str_from___b3:
// [79] phi (byte*) print_str::str#15 = (const string) str [phi:test_8s::@3->print_str#0] -- pbuz1=pbuc1
// [79] phi (byte*) print_str::str#15 = (const byte*) str [phi:test_8s::@3->print_str#0] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -8229,7 +8229,7 @@ test_8s: {
// [151] call print_str
// [79] phi from test_8s::@5 to print_str [phi:test_8s::@5->print_str]
print_str_from___b5:
// [79] phi (byte*) print_str::str#15 = (const string) str1 [phi:test_8s::@5->print_str#0] -- pbuz1=pbuc1
// [79] phi (byte*) print_str::str#15 = (const byte*) str1 [phi:test_8s::@5->print_str#0] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -8255,7 +8255,7 @@ test_8s: {
// [155] call print_str
// [79] phi from test_8s::@7 to print_str [phi:test_8s::@7->print_str]
print_str_from___b7:
// [79] phi (byte*) print_str::str#15 = (const string) str2 [phi:test_8s::@7->print_str#0] -- pbuz1=pbuc1
// [79] phi (byte*) print_str::str#15 = (const byte*) str2 [phi:test_8s::@7->print_str#0] -- pbuz1=pbuc1
lda #<str2
sta.z print_str.str
lda #>str2
@ -8668,7 +8668,7 @@ test_16u: {
// [236] call print_str
// [79] phi from test_16u::@3 to print_str [phi:test_16u::@3->print_str]
print_str_from___b3:
// [79] phi (byte*) print_str::str#15 = (const string) str [phi:test_16u::@3->print_str#0] -- pbuz1=pbuc1
// [79] phi (byte*) print_str::str#15 = (const byte*) str [phi:test_16u::@3->print_str#0] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -8696,7 +8696,7 @@ test_16u: {
// [240] call print_str
// [79] phi from test_16u::@5 to print_str [phi:test_16u::@5->print_str]
print_str_from___b5:
// [79] phi (byte*) print_str::str#15 = (const string) str1 [phi:test_16u::@5->print_str#0] -- pbuz1=pbuc1
// [79] phi (byte*) print_str::str#15 = (const byte*) str1 [phi:test_16u::@5->print_str#0] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -8724,7 +8724,7 @@ test_16u: {
// [244] call print_str
// [79] phi from test_16u::@7 to print_str [phi:test_16u::@7->print_str]
print_str_from___b7:
// [79] phi (byte*) print_str::str#15 = (const string) str2 [phi:test_16u::@7->print_str#0] -- pbuz1=pbuc1
// [79] phi (byte*) print_str::str#15 = (const byte*) str2 [phi:test_16u::@7->print_str#0] -- pbuz1=pbuc1
lda #<str2
sta.z print_str.str
lda #>str2
@ -8867,7 +8867,7 @@ test_8u: {
// [270] call print_str
// [79] phi from test_8u::@3 to print_str [phi:test_8u::@3->print_str]
print_str_from___b3:
// [79] phi (byte*) print_str::str#15 = (const string) str [phi:test_8u::@3->print_str#0] -- pbuz1=pbuc1
// [79] phi (byte*) print_str::str#15 = (const byte*) str [phi:test_8u::@3->print_str#0] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -8893,7 +8893,7 @@ test_8u: {
// [274] call print_str
// [79] phi from test_8u::@5 to print_str [phi:test_8u::@5->print_str]
print_str_from___b5:
// [79] phi (byte*) print_str::str#15 = (const string) str1 [phi:test_8u::@5->print_str#0] -- pbuz1=pbuc1
// [79] phi (byte*) print_str::str#15 = (const byte*) str1 [phi:test_8u::@5->print_str#0] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -8919,7 +8919,7 @@ test_8u: {
// [278] call print_str
// [79] phi from test_8u::@7 to print_str [phi:test_8u::@7->print_str]
print_str_from___b7:
// [79] phi (byte*) print_str::str#15 = (const string) str2 [phi:test_8u::@7->print_str#0] -- pbuz1=pbuc1
// [79] phi (byte*) print_str::str#15 = (const byte*) str2 [phi:test_8u::@7->print_str#0] -- pbuz1=pbuc1
lda #<str2
sta.z print_str.str
lda #>str2
@ -9729,9 +9729,9 @@ FINAL SYMBOL TABLE
(signed byte) rem8s#33 reg byte x 4.0
(byte) rem8u
(byte) rem8u#17 reg byte x 0.5
(const string) str[] = (string) " / "
(const string) str1[] = (string) " = "
(const string) str2[] = (string) " "
(const byte*) str[(byte) 4] = (string) " / "
(const byte*) str1[(byte) 4] = (string) " = "
(const byte*) str2[(byte) 2] = (string) " "
(void()) test_16s()
(byte~) test_16s::$11 reg byte x 16.5
(label) test_16s::@1
@ -9989,7 +9989,7 @@ test_16s: {
// print_str(" / ")
// [29] call print_str
// [79] phi from test_16s::@3 to print_str [phi:test_16s::@3->print_str]
// [79] phi (byte*) print_str::str#15 = (const string) str [phi:test_16s::@3->print_str#0] -- pbuz1=pbuc1
// [79] phi (byte*) print_str::str#15 = (const byte*) str [phi:test_16s::@3->print_str#0] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -10012,7 +10012,7 @@ test_16s: {
// print_str(" = ")
// [33] call print_str
// [79] phi from test_16s::@5 to print_str [phi:test_16s::@5->print_str]
// [79] phi (byte*) print_str::str#15 = (const string) str1 [phi:test_16s::@5->print_str#0] -- pbuz1=pbuc1
// [79] phi (byte*) print_str::str#15 = (const byte*) str1 [phi:test_16s::@5->print_str#0] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -10035,7 +10035,7 @@ test_16s: {
// print_str(" ")
// [37] call print_str
// [79] phi from test_16s::@7 to print_str [phi:test_16s::@7->print_str]
// [79] phi (byte*) print_str::str#15 = (const string) str2 [phi:test_16s::@7->print_str#0] -- pbuz1=pbuc1
// [79] phi (byte*) print_str::str#15 = (const byte*) str2 [phi:test_16s::@7->print_str#0] -- pbuz1=pbuc1
lda #<str2
sta.z print_str.str
lda #>str2
@ -10605,7 +10605,7 @@ test_8s: {
// print_str(" / ")
// [147] call print_str
// [79] phi from test_8s::@3 to print_str [phi:test_8s::@3->print_str]
// [79] phi (byte*) print_str::str#15 = (const string) str [phi:test_8s::@3->print_str#0] -- pbuz1=pbuc1
// [79] phi (byte*) print_str::str#15 = (const byte*) str [phi:test_8s::@3->print_str#0] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -10626,7 +10626,7 @@ test_8s: {
// print_str(" = ")
// [151] call print_str
// [79] phi from test_8s::@5 to print_str [phi:test_8s::@5->print_str]
// [79] phi (byte*) print_str::str#15 = (const string) str1 [phi:test_8s::@5->print_str#0] -- pbuz1=pbuc1
// [79] phi (byte*) print_str::str#15 = (const byte*) str1 [phi:test_8s::@5->print_str#0] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -10647,7 +10647,7 @@ test_8s: {
// print_str(" ")
// [155] call print_str
// [79] phi from test_8s::@7 to print_str [phi:test_8s::@7->print_str]
// [79] phi (byte*) print_str::str#15 = (const string) str2 [phi:test_8s::@7->print_str#0] -- pbuz1=pbuc1
// [79] phi (byte*) print_str::str#15 = (const byte*) str2 [phi:test_8s::@7->print_str#0] -- pbuz1=pbuc1
lda #<str2
sta.z print_str.str
lda #>str2
@ -11026,7 +11026,7 @@ test_16u: {
// print_str(" / ")
// [236] call print_str
// [79] phi from test_16u::@3 to print_str [phi:test_16u::@3->print_str]
// [79] phi (byte*) print_str::str#15 = (const string) str [phi:test_16u::@3->print_str#0] -- pbuz1=pbuc1
// [79] phi (byte*) print_str::str#15 = (const byte*) str [phi:test_16u::@3->print_str#0] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -11049,7 +11049,7 @@ test_16u: {
// print_str(" = ")
// [240] call print_str
// [79] phi from test_16u::@5 to print_str [phi:test_16u::@5->print_str]
// [79] phi (byte*) print_str::str#15 = (const string) str1 [phi:test_16u::@5->print_str#0] -- pbuz1=pbuc1
// [79] phi (byte*) print_str::str#15 = (const byte*) str1 [phi:test_16u::@5->print_str#0] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -11072,7 +11072,7 @@ test_16u: {
// print_str(" ")
// [244] call print_str
// [79] phi from test_16u::@7 to print_str [phi:test_16u::@7->print_str]
// [79] phi (byte*) print_str::str#15 = (const string) str2 [phi:test_16u::@7->print_str#0] -- pbuz1=pbuc1
// [79] phi (byte*) print_str::str#15 = (const byte*) str2 [phi:test_16u::@7->print_str#0] -- pbuz1=pbuc1
lda #<str2
sta.z print_str.str
lda #>str2
@ -11202,7 +11202,7 @@ test_8u: {
// print_str(" / ")
// [270] call print_str
// [79] phi from test_8u::@3 to print_str [phi:test_8u::@3->print_str]
// [79] phi (byte*) print_str::str#15 = (const string) str [phi:test_8u::@3->print_str#0] -- pbuz1=pbuc1
// [79] phi (byte*) print_str::str#15 = (const byte*) str [phi:test_8u::@3->print_str#0] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -11223,7 +11223,7 @@ test_8u: {
// print_str(" = ")
// [274] call print_str
// [79] phi from test_8u::@5 to print_str [phi:test_8u::@5->print_str]
// [79] phi (byte*) print_str::str#15 = (const string) str1 [phi:test_8u::@5->print_str#0] -- pbuz1=pbuc1
// [79] phi (byte*) print_str::str#15 = (const byte*) str1 [phi:test_8u::@5->print_str#0] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -11244,7 +11244,7 @@ test_8u: {
// print_str(" ")
// [278] call print_str
// [79] phi from test_8u::@7 to print_str [phi:test_8u::@7->print_str]
// [79] phi (byte*) print_str::str#15 = (const string) str2 [phi:test_8u::@7->print_str#0] -- pbuz1=pbuc1
// [79] phi (byte*) print_str::str#15 = (const byte*) str2 [phi:test_8u::@7->print_str#0] -- pbuz1=pbuc1
lda #<str2
sta.z print_str.str
lda #>str2

View File

@ -312,9 +312,9 @@
(signed byte) rem8s#33 reg byte x 4.0
(byte) rem8u
(byte) rem8u#17 reg byte x 0.5
(const string) str[] = (string) " / "
(const string) str1[] = (string) " = "
(const string) str2[] = (string) " "
(const byte*) str[(byte) 4] = (string) " / "
(const byte*) str1[(byte) 4] = (string) " = "
(const byte*) str2[(byte) 2] = (string) " "
(void()) test_16s()
(byte~) test_16s::$11 reg byte x 16.5
(label) test_16s::@1

View File

@ -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 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 )
[64] (byte*) print_str::str#17 ← phi( mul16s_compare::@1/(const byte*) str mul16s_compare::@13/(const byte*) mul16s_compare::str1 mul16s_error/(const byte*) mul16s_error::str mul16s_error::@2/(const byte*) str1 mul16s_error::@4/(const byte*) str2 mul16s_error::@6/(const byte*) str3 mul16s_error::@8/(const byte*) str4 mul16u_compare::@1/(const byte*) str mul16u_compare::@13/(const byte*) mul16u_compare::str1 mul16u_error/(const byte*) mul16u_error::str mul16u_error::@2/(const byte*) str1 mul16u_error::@4/(const byte*) str2 mul16u_error::@6/(const byte*) str3 mul16u_error::@8/(const byte*) 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 )

View File

@ -3443,11 +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
Consolidated constant strings into (const byte*) str
Consolidated constant strings into (const byte*) str1
Consolidated constant strings into (const byte*) str2
Consolidated constant strings into (const byte*) str3
Consolidated constant strings into (const byte*) 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
@ -3534,11 +3534,11 @@ Inlining constant with var siblings (const byte) mul16s_compare::ok#1
Inlining constant with var siblings (const byte) mul16s_compare::ok#2
Inlining constant with var siblings (const byte*) print_line_cursor#0
Constant inlined mulf_init::sqr2_lo#0 = (const byte*) mulf_sqr2_lo
Constant inlined mul16u_error::str1 = (const string) str1
Constant inlined mul16u_error::str3 = (const string) str3
Constant inlined mul16u_error::str1 = (const byte*) str1
Constant inlined mul16u_error::str3 = (const byte*) str3
Constant inlined mulf_init::sqr2_hi#0 = (const byte*) mulf_sqr2_hi
Constant inlined mul16u_error::str2 = (const string) str2
Constant inlined mul16u_error::str4 = (const string) str4
Constant inlined mul16u_error::str2 = (const byte*) str2
Constant inlined mul16u_error::str4 = (const byte*) str4
Constant inlined muls16s::j#0 = (signed word) 0
Constant inlined mul16u_compare::ok#0 = (byte) 1
Constant inlined mulf_init::dir#1 = (byte) 1
@ -3546,13 +3546,13 @@ Constant inlined mulf_init::dir#0 = (byte) $ff
Constant inlined muls16u::i#0 = (word) 0
Constant inlined mul16u_compare::ok#2 = (byte) 0
Constant inlined mul16u_compare::ok#1 = (byte) 0
Constant inlined mul16s_error::str1 = (const string) str1
Constant inlined mul16s_error::str1 = (const byte*) str1
Constant inlined muls16u::m#0 = (dword) 0
Constant inlined mul16s_compare::a#0 = (signed word) -$7fff
Constant inlined mulf_init::x_255#0 = (byte) -1
Constant inlined mul16s_error::str4 = (const string) str4
Constant inlined mul16s_error::str3 = (const string) str3
Constant inlined mul16s_error::str2 = (const string) str2
Constant inlined mul16s_error::str4 = (const byte*) str4
Constant inlined mul16s_error::str3 = (const byte*) str3
Constant inlined mul16s_error::str2 = (const byte*) str2
Constant inlined mulf_init::x_2#0 = (byte) 0
Constant inlined mul16u_compare::a#0 = (word) 0
Constant inlined mul16s_compare::j#0 = (byte) 0
@ -3561,26 +3561,26 @@ Constant inlined print_line_cursor#0 = (byte*) 1024
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#4 = (const byte*) 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
Constant inlined print_str::str#7 = (const string) str4
Constant inlined print_str::str#6 = (const string) str3
Constant inlined print_str::str#5 = (const string) str2
Constant inlined print_str::str#1 = (const byte*) str
Constant inlined print_str::str#8 = (const byte*) str
Constant inlined print_str::str#7 = (const byte*) str4
Constant inlined print_str::str#6 = (const byte*) str3
Constant inlined print_str::str#5 = (const byte*) str2
Constant inlined mulf_init::c#0 = (byte) 0
Constant inlined muls16s::i#0 = (signed word) 0
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 mul16s_compare::str = (const byte*) str
Constant inlined print_str::str#13 = (const byte*) str3
Constant inlined print_str::str#12 = (const byte*) str2
Constant inlined print_str::str#11 = (const byte*) str1
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
Constant inlined print_str::str#14 = (const string) str4
Constant inlined print_str::str#14 = (const byte*) str4
Constant inlined mul16s_compare::ok#2 = (byte) 0
Constant inlined memset::$2 = (byte*)(const void*) memset::str#0
Constant inlined mul16u::res#0 = (dword) 0
@ -3593,7 +3593,7 @@ Constant inlined print_char::ch#3 = (byte) ' '
Constant inlined print_char::ch#2 = (byte) '-'
Constant inlined print_char::ch#1 = (byte) ' '
Constant inlined print_char::ch#0 = (byte) '-'
Constant inlined mul16u_compare::str = (const string) str
Constant inlined mul16u_compare::str = (const byte*) str
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 mul16u::@10(between mul16u::@2 and mul16u::@4)
@ -4063,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 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 )
[64] (byte*) print_str::str#17 ← phi( mul16s_compare::@1/(const byte*) str mul16s_compare::@13/(const byte*) mul16s_compare::str1 mul16s_error/(const byte*) mul16s_error::str mul16s_error::@2/(const byte*) str1 mul16s_error::@4/(const byte*) str2 mul16s_error::@6/(const byte*) str3 mul16s_error::@8/(const byte*) str4 mul16u_compare::@1/(const byte*) str mul16u_compare::@13/(const byte*) mul16u_compare::str1 mul16u_error/(const byte*) mul16u_error::str mul16u_error::@2/(const byte*) str1 mul16u_error::@4/(const byte*) str2 mul16u_error::@6/(const byte*) str3 mul16u_error::@8/(const byte*) 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 )
@ -5296,7 +5296,7 @@ mul16s_compare: {
// [64] phi from mul16s_compare::@1 to print_str [phi:mul16s_compare::@1->print_str]
print_str_from___b1:
// [64] phi (byte*) print_char_cursor#154 = (byte*) print_char_cursor#149 [phi:mul16s_compare::@1->print_str#0] -- register_copy
// [64] phi (byte*) print_str::str#17 = (const string) str [phi:mul16s_compare::@1->print_str#1] -- pbuz1=pbuc1
// [64] phi (byte*) print_str::str#17 = (const byte*) str [phi:mul16s_compare::@1->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -5729,7 +5729,7 @@ mul16s_error: {
// [64] phi from mul16s_error::@2 to print_str [phi:mul16s_error::@2->print_str]
print_str_from___b2:
// [64] phi (byte*) print_char_cursor#154 = (byte*) print_char_cursor#22 [phi:mul16s_error::@2->print_str#0] -- register_copy
// [64] phi (byte*) print_str::str#17 = (const string) str1 [phi:mul16s_error::@2->print_str#1] -- pbuz1=pbuc1
// [64] phi (byte*) print_str::str#17 = (const byte*) str1 [phi:mul16s_error::@2->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -5757,7 +5757,7 @@ mul16s_error: {
// [64] phi from mul16s_error::@4 to print_str [phi:mul16s_error::@4->print_str]
print_str_from___b4:
// [64] phi (byte*) print_char_cursor#154 = (byte*) print_char_cursor#22 [phi:mul16s_error::@4->print_str#0] -- register_copy
// [64] phi (byte*) print_str::str#17 = (const string) str2 [phi:mul16s_error::@4->print_str#1] -- pbuz1=pbuc1
// [64] phi (byte*) print_str::str#17 = (const byte*) str2 [phi:mul16s_error::@4->print_str#1] -- pbuz1=pbuc1
lda #<str2
sta.z print_str.str
lda #>str2
@ -5789,7 +5789,7 @@ mul16s_error: {
// [64] phi from mul16s_error::@6 to print_str [phi:mul16s_error::@6->print_str]
print_str_from___b6:
// [64] phi (byte*) print_char_cursor#154 = (byte*) print_char_cursor#22 [phi:mul16s_error::@6->print_str#0] -- register_copy
// [64] phi (byte*) print_str::str#17 = (const string) str3 [phi:mul16s_error::@6->print_str#1] -- pbuz1=pbuc1
// [64] phi (byte*) print_str::str#17 = (const byte*) str3 [phi:mul16s_error::@6->print_str#1] -- pbuz1=pbuc1
lda #<str3
sta.z print_str.str
lda #>str3
@ -5821,7 +5821,7 @@ mul16s_error: {
// [64] phi from mul16s_error::@8 to print_str [phi:mul16s_error::@8->print_str]
print_str_from___b8:
// [64] phi (byte*) print_char_cursor#154 = (byte*) print_char_cursor#22 [phi:mul16s_error::@8->print_str#0] -- register_copy
// [64] phi (byte*) print_str::str#17 = (const string) str4 [phi:mul16s_error::@8->print_str#1] -- pbuz1=pbuc1
// [64] phi (byte*) print_str::str#17 = (const byte*) str4 [phi:mul16s_error::@8->print_str#1] -- pbuz1=pbuc1
lda #<str4
sta.z print_str.str
lda #>str4
@ -6846,7 +6846,7 @@ mul16u_compare: {
// [64] phi from mul16u_compare::@1 to print_str [phi:mul16u_compare::@1->print_str]
print_str_from___b1:
// [64] phi (byte*) print_char_cursor#154 = (byte*) print_char_cursor#145 [phi:mul16u_compare::@1->print_str#0] -- register_copy
// [64] phi (byte*) print_str::str#17 = (const string) str [phi:mul16u_compare::@1->print_str#1] -- pbuz1=pbuc1
// [64] phi (byte*) print_str::str#17 = (const byte*) str [phi:mul16u_compare::@1->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -7217,7 +7217,7 @@ mul16u_error: {
// [64] phi from mul16u_error::@2 to print_str [phi:mul16u_error::@2->print_str]
print_str_from___b2:
// [64] phi (byte*) print_char_cursor#154 = (byte*) print_char_cursor#22 [phi:mul16u_error::@2->print_str#0] -- register_copy
// [64] phi (byte*) print_str::str#17 = (const string) str1 [phi:mul16u_error::@2->print_str#1] -- pbuz1=pbuc1
// [64] phi (byte*) print_str::str#17 = (const byte*) str1 [phi:mul16u_error::@2->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -7246,7 +7246,7 @@ mul16u_error: {
// [64] phi from mul16u_error::@4 to print_str [phi:mul16u_error::@4->print_str]
print_str_from___b4:
// [64] phi (byte*) print_char_cursor#154 = (byte*) print_char_cursor#22 [phi:mul16u_error::@4->print_str#0] -- register_copy
// [64] phi (byte*) print_str::str#17 = (const string) str2 [phi:mul16u_error::@4->print_str#1] -- pbuz1=pbuc1
// [64] phi (byte*) print_str::str#17 = (const byte*) str2 [phi:mul16u_error::@4->print_str#1] -- pbuz1=pbuc1
lda #<str2
sta.z print_str.str
lda #>str2
@ -7279,7 +7279,7 @@ mul16u_error: {
// [64] phi from mul16u_error::@6 to print_str [phi:mul16u_error::@6->print_str]
print_str_from___b6:
// [64] phi (byte*) print_char_cursor#154 = (byte*) print_char_cursor#22 [phi:mul16u_error::@6->print_str#0] -- register_copy
// [64] phi (byte*) print_str::str#17 = (const string) str3 [phi:mul16u_error::@6->print_str#1] -- pbuz1=pbuc1
// [64] phi (byte*) print_str::str#17 = (const byte*) str3 [phi:mul16u_error::@6->print_str#1] -- pbuz1=pbuc1
lda #<str3
sta.z print_str.str
lda #>str3
@ -7312,7 +7312,7 @@ mul16u_error: {
// [64] phi from mul16u_error::@8 to print_str [phi:mul16u_error::@8->print_str]
print_str_from___b8:
// [64] phi (byte*) print_char_cursor#154 = (byte*) print_char_cursor#22 [phi:mul16u_error::@8->print_str#0] -- register_copy
// [64] phi (byte*) print_str::str#17 = (const string) str4 [phi:mul16u_error::@8->print_str#1] -- pbuz1=pbuc1
// [64] phi (byte*) print_str::str#17 = (const byte*) str4 [phi:mul16u_error::@8->print_str#1] -- pbuz1=pbuc1
lda #<str4
sta.z print_str.str
lda #>str4
@ -8396,7 +8396,7 @@ mul16s_compare: {
// [64] phi from mul16s_compare::@1 to print_str [phi:mul16s_compare::@1->print_str]
print_str_from___b1:
// [64] phi (byte*) print_char_cursor#154 = (byte*) print_char_cursor#149 [phi:mul16s_compare::@1->print_str#0] -- register_copy
// [64] phi (byte*) print_str::str#17 = (const string) str [phi:mul16s_compare::@1->print_str#1] -- pbuz1=pbuc1
// [64] phi (byte*) print_str::str#17 = (const byte*) str [phi:mul16s_compare::@1->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -8715,7 +8715,7 @@ mul16s_error: {
// [64] phi from mul16s_error::@2 to print_str [phi:mul16s_error::@2->print_str]
print_str_from___b2:
// [64] phi (byte*) print_char_cursor#154 = (byte*) print_char_cursor#22 [phi:mul16s_error::@2->print_str#0] -- register_copy
// [64] phi (byte*) print_str::str#17 = (const string) str1 [phi:mul16s_error::@2->print_str#1] -- pbuz1=pbuc1
// [64] phi (byte*) print_str::str#17 = (const byte*) str1 [phi:mul16s_error::@2->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -8743,7 +8743,7 @@ mul16s_error: {
// [64] phi from mul16s_error::@4 to print_str [phi:mul16s_error::@4->print_str]
print_str_from___b4:
// [64] phi (byte*) print_char_cursor#154 = (byte*) print_char_cursor#22 [phi:mul16s_error::@4->print_str#0] -- register_copy
// [64] phi (byte*) print_str::str#17 = (const string) str2 [phi:mul16s_error::@4->print_str#1] -- pbuz1=pbuc1
// [64] phi (byte*) print_str::str#17 = (const byte*) str2 [phi:mul16s_error::@4->print_str#1] -- pbuz1=pbuc1
lda #<str2
sta.z print_str.str
lda #>str2
@ -8767,7 +8767,7 @@ mul16s_error: {
// [64] phi from mul16s_error::@6 to print_str [phi:mul16s_error::@6->print_str]
print_str_from___b6:
// [64] phi (byte*) print_char_cursor#154 = (byte*) print_char_cursor#22 [phi:mul16s_error::@6->print_str#0] -- register_copy
// [64] phi (byte*) print_str::str#17 = (const string) str3 [phi:mul16s_error::@6->print_str#1] -- pbuz1=pbuc1
// [64] phi (byte*) print_str::str#17 = (const byte*) str3 [phi:mul16s_error::@6->print_str#1] -- pbuz1=pbuc1
lda #<str3
sta.z print_str.str
lda #>str3
@ -8799,7 +8799,7 @@ mul16s_error: {
// [64] phi from mul16s_error::@8 to print_str [phi:mul16s_error::@8->print_str]
print_str_from___b8:
// [64] phi (byte*) print_char_cursor#154 = (byte*) print_char_cursor#22 [phi:mul16s_error::@8->print_str#0] -- register_copy
// [64] phi (byte*) print_str::str#17 = (const string) str4 [phi:mul16s_error::@8->print_str#1] -- pbuz1=pbuc1
// [64] phi (byte*) print_str::str#17 = (const byte*) str4 [phi:mul16s_error::@8->print_str#1] -- pbuz1=pbuc1
lda #<str4
sta.z print_str.str
lda #>str4
@ -9739,7 +9739,7 @@ mul16u_compare: {
// [64] phi from mul16u_compare::@1 to print_str [phi:mul16u_compare::@1->print_str]
print_str_from___b1:
// [64] phi (byte*) print_char_cursor#154 = (byte*) print_char_cursor#145 [phi:mul16u_compare::@1->print_str#0] -- register_copy
// [64] phi (byte*) print_str::str#17 = (const string) str [phi:mul16u_compare::@1->print_str#1] -- pbuz1=pbuc1
// [64] phi (byte*) print_str::str#17 = (const byte*) str [phi:mul16u_compare::@1->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -10004,7 +10004,7 @@ mul16u_error: {
// [64] phi from mul16u_error::@2 to print_str [phi:mul16u_error::@2->print_str]
print_str_from___b2:
// [64] phi (byte*) print_char_cursor#154 = (byte*) print_char_cursor#22 [phi:mul16u_error::@2->print_str#0] -- register_copy
// [64] phi (byte*) print_str::str#17 = (const string) str1 [phi:mul16u_error::@2->print_str#1] -- pbuz1=pbuc1
// [64] phi (byte*) print_str::str#17 = (const byte*) str1 [phi:mul16u_error::@2->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -10033,7 +10033,7 @@ mul16u_error: {
// [64] phi from mul16u_error::@4 to print_str [phi:mul16u_error::@4->print_str]
print_str_from___b4:
// [64] phi (byte*) print_char_cursor#154 = (byte*) print_char_cursor#22 [phi:mul16u_error::@4->print_str#0] -- register_copy
// [64] phi (byte*) print_str::str#17 = (const string) str2 [phi:mul16u_error::@4->print_str#1] -- pbuz1=pbuc1
// [64] phi (byte*) print_str::str#17 = (const byte*) str2 [phi:mul16u_error::@4->print_str#1] -- pbuz1=pbuc1
lda #<str2
sta.z print_str.str
lda #>str2
@ -10058,7 +10058,7 @@ mul16u_error: {
// [64] phi from mul16u_error::@6 to print_str [phi:mul16u_error::@6->print_str]
print_str_from___b6:
// [64] phi (byte*) print_char_cursor#154 = (byte*) print_char_cursor#22 [phi:mul16u_error::@6->print_str#0] -- register_copy
// [64] phi (byte*) print_str::str#17 = (const string) str3 [phi:mul16u_error::@6->print_str#1] -- pbuz1=pbuc1
// [64] phi (byte*) print_str::str#17 = (const byte*) str3 [phi:mul16u_error::@6->print_str#1] -- pbuz1=pbuc1
lda #<str3
sta.z print_str.str
lda #>str3
@ -10091,7 +10091,7 @@ mul16u_error: {
// [64] phi from mul16u_error::@8 to print_str [phi:mul16u_error::@8->print_str]
print_str_from___b8:
// [64] phi (byte*) print_char_cursor#154 = (byte*) print_char_cursor#22 [phi:mul16u_error::@8->print_str#0] -- register_copy
// [64] phi (byte*) print_str::str#17 = (const string) str4 [phi:mul16u_error::@8->print_str#1] -- pbuz1=pbuc1
// [64] phi (byte*) print_str::str#17 = (const byte*) str4 [phi:mul16u_error::@8->print_str#1] -- pbuz1=pbuc1
lda #<str4
sta.z print_str.str
lda #>str4
@ -11371,11 +11371,11 @@ FINAL SYMBOL TABLE
(word) print_word::w#3 w zp[2]:14 4.0
(word) print_word::w#4 w zp[2]:14 4.0
(word) print_word::w#5 w zp[2]:14 4.666666666666666
(const string) str[] = (string) "."
(const string) str1[] = (string) "*"
(const string) str2[] = (string) " slow:"
(const string) str3[] = (string) " / normal:"
(const string) str4[] = (string) " / fast:"
(const byte*) str[(byte) 2] = (string) "."
(const byte*) str1[(byte) 2] = (string) "*"
(const byte*) str2[(byte) 7] = (string) " slow:"
(const byte*) str3[(byte) $b] = (string) " / normal:"
(const byte*) str4[(byte) 9] = (string) " / fast:"
reg byte y [ mul16s_compare::j#10 mul16s_compare::j#1 ]
reg byte x [ mul16s_compare::ok#3 mul16s_compare::ok#4 ]
@ -11496,7 +11496,7 @@ mul16s_compare: {
// [15] call print_str
// [64] phi from mul16s_compare::@1 to print_str [phi:mul16s_compare::@1->print_str]
// [64] phi (byte*) print_char_cursor#154 = (byte*) print_char_cursor#149 [phi:mul16s_compare::@1->print_str#0] -- register_copy
// [64] phi (byte*) print_str::str#17 = (const string) str [phi:mul16s_compare::@1->print_str#1] -- pbuz1=pbuc1
// [64] phi (byte*) print_str::str#17 = (const byte*) str [phi:mul16s_compare::@1->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -11787,7 +11787,7 @@ mul16s_error: {
// [76] call print_str
// [64] phi from mul16s_error::@2 to print_str [phi:mul16s_error::@2->print_str]
// [64] phi (byte*) print_char_cursor#154 = (byte*) print_char_cursor#22 [phi:mul16s_error::@2->print_str#0] -- register_copy
// [64] phi (byte*) print_str::str#17 = (const string) str1 [phi:mul16s_error::@2->print_str#1] -- pbuz1=pbuc1
// [64] phi (byte*) print_str::str#17 = (const byte*) str1 [phi:mul16s_error::@2->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -11810,7 +11810,7 @@ mul16s_error: {
// [80] call print_str
// [64] phi from mul16s_error::@4 to print_str [phi:mul16s_error::@4->print_str]
// [64] phi (byte*) print_char_cursor#154 = (byte*) print_char_cursor#22 [phi:mul16s_error::@4->print_str#0] -- register_copy
// [64] phi (byte*) print_str::str#17 = (const string) str2 [phi:mul16s_error::@4->print_str#1] -- pbuz1=pbuc1
// [64] phi (byte*) print_str::str#17 = (const byte*) str2 [phi:mul16s_error::@4->print_str#1] -- pbuz1=pbuc1
lda #<str2
sta.z print_str.str
lda #>str2
@ -11829,7 +11829,7 @@ mul16s_error: {
// [84] call print_str
// [64] phi from mul16s_error::@6 to print_str [phi:mul16s_error::@6->print_str]
// [64] phi (byte*) print_char_cursor#154 = (byte*) print_char_cursor#22 [phi:mul16s_error::@6->print_str#0] -- register_copy
// [64] phi (byte*) print_str::str#17 = (const string) str3 [phi:mul16s_error::@6->print_str#1] -- pbuz1=pbuc1
// [64] phi (byte*) print_str::str#17 = (const byte*) str3 [phi:mul16s_error::@6->print_str#1] -- pbuz1=pbuc1
lda #<str3
sta.z print_str.str
lda #>str3
@ -11856,7 +11856,7 @@ mul16s_error: {
// [88] call print_str
// [64] phi from mul16s_error::@8 to print_str [phi:mul16s_error::@8->print_str]
// [64] phi (byte*) print_char_cursor#154 = (byte*) print_char_cursor#22 [phi:mul16s_error::@8->print_str#0] -- register_copy
// [64] phi (byte*) print_str::str#17 = (const string) str4 [phi:mul16s_error::@8->print_str#1] -- pbuz1=pbuc1
// [64] phi (byte*) print_str::str#17 = (const byte*) str4 [phi:mul16s_error::@8->print_str#1] -- pbuz1=pbuc1
lda #<str4
sta.z print_str.str
lda #>str4
@ -12739,7 +12739,7 @@ mul16u_compare: {
// [205] call print_str
// [64] phi from mul16u_compare::@1 to print_str [phi:mul16u_compare::@1->print_str]
// [64] phi (byte*) print_char_cursor#154 = (byte*) print_char_cursor#145 [phi:mul16u_compare::@1->print_str#0] -- register_copy
// [64] phi (byte*) print_str::str#17 = (const string) str [phi:mul16u_compare::@1->print_str#1] -- pbuz1=pbuc1
// [64] phi (byte*) print_str::str#17 = (const byte*) str [phi:mul16u_compare::@1->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
@ -12980,7 +12980,7 @@ mul16u_error: {
// [254] call print_str
// [64] phi from mul16u_error::@2 to print_str [phi:mul16u_error::@2->print_str]
// [64] phi (byte*) print_char_cursor#154 = (byte*) print_char_cursor#22 [phi:mul16u_error::@2->print_str#0] -- register_copy
// [64] phi (byte*) print_str::str#17 = (const string) str1 [phi:mul16u_error::@2->print_str#1] -- pbuz1=pbuc1
// [64] phi (byte*) print_str::str#17 = (const byte*) str1 [phi:mul16u_error::@2->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -13004,7 +13004,7 @@ mul16u_error: {
// [258] call print_str
// [64] phi from mul16u_error::@4 to print_str [phi:mul16u_error::@4->print_str]
// [64] phi (byte*) print_char_cursor#154 = (byte*) print_char_cursor#22 [phi:mul16u_error::@4->print_str#0] -- register_copy
// [64] phi (byte*) print_str::str#17 = (const string) str2 [phi:mul16u_error::@4->print_str#1] -- pbuz1=pbuc1
// [64] phi (byte*) print_str::str#17 = (const byte*) str2 [phi:mul16u_error::@4->print_str#1] -- pbuz1=pbuc1
lda #<str2
sta.z print_str.str
lda #>str2
@ -13024,7 +13024,7 @@ mul16u_error: {
// [262] call print_str
// [64] phi from mul16u_error::@6 to print_str [phi:mul16u_error::@6->print_str]
// [64] phi (byte*) print_char_cursor#154 = (byte*) print_char_cursor#22 [phi:mul16u_error::@6->print_str#0] -- register_copy
// [64] phi (byte*) print_str::str#17 = (const string) str3 [phi:mul16u_error::@6->print_str#1] -- pbuz1=pbuc1
// [64] phi (byte*) print_str::str#17 = (const byte*) str3 [phi:mul16u_error::@6->print_str#1] -- pbuz1=pbuc1
lda #<str3
sta.z print_str.str
lda #>str3
@ -13052,7 +13052,7 @@ mul16u_error: {
// [266] call print_str
// [64] phi from mul16u_error::@8 to print_str [phi:mul16u_error::@8->print_str]
// [64] phi (byte*) print_char_cursor#154 = (byte*) print_char_cursor#22 [phi:mul16u_error::@8->print_str#0] -- register_copy
// [64] phi (byte*) print_str::str#17 = (const string) str4 [phi:mul16u_error::@8->print_str#1] -- pbuz1=pbuc1
// [64] phi (byte*) print_str::str#17 = (const byte*) str4 [phi:mul16u_error::@8->print_str#1] -- pbuz1=pbuc1
lda #<str4
sta.z print_str.str
lda #>str4

View File

@ -433,11 +433,11 @@
(word) print_word::w#3 w zp[2]:14 4.0
(word) print_word::w#4 w zp[2]:14 4.0
(word) print_word::w#5 w zp[2]:14 4.666666666666666
(const string) str[] = (string) "."
(const string) str1[] = (string) "*"
(const string) str2[] = (string) " slow:"
(const string) str3[] = (string) " / normal:"
(const string) str4[] = (string) " / fast:"
(const byte*) str[(byte) 2] = (string) "."
(const byte*) str1[(byte) 2] = (string) "*"
(const byte*) str2[(byte) 7] = (string) " slow:"
(const byte*) str3[(byte) $b] = (string) " / normal:"
(const byte*) str4[(byte) 9] = (string) " / fast:"
reg byte y [ mul16s_compare::j#10 mul16s_compare::j#1 ]
reg byte x [ mul16s_compare::ok#3 mul16s_compare::ok#4 ]

View File

@ -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 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 )
[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 byte*) str1 mul8s_error::@4/(const byte*) str2 mul8s_error::@6/(const byte*) str3 mul8s_error::@8/(const byte*) str4 mul8u_compare::@9/(const byte*) mul8u_compare::str mul8u_error/(const byte*) mul8u_error::str mul8u_error::@2/(const byte*) str1 mul8u_error::@4/(const byte*) str2 mul8u_error::@6/(const byte*) str3 mul8u_error::@8/(const byte*) 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 )

View File

@ -3571,10 +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
Consolidated constant strings into (const byte*) str1
Consolidated constant strings into (const byte*) str2
Consolidated constant strings into (const byte*) str3
Consolidated constant strings into (const byte*) 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
@ -3671,7 +3671,7 @@ Constant inlined mul8s_compare::ok#0 = (byte) 1
Constant inlined mul8s_compare::ok#1 = (byte) 0
Constant inlined muls8s::m#0 = (signed word) 0
Constant inlined muls8s::i#0 = (signed byte) 0
Constant inlined print_str::str#9 = (const string) str4
Constant inlined print_str::str#9 = (const byte*) str4
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
@ -3681,37 +3681,37 @@ 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 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#8 = (const byte*) str3
Constant inlined print_str::str#7 = (const byte*) str2
Constant inlined print_str::str#6 = (const byte*) str1
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#13 = (const byte*) str2
Constant inlined print_str::str#12 = (const byte*) str1
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 print_str::str#15 = (const byte*) str4
Constant inlined print_str::str#14 = (const byte*) str3
Constant inlined mul8u_compare::a#0 = (byte) 0
Constant inlined memset::$2 = (byte*)(const void*) memset::str#0
Constant inlined mul8s_compare::a#0 = (signed byte) -$80
Constant inlined mulf_init::sqr#0 = (word) 0
Constant inlined muls8u::i#0 = (byte) 0
Constant inlined mul8s_error::str1 = (const string) str1
Constant inlined mul8s_error::str2 = (const string) str2
Constant inlined mul8s_error::str3 = (const string) str3
Constant inlined mul8s_error::str1 = (const byte*) str1
Constant inlined mul8s_error::str2 = (const byte*) str2
Constant inlined mul8s_error::str3 = (const byte*) str3
Constant inlined muls8u::m#0 = (word) 0
Constant inlined mul8s_error::str4 = (const string) str4
Constant inlined mul8s_error::str4 = (const byte*) str4
Constant inlined print_char::ch#3 = (byte) ' '
Constant inlined print_char::ch#2 = (byte) '-'
Constant inlined muls8s::j#0 = (signed byte) 0
Constant inlined mulf_tables_cmp::asm_sqr#0 = (const byte*) mula_sqr1_lo
Constant inlined print_char::ch#1 = (byte) ' '
Constant inlined print_char::ch#0 = (byte) '-'
Constant inlined mul8u_error::str1 = (const string) str1
Constant inlined mul8u_error::str2 = (const string) str2
Constant inlined mul8u_error::str3 = (const string) str3
Constant inlined mul8u_error::str4 = (const string) str4
Constant inlined mul8u_error::str1 = (const byte*) str1
Constant inlined mul8u_error::str2 = (const byte*) str2
Constant inlined mul8u_error::str3 = (const byte*) str3
Constant inlined mul8u_error::str4 = (const byte*) str4
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 mul8u::@10(between mul8u::@2 and mul8u::@4)
@ -4308,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 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 )
[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 byte*) str1 mul8s_error::@4/(const byte*) str2 mul8s_error::@6/(const byte*) str3 mul8s_error::@8/(const byte*) str4 mul8u_compare::@9/(const byte*) mul8u_compare::str mul8u_error/(const byte*) mul8u_error::str mul8u_error::@2/(const byte*) str1 mul8u_error::@4/(const byte*) str2 mul8u_error::@6/(const byte*) str3 mul8u_error::@8/(const byte*) 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 )
@ -5749,7 +5749,7 @@ mul8s_error: {
// [114] phi from mul8s_error::@2 to print_str [phi:mul8s_error::@2->print_str]
print_str_from___b2:
// [114] phi (byte*) print_char_cursor#155 = (byte*) print_char_cursor#19 [phi:mul8s_error::@2->print_str#0] -- register_copy
// [114] phi (byte*) print_str::str#18 = (const string) str1 [phi:mul8s_error::@2->print_str#1] -- pbuz1=pbuc1
// [114] phi (byte*) print_str::str#18 = (const byte*) str1 [phi:mul8s_error::@2->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -5775,7 +5775,7 @@ mul8s_error: {
// [114] phi from mul8s_error::@4 to print_str [phi:mul8s_error::@4->print_str]
print_str_from___b4:
// [114] phi (byte*) print_char_cursor#155 = (byte*) print_char_cursor#19 [phi:mul8s_error::@4->print_str#0] -- register_copy
// [114] phi (byte*) print_str::str#18 = (const string) str2 [phi:mul8s_error::@4->print_str#1] -- pbuz1=pbuc1
// [114] phi (byte*) print_str::str#18 = (const byte*) str2 [phi:mul8s_error::@4->print_str#1] -- pbuz1=pbuc1
lda #<str2
sta.z print_str.str
lda #>str2
@ -5803,7 +5803,7 @@ mul8s_error: {
// [114] phi from mul8s_error::@6 to print_str [phi:mul8s_error::@6->print_str]
print_str_from___b6:
// [114] phi (byte*) print_char_cursor#155 = (byte*) print_char_cursor#19 [phi:mul8s_error::@6->print_str#0] -- register_copy
// [114] phi (byte*) print_str::str#18 = (const string) str3 [phi:mul8s_error::@6->print_str#1] -- pbuz1=pbuc1
// [114] phi (byte*) print_str::str#18 = (const byte*) str3 [phi:mul8s_error::@6->print_str#1] -- pbuz1=pbuc1
lda #<str3
sta.z print_str.str
lda #>str3
@ -5831,7 +5831,7 @@ mul8s_error: {
// [114] phi from mul8s_error::@8 to print_str [phi:mul8s_error::@8->print_str]
print_str_from___b8:
// [114] phi (byte*) print_char_cursor#155 = (byte*) print_char_cursor#19 [phi:mul8s_error::@8->print_str#0] -- register_copy
// [114] phi (byte*) print_str::str#18 = (const string) str4 [phi:mul8s_error::@8->print_str#1] -- pbuz1=pbuc1
// [114] phi (byte*) print_str::str#18 = (const byte*) str4 [phi:mul8s_error::@8->print_str#1] -- pbuz1=pbuc1
lda #<str4
sta.z print_str.str
lda #>str4
@ -6943,7 +6943,7 @@ mul8u_error: {
// [114] phi from mul8u_error::@2 to print_str [phi:mul8u_error::@2->print_str]
print_str_from___b2:
// [114] phi (byte*) print_char_cursor#155 = (byte*) print_char_cursor#19 [phi:mul8u_error::@2->print_str#0] -- register_copy
// [114] phi (byte*) print_str::str#18 = (const string) str1 [phi:mul8u_error::@2->print_str#1] -- pbuz1=pbuc1
// [114] phi (byte*) print_str::str#18 = (const byte*) str1 [phi:mul8u_error::@2->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -6970,7 +6970,7 @@ mul8u_error: {
// [114] phi from mul8u_error::@4 to print_str [phi:mul8u_error::@4->print_str]
print_str_from___b4:
// [114] phi (byte*) print_char_cursor#155 = (byte*) print_char_cursor#19 [phi:mul8u_error::@4->print_str#0] -- register_copy
// [114] phi (byte*) print_str::str#18 = (const string) str2 [phi:mul8u_error::@4->print_str#1] -- pbuz1=pbuc1
// [114] phi (byte*) print_str::str#18 = (const byte*) str2 [phi:mul8u_error::@4->print_str#1] -- pbuz1=pbuc1
lda #<str2
sta.z print_str.str
lda #>str2
@ -6999,7 +6999,7 @@ mul8u_error: {
// [114] phi from mul8u_error::@6 to print_str [phi:mul8u_error::@6->print_str]
print_str_from___b6:
// [114] phi (byte*) print_char_cursor#155 = (byte*) print_char_cursor#19 [phi:mul8u_error::@6->print_str#0] -- register_copy
// [114] phi (byte*) print_str::str#18 = (const string) str3 [phi:mul8u_error::@6->print_str#1] -- pbuz1=pbuc1
// [114] phi (byte*) print_str::str#18 = (const byte*) str3 [phi:mul8u_error::@6->print_str#1] -- pbuz1=pbuc1
lda #<str3
sta.z print_str.str
lda #>str3
@ -7028,7 +7028,7 @@ mul8u_error: {
// [114] phi from mul8u_error::@8 to print_str [phi:mul8u_error::@8->print_str]
print_str_from___b8:
// [114] phi (byte*) print_char_cursor#155 = (byte*) print_char_cursor#19 [phi:mul8u_error::@8->print_str#0] -- register_copy
// [114] phi (byte*) print_str::str#18 = (const string) str4 [phi:mul8u_error::@8->print_str#1] -- pbuz1=pbuc1
// [114] phi (byte*) print_str::str#18 = (const byte*) str4 [phi:mul8u_error::@8->print_str#1] -- pbuz1=pbuc1
lda #<str4
sta.z print_str.str
lda #>str4
@ -8535,7 +8535,7 @@ mul8s_error: {
// [114] phi from mul8s_error::@2 to print_str [phi:mul8s_error::@2->print_str]
print_str_from___b2:
// [114] phi (byte*) print_char_cursor#155 = (byte*) print_char_cursor#19 [phi:mul8s_error::@2->print_str#0] -- register_copy
// [114] phi (byte*) print_str::str#18 = (const string) str1 [phi:mul8s_error::@2->print_str#1] -- pbuz1=pbuc1
// [114] phi (byte*) print_str::str#18 = (const byte*) str1 [phi:mul8s_error::@2->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -8560,7 +8560,7 @@ mul8s_error: {
// [114] phi from mul8s_error::@4 to print_str [phi:mul8s_error::@4->print_str]
print_str_from___b4:
// [114] phi (byte*) print_char_cursor#155 = (byte*) print_char_cursor#19 [phi:mul8s_error::@4->print_str#0] -- register_copy
// [114] phi (byte*) print_str::str#18 = (const string) str2 [phi:mul8s_error::@4->print_str#1] -- pbuz1=pbuc1
// [114] phi (byte*) print_str::str#18 = (const byte*) str2 [phi:mul8s_error::@4->print_str#1] -- pbuz1=pbuc1
lda #<str2
sta.z print_str.str
lda #>str2
@ -8584,7 +8584,7 @@ mul8s_error: {
// [114] phi from mul8s_error::@6 to print_str [phi:mul8s_error::@6->print_str]
print_str_from___b6:
// [114] phi (byte*) print_char_cursor#155 = (byte*) print_char_cursor#19 [phi:mul8s_error::@6->print_str#0] -- register_copy
// [114] phi (byte*) print_str::str#18 = (const string) str3 [phi:mul8s_error::@6->print_str#1] -- pbuz1=pbuc1
// [114] phi (byte*) print_str::str#18 = (const byte*) str3 [phi:mul8s_error::@6->print_str#1] -- pbuz1=pbuc1
lda #<str3
sta.z print_str.str
lda #>str3
@ -8612,7 +8612,7 @@ mul8s_error: {
// [114] phi from mul8s_error::@8 to print_str [phi:mul8s_error::@8->print_str]
print_str_from___b8:
// [114] phi (byte*) print_char_cursor#155 = (byte*) print_char_cursor#19 [phi:mul8s_error::@8->print_str#0] -- register_copy
// [114] phi (byte*) print_str::str#18 = (const string) str4 [phi:mul8s_error::@8->print_str#1] -- pbuz1=pbuc1
// [114] phi (byte*) print_str::str#18 = (const byte*) str4 [phi:mul8s_error::@8->print_str#1] -- pbuz1=pbuc1
lda #<str4
sta.z print_str.str
lda #>str4
@ -9575,7 +9575,7 @@ mul8u_error: {
// [114] phi from mul8u_error::@2 to print_str [phi:mul8u_error::@2->print_str]
print_str_from___b2:
// [114] phi (byte*) print_char_cursor#155 = (byte*) print_char_cursor#19 [phi:mul8u_error::@2->print_str#0] -- register_copy
// [114] phi (byte*) print_str::str#18 = (const string) str1 [phi:mul8u_error::@2->print_str#1] -- pbuz1=pbuc1
// [114] phi (byte*) print_str::str#18 = (const byte*) str1 [phi:mul8u_error::@2->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -9601,7 +9601,7 @@ mul8u_error: {
// [114] phi from mul8u_error::@4 to print_str [phi:mul8u_error::@4->print_str]
print_str_from___b4:
// [114] phi (byte*) print_char_cursor#155 = (byte*) print_char_cursor#19 [phi:mul8u_error::@4->print_str#0] -- register_copy
// [114] phi (byte*) print_str::str#18 = (const string) str2 [phi:mul8u_error::@4->print_str#1] -- pbuz1=pbuc1
// [114] phi (byte*) print_str::str#18 = (const byte*) str2 [phi:mul8u_error::@4->print_str#1] -- pbuz1=pbuc1
lda #<str2
sta.z print_str.str
lda #>str2
@ -9626,7 +9626,7 @@ mul8u_error: {
// [114] phi from mul8u_error::@6 to print_str [phi:mul8u_error::@6->print_str]
print_str_from___b6:
// [114] phi (byte*) print_char_cursor#155 = (byte*) print_char_cursor#19 [phi:mul8u_error::@6->print_str#0] -- register_copy
// [114] phi (byte*) print_str::str#18 = (const string) str3 [phi:mul8u_error::@6->print_str#1] -- pbuz1=pbuc1
// [114] phi (byte*) print_str::str#18 = (const byte*) str3 [phi:mul8u_error::@6->print_str#1] -- pbuz1=pbuc1
lda #<str3
sta.z print_str.str
lda #>str3
@ -9655,7 +9655,7 @@ mul8u_error: {
// [114] phi from mul8u_error::@8 to print_str [phi:mul8u_error::@8->print_str]
print_str_from___b8:
// [114] phi (byte*) print_char_cursor#155 = (byte*) print_char_cursor#19 [phi:mul8u_error::@8->print_str#0] -- register_copy
// [114] phi (byte*) print_str::str#18 = (const string) str4 [phi:mul8u_error::@8->print_str#1] -- pbuz1=pbuc1
// [114] phi (byte*) print_str::str#18 = (const byte*) str4 [phi:mul8u_error::@8->print_str#1] -- pbuz1=pbuc1
lda #<str4
sta.z print_str.str
lda #>str4
@ -11250,10 +11250,10 @@ FINAL SYMBOL TABLE
(word) print_word::w#4 w zp[2]:4 4.0
(word) print_word::w#5 w zp[2]:4 4.0
(word) print_word::w#6 w zp[2]:4 5.333333333333333
(const string) str1[] = (string) "*"
(const string) str2[] = (string) " slow:"
(const string) str3[] = (string) " / normal:"
(const string) str4[] = (string) " / fast:"
(const byte*) str1[(byte) 2] = (string) "*"
(const byte*) str2[(byte) 7] = (string) " slow:"
(const byte*) str3[(byte) $b] = (string) " / normal:"
(const byte*) str4[(byte) 9] = (string) " / fast:"
reg byte x [ mul8s_compare::ok#3 mul8s_compare::ok#4 ]
reg byte a [ print_char::ch#6 print_char::ch#4 print_char::ch#5 ]
@ -11569,7 +11569,7 @@ mul8s_error: {
// [62] call print_str
// [114] phi from mul8s_error::@2 to print_str [phi:mul8s_error::@2->print_str]
// [114] phi (byte*) print_char_cursor#155 = (byte*) print_char_cursor#19 [phi:mul8s_error::@2->print_str#0] -- register_copy
// [114] phi (byte*) print_str::str#18 = (const string) str1 [phi:mul8s_error::@2->print_str#1] -- pbuz1=pbuc1
// [114] phi (byte*) print_str::str#18 = (const byte*) str1 [phi:mul8s_error::@2->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -11589,7 +11589,7 @@ mul8s_error: {
// [66] call print_str
// [114] phi from mul8s_error::@4 to print_str [phi:mul8s_error::@4->print_str]
// [114] phi (byte*) print_char_cursor#155 = (byte*) print_char_cursor#19 [phi:mul8s_error::@4->print_str#0] -- register_copy
// [114] phi (byte*) print_str::str#18 = (const string) str2 [phi:mul8s_error::@4->print_str#1] -- pbuz1=pbuc1
// [114] phi (byte*) print_str::str#18 = (const byte*) str2 [phi:mul8s_error::@4->print_str#1] -- pbuz1=pbuc1
lda #<str2
sta.z print_str.str
lda #>str2
@ -11608,7 +11608,7 @@ mul8s_error: {
// [70] call print_str
// [114] phi from mul8s_error::@6 to print_str [phi:mul8s_error::@6->print_str]
// [114] phi (byte*) print_char_cursor#155 = (byte*) print_char_cursor#19 [phi:mul8s_error::@6->print_str#0] -- register_copy
// [114] phi (byte*) print_str::str#18 = (const string) str3 [phi:mul8s_error::@6->print_str#1] -- pbuz1=pbuc1
// [114] phi (byte*) print_str::str#18 = (const byte*) str3 [phi:mul8s_error::@6->print_str#1] -- pbuz1=pbuc1
lda #<str3
sta.z print_str.str
lda #>str3
@ -11631,7 +11631,7 @@ mul8s_error: {
// [74] call print_str
// [114] phi from mul8s_error::@8 to print_str [phi:mul8s_error::@8->print_str]
// [114] phi (byte*) print_char_cursor#155 = (byte*) print_char_cursor#19 [phi:mul8s_error::@8->print_str#0] -- register_copy
// [114] phi (byte*) print_str::str#18 = (const string) str4 [phi:mul8s_error::@8->print_str#1] -- pbuz1=pbuc1
// [114] phi (byte*) print_str::str#18 = (const byte*) str4 [phi:mul8s_error::@8->print_str#1] -- pbuz1=pbuc1
lda #<str4
sta.z print_str.str
lda #>str4
@ -12506,7 +12506,7 @@ mul8u_error: {
// [248] call print_str
// [114] phi from mul8u_error::@2 to print_str [phi:mul8u_error::@2->print_str]
// [114] phi (byte*) print_char_cursor#155 = (byte*) print_char_cursor#19 [phi:mul8u_error::@2->print_str#0] -- register_copy
// [114] phi (byte*) print_str::str#18 = (const string) str1 [phi:mul8u_error::@2->print_str#1] -- pbuz1=pbuc1
// [114] phi (byte*) print_str::str#18 = (const byte*) str1 [phi:mul8u_error::@2->print_str#1] -- pbuz1=pbuc1
lda #<str1
sta.z print_str.str
lda #>str1
@ -12527,7 +12527,7 @@ mul8u_error: {
// [252] call print_str
// [114] phi from mul8u_error::@4 to print_str [phi:mul8u_error::@4->print_str]
// [114] phi (byte*) print_char_cursor#155 = (byte*) print_char_cursor#19 [phi:mul8u_error::@4->print_str#0] -- register_copy
// [114] phi (byte*) print_str::str#18 = (const string) str2 [phi:mul8u_error::@4->print_str#1] -- pbuz1=pbuc1
// [114] phi (byte*) print_str::str#18 = (const byte*) str2 [phi:mul8u_error::@4->print_str#1] -- pbuz1=pbuc1
lda #<str2
sta.z print_str.str
lda #>str2
@ -12547,7 +12547,7 @@ mul8u_error: {
// [256] call print_str
// [114] phi from mul8u_error::@6 to print_str [phi:mul8u_error::@6->print_str]
// [114] phi (byte*) print_char_cursor#155 = (byte*) print_char_cursor#19 [phi:mul8u_error::@6->print_str#0] -- register_copy
// [114] phi (byte*) print_str::str#18 = (const string) str3 [phi:mul8u_error::@6->print_str#1] -- pbuz1=pbuc1
// [114] phi (byte*) print_str::str#18 = (const byte*) str3 [phi:mul8u_error::@6->print_str#1] -- pbuz1=pbuc1
lda #<str3
sta.z print_str.str
lda #>str3
@ -12571,7 +12571,7 @@ mul8u_error: {
// [260] call print_str
// [114] phi from mul8u_error::@8 to print_str [phi:mul8u_error::@8->print_str]
// [114] phi (byte*) print_char_cursor#155 = (byte*) print_char_cursor#19 [phi:mul8u_error::@8->print_str#0] -- register_copy
// [114] phi (byte*) print_str::str#18 = (const string) str4 [phi:mul8u_error::@8->print_str#1] -- pbuz1=pbuc1
// [114] phi (byte*) print_str::str#18 = (const byte*) str4 [phi:mul8u_error::@8->print_str#1] -- pbuz1=pbuc1
lda #<str4
sta.z print_str.str
lda #>str4

View File

@ -461,10 +461,10 @@
(word) print_word::w#4 w zp[2]:4 4.0
(word) print_word::w#5 w zp[2]:4 4.0
(word) print_word::w#6 w zp[2]:4 5.333333333333333
(const string) str1[] = (string) "*"
(const string) str2[] = (string) " slow:"
(const string) str3[] = (string) " / normal:"
(const string) str4[] = (string) " / fast:"
(const byte*) str1[(byte) 2] = (string) "*"
(const byte*) str2[(byte) 7] = (string) " slow:"
(const byte*) str3[(byte) $b] = (string) " / normal:"
(const byte*) str4[(byte) 9] = (string) " / fast:"
reg byte x [ mul8s_compare::ok#3 mul8s_compare::ok#4 ]
reg byte a [ print_char::ch#6 print_char::ch#4 print_char::ch#5 ]