From a612562dc7a5f6ef99c8e81ad54467ef73ec5eb8 Mon Sep 17 00:00:00 2001 From: jespergravgaard Date: Thu, 6 Feb 2020 22:29:41 +0100 Subject: [PATCH] Work in progress: eliminating SymbolType.STRING --- .../Pass2ConstantStringConsolidation.java | 10 +- src/test/ref/constants.cfg | 6 +- src/test/ref/constants.log | 126 ++++++++-------- src/test/ref/constants.sym | 10 +- src/test/ref/test-division.cfg | 2 +- src/test/ref/test-division.log | 134 +++++++++--------- src/test/ref/test-division.sym | 6 +- src/test/ref/test-multiply-16bit.cfg | 2 +- src/test/ref/test-multiply-16bit.log | 122 ++++++++-------- src/test/ref/test-multiply-16bit.sym | 10 +- src/test/ref/test-multiply-8bit.cfg | 2 +- src/test/ref/test-multiply-8bit.log | 98 ++++++------- src/test/ref/test-multiply-8bit.sym | 8 +- 13 files changed, 268 insertions(+), 268 deletions(-) diff --git a/src/main/java/dk/camelot64/kickc/passes/Pass2ConstantStringConsolidation.java b/src/main/java/dk/camelot64/kickc/passes/Pass2ConstantStringConsolidation.java index 81f3e7c2b..ce55ad390 100644 --- a/src/main/java/dk/camelot64/kickc/passes/Pass2ConstantStringConsolidation.java +++ b/src/main/java/dk/camelot64/kickc/passes/Pass2ConstantStringConsolidation.java @@ -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; } diff --git a/src/test/ref/constants.cfg b/src/test/ref/constants.cfg index d904f2cdc..3b14a33b2 100644 --- a/src/test/ref/constants.cfg +++ b/src/test/ref/constants.cfg @@ -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 diff --git a/src/test/ref/constants.log b/src/test/ref/constants.log index da1f46ac2..df232543d 100644 --- a/src/test/ref/constants.log +++ b/src/test/ref/constants.log @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 diff --git a/src/test/ref/constants.sym b/src/test/ref/constants.sym index 5524985eb..247ba0fd4 100644 --- a/src/test/ref/constants.sym +++ b/src/test/ref/constants.sym @@ -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 diff --git a/src/test/ref/test-division.cfg b/src/test/ref/test-division.cfg index 9638aab8f..a38dabe76 100644 --- a/src/test/ref/test-division.cfg +++ b/src/test/ref/test-division.cfg @@ -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 ) diff --git a/src/test/ref/test-division.log b/src/test/ref/test-division.log index f8970d3fb..3e79dfd15 100644 --- a/src/test/ref/test-division.log +++ b/src/test/ref/test-division.log @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 diff --git a/src/test/ref/test-division.sym b/src/test/ref/test-division.sym index caa9452a4..9178edd14 100644 --- a/src/test/ref/test-division.sym +++ b/src/test/ref/test-division.sym @@ -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 diff --git a/src/test/ref/test-multiply-16bit.cfg b/src/test/ref/test-multiply-16bit.cfg index 2f4107d57..2a0808693 100644 --- a/src/test/ref/test-multiply-16bit.cfg +++ b/src/test/ref/test-multiply-16bit.cfg @@ -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 ) diff --git a/src/test/ref/test-multiply-16bit.log b/src/test/ref/test-multiply-16bit.log index 203af8533..e74e597c6 100644 --- a/src/test/ref/test-multiply-16bit.log +++ b/src/test/ref/test-multiply-16bit.log @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 diff --git a/src/test/ref/test-multiply-16bit.sym b/src/test/ref/test-multiply-16bit.sym index c3321615d..986ce1701 100644 --- a/src/test/ref/test-multiply-16bit.sym +++ b/src/test/ref/test-multiply-16bit.sym @@ -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 ] diff --git a/src/test/ref/test-multiply-8bit.cfg b/src/test/ref/test-multiply-8bit.cfg index 7c669d3a5..3853bca60 100644 --- a/src/test/ref/test-multiply-8bit.cfg +++ b/src/test/ref/test-multiply-8bit.cfg @@ -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 ) diff --git a/src/test/ref/test-multiply-8bit.log b/src/test/ref/test-multiply-8bit.log index 0a0d64815..b89b15b33 100644 --- a/src/test/ref/test-multiply-8bit.log +++ b/src/test/ref/test-multiply-8bit.log @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 @@ -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 diff --git a/src/test/ref/test-multiply-8bit.sym b/src/test/ref/test-multiply-8bit.sym index fd528a505..93f083ad8 100644 --- a/src/test/ref/test-multiply-8bit.sym +++ b/src/test/ref/test-multiply-8bit.sym @@ -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 ]