mirror of
https://gitlab.com/camelot/kickc.git
synced 2025-01-16 08:33:37 +00:00
Finished constant string consolidation. Closes #90
This commit is contained in:
parent
fe0035af82
commit
0a955d6bec
@ -239,13 +239,13 @@ public class Compiler {
|
||||
optimizations.add(new PassNVariableReferenceInfos(program));
|
||||
optimizations.add(new Pass2ConstantAdditionElimination(program));
|
||||
optimizations.add(new Pass2ConstantIfs(program));
|
||||
optimizations.add(new Pass2ConstantStringConsolidation(program));
|
||||
optimizations.add(new Pass2FixInlineConstructors(program));
|
||||
optimizations.add(new Pass2TypeInference(program));
|
||||
optimizations.add(new PassNEliminateUnusedVars(program));
|
||||
optimizations.add(new Pass2NopCastElimination(program));
|
||||
optimizations.add(new Pass2EliminateUnusedBlocks(program));
|
||||
optimizations.add(new Pass2RangeResolving(program));
|
||||
optimizations.add(new Pass2ConstantStringConsolidation(program));
|
||||
pass2Execute(optimizations);
|
||||
}
|
||||
|
||||
@ -286,6 +286,7 @@ public class Compiler {
|
||||
constantOptimizations.add(new Pass2ConstantSimplification(program));
|
||||
constantOptimizations.add(new Pass2ConstantIfs(program));
|
||||
pass2Execute(constantOptimizations);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@ -390,7 +391,6 @@ public class Compiler {
|
||||
|
||||
private void pass4RegisterAllocation() {
|
||||
|
||||
|
||||
if(getLog().isVerboseLoopAnalysis()) {
|
||||
getLog().append("DOMINATORS");
|
||||
}
|
||||
|
@ -2,7 +2,12 @@ package dk.camelot64.kickc.passes;
|
||||
|
||||
import dk.camelot64.kickc.model.Program;
|
||||
import dk.camelot64.kickc.model.symbols.ConstantVar;
|
||||
import dk.camelot64.kickc.model.values.*;
|
||||
import dk.camelot64.kickc.model.symbols.ProgramScope;
|
||||
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 java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
@ -33,7 +38,7 @@ public class Pass2ConstantStringConsolidation extends Pass2SsaOptimization {
|
||||
if(constVal instanceof ConstantString) {
|
||||
String constString = ((ConstantString) constVal).getString();
|
||||
List<ConstantVar> constantVars = constantStringMap.get(constString);
|
||||
if(constantVars==null) {
|
||||
if(constantVars == null) {
|
||||
constantVars = new ArrayList<>();
|
||||
constantStringMap.put(constString, constantVars);
|
||||
}
|
||||
@ -41,11 +46,11 @@ public class Pass2ConstantStringConsolidation extends Pass2SsaOptimization {
|
||||
}
|
||||
}
|
||||
// Handle all constant strings with duplicate definitions
|
||||
for(String str : constantStringMap.keySet()) {
|
||||
List<ConstantVar> constantVars = constantStringMap.get(str);
|
||||
if(constantVars.size()>1) {
|
||||
for(String constantString : constantStringMap.keySet()) {
|
||||
List<ConstantVar> constantVars = constantStringMap.get(constantString);
|
||||
if(constantVars.size() > 1) {
|
||||
// Found duplicate constant strings
|
||||
modified |= handleDuplicateConstantString(constantVars);
|
||||
modified |= handleDuplicateConstantString(constantVars, constantString);
|
||||
|
||||
}
|
||||
}
|
||||
@ -54,29 +59,83 @@ public class Pass2ConstantStringConsolidation extends Pass2SsaOptimization {
|
||||
|
||||
/**
|
||||
* Handle duplicate constants strings with identical values
|
||||
*
|
||||
* @param constantVars The constant strings with identical values
|
||||
* @return true if any optimization was performed
|
||||
*/
|
||||
private boolean handleDuplicateConstantString(List<ConstantVar> constantVars) {
|
||||
private boolean handleDuplicateConstantString(List<ConstantVar> constantVars, String constString) {
|
||||
boolean modified = false;
|
||||
// Look for a constant in the root scope
|
||||
// Look for a constant in the root scope - or check if they are all in the same scope
|
||||
ConstantVar rootConstant = null;
|
||||
boolean isCommonScope = true;
|
||||
ScopeRef commonScope = null;
|
||||
for(ConstantVar constantVar : constantVars) {
|
||||
if(constantVar.getScope().getRef().equals(ScopeRef.ROOT)) {
|
||||
ScopeRef constScope = constantVar.getScope().getRef();
|
||||
if(constScope.equals(ScopeRef.ROOT)) {
|
||||
rootConstant = constantVar;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(rootConstant!=null) {
|
||||
// Modify all other constants to be references to the root constant
|
||||
for(ConstantVar constantVar : constantVars) {
|
||||
if(!constantVar.equals(rootConstant)) {
|
||||
constantVar.setValue(new ConstantRef(rootConstant));
|
||||
modified = true;
|
||||
if(commonScope == null) {
|
||||
commonScope = constScope;
|
||||
} else {
|
||||
if(!commonScope.equals(constScope)) {
|
||||
// Found two different scopes
|
||||
isCommonScope = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(rootConstant == null) {
|
||||
if(isCommonScope) {
|
||||
// If all constants are in the same scope pick the first one as root
|
||||
rootConstant = constantVars.get(0);
|
||||
} else {
|
||||
// Create a new root - and roll around again
|
||||
ProgramScope rootScope = getScope();
|
||||
String localName = getRootName(constantVars);
|
||||
ConstantVar newRootConstant = new ConstantVar(localName, rootScope, SymbolType.STRING, new ConstantString(constString));
|
||||
rootScope.add(newRootConstant);
|
||||
rootConstant = newRootConstant;
|
||||
}
|
||||
}
|
||||
// Modify all other constants to be references to the root constant
|
||||
for(ConstantVar constantVar : constantVars) {
|
||||
if(!constantVar.equals(rootConstant)) {
|
||||
constantVar.setValue(new ConstantRef(rootConstant));
|
||||
modified = true;
|
||||
}
|
||||
}
|
||||
if(getLog().isVerboseSSAOptimize()) {
|
||||
getLog().append("Consolidated constant strings into " + rootConstant);
|
||||
|
||||
}
|
||||
return modified;
|
||||
}
|
||||
|
||||
private String getRootName(List<ConstantVar> constantVars) {
|
||||
String constName = null;
|
||||
// Try all variables with non-intermediate names
|
||||
for(ConstantVar constantVar : constantVars) {
|
||||
if(!constantVar.getRef().isIntermediate()) {
|
||||
String candidateName = constantVar.getLocalName();
|
||||
if(getScope().getSymbol(candidateName) == null) {
|
||||
if(constName == null || constName.length() > candidateName.length()) {
|
||||
constName = candidateName;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(constName != null) {
|
||||
return constName;
|
||||
}
|
||||
// Try string_nn until an unused name is found
|
||||
int i = 0;
|
||||
do {
|
||||
String candidateName = "string_" + i;
|
||||
if(getScope().getSymbol(candidateName) == null) {
|
||||
return candidateName;
|
||||
}
|
||||
} while(true);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -44,6 +44,11 @@ public class TestPrograms {
|
||||
AsmFragmentTemplateUsages.logUsages(log, false, false, false, false, false, false);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testStringConstConsolidationNoRoot() throws IOException, URISyntaxException {
|
||||
compileAndCompare("string-const-consolidation-noroot");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testStringConstConsolidation() throws IOException, URISyntaxException {
|
||||
compileAndCompare("string-const-consolidation");
|
||||
|
17
src/test/kc/string-const-consolidation-noroot.kc
Normal file
17
src/test/kc/string-const-consolidation-noroot.kc
Normal file
@ -0,0 +1,17 @@
|
||||
// Tests that identical strings are consolidated
|
||||
|
||||
byte* screen = $400;
|
||||
|
||||
void main() {
|
||||
byte[] rex1 = "rex@";
|
||||
byte[] rex2 = "rex@";
|
||||
print(rex1);
|
||||
print(rex2);
|
||||
print("rex@");
|
||||
}
|
||||
|
||||
void print(byte* string) {
|
||||
while(*string!='@') {
|
||||
*screen++ = *string++;
|
||||
}
|
||||
}
|
@ -4,7 +4,7 @@ byte[] rex1 = "rex@";
|
||||
byte* screen = $400;
|
||||
|
||||
void main() {
|
||||
byte[] rex2 = rex1;
|
||||
byte[] rex2 = "rex@";
|
||||
print(rex1);
|
||||
print(rex2);
|
||||
print("rex@");
|
||||
|
@ -1051,93 +1051,88 @@ form_mode: {
|
||||
render_preset_name: {
|
||||
.label name = 3
|
||||
cmp #0
|
||||
beq b1
|
||||
beq b33
|
||||
cmp #1
|
||||
beq b2
|
||||
beq b1
|
||||
cmp #2
|
||||
beq b3
|
||||
beq b2
|
||||
cmp #3
|
||||
beq b4
|
||||
beq b3
|
||||
cmp #4
|
||||
beq b5
|
||||
beq b4
|
||||
cmp #5
|
||||
beq b6
|
||||
beq b5
|
||||
cmp #6
|
||||
beq b7
|
||||
beq b6
|
||||
cmp #7
|
||||
beq b8
|
||||
beq b7
|
||||
cmp #8
|
||||
beq b9
|
||||
beq b8
|
||||
cmp #9
|
||||
beq b10
|
||||
beq b9
|
||||
cmp #$a
|
||||
beq b11
|
||||
lda #<name_11
|
||||
sta name
|
||||
lda #>name_11
|
||||
sta name+1
|
||||
jmp b22
|
||||
b1:
|
||||
beq b10
|
||||
b33:
|
||||
lda #<name_0
|
||||
sta name
|
||||
lda #>name_0
|
||||
sta name+1
|
||||
jmp b22
|
||||
b2:
|
||||
b1:
|
||||
lda #<name_1
|
||||
sta name
|
||||
lda #>name_1
|
||||
sta name+1
|
||||
jmp b22
|
||||
b3:
|
||||
b2:
|
||||
lda #<name_2
|
||||
sta name
|
||||
lda #>name_2
|
||||
sta name+1
|
||||
jmp b22
|
||||
b4:
|
||||
b3:
|
||||
lda #<name_3
|
||||
sta name
|
||||
lda #>name_3
|
||||
sta name+1
|
||||
jmp b22
|
||||
b5:
|
||||
b4:
|
||||
lda #<name_4
|
||||
sta name
|
||||
lda #>name_4
|
||||
sta name+1
|
||||
jmp b22
|
||||
b6:
|
||||
b5:
|
||||
lda #<name_5
|
||||
sta name
|
||||
lda #>name_5
|
||||
sta name+1
|
||||
jmp b22
|
||||
b7:
|
||||
b6:
|
||||
lda #<name_6
|
||||
sta name
|
||||
lda #>name_6
|
||||
sta name+1
|
||||
jmp b22
|
||||
b8:
|
||||
b7:
|
||||
lda #<name_7
|
||||
sta name
|
||||
lda #>name_7
|
||||
sta name+1
|
||||
jmp b22
|
||||
b9:
|
||||
b8:
|
||||
lda #<name_8
|
||||
sta name
|
||||
lda #>name_8
|
||||
sta name+1
|
||||
jmp b22
|
||||
b10:
|
||||
b9:
|
||||
lda #<name_9
|
||||
sta name
|
||||
lda #>name_9
|
||||
sta name+1
|
||||
jmp b22
|
||||
b11:
|
||||
b10:
|
||||
lda #<name_10
|
||||
sta name
|
||||
lda #>name_10
|
||||
@ -1156,7 +1151,6 @@ render_preset_name: {
|
||||
name_8: .text "Sixs Fred @"
|
||||
name_9: .text "Sixs Fred 2 @"
|
||||
name_10: .text "8bpp Pixel Cell @"
|
||||
name_11: .text "Standard Charset @"
|
||||
}
|
||||
// Print a string at a specific screen position
|
||||
// print_str_at(byte* zeropage(3) str, byte* zeropage(5) at)
|
||||
|
@ -602,7 +602,7 @@ render_preset_name::@33: scope:[render_preset_name] from render_preset_name::@3
|
||||
[318] phi()
|
||||
to:render_preset_name::@22
|
||||
render_preset_name::@22: scope:[render_preset_name] from render_preset_name render_preset_name::@23 render_preset_name::@24 render_preset_name::@25 render_preset_name::@26 render_preset_name::@27 render_preset_name::@28 render_preset_name::@29 render_preset_name::@30 render_preset_name::@31 render_preset_name::@32 render_preset_name::@33
|
||||
[319] (byte*) render_preset_name::name#12 ← phi( render_preset_name/(const byte*) render_preset_name::name#0 render_preset_name::@31/(const byte*) render_preset_name::name#9 render_preset_name::@32/(const byte*) render_preset_name::name#10 render_preset_name::@23/(const byte*) render_preset_name::name#1 render_preset_name::@24/(const byte*) render_preset_name::name#2 render_preset_name::@33/(const byte*) render_preset_name::name#11 render_preset_name::@25/(const byte*) render_preset_name::name#3 render_preset_name::@26/(const byte*) render_preset_name::name#4 render_preset_name::@27/(const byte*) render_preset_name::name#5 render_preset_name::@28/(const byte*) render_preset_name::name#6 render_preset_name::@29/(const byte*) render_preset_name::name#7 render_preset_name::@30/(const byte*) render_preset_name::name#8 )
|
||||
[319] (byte*) render_preset_name::name#12 ← phi( render_preset_name/(const byte*) render_preset_name::name#0 render_preset_name::@31/(const byte*) render_preset_name::name#9 render_preset_name::@32/(const byte*) render_preset_name::name#10 render_preset_name::@23/(const byte*) render_preset_name::name#1 render_preset_name::@24/(const byte*) render_preset_name::name#2 render_preset_name::@33/(const byte*) render_preset_name::name#0 render_preset_name::@25/(const byte*) render_preset_name::name#3 render_preset_name::@26/(const byte*) render_preset_name::name#4 render_preset_name::@27/(const byte*) render_preset_name::name#5 render_preset_name::@28/(const byte*) render_preset_name::name#6 render_preset_name::@29/(const byte*) render_preset_name::name#7 render_preset_name::@30/(const byte*) render_preset_name::name#8 )
|
||||
[320] (byte*) print_str_at::str#1 ← (byte*) render_preset_name::name#12
|
||||
[321] call print_str_at
|
||||
to:render_preset_name::@return
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1545,7 +1545,6 @@
|
||||
(const byte*) render_preset_name::name#0 name#0 = (string) "Standard Charset @"
|
||||
(const byte*) render_preset_name::name#1 name#1 = (string) "Extended Color Charset @"
|
||||
(const byte*) render_preset_name::name#10 name#10 = (string) "8bpp Pixel Cell @"
|
||||
(const byte*) render_preset_name::name#11 name#11 = (string) "Standard Charset @"
|
||||
(byte*) render_preset_name::name#12 name zp ZP_WORD:3 2.0
|
||||
(const byte*) render_preset_name::name#2 name#2 = (string) "Standard Bitmap @"
|
||||
(const byte*) render_preset_name::name#3 name#3 = (string) "Multicolor Bitmap @"
|
||||
|
@ -7955,6 +7955,7 @@ Removing PHI-reference to removed block (menu::@3) in block menu::@return
|
||||
if() condition always true - replacing block destination [232] if(true) goto menu::@4
|
||||
if() condition always true - replacing block destination [297] if(true) goto mode_ctrl::@2
|
||||
Successful SSA optimization Pass2ConstantIfs
|
||||
Successful SSA optimization Pass2ConstantStringConsolidation
|
||||
Fixing inline constructor with bitmap_clear::$3 ← *(bitmap_plot_xhi#0 + 0) w= *(bitmap_plot_xlo#0 + 0)
|
||||
Fixing inline constructor with bitmap_plot::$2 ← *(bitmap_plot_xhi#0 + bitmap_plot::x#4) w= *(bitmap_plot_xlo#0 + bitmap_plot::x#4)
|
||||
Fixing inline constructor with bitmap_plot::$3 ← *(bitmap_plot_yhi#0 + bitmap_plot::y#4) w= *(bitmap_plot_ylo#0 + bitmap_plot::y#4)
|
||||
|
@ -62,8 +62,6 @@ test_sbytes: {
|
||||
sta assert_sbyte.msg+1
|
||||
jsr assert_sbyte
|
||||
rts
|
||||
msg: .text "0=0@"
|
||||
msg1: .text "0+2=2@"
|
||||
msg2: .text "0+2-4=-2@"
|
||||
msg3: .text "-(0+2-4)=2@"
|
||||
msg4: .text "-127-127=2@"
|
||||
@ -101,9 +99,6 @@ assert_sbyte: {
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
jmp b2
|
||||
str: .text " @"
|
||||
str1: .text "fail!@"
|
||||
str2: .text "ok@"
|
||||
}
|
||||
// Print a zero-terminated string
|
||||
// print_str(byte* zeropage(2) str)
|
||||
@ -195,8 +190,6 @@ test_bytes: {
|
||||
sta assert_byte.msg+1
|
||||
jsr assert_byte
|
||||
rts
|
||||
msg: .text "0=0@"
|
||||
msg1: .text "0+2=2@"
|
||||
msg2: .text "0+2-4=254@"
|
||||
}
|
||||
// assert_byte(byte* zeropage(2) msg, byte register(X) b, byte zeropage(4) c)
|
||||
@ -228,9 +221,6 @@ assert_byte: {
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
jmp b2
|
||||
str: .text " @"
|
||||
str1: .text "fail!@"
|
||||
str2: .text "ok@"
|
||||
}
|
||||
// Clear the screen. Also resets current line/char cursor.
|
||||
print_cls: {
|
||||
@ -255,3 +245,8 @@ print_cls: {
|
||||
bne b1
|
||||
rts
|
||||
}
|
||||
str: .text " @"
|
||||
str2: .text "ok@"
|
||||
msg1: .text "0+2=2@"
|
||||
msg: .text "0=0@"
|
||||
str1: .text "fail!@"
|
||||
|
@ -48,7 +48,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/(byte/signed byte/word/signed word/dword/signed dword) 0 test_sbytes::@1/(byte/signed byte/word/signed word/dword/signed dword) 2 test_sbytes::@2/-(byte/signed byte/word/signed word/dword/signed dword) 2 test_sbytes::@3/(byte/signed byte/word/signed word/dword/signed dword) 2 test_sbytes::@4/(byte/signed byte/word/signed word/dword/signed dword) 2 )
|
||||
[22] (signed byte) assert_sbyte::b#5 ← phi( test_sbytes/(const signed byte) test_sbytes::bb#0 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#0 )
|
||||
[22] (byte*) assert_sbyte::msg#5 ← phi( test_sbytes/(const string) test_sbytes::msg test_sbytes::@1/(const string) test_sbytes::msg1 test_sbytes::@2/(const string) test_sbytes::msg2 test_sbytes::@3/(const string) test_sbytes::msg3 test_sbytes::@4/(const string) test_sbytes::msg4 )
|
||||
[22] (byte*) assert_sbyte::msg#5 ← phi( test_sbytes/(const string) msg test_sbytes::@1/(const string) msg1 test_sbytes::@2/(const string) test_sbytes::msg2 test_sbytes::@3/(const string) test_sbytes::msg3 test_sbytes::@4/(const string) test_sbytes::msg4 )
|
||||
[23] (byte*) print_str::str#5 ← (byte*) assert_sbyte::msg#5
|
||||
[24] (byte*~) print_char_cursor#87 ← (byte*) print_line_cursor#1
|
||||
[25] call print_str
|
||||
@ -77,7 +77,7 @@ assert_sbyte::@1: scope:[assert_sbyte] from assert_sbyte::@6
|
||||
to:assert_sbyte::@2
|
||||
print_str: scope:[print_str] from assert_byte assert_byte::@1 assert_byte::@3 assert_byte::@5 assert_sbyte assert_sbyte::@1 assert_sbyte::@3 assert_sbyte::@5
|
||||
[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::@5/(byte*) print_char_cursor#2 assert_sbyte/(byte*~) print_char_cursor#87 assert_sbyte::@1/(byte*) print_char_cursor#2 assert_sbyte::@3/(byte*) print_char_cursor#2 assert_sbyte::@5/(byte*) print_char_cursor#2 )
|
||||
[36] (byte*) print_str::str#11 ← phi( assert_byte/(byte*) print_str::str#1 assert_byte::@1/(const string) assert_byte::str1 assert_byte::@3/(const string) assert_byte::str2 assert_byte::@5/(const string) assert_byte::str assert_sbyte/(byte*) print_str::str#5 assert_sbyte::@1/(const string) assert_sbyte::str1 assert_sbyte::@3/(const string) assert_sbyte::str2 assert_sbyte::@5/(const string) assert_sbyte::str )
|
||||
[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::@5/(const string) str assert_sbyte/(byte*) print_str::str#5 assert_sbyte::@1/(const string) str1 assert_sbyte::@3/(const string) str2 assert_sbyte::@5/(const string) 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 )
|
||||
@ -123,7 +123,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/signed byte/word/signed word/dword/signed dword) 0 test_bytes::@1/(byte/signed byte/word/signed word/dword/signed dword) 2 test_bytes::@2/(byte/word/signed word/dword/signed dword) 254 )
|
||||
[55] (byte) assert_byte::b#3 ← phi( test_bytes/(const byte) test_bytes::bb#0 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*))(word/signed word/dword/signed dword) 1024 test_bytes::@1/(byte*~) print_char_cursor#93 test_bytes::@2/(byte*~) print_char_cursor#94 )
|
||||
[55] (byte*) assert_byte::msg#3 ← phi( test_bytes/(const string) test_bytes::msg test_bytes::@1/(const string) test_bytes::msg1 test_bytes::@2/(const string) test_bytes::msg2 )
|
||||
[55] (byte*) assert_byte::msg#3 ← phi( test_bytes/(const string) msg test_bytes::@1/(const string) msg1 test_bytes::@2/(const string) test_bytes::msg2 )
|
||||
[56] (byte*) print_str::str#1 ← (byte*) assert_byte::msg#3
|
||||
[57] call print_str
|
||||
to:assert_byte::@5
|
||||
|
@ -921,6 +921,7 @@ Constant (const signed byte) assert_sbyte::b#3 = test_sbytes::be#0
|
||||
Successful SSA optimization Pass2ConstantIdentification
|
||||
Constant (const byte) assert_byte::b#2 = test_bytes::bd#0
|
||||
Successful SSA optimization Pass2ConstantIdentification
|
||||
Successful SSA optimization Pass2ConstantStringConsolidation
|
||||
Successful SSA optimization PassNEliminateUnusedVars
|
||||
Successful SSA optimization PassNEliminateUnusedVars
|
||||
Culled Empty Block (label) print_ln::@2
|
||||
@ -971,13 +972,17 @@ Inlining constant with var siblings (const signed byte) assert_sbyte::b#4
|
||||
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 print_cls::$0 = ((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000
|
||||
Constant inlined test_bytes::msg = (const string) msg
|
||||
Constant inlined test_sbytes::msg = (const string) msg
|
||||
Constant inlined assert_sbyte::b#2 = (const signed byte) test_sbytes::bd#0
|
||||
Constant inlined assert_sbyte::c#1 = (byte/signed byte/word/signed word/dword/signed dword) 2
|
||||
Constant inlined assert_sbyte::b#1 = (const signed byte) test_sbytes::bc#0
|
||||
Constant inlined assert_sbyte::c#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
Constant inlined assert_byte::b#0 = (const byte) test_bytes::bb#0
|
||||
Constant inlined assert_sbyte::str1 = (const string) str1
|
||||
Constant inlined assert_sbyte::b#0 = (const signed byte) test_sbytes::bb#0
|
||||
Constant inlined assert_byte::b#1 = (const byte) test_bytes::bc#0
|
||||
Constant inlined assert_sbyte::str2 = (const string) str2
|
||||
Constant inlined assert_byte::c#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
Constant inlined assert_byte::b#2 = (const byte) test_bytes::bd#0
|
||||
Constant inlined assert_byte::c#1 = (byte/signed byte/word/signed word/dword/signed dword) 2
|
||||
@ -991,22 +996,28 @@ Constant inlined assert_sbyte::b#3 = (const signed byte) test_sbytes::be#0
|
||||
Constant inlined assert_sbyte::c#2 = -(byte/signed byte/word/signed word/dword/signed dword) 2
|
||||
Constant inlined test_sbytes::$8 = -(byte/signed byte/word/signed word/dword/signed dword) 127
|
||||
Constant inlined test_sbytes::$9 = -(byte/signed byte/word/signed word/dword/signed dword) 127-(byte/signed byte/word/signed word/dword/signed dword) 127
|
||||
Constant inlined assert_byte::msg#0 = (const string) test_bytes::msg
|
||||
Constant inlined assert_byte::msg#1 = (const string) test_bytes::msg1
|
||||
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::msg#2 = (const string) test_bytes::msg2
|
||||
Constant inlined assert_sbyte::msg#0 = (const string) test_sbytes::msg
|
||||
Constant inlined assert_sbyte::msg#1 = (const string) test_sbytes::msg1
|
||||
Constant inlined assert_sbyte::msg#0 = (const string) msg
|
||||
Constant inlined assert_sbyte::msg#1 = (const string) msg1
|
||||
Constant inlined assert_sbyte::msg#2 = (const string) test_sbytes::msg2
|
||||
Constant inlined print_line_cursor#0 = ((byte*))(word/signed word/dword/signed dword) 1024
|
||||
Constant inlined assert_sbyte::msg#3 = (const string) test_sbytes::msg3
|
||||
Constant inlined print_cls::sc#0 = ((byte*))(word/signed word/dword/signed dword) 1024
|
||||
Constant inlined print_str::str#4 = (const string) assert_byte::str2
|
||||
Constant inlined assert_sbyte::str = (const string) str
|
||||
Constant inlined assert_byte::str = (const string) str
|
||||
Constant inlined test_bytes::msg1 = (const string) msg1
|
||||
Constant inlined print_str::str#4 = (const string) str2
|
||||
Constant inlined assert_sbyte::msg#4 = (const string) test_sbytes::msg4
|
||||
Constant inlined print_str::str#3 = (const string) assert_byte::str1
|
||||
Constant inlined print_str::str#2 = (const string) assert_byte::str
|
||||
Constant inlined print_str::str#8 = (const string) assert_sbyte::str2
|
||||
Constant inlined print_str::str#7 = (const string) assert_sbyte::str1
|
||||
Constant inlined print_str::str#6 = (const string) assert_sbyte::str
|
||||
Constant inlined print_str::str#3 = (const string) str1
|
||||
Constant inlined print_str::str#2 = (const string) str
|
||||
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
|
||||
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 print_cls::@3(between print_cls::@1 and print_cls::@1)
|
||||
@ -1127,7 +1138,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/(byte/signed byte/word/signed word/dword/signed dword) 0 test_sbytes::@1/(byte/signed byte/word/signed word/dword/signed dword) 2 test_sbytes::@2/-(byte/signed byte/word/signed word/dword/signed dword) 2 test_sbytes::@3/(byte/signed byte/word/signed word/dword/signed dword) 2 test_sbytes::@4/(byte/signed byte/word/signed word/dword/signed dword) 2 )
|
||||
[22] (signed byte) assert_sbyte::b#5 ← phi( test_sbytes/(const signed byte) test_sbytes::bb#0 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#0 )
|
||||
[22] (byte*) assert_sbyte::msg#5 ← phi( test_sbytes/(const string) test_sbytes::msg test_sbytes::@1/(const string) test_sbytes::msg1 test_sbytes::@2/(const string) test_sbytes::msg2 test_sbytes::@3/(const string) test_sbytes::msg3 test_sbytes::@4/(const string) test_sbytes::msg4 )
|
||||
[22] (byte*) assert_sbyte::msg#5 ← phi( test_sbytes/(const string) msg test_sbytes::@1/(const string) msg1 test_sbytes::@2/(const string) test_sbytes::msg2 test_sbytes::@3/(const string) test_sbytes::msg3 test_sbytes::@4/(const string) test_sbytes::msg4 )
|
||||
[23] (byte*) print_str::str#5 ← (byte*) assert_sbyte::msg#5
|
||||
[24] (byte*~) print_char_cursor#87 ← (byte*) print_line_cursor#1
|
||||
[25] call print_str
|
||||
@ -1156,7 +1167,7 @@ assert_sbyte::@1: scope:[assert_sbyte] from assert_sbyte::@6
|
||||
to:assert_sbyte::@2
|
||||
print_str: scope:[print_str] from assert_byte assert_byte::@1 assert_byte::@3 assert_byte::@5 assert_sbyte assert_sbyte::@1 assert_sbyte::@3 assert_sbyte::@5
|
||||
[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::@5/(byte*) print_char_cursor#2 assert_sbyte/(byte*~) print_char_cursor#87 assert_sbyte::@1/(byte*) print_char_cursor#2 assert_sbyte::@3/(byte*) print_char_cursor#2 assert_sbyte::@5/(byte*) print_char_cursor#2 )
|
||||
[36] (byte*) print_str::str#11 ← phi( assert_byte/(byte*) print_str::str#1 assert_byte::@1/(const string) assert_byte::str1 assert_byte::@3/(const string) assert_byte::str2 assert_byte::@5/(const string) assert_byte::str assert_sbyte/(byte*) print_str::str#5 assert_sbyte::@1/(const string) assert_sbyte::str1 assert_sbyte::@3/(const string) assert_sbyte::str2 assert_sbyte::@5/(const string) assert_sbyte::str )
|
||||
[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::@5/(const string) str assert_sbyte/(byte*) print_str::str#5 assert_sbyte::@1/(const string) str1 assert_sbyte::@3/(const string) str2 assert_sbyte::@5/(const string) 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 )
|
||||
@ -1202,7 +1213,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/signed byte/word/signed word/dword/signed dword) 0 test_bytes::@1/(byte/signed byte/word/signed word/dword/signed dword) 2 test_bytes::@2/(byte/word/signed word/dword/signed dword) 254 )
|
||||
[55] (byte) assert_byte::b#3 ← phi( test_bytes/(const byte) test_bytes::bb#0 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*))(word/signed word/dword/signed dword) 1024 test_bytes::@1/(byte*~) print_char_cursor#93 test_bytes::@2/(byte*~) print_char_cursor#94 )
|
||||
[55] (byte*) assert_byte::msg#3 ← phi( test_bytes/(const string) test_bytes::msg test_bytes::@1/(const string) test_bytes::msg1 test_bytes::@2/(const string) test_bytes::msg2 )
|
||||
[55] (byte*) assert_byte::msg#3 ← phi( test_bytes/(const string) msg test_bytes::@1/(const string) msg1 test_bytes::@2/(const string) test_bytes::msg2 )
|
||||
[56] (byte*) print_str::str#1 ← (byte*) assert_byte::msg#3
|
||||
[57] call print_str
|
||||
to:assert_byte::@5
|
||||
@ -1408,7 +1419,7 @@ test_sbytes: {
|
||||
//SEG27 [22] phi (signed byte) assert_sbyte::b#5 = (const signed byte) test_sbytes::bb#0 [phi:test_sbytes->assert_sbyte#1] -- vbsz1=vbsc1
|
||||
lda #bb
|
||||
sta assert_sbyte.b
|
||||
//SEG28 [22] phi (byte*) assert_sbyte::msg#5 = (const string) test_sbytes::msg [phi:test_sbytes->assert_sbyte#2] -- pbuz1=pbuc1
|
||||
//SEG28 [22] phi (byte*) assert_sbyte::msg#5 = (const string) msg [phi:test_sbytes->assert_sbyte#2] -- pbuz1=pbuc1
|
||||
lda #<msg
|
||||
sta assert_sbyte.msg
|
||||
lda #>msg
|
||||
@ -1428,7 +1439,7 @@ test_sbytes: {
|
||||
//SEG34 [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 assert_sbyte.b
|
||||
//SEG35 [22] phi (byte*) assert_sbyte::msg#5 = (const string) test_sbytes::msg1 [phi:test_sbytes::@1->assert_sbyte#2] -- pbuz1=pbuc1
|
||||
//SEG35 [22] phi (byte*) assert_sbyte::msg#5 = (const string) msg1 [phi:test_sbytes::@1->assert_sbyte#2] -- pbuz1=pbuc1
|
||||
lda #<msg1
|
||||
sta assert_sbyte.msg
|
||||
lda #>msg1
|
||||
@ -1499,8 +1510,6 @@ test_sbytes: {
|
||||
breturn:
|
||||
//SEG58 [21] return
|
||||
rts
|
||||
msg: .text "0=0@"
|
||||
msg1: .text "0+2=2@"
|
||||
msg2: .text "0+2-4=-2@"
|
||||
msg3: .text "-(0+2-4)=2@"
|
||||
msg4: .text "-127-127=2@"
|
||||
@ -1536,7 +1545,7 @@ assert_sbyte: {
|
||||
//SEG69 [36] phi from assert_sbyte::@5 to print_str [phi:assert_sbyte::@5->print_str]
|
||||
print_str_from_b5:
|
||||
//SEG70 [36] phi (byte*) print_char_cursor#80 = (byte*) print_char_cursor#2 [phi:assert_sbyte::@5->print_str#0] -- register_copy
|
||||
//SEG71 [36] phi (byte*) print_str::str#11 = (const string) assert_sbyte::str [phi:assert_sbyte::@5->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG71 [36] phi (byte*) print_str::str#11 = (const string) str [phi:assert_sbyte::@5->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str
|
||||
sta print_str.str
|
||||
lda #>str
|
||||
@ -1558,7 +1567,7 @@ assert_sbyte: {
|
||||
//SEG77 [36] phi from assert_sbyte::@3 to print_str [phi:assert_sbyte::@3->print_str]
|
||||
print_str_from_b3:
|
||||
//SEG78 [36] phi (byte*) print_char_cursor#80 = (byte*) print_char_cursor#2 [phi:assert_sbyte::@3->print_str#0] -- register_copy
|
||||
//SEG79 [36] phi (byte*) print_str::str#11 = (const string) assert_sbyte::str2 [phi:assert_sbyte::@3->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG79 [36] phi (byte*) print_str::str#11 = (const string) str2 [phi:assert_sbyte::@3->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str2
|
||||
sta print_str.str
|
||||
lda #>str2
|
||||
@ -1589,16 +1598,13 @@ assert_sbyte: {
|
||||
//SEG90 [36] phi from assert_sbyte::@1 to print_str [phi:assert_sbyte::@1->print_str]
|
||||
print_str_from_b1:
|
||||
//SEG91 [36] phi (byte*) print_char_cursor#80 = (byte*) print_char_cursor#2 [phi:assert_sbyte::@1->print_str#0] -- register_copy
|
||||
//SEG92 [36] phi (byte*) print_str::str#11 = (const string) assert_sbyte::str1 [phi:assert_sbyte::@1->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG92 [36] phi (byte*) print_str::str#11 = (const string) str1 [phi:assert_sbyte::@1->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str1
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
jmp b2_from_b1
|
||||
str: .text " @"
|
||||
str1: .text "fail!@"
|
||||
str2: .text "ok@"
|
||||
}
|
||||
//SEG93 print_str
|
||||
// Print a zero-terminated string
|
||||
@ -1700,7 +1706,7 @@ test_bytes: {
|
||||
sta print_char_cursor
|
||||
lda #>$400
|
||||
sta print_char_cursor+1
|
||||
//SEG120 [55] phi (byte*) assert_byte::msg#3 = (const string) test_bytes::msg [phi:test_bytes->assert_byte#4] -- pbuz1=pbuc1
|
||||
//SEG120 [55] phi (byte*) assert_byte::msg#3 = (const string) msg [phi:test_bytes->assert_byte#4] -- pbuz1=pbuc1
|
||||
lda #<msg
|
||||
sta assert_byte.msg
|
||||
lda #>msg
|
||||
@ -1725,7 +1731,7 @@ test_bytes: {
|
||||
lda #bc
|
||||
sta assert_byte.b
|
||||
//SEG128 [55] phi (byte*) print_char_cursor#70 = (byte*~) print_char_cursor#93 [phi:test_bytes::@1->assert_byte#3] -- register_copy
|
||||
//SEG129 [55] phi (byte*) assert_byte::msg#3 = (const string) test_bytes::msg1 [phi:test_bytes::@1->assert_byte#4] -- pbuz1=pbuc1
|
||||
//SEG129 [55] phi (byte*) assert_byte::msg#3 = (const string) msg1 [phi:test_bytes::@1->assert_byte#4] -- pbuz1=pbuc1
|
||||
lda #<msg1
|
||||
sta assert_byte.msg
|
||||
lda #>msg1
|
||||
@ -1761,8 +1767,6 @@ test_bytes: {
|
||||
breturn:
|
||||
//SEG140 [54] return
|
||||
rts
|
||||
msg: .text "0=0@"
|
||||
msg1: .text "0+2=2@"
|
||||
msg2: .text "0+2-4=254@"
|
||||
}
|
||||
//SEG141 assert_byte
|
||||
@ -1791,7 +1795,7 @@ assert_byte: {
|
||||
//SEG150 [36] phi from assert_byte::@5 to print_str [phi:assert_byte::@5->print_str]
|
||||
print_str_from_b5:
|
||||
//SEG151 [36] phi (byte*) print_char_cursor#80 = (byte*) print_char_cursor#2 [phi:assert_byte::@5->print_str#0] -- register_copy
|
||||
//SEG152 [36] phi (byte*) print_str::str#11 = (const string) assert_byte::str [phi:assert_byte::@5->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG152 [36] phi (byte*) print_str::str#11 = (const string) str [phi:assert_byte::@5->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str
|
||||
sta print_str.str
|
||||
lda #>str
|
||||
@ -1813,7 +1817,7 @@ assert_byte: {
|
||||
//SEG158 [36] phi from assert_byte::@3 to print_str [phi:assert_byte::@3->print_str]
|
||||
print_str_from_b3:
|
||||
//SEG159 [36] phi (byte*) print_char_cursor#80 = (byte*) print_char_cursor#2 [phi:assert_byte::@3->print_str#0] -- register_copy
|
||||
//SEG160 [36] phi (byte*) print_str::str#11 = (const string) assert_byte::str2 [phi:assert_byte::@3->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG160 [36] phi (byte*) print_str::str#11 = (const string) str2 [phi:assert_byte::@3->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str2
|
||||
sta print_str.str
|
||||
lda #>str2
|
||||
@ -1844,16 +1848,13 @@ assert_byte: {
|
||||
//SEG171 [36] phi from assert_byte::@1 to print_str [phi:assert_byte::@1->print_str]
|
||||
print_str_from_b1:
|
||||
//SEG172 [36] phi (byte*) print_char_cursor#80 = (byte*) print_char_cursor#2 [phi:assert_byte::@1->print_str#0] -- register_copy
|
||||
//SEG173 [36] phi (byte*) print_str::str#11 = (const string) assert_byte::str1 [phi:assert_byte::@1->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG173 [36] phi (byte*) print_str::str#11 = (const string) str1 [phi:assert_byte::@1->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str1
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
jmp b2_from_b1
|
||||
str: .text " @"
|
||||
str1: .text "fail!@"
|
||||
str2: .text "ok@"
|
||||
}
|
||||
//SEG174 print_cls
|
||||
// Clear the screen. Also resets current line/char cursor.
|
||||
@ -1895,6 +1896,11 @@ print_cls: {
|
||||
//SEG184 [73] return
|
||||
rts
|
||||
}
|
||||
str: .text " @"
|
||||
str2: .text "ok@"
|
||||
msg1: .text "0+2=2@"
|
||||
msg: .text "0=0@"
|
||||
str1: .text "fail!@"
|
||||
|
||||
REGISTER UPLIFT POTENTIAL REGISTERS
|
||||
Statement [6] *((const byte*) BGCOL#0) ← (const byte) GREEN#0 [ ] ( main:2 [ ] ) always clobbers reg byte a
|
||||
@ -2051,7 +2057,7 @@ test_sbytes: {
|
||||
sta assert_sbyte.c
|
||||
//SEG27 [22] phi (signed byte) assert_sbyte::b#5 = (const signed byte) test_sbytes::bb#0 [phi:test_sbytes->assert_sbyte#1] -- vbsxx=vbsc1
|
||||
ldx #bb
|
||||
//SEG28 [22] phi (byte*) assert_sbyte::msg#5 = (const string) test_sbytes::msg [phi:test_sbytes->assert_sbyte#2] -- pbuz1=pbuc1
|
||||
//SEG28 [22] phi (byte*) assert_sbyte::msg#5 = (const string) msg [phi:test_sbytes->assert_sbyte#2] -- pbuz1=pbuc1
|
||||
lda #<msg
|
||||
sta assert_sbyte.msg
|
||||
lda #>msg
|
||||
@ -2070,7 +2076,7 @@ test_sbytes: {
|
||||
sta assert_sbyte.c
|
||||
//SEG34 [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
|
||||
//SEG35 [22] phi (byte*) assert_sbyte::msg#5 = (const string) test_sbytes::msg1 [phi:test_sbytes::@1->assert_sbyte#2] -- pbuz1=pbuc1
|
||||
//SEG35 [22] phi (byte*) assert_sbyte::msg#5 = (const string) msg1 [phi:test_sbytes::@1->assert_sbyte#2] -- pbuz1=pbuc1
|
||||
lda #<msg1
|
||||
sta assert_sbyte.msg
|
||||
lda #>msg1
|
||||
@ -2138,8 +2144,6 @@ test_sbytes: {
|
||||
breturn:
|
||||
//SEG58 [21] return
|
||||
rts
|
||||
msg: .text "0=0@"
|
||||
msg1: .text "0+2=2@"
|
||||
msg2: .text "0+2-4=-2@"
|
||||
msg3: .text "-(0+2-4)=2@"
|
||||
msg4: .text "-127-127=2@"
|
||||
@ -2170,7 +2174,7 @@ assert_sbyte: {
|
||||
//SEG69 [36] phi from assert_sbyte::@5 to print_str [phi:assert_sbyte::@5->print_str]
|
||||
print_str_from_b5:
|
||||
//SEG70 [36] phi (byte*) print_char_cursor#80 = (byte*) print_char_cursor#2 [phi:assert_sbyte::@5->print_str#0] -- register_copy
|
||||
//SEG71 [36] phi (byte*) print_str::str#11 = (const string) assert_sbyte::str [phi:assert_sbyte::@5->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG71 [36] phi (byte*) print_str::str#11 = (const string) str [phi:assert_sbyte::@5->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str
|
||||
sta print_str.str
|
||||
lda #>str
|
||||
@ -2191,7 +2195,7 @@ assert_sbyte: {
|
||||
//SEG77 [36] phi from assert_sbyte::@3 to print_str [phi:assert_sbyte::@3->print_str]
|
||||
print_str_from_b3:
|
||||
//SEG78 [36] phi (byte*) print_char_cursor#80 = (byte*) print_char_cursor#2 [phi:assert_sbyte::@3->print_str#0] -- register_copy
|
||||
//SEG79 [36] phi (byte*) print_str::str#11 = (const string) assert_sbyte::str2 [phi:assert_sbyte::@3->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG79 [36] phi (byte*) print_str::str#11 = (const string) str2 [phi:assert_sbyte::@3->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str2
|
||||
sta print_str.str
|
||||
lda #>str2
|
||||
@ -2222,16 +2226,13 @@ assert_sbyte: {
|
||||
//SEG90 [36] phi from assert_sbyte::@1 to print_str [phi:assert_sbyte::@1->print_str]
|
||||
print_str_from_b1:
|
||||
//SEG91 [36] phi (byte*) print_char_cursor#80 = (byte*) print_char_cursor#2 [phi:assert_sbyte::@1->print_str#0] -- register_copy
|
||||
//SEG92 [36] phi (byte*) print_str::str#11 = (const string) assert_sbyte::str1 [phi:assert_sbyte::@1->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG92 [36] phi (byte*) print_str::str#11 = (const string) str1 [phi:assert_sbyte::@1->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str1
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
jmp b2_from_b1
|
||||
str: .text " @"
|
||||
str1: .text "fail!@"
|
||||
str2: .text "ok@"
|
||||
}
|
||||
//SEG93 print_str
|
||||
// Print a zero-terminated string
|
||||
@ -2332,7 +2333,7 @@ test_bytes: {
|
||||
sta print_char_cursor
|
||||
lda #>$400
|
||||
sta print_char_cursor+1
|
||||
//SEG120 [55] phi (byte*) assert_byte::msg#3 = (const string) test_bytes::msg [phi:test_bytes->assert_byte#4] -- pbuz1=pbuc1
|
||||
//SEG120 [55] phi (byte*) assert_byte::msg#3 = (const string) msg [phi:test_bytes->assert_byte#4] -- pbuz1=pbuc1
|
||||
lda #<msg
|
||||
sta assert_byte.msg
|
||||
lda #>msg
|
||||
@ -2356,7 +2357,7 @@ test_bytes: {
|
||||
//SEG127 [55] phi (byte) assert_byte::b#3 = (const byte) test_bytes::bc#0 [phi:test_bytes::@1->assert_byte#2] -- vbuxx=vbuc1
|
||||
ldx #bc
|
||||
//SEG128 [55] phi (byte*) print_char_cursor#70 = (byte*~) print_char_cursor#93 [phi:test_bytes::@1->assert_byte#3] -- register_copy
|
||||
//SEG129 [55] phi (byte*) assert_byte::msg#3 = (const string) test_bytes::msg1 [phi:test_bytes::@1->assert_byte#4] -- pbuz1=pbuc1
|
||||
//SEG129 [55] phi (byte*) assert_byte::msg#3 = (const string) msg1 [phi:test_bytes::@1->assert_byte#4] -- pbuz1=pbuc1
|
||||
lda #<msg1
|
||||
sta assert_byte.msg
|
||||
lda #>msg1
|
||||
@ -2391,8 +2392,6 @@ test_bytes: {
|
||||
breturn:
|
||||
//SEG140 [54] return
|
||||
rts
|
||||
msg: .text "0=0@"
|
||||
msg1: .text "0+2=2@"
|
||||
msg2: .text "0+2-4=254@"
|
||||
}
|
||||
//SEG141 assert_byte
|
||||
@ -2416,7 +2415,7 @@ assert_byte: {
|
||||
//SEG150 [36] phi from assert_byte::@5 to print_str [phi:assert_byte::@5->print_str]
|
||||
print_str_from_b5:
|
||||
//SEG151 [36] phi (byte*) print_char_cursor#80 = (byte*) print_char_cursor#2 [phi:assert_byte::@5->print_str#0] -- register_copy
|
||||
//SEG152 [36] phi (byte*) print_str::str#11 = (const string) assert_byte::str [phi:assert_byte::@5->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG152 [36] phi (byte*) print_str::str#11 = (const string) str [phi:assert_byte::@5->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str
|
||||
sta print_str.str
|
||||
lda #>str
|
||||
@ -2437,7 +2436,7 @@ assert_byte: {
|
||||
//SEG158 [36] phi from assert_byte::@3 to print_str [phi:assert_byte::@3->print_str]
|
||||
print_str_from_b3:
|
||||
//SEG159 [36] phi (byte*) print_char_cursor#80 = (byte*) print_char_cursor#2 [phi:assert_byte::@3->print_str#0] -- register_copy
|
||||
//SEG160 [36] phi (byte*) print_str::str#11 = (const string) assert_byte::str2 [phi:assert_byte::@3->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG160 [36] phi (byte*) print_str::str#11 = (const string) str2 [phi:assert_byte::@3->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str2
|
||||
sta print_str.str
|
||||
lda #>str2
|
||||
@ -2468,16 +2467,13 @@ assert_byte: {
|
||||
//SEG171 [36] phi from assert_byte::@1 to print_str [phi:assert_byte::@1->print_str]
|
||||
print_str_from_b1:
|
||||
//SEG172 [36] phi (byte*) print_char_cursor#80 = (byte*) print_char_cursor#2 [phi:assert_byte::@1->print_str#0] -- register_copy
|
||||
//SEG173 [36] phi (byte*) print_str::str#11 = (const string) assert_byte::str1 [phi:assert_byte::@1->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG173 [36] phi (byte*) print_str::str#11 = (const string) str1 [phi:assert_byte::@1->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str1
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
jmp b2_from_b1
|
||||
str: .text " @"
|
||||
str1: .text "fail!@"
|
||||
str2: .text "ok@"
|
||||
}
|
||||
//SEG174 print_cls
|
||||
// Clear the screen. Also resets current line/char cursor.
|
||||
@ -2519,6 +2515,11 @@ print_cls: {
|
||||
//SEG184 [73] return
|
||||
rts
|
||||
}
|
||||
str: .text " @"
|
||||
str2: .text "ok@"
|
||||
msg1: .text "0+2=2@"
|
||||
msg: .text "0=0@"
|
||||
str1: .text "fail!@"
|
||||
|
||||
ASSEMBLER OPTIMIZATIONS
|
||||
Removing instruction jmp b24
|
||||
@ -2660,9 +2661,6 @@ FINAL SYMBOL TABLE
|
||||
(byte) assert_byte::c#3 c zp ZP_BYTE:4 0.4
|
||||
(byte*) assert_byte::msg
|
||||
(byte*) assert_byte::msg#3 msg zp ZP_WORD:2 2.0
|
||||
(const string) assert_byte::str str = (string) " @"
|
||||
(const string) assert_byte::str1 str1 = (string) "fail!@"
|
||||
(const string) assert_byte::str2 str2 = (string) "ok@"
|
||||
(void()) assert_sbyte((byte*) assert_sbyte::msg , (signed byte) assert_sbyte::b , (signed byte) assert_sbyte::c)
|
||||
(label) assert_sbyte::@1
|
||||
(label) assert_sbyte::@2
|
||||
@ -2676,13 +2674,12 @@ FINAL SYMBOL TABLE
|
||||
(signed byte) assert_sbyte::c#5 c zp ZP_BYTE:4 0.3333333333333333
|
||||
(byte*) assert_sbyte::msg
|
||||
(byte*) assert_sbyte::msg#5 msg zp ZP_WORD:2 2.0
|
||||
(const string) assert_sbyte::str str = (string) " @"
|
||||
(const string) assert_sbyte::str1 str1 = (string) "fail!@"
|
||||
(const string) assert_sbyte::str2 str2 = (string) "ok@"
|
||||
(void()) main()
|
||||
(label) main::@1
|
||||
(label) main::@2
|
||||
(label) main::@return
|
||||
(const string) msg msg = (string) "0=0@"
|
||||
(const string) msg1 msg1 = (string) "0+2=2@"
|
||||
(byte*) print_char_cursor
|
||||
(byte*) print_char_cursor#1 print_char_cursor zp ZP_WORD:5 11.0
|
||||
(byte*) print_char_cursor#2 print_char_cursor zp ZP_WORD:5 2.230769230769231
|
||||
@ -2717,6 +2714,9 @@ FINAL SYMBOL TABLE
|
||||
(byte*) print_str::str#10 str zp ZP_WORD:2 11.5
|
||||
(byte*) print_str::str#11 str zp ZP_WORD:2 6.0
|
||||
(byte*) print_str::str#5 str zp ZP_WORD:2 2.0
|
||||
(const string) str str = (string) " @"
|
||||
(const string) str1 str1 = (string) "fail!@"
|
||||
(const string) str2 str2 = (string) "ok@"
|
||||
(void()) test_bytes()
|
||||
(label) test_bytes::@1
|
||||
(label) test_bytes::@2
|
||||
@ -2727,8 +2727,6 @@ FINAL SYMBOL TABLE
|
||||
(const byte) test_bytes::bc#0 bc = (const byte) test_bytes::bb#0+(byte/signed byte/word/signed word/dword/signed dword) 2
|
||||
(byte) test_bytes::bd
|
||||
(const byte) test_bytes::bd#0 bd = ((byte))((signed byte))(const byte) test_bytes::bc#0-(byte/signed byte/word/signed word/dword/signed dword) 4
|
||||
(const string) test_bytes::msg msg = (string) "0=0@"
|
||||
(const string) test_bytes::msg1 msg1 = (string) "0+2=2@"
|
||||
(const string) test_bytes::msg2 msg2 = (string) "0+2-4=254@"
|
||||
(void()) test_sbytes()
|
||||
(label) test_sbytes::@1
|
||||
@ -2746,8 +2744,6 @@ FINAL SYMBOL TABLE
|
||||
(const signed byte) test_sbytes::be#0 be = -(const signed byte) test_sbytes::bd#0
|
||||
(signed byte) test_sbytes::bf
|
||||
(const signed byte) test_sbytes::bf#0 bf = ((signed byte))-(byte/signed byte/word/signed word/dword/signed dword) 127-(byte/signed byte/word/signed word/dword/signed dword) 127
|
||||
(const string) test_sbytes::msg msg = (string) "0=0@"
|
||||
(const string) test_sbytes::msg1 msg1 = (string) "0+2=2@"
|
||||
(const string) test_sbytes::msg2 msg2 = (string) "0+2-4=-2@"
|
||||
(const string) test_sbytes::msg3 msg3 = (string) "-(0+2-4)=2@"
|
||||
(const string) test_sbytes::msg4 msg4 = (string) "-127-127=2@"
|
||||
@ -2817,7 +2813,7 @@ test_sbytes: {
|
||||
sta assert_sbyte.c
|
||||
//SEG27 [22] phi (signed byte) assert_sbyte::b#5 = (const signed byte) test_sbytes::bb#0 [phi:test_sbytes->assert_sbyte#1] -- vbsxx=vbsc1
|
||||
ldx #bb
|
||||
//SEG28 [22] phi (byte*) assert_sbyte::msg#5 = (const string) test_sbytes::msg [phi:test_sbytes->assert_sbyte#2] -- pbuz1=pbuc1
|
||||
//SEG28 [22] phi (byte*) assert_sbyte::msg#5 = (const string) msg [phi:test_sbytes->assert_sbyte#2] -- pbuz1=pbuc1
|
||||
lda #<msg
|
||||
sta assert_sbyte.msg
|
||||
lda #>msg
|
||||
@ -2832,7 +2828,7 @@ test_sbytes: {
|
||||
sta assert_sbyte.c
|
||||
//SEG34 [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
|
||||
//SEG35 [22] phi (byte*) assert_sbyte::msg#5 = (const string) test_sbytes::msg1 [phi:test_sbytes::@1->assert_sbyte#2] -- pbuz1=pbuc1
|
||||
//SEG35 [22] phi (byte*) assert_sbyte::msg#5 = (const string) msg1 [phi:test_sbytes::@1->assert_sbyte#2] -- pbuz1=pbuc1
|
||||
lda #<msg1
|
||||
sta assert_sbyte.msg
|
||||
lda #>msg1
|
||||
@ -2886,8 +2882,6 @@ test_sbytes: {
|
||||
//SEG57 test_sbytes::@return
|
||||
//SEG58 [21] return
|
||||
rts
|
||||
msg: .text "0=0@"
|
||||
msg1: .text "0+2=2@"
|
||||
msg2: .text "0+2-4=-2@"
|
||||
msg3: .text "-(0+2-4)=2@"
|
||||
msg4: .text "-127-127=2@"
|
||||
@ -2913,7 +2907,7 @@ assert_sbyte: {
|
||||
//SEG68 [27] call print_str
|
||||
//SEG69 [36] phi from assert_sbyte::@5 to print_str [phi:assert_sbyte::@5->print_str]
|
||||
//SEG70 [36] phi (byte*) print_char_cursor#80 = (byte*) print_char_cursor#2 [phi:assert_sbyte::@5->print_str#0] -- register_copy
|
||||
//SEG71 [36] phi (byte*) print_str::str#11 = (const string) assert_sbyte::str [phi:assert_sbyte::@5->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG71 [36] phi (byte*) print_str::str#11 = (const string) str [phi:assert_sbyte::@5->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str
|
||||
sta print_str.str
|
||||
lda #>str
|
||||
@ -2928,7 +2922,7 @@ assert_sbyte: {
|
||||
//SEG76 [30] call print_str
|
||||
//SEG77 [36] phi from assert_sbyte::@3 to print_str [phi:assert_sbyte::@3->print_str]
|
||||
//SEG78 [36] phi (byte*) print_char_cursor#80 = (byte*) print_char_cursor#2 [phi:assert_sbyte::@3->print_str#0] -- register_copy
|
||||
//SEG79 [36] phi (byte*) print_str::str#11 = (const string) assert_sbyte::str2 [phi:assert_sbyte::@3->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG79 [36] phi (byte*) print_str::str#11 = (const string) str2 [phi:assert_sbyte::@3->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str2
|
||||
sta print_str.str
|
||||
lda #>str2
|
||||
@ -2952,16 +2946,13 @@ assert_sbyte: {
|
||||
//SEG89 [35] call print_str
|
||||
//SEG90 [36] phi from assert_sbyte::@1 to print_str [phi:assert_sbyte::@1->print_str]
|
||||
//SEG91 [36] phi (byte*) print_char_cursor#80 = (byte*) print_char_cursor#2 [phi:assert_sbyte::@1->print_str#0] -- register_copy
|
||||
//SEG92 [36] phi (byte*) print_str::str#11 = (const string) assert_sbyte::str1 [phi:assert_sbyte::@1->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG92 [36] phi (byte*) print_str::str#11 = (const string) str1 [phi:assert_sbyte::@1->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str1
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
jmp b2
|
||||
str: .text " @"
|
||||
str1: .text "fail!@"
|
||||
str2: .text "ok@"
|
||||
}
|
||||
//SEG93 print_str
|
||||
// Print a zero-terminated string
|
||||
@ -3050,7 +3041,7 @@ test_bytes: {
|
||||
sta print_char_cursor
|
||||
lda #>$400
|
||||
sta print_char_cursor+1
|
||||
//SEG120 [55] phi (byte*) assert_byte::msg#3 = (const string) test_bytes::msg [phi:test_bytes->assert_byte#4] -- pbuz1=pbuc1
|
||||
//SEG120 [55] phi (byte*) assert_byte::msg#3 = (const string) msg [phi:test_bytes->assert_byte#4] -- pbuz1=pbuc1
|
||||
lda #<msg
|
||||
sta assert_byte.msg
|
||||
lda #>msg
|
||||
@ -3071,7 +3062,7 @@ test_bytes: {
|
||||
//SEG127 [55] phi (byte) assert_byte::b#3 = (const byte) test_bytes::bc#0 [phi:test_bytes::@1->assert_byte#2] -- vbuxx=vbuc1
|
||||
ldx #bc
|
||||
//SEG128 [55] phi (byte*) print_char_cursor#70 = (byte*~) print_char_cursor#93 [phi:test_bytes::@1->assert_byte#3] -- register_copy
|
||||
//SEG129 [55] phi (byte*) assert_byte::msg#3 = (const string) test_bytes::msg1 [phi:test_bytes::@1->assert_byte#4] -- pbuz1=pbuc1
|
||||
//SEG129 [55] phi (byte*) assert_byte::msg#3 = (const string) msg1 [phi:test_bytes::@1->assert_byte#4] -- pbuz1=pbuc1
|
||||
lda #<msg1
|
||||
sta assert_byte.msg
|
||||
lda #>msg1
|
||||
@ -3101,8 +3092,6 @@ test_bytes: {
|
||||
//SEG139 test_bytes::@return
|
||||
//SEG140 [54] return
|
||||
rts
|
||||
msg: .text "0=0@"
|
||||
msg1: .text "0+2=2@"
|
||||
msg2: .text "0+2-4=254@"
|
||||
}
|
||||
//SEG141 assert_byte
|
||||
@ -3121,7 +3110,7 @@ assert_byte: {
|
||||
//SEG149 [59] call print_str
|
||||
//SEG150 [36] phi from assert_byte::@5 to print_str [phi:assert_byte::@5->print_str]
|
||||
//SEG151 [36] phi (byte*) print_char_cursor#80 = (byte*) print_char_cursor#2 [phi:assert_byte::@5->print_str#0] -- register_copy
|
||||
//SEG152 [36] phi (byte*) print_str::str#11 = (const string) assert_byte::str [phi:assert_byte::@5->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG152 [36] phi (byte*) print_str::str#11 = (const string) str [phi:assert_byte::@5->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str
|
||||
sta print_str.str
|
||||
lda #>str
|
||||
@ -3136,7 +3125,7 @@ assert_byte: {
|
||||
//SEG157 [62] call print_str
|
||||
//SEG158 [36] phi from assert_byte::@3 to print_str [phi:assert_byte::@3->print_str]
|
||||
//SEG159 [36] phi (byte*) print_char_cursor#80 = (byte*) print_char_cursor#2 [phi:assert_byte::@3->print_str#0] -- register_copy
|
||||
//SEG160 [36] phi (byte*) print_str::str#11 = (const string) assert_byte::str2 [phi:assert_byte::@3->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG160 [36] phi (byte*) print_str::str#11 = (const string) str2 [phi:assert_byte::@3->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str2
|
||||
sta print_str.str
|
||||
lda #>str2
|
||||
@ -3160,16 +3149,13 @@ assert_byte: {
|
||||
//SEG170 [67] call print_str
|
||||
//SEG171 [36] phi from assert_byte::@1 to print_str [phi:assert_byte::@1->print_str]
|
||||
//SEG172 [36] phi (byte*) print_char_cursor#80 = (byte*) print_char_cursor#2 [phi:assert_byte::@1->print_str#0] -- register_copy
|
||||
//SEG173 [36] phi (byte*) print_str::str#11 = (const string) assert_byte::str1 [phi:assert_byte::@1->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG173 [36] phi (byte*) print_str::str#11 = (const string) str1 [phi:assert_byte::@1->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str1
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
jmp b2
|
||||
str: .text " @"
|
||||
str1: .text "fail!@"
|
||||
str2: .text "ok@"
|
||||
}
|
||||
//SEG174 print_cls
|
||||
// Clear the screen. Also resets current line/char cursor.
|
||||
@ -3205,4 +3191,9 @@ print_cls: {
|
||||
//SEG184 [73] return
|
||||
rts
|
||||
}
|
||||
str: .text " @"
|
||||
str2: .text "ok@"
|
||||
msg1: .text "0+2=2@"
|
||||
msg: .text "0=0@"
|
||||
str1: .text "fail!@"
|
||||
|
||||
|
@ -20,9 +20,6 @@
|
||||
(byte) assert_byte::c#3 c zp ZP_BYTE:4 0.4
|
||||
(byte*) assert_byte::msg
|
||||
(byte*) assert_byte::msg#3 msg zp ZP_WORD:2 2.0
|
||||
(const string) assert_byte::str str = (string) " @"
|
||||
(const string) assert_byte::str1 str1 = (string) "fail!@"
|
||||
(const string) assert_byte::str2 str2 = (string) "ok@"
|
||||
(void()) assert_sbyte((byte*) assert_sbyte::msg , (signed byte) assert_sbyte::b , (signed byte) assert_sbyte::c)
|
||||
(label) assert_sbyte::@1
|
||||
(label) assert_sbyte::@2
|
||||
@ -36,13 +33,12 @@
|
||||
(signed byte) assert_sbyte::c#5 c zp ZP_BYTE:4 0.3333333333333333
|
||||
(byte*) assert_sbyte::msg
|
||||
(byte*) assert_sbyte::msg#5 msg zp ZP_WORD:2 2.0
|
||||
(const string) assert_sbyte::str str = (string) " @"
|
||||
(const string) assert_sbyte::str1 str1 = (string) "fail!@"
|
||||
(const string) assert_sbyte::str2 str2 = (string) "ok@"
|
||||
(void()) main()
|
||||
(label) main::@1
|
||||
(label) main::@2
|
||||
(label) main::@return
|
||||
(const string) msg msg = (string) "0=0@"
|
||||
(const string) msg1 msg1 = (string) "0+2=2@"
|
||||
(byte*) print_char_cursor
|
||||
(byte*) print_char_cursor#1 print_char_cursor zp ZP_WORD:5 11.0
|
||||
(byte*) print_char_cursor#2 print_char_cursor zp ZP_WORD:5 2.230769230769231
|
||||
@ -77,6 +73,9 @@
|
||||
(byte*) print_str::str#10 str zp ZP_WORD:2 11.5
|
||||
(byte*) print_str::str#11 str zp ZP_WORD:2 6.0
|
||||
(byte*) print_str::str#5 str zp ZP_WORD:2 2.0
|
||||
(const string) str str = (string) " @"
|
||||
(const string) str1 str1 = (string) "fail!@"
|
||||
(const string) str2 str2 = (string) "ok@"
|
||||
(void()) test_bytes()
|
||||
(label) test_bytes::@1
|
||||
(label) test_bytes::@2
|
||||
@ -87,8 +86,6 @@
|
||||
(const byte) test_bytes::bc#0 bc = (const byte) test_bytes::bb#0+(byte/signed byte/word/signed word/dword/signed dword) 2
|
||||
(byte) test_bytes::bd
|
||||
(const byte) test_bytes::bd#0 bd = ((byte))((signed byte))(const byte) test_bytes::bc#0-(byte/signed byte/word/signed word/dword/signed dword) 4
|
||||
(const string) test_bytes::msg msg = (string) "0=0@"
|
||||
(const string) test_bytes::msg1 msg1 = (string) "0+2=2@"
|
||||
(const string) test_bytes::msg2 msg2 = (string) "0+2-4=254@"
|
||||
(void()) test_sbytes()
|
||||
(label) test_sbytes::@1
|
||||
@ -106,8 +103,6 @@
|
||||
(const signed byte) test_sbytes::be#0 be = -(const signed byte) test_sbytes::bd#0
|
||||
(signed byte) test_sbytes::bf
|
||||
(const signed byte) test_sbytes::bf#0 bf = ((signed byte))-(byte/signed byte/word/signed word/dword/signed dword) 127-(byte/signed byte/word/signed word/dword/signed dword) 127
|
||||
(const string) test_sbytes::msg msg = (string) "0=0@"
|
||||
(const string) test_sbytes::msg1 msg1 = (string) "0+2=2@"
|
||||
(const string) test_sbytes::msg2 msg2 = (string) "0+2-4=-2@"
|
||||
(const string) test_sbytes::msg3 msg3 = (string) "-(0+2-4)=2@"
|
||||
(const string) test_sbytes::msg4 msg4 = (string) "-127-127=2@"
|
||||
|
@ -53,9 +53,9 @@ do_perspective: {
|
||||
jsr print_str
|
||||
ldx #y
|
||||
jsr print_sbyte
|
||||
lda #<str2
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str2
|
||||
lda #>str1
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
ldx #z
|
||||
@ -68,9 +68,9 @@ do_perspective: {
|
||||
jsr perspective
|
||||
ldx xr
|
||||
jsr print_byte
|
||||
lda #<str4
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str4
|
||||
lda #>str1
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
ldx yr
|
||||
@ -84,9 +84,7 @@ do_perspective: {
|
||||
rts
|
||||
str: .text "(@"
|
||||
str1: .text ",@"
|
||||
str2: .text ",@"
|
||||
str3: .text ") -> (@"
|
||||
str4: .text ",@"
|
||||
str5: .text ")@"
|
||||
}
|
||||
// Print a newline
|
||||
|
@ -102,7 +102,7 @@ print_ln::@return: scope:[print_ln] from print_ln::@1
|
||||
to:@return
|
||||
print_str: scope:[print_str] from do_perspective do_perspective::@11 do_perspective::@2 do_perspective::@4 do_perspective::@6 do_perspective::@9
|
||||
[44] (byte*) print_char_cursor#74 ← phi( do_perspective/((byte*))(word/signed word/dword/signed dword) 1024 do_perspective::@11/(byte*) print_char_cursor#12 do_perspective::@2/(byte*) print_char_cursor#12 do_perspective::@4/(byte*) print_char_cursor#12 do_perspective::@6/(byte*) print_char_cursor#12 do_perspective::@9/(byte*) print_char_cursor#12 )
|
||||
[44] (byte*) print_str::str#9 ← phi( do_perspective/(const string) do_perspective::str do_perspective::@11/(const string) do_perspective::str5 do_perspective::@2/(const string) do_perspective::str1 do_perspective::@4/(const string) do_perspective::str2 do_perspective::@6/(const string) do_perspective::str3 do_perspective::@9/(const string) do_perspective::str4 )
|
||||
[44] (byte*) print_str::str#9 ← phi( do_perspective/(const string) do_perspective::str do_perspective::@11/(const string) do_perspective::str5 do_perspective::@2/(const string) do_perspective::str1 do_perspective::@4/(const string) do_perspective::str1 do_perspective::@6/(const string) do_perspective::str3 do_perspective::@9/(const string) do_perspective::str1 )
|
||||
to:print_str::@1
|
||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||
[45] (byte*) print_char_cursor#2 ← phi( print_str/(byte*) print_char_cursor#74 print_str::@2/(byte*) print_char_cursor#1 )
|
||||
|
@ -1360,6 +1360,7 @@ Successful SSA optimization Pass2ConstantIdentification
|
||||
Consolidated array index constant in assignment *(mulf_sqr2#0+1 + mulf_init::$5)
|
||||
Consolidated array index constant in assignment *(mulf_init::$6+1 + mulf_init::$7)
|
||||
Successful SSA optimization Pass2ConstantAdditionElimination
|
||||
Successful SSA optimization Pass2ConstantStringConsolidation
|
||||
Inferred type updated to byte in [73] (byte/signed word/word/dword/signed dword~) mulf_init::$5 ← (byte) mulf_init::i#2
|
||||
Inferred type updated to byte in [75] (byte/signed word/word/dword/signed dword~) mulf_init::$7 ← (byte) mulf_init::i#2
|
||||
Successful SSA optimization PassNEliminateUnusedVars
|
||||
@ -1403,7 +1404,9 @@ Inlining constant with var siblings (const byte*) print_line_cursor#0
|
||||
Constant inlined print_cls::$0 = ((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000
|
||||
Constant inlined print_sbyte::b#1 = (const signed byte) do_perspective::x#0
|
||||
Constant inlined print_sbyte::b#2 = (const signed byte) do_perspective::y#0
|
||||
Constant inlined do_perspective::str4 = (const string) do_perspective::str1
|
||||
Constant inlined print_sbyte::b#3 = (const signed byte) do_perspective::z#0
|
||||
Constant inlined do_perspective::str2 = (const string) do_perspective::str1
|
||||
Constant inlined mulf_init::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
Constant inlined mulf_init::$1 = (const byte[512]) mulf_sqr1#0+(word/signed word/dword/signed dword) 256
|
||||
Constant inlined $0 = (const byte[]) print_hextab#0
|
||||
@ -1422,11 +1425,11 @@ Constant inlined main::$2 = ((word))(const byte[512]) mulf_sqr2#0
|
||||
Constant inlined print_char::ch#1 = (byte) ' '
|
||||
Constant inlined print_char::ch#0 = (byte) '-'
|
||||
Constant inlined print_str::str#4 = (const string) do_perspective::str3
|
||||
Constant inlined print_str::str#3 = (const string) do_perspective::str2
|
||||
Constant inlined print_str::str#3 = (const string) do_perspective::str1
|
||||
Constant inlined print_str::str#2 = (const string) do_perspective::str1
|
||||
Constant inlined print_str::str#1 = (const string) do_perspective::str
|
||||
Constant inlined print_str::str#6 = (const string) do_perspective::str5
|
||||
Constant inlined print_str::str#5 = (const string) do_perspective::str4
|
||||
Constant inlined print_str::str#5 = (const string) do_perspective::str1
|
||||
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 print_cls::@3(between print_cls::@1 and print_cls::@1)
|
||||
@ -1605,7 +1608,7 @@ print_ln::@return: scope:[print_ln] from print_ln::@1
|
||||
to:@return
|
||||
print_str: scope:[print_str] from do_perspective do_perspective::@11 do_perspective::@2 do_perspective::@4 do_perspective::@6 do_perspective::@9
|
||||
[44] (byte*) print_char_cursor#74 ← phi( do_perspective/((byte*))(word/signed word/dword/signed dword) 1024 do_perspective::@11/(byte*) print_char_cursor#12 do_perspective::@2/(byte*) print_char_cursor#12 do_perspective::@4/(byte*) print_char_cursor#12 do_perspective::@6/(byte*) print_char_cursor#12 do_perspective::@9/(byte*) print_char_cursor#12 )
|
||||
[44] (byte*) print_str::str#9 ← phi( do_perspective/(const string) do_perspective::str do_perspective::@11/(const string) do_perspective::str5 do_perspective::@2/(const string) do_perspective::str1 do_perspective::@4/(const string) do_perspective::str2 do_perspective::@6/(const string) do_perspective::str3 do_perspective::@9/(const string) do_perspective::str4 )
|
||||
[44] (byte*) print_str::str#9 ← phi( do_perspective/(const string) do_perspective::str do_perspective::@11/(const string) do_perspective::str5 do_perspective::@2/(const string) do_perspective::str1 do_perspective::@4/(const string) do_perspective::str1 do_perspective::@6/(const string) do_perspective::str3 do_perspective::@9/(const string) do_perspective::str1 )
|
||||
to:print_str::@1
|
||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||
[45] (byte*) print_char_cursor#2 ← phi( print_str/(byte*) print_char_cursor#74 print_str::@2/(byte*) print_char_cursor#1 )
|
||||
@ -2068,10 +2071,10 @@ do_perspective: {
|
||||
//SEG48 [44] phi from do_perspective::@4 to print_str [phi:do_perspective::@4->print_str]
|
||||
print_str_from_b4:
|
||||
//SEG49 [44] phi (byte*) print_char_cursor#74 = (byte*) print_char_cursor#12 [phi:do_perspective::@4->print_str#0] -- register_copy
|
||||
//SEG50 [44] phi (byte*) print_str::str#9 = (const string) do_perspective::str2 [phi:do_perspective::@4->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str2
|
||||
//SEG50 [44] phi (byte*) print_str::str#9 = (const string) do_perspective::str1 [phi:do_perspective::@4->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str2
|
||||
lda #>str1
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
//SEG51 [22] phi from do_perspective::@4 to do_perspective::@5 [phi:do_perspective::@4->do_perspective::@5]
|
||||
@ -2129,10 +2132,10 @@ do_perspective: {
|
||||
//SEG74 [44] phi from do_perspective::@9 to print_str [phi:do_perspective::@9->print_str]
|
||||
print_str_from_b9:
|
||||
//SEG75 [44] phi (byte*) print_char_cursor#74 = (byte*) print_char_cursor#12 [phi:do_perspective::@9->print_str#0] -- register_copy
|
||||
//SEG76 [44] phi (byte*) print_str::str#9 = (const string) do_perspective::str4 [phi:do_perspective::@9->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str4
|
||||
//SEG76 [44] phi (byte*) print_str::str#9 = (const string) do_perspective::str1 [phi:do_perspective::@9->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str4
|
||||
lda #>str1
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
jmp b10
|
||||
@ -2178,9 +2181,7 @@ do_perspective: {
|
||||
rts
|
||||
str: .text "(@"
|
||||
str1: .text ",@"
|
||||
str2: .text ",@"
|
||||
str3: .text ") -> (@"
|
||||
str4: .text ",@"
|
||||
str5: .text ")@"
|
||||
}
|
||||
//SEG95 print_ln
|
||||
@ -2887,10 +2888,10 @@ do_perspective: {
|
||||
//SEG48 [44] phi from do_perspective::@4 to print_str [phi:do_perspective::@4->print_str]
|
||||
print_str_from_b4:
|
||||
//SEG49 [44] phi (byte*) print_char_cursor#74 = (byte*) print_char_cursor#12 [phi:do_perspective::@4->print_str#0] -- register_copy
|
||||
//SEG50 [44] phi (byte*) print_str::str#9 = (const string) do_perspective::str2 [phi:do_perspective::@4->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str2
|
||||
//SEG50 [44] phi (byte*) print_str::str#9 = (const string) do_perspective::str1 [phi:do_perspective::@4->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str2
|
||||
lda #>str1
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
//SEG51 [22] phi from do_perspective::@4 to do_perspective::@5 [phi:do_perspective::@4->do_perspective::@5]
|
||||
@ -2946,10 +2947,10 @@ do_perspective: {
|
||||
//SEG74 [44] phi from do_perspective::@9 to print_str [phi:do_perspective::@9->print_str]
|
||||
print_str_from_b9:
|
||||
//SEG75 [44] phi (byte*) print_char_cursor#74 = (byte*) print_char_cursor#12 [phi:do_perspective::@9->print_str#0] -- register_copy
|
||||
//SEG76 [44] phi (byte*) print_str::str#9 = (const string) do_perspective::str4 [phi:do_perspective::@9->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str4
|
||||
//SEG76 [44] phi (byte*) print_str::str#9 = (const string) do_perspective::str1 [phi:do_perspective::@9->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str4
|
||||
lda #>str1
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
jmp b10
|
||||
@ -2994,9 +2995,7 @@ do_perspective: {
|
||||
rts
|
||||
str: .text "(@"
|
||||
str1: .text ",@"
|
||||
str2: .text ",@"
|
||||
str3: .text ") -> (@"
|
||||
str4: .text ",@"
|
||||
str5: .text ")@"
|
||||
}
|
||||
//SEG95 print_ln
|
||||
@ -3657,9 +3656,7 @@ FINAL SYMBOL TABLE
|
||||
(label) do_perspective::@return
|
||||
(const string) do_perspective::str str = (string) "(@"
|
||||
(const string) do_perspective::str1 str1 = (string) ",@"
|
||||
(const string) do_perspective::str2 str2 = (string) ",@"
|
||||
(const string) do_perspective::str3 str3 = (string) ") -> (@"
|
||||
(const string) do_perspective::str4 str4 = (string) ",@"
|
||||
(const string) do_perspective::str5 str5 = (string) ")@"
|
||||
(signed byte) do_perspective::x
|
||||
(const signed byte) do_perspective::x#0 x = (byte/signed byte/word/signed word/dword/signed dword) 57
|
||||
@ -3888,10 +3885,10 @@ do_perspective: {
|
||||
//SEG47 [21] call print_str
|
||||
//SEG48 [44] phi from do_perspective::@4 to print_str [phi:do_perspective::@4->print_str]
|
||||
//SEG49 [44] phi (byte*) print_char_cursor#74 = (byte*) print_char_cursor#12 [phi:do_perspective::@4->print_str#0] -- register_copy
|
||||
//SEG50 [44] phi (byte*) print_str::str#9 = (const string) do_perspective::str2 [phi:do_perspective::@4->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str2
|
||||
//SEG50 [44] phi (byte*) print_str::str#9 = (const string) do_perspective::str1 [phi:do_perspective::@4->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str2
|
||||
lda #>str1
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
//SEG51 [22] phi from do_perspective::@4 to do_perspective::@5 [phi:do_perspective::@4->do_perspective::@5]
|
||||
@ -3929,10 +3926,10 @@ do_perspective: {
|
||||
//SEG73 [31] call print_str
|
||||
//SEG74 [44] phi from do_perspective::@9 to print_str [phi:do_perspective::@9->print_str]
|
||||
//SEG75 [44] phi (byte*) print_char_cursor#74 = (byte*) print_char_cursor#12 [phi:do_perspective::@9->print_str#0] -- register_copy
|
||||
//SEG76 [44] phi (byte*) print_str::str#9 = (const string) do_perspective::str4 [phi:do_perspective::@9->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str4
|
||||
//SEG76 [44] phi (byte*) print_str::str#9 = (const string) do_perspective::str1 [phi:do_perspective::@9->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str4
|
||||
lda #>str1
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
//SEG77 do_perspective::@10
|
||||
@ -3964,9 +3961,7 @@ do_perspective: {
|
||||
rts
|
||||
str: .text "(@"
|
||||
str1: .text ",@"
|
||||
str2: .text ",@"
|
||||
str3: .text ") -> (@"
|
||||
str4: .text ",@"
|
||||
str5: .text ")@"
|
||||
}
|
||||
//SEG95 print_ln
|
||||
|
@ -98,9 +98,7 @@
|
||||
(label) do_perspective::@return
|
||||
(const string) do_perspective::str str = (string) "(@"
|
||||
(const string) do_perspective::str1 str1 = (string) ",@"
|
||||
(const string) do_perspective::str2 str2 = (string) ",@"
|
||||
(const string) do_perspective::str3 str3 = (string) ") -> (@"
|
||||
(const string) do_perspective::str4 str4 = (string) ",@"
|
||||
(const string) do_perspective::str5 str5 = (string) ")@"
|
||||
(signed byte) do_perspective::x
|
||||
(const signed byte) do_perspective::x#0 x = (byte/signed byte/word/signed word/dword/signed dword) 57
|
||||
|
@ -71,9 +71,9 @@ main: {
|
||||
lda #>$79cb
|
||||
sta print_word.w+1
|
||||
jsr print_word
|
||||
lda #<str2
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str2
|
||||
lda #>str1
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
lda #<0
|
||||
@ -94,9 +94,9 @@ main: {
|
||||
lda print_line_cursor+1
|
||||
sta print_char_cursor+1
|
||||
jsr print_byte
|
||||
lda #<str3
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str3
|
||||
lda #>str1
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
ldy i
|
||||
@ -105,9 +105,9 @@ main: {
|
||||
lda lintab1+1,y
|
||||
sta print_word.w+1
|
||||
jsr print_word
|
||||
lda #<str4
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str4
|
||||
lda #>str1
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
ldy i
|
||||
@ -116,9 +116,9 @@ main: {
|
||||
lda lintab2+1,y
|
||||
sta print_word.w+1
|
||||
jsr print_word
|
||||
lda #<str5
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str5
|
||||
lda #>str1
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
ldy i
|
||||
@ -138,9 +138,9 @@ main: {
|
||||
sta print_char_cursor
|
||||
lda print_line_cursor+1
|
||||
sta print_char_cursor+1
|
||||
lda #<str6
|
||||
lda #<str
|
||||
sta print_str.str
|
||||
lda #>str6
|
||||
lda #>str
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
lda #<$7461
|
||||
@ -148,9 +148,9 @@ main: {
|
||||
lda #>$7461
|
||||
sta print_word.w+1
|
||||
jsr print_word
|
||||
lda #<str7
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str7
|
||||
lda #>str1
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
lda #<$f781
|
||||
@ -158,9 +158,9 @@ main: {
|
||||
lda #>$f781
|
||||
sta print_word.w+1
|
||||
jsr print_word
|
||||
lda #<str8
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str8
|
||||
lda #>str1
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
lda #<$6488
|
||||
@ -172,13 +172,6 @@ main: {
|
||||
rts
|
||||
str: .text " @"
|
||||
str1: .text " @"
|
||||
str2: .text " @"
|
||||
str3: .text " @"
|
||||
str4: .text " @"
|
||||
str5: .text " @"
|
||||
str6: .text " @"
|
||||
str7: .text " @"
|
||||
str8: .text " @"
|
||||
lintab1: .fill 2*$14, 0
|
||||
lintab2: .fill 2*$14, 0
|
||||
lintab3: .fill 2*$14, 0
|
||||
|
@ -169,7 +169,7 @@ print_char::@return: scope:[print_char] from print_char
|
||||
to:@return
|
||||
print_str: scope:[print_str] from main::@10 main::@14 main::@16 main::@18 main::@2 main::@23 main::@25 main::@6 main::@8
|
||||
[84] (byte*) print_char_cursor#86 ← phi( main::@10/(byte*) print_char_cursor#11 main::@14/(byte*) print_char_cursor#11 main::@16/(byte*) print_char_cursor#11 main::@18/(byte*) print_char_cursor#11 main::@2/(byte*~) print_char_cursor#100 main::@23/(byte*) print_char_cursor#11 main::@25/(byte*) print_char_cursor#11 main::@6/((byte*))(word/signed word/dword/signed dword) 1024 main::@8/(byte*) print_char_cursor#11 )
|
||||
[84] (byte*) print_str::str#12 ← phi( main::@10/(const string) main::str2 main::@14/(const string) main::str3 main::@16/(const string) main::str4 main::@18/(const string) main::str5 main::@2/(const string) main::str6 main::@23/(const string) main::str7 main::@25/(const string) main::str8 main::@6/(const string) main::str main::@8/(const string) main::str1 )
|
||||
[84] (byte*) print_str::str#12 ← phi( main::@10/(const string) main::str1 main::@14/(const string) main::str1 main::@16/(const string) main::str1 main::@18/(const string) main::str1 main::@2/(const string) main::str main::@23/(const string) main::str1 main::@25/(const string) main::str1 main::@6/(const string) main::str main::@8/(const string) main::str1 )
|
||||
to:print_str::@1
|
||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||
[85] (byte*) print_char_cursor#2 ← phi( print_str/(byte*) print_char_cursor#86 print_str::@2/(byte*) print_char_cursor#1 )
|
||||
|
@ -1293,6 +1293,7 @@ Constant (const word*) lin16u_gen::lintab#0 = main::lintab1#0
|
||||
Constant (const word*) lin16u_gen::lintab#1 = main::lintab2#0
|
||||
Constant (const word*) lin16u_gen::lintab#2 = main::lintab3#0
|
||||
Successful SSA optimization Pass2ConstantIdentification
|
||||
Successful SSA optimization Pass2ConstantStringConsolidation
|
||||
Fixing inline constructor with lin16u_gen::$9 ← lin16u_gen::stepi#0 dw= lin16u_gen::stepf#0
|
||||
Fixing inline constructor with lin16u_gen::$10 ← lin16u_gen::min#3 dw= 0
|
||||
Successful SSA optimization Pass2FixInlineConstructors
|
||||
@ -1351,9 +1352,15 @@ Inlining constant with var siblings (const word*) lin16u_gen::lintab#0
|
||||
Inlining constant with var siblings (const word*) lin16u_gen::lintab#1
|
||||
Inlining constant with var siblings (const word*) lin16u_gen::lintab#2
|
||||
Inlining constant with var siblings (const byte*) print_line_cursor#0
|
||||
Constant inlined main::str4 = (const string) main::str1
|
||||
Constant inlined main::str5 = (const string) main::str1
|
||||
Constant inlined divr16u::rem#3 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
Constant inlined main::str6 = (const string) main::str
|
||||
Constant inlined main::str7 = (const string) main::str1
|
||||
Constant inlined print_cls::$0 = ((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000
|
||||
Constant inlined divr16u::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
Constant inlined main::str2 = (const string) main::str1
|
||||
Constant inlined main::str3 = (const string) main::str1
|
||||
Constant inlined lin16u_gen::max#0 = (word/signed word/dword/signed dword) 29793
|
||||
Constant inlined lin16u_gen::max#2 = (word/signed word/dword/signed dword) 25736
|
||||
Constant inlined lin16u_gen::max#1 = (word/dword/signed dword) 63361
|
||||
@ -1372,23 +1379,24 @@ Constant inlined print_word::w#7 = (word/dword/signed dword) 63361
|
||||
Constant inlined print_word::w#6 = (word/signed word/dword/signed dword) 29793
|
||||
Constant inlined print_word::w#8 = (word/signed word/dword/signed dword) 25736
|
||||
Constant inlined lin16u_gen::length#2 = (byte/signed byte/word/signed word/dword/signed dword) 20
|
||||
Constant inlined print_str::str#9 = (const string) main::str8
|
||||
Constant inlined print_str::str#9 = (const string) main::str1
|
||||
Constant inlined lin16u_gen::length#1 = (byte/signed byte/word/signed word/dword/signed dword) 20
|
||||
Constant inlined lin16u_gen::length#0 = (byte/signed byte/word/signed word/dword/signed dword) 20
|
||||
Constant inlined print_str::str#4 = (const string) main::str3
|
||||
Constant inlined print_str::str#3 = (const string) main::str2
|
||||
Constant inlined print_str::str#4 = (const string) main::str1
|
||||
Constant inlined print_str::str#3 = (const string) main::str1
|
||||
Constant inlined print_str::str#2 = (const string) main::str1
|
||||
Constant inlined print_str::str#1 = (const string) main::str
|
||||
Constant inlined print_str::str#8 = (const string) main::str7
|
||||
Constant inlined print_str::str#8 = (const string) main::str1
|
||||
Constant inlined main::str8 = (const string) main::str1
|
||||
Constant inlined lin16u_gen::lintab#2 = (const word[20]) main::lintab3#0
|
||||
Constant inlined lin16u_gen::min#1 = (word/signed word/dword/signed dword) 31179
|
||||
Constant inlined lin16u_gen::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
Constant inlined print_str::str#7 = (const string) main::str6
|
||||
Constant inlined print_str::str#7 = (const string) main::str
|
||||
Constant inlined lin16u_gen::lintab#1 = (const word[20]) main::lintab2#0
|
||||
Constant inlined lin16u_gen::min#2 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
Constant inlined print_str::str#6 = (const string) main::str5
|
||||
Constant inlined print_str::str#6 = (const string) main::str1
|
||||
Constant inlined lin16u_gen::lintab#0 = (const word[20]) main::lintab1#0
|
||||
Constant inlined print_str::str#5 = (const string) main::str4
|
||||
Constant inlined print_str::str#5 = (const string) main::str1
|
||||
Successful SSA optimization Pass2ConstantInlining
|
||||
Identical Phi Values (word) lin16u_gen::length#3 (byte/signed byte/word/signed word/dword/signed dword) 20
|
||||
Successful SSA optimization Pass2IdenticalPhiElimination
|
||||
@ -1687,7 +1695,7 @@ print_char::@return: scope:[print_char] from print_char
|
||||
to:@return
|
||||
print_str: scope:[print_str] from main::@10 main::@14 main::@16 main::@18 main::@2 main::@23 main::@25 main::@6 main::@8
|
||||
[84] (byte*) print_char_cursor#86 ← phi( main::@10/(byte*) print_char_cursor#11 main::@14/(byte*) print_char_cursor#11 main::@16/(byte*) print_char_cursor#11 main::@18/(byte*) print_char_cursor#11 main::@2/(byte*~) print_char_cursor#100 main::@23/(byte*) print_char_cursor#11 main::@25/(byte*) print_char_cursor#11 main::@6/((byte*))(word/signed word/dword/signed dword) 1024 main::@8/(byte*) print_char_cursor#11 )
|
||||
[84] (byte*) print_str::str#12 ← phi( main::@10/(const string) main::str2 main::@14/(const string) main::str3 main::@16/(const string) main::str4 main::@18/(const string) main::str5 main::@2/(const string) main::str6 main::@23/(const string) main::str7 main::@25/(const string) main::str8 main::@6/(const string) main::str main::@8/(const string) main::str1 )
|
||||
[84] (byte*) print_str::str#12 ← phi( main::@10/(const string) main::str1 main::@14/(const string) main::str1 main::@16/(const string) main::str1 main::@18/(const string) main::str1 main::@2/(const string) main::str main::@23/(const string) main::str1 main::@25/(const string) main::str1 main::@6/(const string) main::str main::@8/(const string) main::str1 )
|
||||
to:print_str::@1
|
||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||
[85] (byte*) print_char_cursor#2 ← phi( print_str/(byte*) print_char_cursor#86 print_str::@2/(byte*) print_char_cursor#1 )
|
||||
@ -2175,10 +2183,10 @@ main: {
|
||||
//SEG59 [84] phi from main::@10 to print_str [phi:main::@10->print_str]
|
||||
print_str_from_b10:
|
||||
//SEG60 [84] phi (byte*) print_char_cursor#86 = (byte*) print_char_cursor#11 [phi:main::@10->print_str#0] -- register_copy
|
||||
//SEG61 [84] phi (byte*) print_str::str#12 = (const string) main::str2 [phi:main::@10->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str2
|
||||
//SEG61 [84] phi (byte*) print_str::str#12 = (const string) main::str1 [phi:main::@10->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str2
|
||||
lda #>str1
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
//SEG62 [22] phi from main::@10 to main::@11 [phi:main::@10->main::@11]
|
||||
@ -2244,10 +2252,10 @@ main: {
|
||||
//SEG86 [84] phi from main::@14 to print_str [phi:main::@14->print_str]
|
||||
print_str_from_b14:
|
||||
//SEG87 [84] phi (byte*) print_char_cursor#86 = (byte*) print_char_cursor#11 [phi:main::@14->print_str#0] -- register_copy
|
||||
//SEG88 [84] phi (byte*) print_str::str#12 = (const string) main::str3 [phi:main::@14->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str3
|
||||
//SEG88 [84] phi (byte*) print_str::str#12 = (const string) main::str1 [phi:main::@14->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str3
|
||||
lda #>str1
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
jmp b15
|
||||
@ -2273,10 +2281,10 @@ main: {
|
||||
//SEG97 [84] phi from main::@16 to print_str [phi:main::@16->print_str]
|
||||
print_str_from_b16:
|
||||
//SEG98 [84] phi (byte*) print_char_cursor#86 = (byte*) print_char_cursor#11 [phi:main::@16->print_str#0] -- register_copy
|
||||
//SEG99 [84] phi (byte*) print_str::str#12 = (const string) main::str4 [phi:main::@16->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str4
|
||||
//SEG99 [84] phi (byte*) print_str::str#12 = (const string) main::str1 [phi:main::@16->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str4
|
||||
lda #>str1
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
jmp b17
|
||||
@ -2302,10 +2310,10 @@ main: {
|
||||
//SEG108 [84] phi from main::@18 to print_str [phi:main::@18->print_str]
|
||||
print_str_from_b18:
|
||||
//SEG109 [84] phi (byte*) print_char_cursor#86 = (byte*) print_char_cursor#11 [phi:main::@18->print_str#0] -- register_copy
|
||||
//SEG110 [84] phi (byte*) print_str::str#12 = (const string) main::str5 [phi:main::@18->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str5
|
||||
//SEG110 [84] phi (byte*) print_str::str#12 = (const string) main::str1 [phi:main::@18->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str5
|
||||
lda #>str1
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
jmp b19
|
||||
@ -2356,10 +2364,10 @@ main: {
|
||||
//SEG127 [84] phi from main::@2 to print_str [phi:main::@2->print_str]
|
||||
print_str_from_b2:
|
||||
//SEG128 [84] phi (byte*) print_char_cursor#86 = (byte*~) print_char_cursor#100 [phi:main::@2->print_str#0] -- register_copy
|
||||
//SEG129 [84] phi (byte*) print_str::str#12 = (const string) main::str6 [phi:main::@2->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str6
|
||||
//SEG129 [84] phi (byte*) print_str::str#12 = (const string) main::str [phi:main::@2->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str
|
||||
sta print_str.str
|
||||
lda #>str6
|
||||
lda #>str
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
//SEG130 [48] phi from main::@2 to main::@22 [phi:main::@2->main::@22]
|
||||
@ -2385,10 +2393,10 @@ main: {
|
||||
//SEG138 [84] phi from main::@23 to print_str [phi:main::@23->print_str]
|
||||
print_str_from_b23:
|
||||
//SEG139 [84] phi (byte*) print_char_cursor#86 = (byte*) print_char_cursor#11 [phi:main::@23->print_str#0] -- register_copy
|
||||
//SEG140 [84] phi (byte*) print_str::str#12 = (const string) main::str7 [phi:main::@23->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str7
|
||||
//SEG140 [84] phi (byte*) print_str::str#12 = (const string) main::str1 [phi:main::@23->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str7
|
||||
lda #>str1
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
//SEG141 [52] phi from main::@23 to main::@24 [phi:main::@23->main::@24]
|
||||
@ -2414,10 +2422,10 @@ main: {
|
||||
//SEG149 [84] phi from main::@25 to print_str [phi:main::@25->print_str]
|
||||
print_str_from_b25:
|
||||
//SEG150 [84] phi (byte*) print_char_cursor#86 = (byte*) print_char_cursor#11 [phi:main::@25->print_str#0] -- register_copy
|
||||
//SEG151 [84] phi (byte*) print_str::str#12 = (const string) main::str8 [phi:main::@25->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str8
|
||||
//SEG151 [84] phi (byte*) print_str::str#12 = (const string) main::str1 [phi:main::@25->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str8
|
||||
lda #>str1
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
//SEG152 [56] phi from main::@25 to main::@26 [phi:main::@25->main::@26]
|
||||
@ -2451,13 +2459,6 @@ main: {
|
||||
rts
|
||||
str: .text " @"
|
||||
str1: .text " @"
|
||||
str2: .text " @"
|
||||
str3: .text " @"
|
||||
str4: .text " @"
|
||||
str5: .text " @"
|
||||
str6: .text " @"
|
||||
str7: .text " @"
|
||||
str8: .text " @"
|
||||
lintab1: .fill 2*$14, 0
|
||||
lintab2: .fill 2*$14, 0
|
||||
lintab3: .fill 2*$14, 0
|
||||
@ -3316,10 +3317,10 @@ main: {
|
||||
//SEG59 [84] phi from main::@10 to print_str [phi:main::@10->print_str]
|
||||
print_str_from_b10:
|
||||
//SEG60 [84] phi (byte*) print_char_cursor#86 = (byte*) print_char_cursor#11 [phi:main::@10->print_str#0] -- register_copy
|
||||
//SEG61 [84] phi (byte*) print_str::str#12 = (const string) main::str2 [phi:main::@10->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str2
|
||||
//SEG61 [84] phi (byte*) print_str::str#12 = (const string) main::str1 [phi:main::@10->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str2
|
||||
lda #>str1
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
//SEG62 [22] phi from main::@10 to main::@11 [phi:main::@10->main::@11]
|
||||
@ -3384,10 +3385,10 @@ main: {
|
||||
//SEG86 [84] phi from main::@14 to print_str [phi:main::@14->print_str]
|
||||
print_str_from_b14:
|
||||
//SEG87 [84] phi (byte*) print_char_cursor#86 = (byte*) print_char_cursor#11 [phi:main::@14->print_str#0] -- register_copy
|
||||
//SEG88 [84] phi (byte*) print_str::str#12 = (const string) main::str3 [phi:main::@14->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str3
|
||||
//SEG88 [84] phi (byte*) print_str::str#12 = (const string) main::str1 [phi:main::@14->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str3
|
||||
lda #>str1
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
jmp b15
|
||||
@ -3413,10 +3414,10 @@ main: {
|
||||
//SEG97 [84] phi from main::@16 to print_str [phi:main::@16->print_str]
|
||||
print_str_from_b16:
|
||||
//SEG98 [84] phi (byte*) print_char_cursor#86 = (byte*) print_char_cursor#11 [phi:main::@16->print_str#0] -- register_copy
|
||||
//SEG99 [84] phi (byte*) print_str::str#12 = (const string) main::str4 [phi:main::@16->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str4
|
||||
//SEG99 [84] phi (byte*) print_str::str#12 = (const string) main::str1 [phi:main::@16->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str4
|
||||
lda #>str1
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
jmp b17
|
||||
@ -3442,10 +3443,10 @@ main: {
|
||||
//SEG108 [84] phi from main::@18 to print_str [phi:main::@18->print_str]
|
||||
print_str_from_b18:
|
||||
//SEG109 [84] phi (byte*) print_char_cursor#86 = (byte*) print_char_cursor#11 [phi:main::@18->print_str#0] -- register_copy
|
||||
//SEG110 [84] phi (byte*) print_str::str#12 = (const string) main::str5 [phi:main::@18->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str5
|
||||
//SEG110 [84] phi (byte*) print_str::str#12 = (const string) main::str1 [phi:main::@18->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str5
|
||||
lda #>str1
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
jmp b19
|
||||
@ -3496,10 +3497,10 @@ main: {
|
||||
//SEG127 [84] phi from main::@2 to print_str [phi:main::@2->print_str]
|
||||
print_str_from_b2:
|
||||
//SEG128 [84] phi (byte*) print_char_cursor#86 = (byte*~) print_char_cursor#100 [phi:main::@2->print_str#0] -- register_copy
|
||||
//SEG129 [84] phi (byte*) print_str::str#12 = (const string) main::str6 [phi:main::@2->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str6
|
||||
//SEG129 [84] phi (byte*) print_str::str#12 = (const string) main::str [phi:main::@2->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str
|
||||
sta print_str.str
|
||||
lda #>str6
|
||||
lda #>str
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
//SEG130 [48] phi from main::@2 to main::@22 [phi:main::@2->main::@22]
|
||||
@ -3525,10 +3526,10 @@ main: {
|
||||
//SEG138 [84] phi from main::@23 to print_str [phi:main::@23->print_str]
|
||||
print_str_from_b23:
|
||||
//SEG139 [84] phi (byte*) print_char_cursor#86 = (byte*) print_char_cursor#11 [phi:main::@23->print_str#0] -- register_copy
|
||||
//SEG140 [84] phi (byte*) print_str::str#12 = (const string) main::str7 [phi:main::@23->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str7
|
||||
//SEG140 [84] phi (byte*) print_str::str#12 = (const string) main::str1 [phi:main::@23->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str7
|
||||
lda #>str1
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
//SEG141 [52] phi from main::@23 to main::@24 [phi:main::@23->main::@24]
|
||||
@ -3554,10 +3555,10 @@ main: {
|
||||
//SEG149 [84] phi from main::@25 to print_str [phi:main::@25->print_str]
|
||||
print_str_from_b25:
|
||||
//SEG150 [84] phi (byte*) print_char_cursor#86 = (byte*) print_char_cursor#11 [phi:main::@25->print_str#0] -- register_copy
|
||||
//SEG151 [84] phi (byte*) print_str::str#12 = (const string) main::str8 [phi:main::@25->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str8
|
||||
//SEG151 [84] phi (byte*) print_str::str#12 = (const string) main::str1 [phi:main::@25->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str8
|
||||
lda #>str1
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
//SEG152 [56] phi from main::@25 to main::@26 [phi:main::@25->main::@26]
|
||||
@ -3591,13 +3592,6 @@ main: {
|
||||
rts
|
||||
str: .text " @"
|
||||
str1: .text " @"
|
||||
str2: .text " @"
|
||||
str3: .text " @"
|
||||
str4: .text " @"
|
||||
str5: .text " @"
|
||||
str6: .text " @"
|
||||
str7: .text " @"
|
||||
str8: .text " @"
|
||||
lintab1: .fill 2*$14, 0
|
||||
lintab2: .fill 2*$14, 0
|
||||
lintab3: .fill 2*$14, 0
|
||||
@ -4393,13 +4387,6 @@ FINAL SYMBOL TABLE
|
||||
(const word[20]) main::lintab3#0 lintab3 = { fill( 20, 0) }
|
||||
(const string) main::str str = (string) " @"
|
||||
(const string) main::str1 str1 = (string) " @"
|
||||
(const string) main::str2 str2 = (string) " @"
|
||||
(const string) main::str3 str3 = (string) " @"
|
||||
(const string) main::str4 str4 = (string) " @"
|
||||
(const string) main::str5 str5 = (string) " @"
|
||||
(const string) main::str6 str6 = (string) " @"
|
||||
(const string) main::str7 str7 = (string) " @"
|
||||
(const string) main::str8 str8 = (string) " @"
|
||||
(void()) print_byte((byte) print_byte::b)
|
||||
(byte~) print_byte::$0 reg byte a 4.0
|
||||
(byte~) print_byte::$2 reg byte a 4.0
|
||||
@ -4619,10 +4606,10 @@ main: {
|
||||
//SEG58 [21] call print_str
|
||||
//SEG59 [84] phi from main::@10 to print_str [phi:main::@10->print_str]
|
||||
//SEG60 [84] phi (byte*) print_char_cursor#86 = (byte*) print_char_cursor#11 [phi:main::@10->print_str#0] -- register_copy
|
||||
//SEG61 [84] phi (byte*) print_str::str#12 = (const string) main::str2 [phi:main::@10->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str2
|
||||
//SEG61 [84] phi (byte*) print_str::str#12 = (const string) main::str1 [phi:main::@10->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str2
|
||||
lda #>str1
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
//SEG62 [22] phi from main::@10 to main::@11 [phi:main::@10->main::@11]
|
||||
@ -4669,10 +4656,10 @@ main: {
|
||||
//SEG85 [31] call print_str
|
||||
//SEG86 [84] phi from main::@14 to print_str [phi:main::@14->print_str]
|
||||
//SEG87 [84] phi (byte*) print_char_cursor#86 = (byte*) print_char_cursor#11 [phi:main::@14->print_str#0] -- register_copy
|
||||
//SEG88 [84] phi (byte*) print_str::str#12 = (const string) main::str3 [phi:main::@14->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str3
|
||||
//SEG88 [84] phi (byte*) print_str::str#12 = (const string) main::str1 [phi:main::@14->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str3
|
||||
lda #>str1
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
//SEG89 main::@15
|
||||
@ -4691,10 +4678,10 @@ main: {
|
||||
//SEG96 [35] call print_str
|
||||
//SEG97 [84] phi from main::@16 to print_str [phi:main::@16->print_str]
|
||||
//SEG98 [84] phi (byte*) print_char_cursor#86 = (byte*) print_char_cursor#11 [phi:main::@16->print_str#0] -- register_copy
|
||||
//SEG99 [84] phi (byte*) print_str::str#12 = (const string) main::str4 [phi:main::@16->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str4
|
||||
//SEG99 [84] phi (byte*) print_str::str#12 = (const string) main::str1 [phi:main::@16->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str4
|
||||
lda #>str1
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
//SEG100 main::@17
|
||||
@ -4713,10 +4700,10 @@ main: {
|
||||
//SEG107 [39] call print_str
|
||||
//SEG108 [84] phi from main::@18 to print_str [phi:main::@18->print_str]
|
||||
//SEG109 [84] phi (byte*) print_char_cursor#86 = (byte*) print_char_cursor#11 [phi:main::@18->print_str#0] -- register_copy
|
||||
//SEG110 [84] phi (byte*) print_str::str#12 = (const string) main::str5 [phi:main::@18->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str5
|
||||
//SEG110 [84] phi (byte*) print_str::str#12 = (const string) main::str1 [phi:main::@18->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str5
|
||||
lda #>str1
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
//SEG111 main::@19
|
||||
@ -4754,10 +4741,10 @@ main: {
|
||||
//SEG126 [47] call print_str
|
||||
//SEG127 [84] phi from main::@2 to print_str [phi:main::@2->print_str]
|
||||
//SEG128 [84] phi (byte*) print_char_cursor#86 = (byte*~) print_char_cursor#100 [phi:main::@2->print_str#0] -- register_copy
|
||||
//SEG129 [84] phi (byte*) print_str::str#12 = (const string) main::str6 [phi:main::@2->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str6
|
||||
//SEG129 [84] phi (byte*) print_str::str#12 = (const string) main::str [phi:main::@2->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str
|
||||
sta print_str.str
|
||||
lda #>str6
|
||||
lda #>str
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
//SEG130 [48] phi from main::@2 to main::@22 [phi:main::@2->main::@22]
|
||||
@ -4775,10 +4762,10 @@ main: {
|
||||
//SEG137 [51] call print_str
|
||||
//SEG138 [84] phi from main::@23 to print_str [phi:main::@23->print_str]
|
||||
//SEG139 [84] phi (byte*) print_char_cursor#86 = (byte*) print_char_cursor#11 [phi:main::@23->print_str#0] -- register_copy
|
||||
//SEG140 [84] phi (byte*) print_str::str#12 = (const string) main::str7 [phi:main::@23->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str7
|
||||
//SEG140 [84] phi (byte*) print_str::str#12 = (const string) main::str1 [phi:main::@23->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str7
|
||||
lda #>str1
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
//SEG141 [52] phi from main::@23 to main::@24 [phi:main::@23->main::@24]
|
||||
@ -4796,10 +4783,10 @@ main: {
|
||||
//SEG148 [55] call print_str
|
||||
//SEG149 [84] phi from main::@25 to print_str [phi:main::@25->print_str]
|
||||
//SEG150 [84] phi (byte*) print_char_cursor#86 = (byte*) print_char_cursor#11 [phi:main::@25->print_str#0] -- register_copy
|
||||
//SEG151 [84] phi (byte*) print_str::str#12 = (const string) main::str8 [phi:main::@25->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str8
|
||||
//SEG151 [84] phi (byte*) print_str::str#12 = (const string) main::str1 [phi:main::@25->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str8
|
||||
lda #>str1
|
||||
sta print_str.str+1
|
||||
jsr print_str
|
||||
//SEG152 [56] phi from main::@25 to main::@26 [phi:main::@25->main::@26]
|
||||
@ -4823,13 +4810,6 @@ main: {
|
||||
rts
|
||||
str: .text " @"
|
||||
str1: .text " @"
|
||||
str2: .text " @"
|
||||
str3: .text " @"
|
||||
str4: .text " @"
|
||||
str5: .text " @"
|
||||
str6: .text " @"
|
||||
str7: .text " @"
|
||||
str8: .text " @"
|
||||
lintab1: .fill 2*$14, 0
|
||||
lintab2: .fill 2*$14, 0
|
||||
lintab3: .fill 2*$14, 0
|
||||
|
@ -107,13 +107,6 @@
|
||||
(const word[20]) main::lintab3#0 lintab3 = { fill( 20, 0) }
|
||||
(const string) main::str str = (string) " @"
|
||||
(const string) main::str1 str1 = (string) " @"
|
||||
(const string) main::str2 str2 = (string) " @"
|
||||
(const string) main::str3 str3 = (string) " @"
|
||||
(const string) main::str4 str4 = (string) " @"
|
||||
(const string) main::str5 str5 = (string) " @"
|
||||
(const string) main::str6 str6 = (string) " @"
|
||||
(const string) main::str7 str7 = (string) " @"
|
||||
(const string) main::str8 str8 = (string) " @"
|
||||
(void()) print_byte((byte) print_byte::b)
|
||||
(byte~) print_byte::$0 reg byte a 4.0
|
||||
(byte~) print_byte::$2 reg byte a 4.0
|
||||
|
@ -6,7 +6,7 @@ CONTROL FLOW GRAPH SSA
|
||||
to:@2
|
||||
main: scope:[main] from @2
|
||||
(byte*) screen#15 ← phi( @2/(byte*) screen#17 )
|
||||
(byte[]) main::rex2#0 ← (byte[]) rex1#0
|
||||
(byte[]) main::rex2#0 ← (const string) main::$3
|
||||
(byte*) print::string#0 ← (byte[]) rex1#0
|
||||
call print
|
||||
to:main::@1
|
||||
@ -70,6 +70,7 @@ SYMBOL TABLE SSA
|
||||
(label) @begin
|
||||
(label) @end
|
||||
(void()) main()
|
||||
(const string) main::$3 = (string) "rex@"
|
||||
(label) main::@1
|
||||
(label) main::@2
|
||||
(label) main::@3
|
||||
@ -131,11 +132,10 @@ Simple Condition (bool~) print::$0 [22] if(*((byte*) print::string#4)!=(byte) '@
|
||||
Successful SSA optimization Pass2ConditionalJumpSimplification
|
||||
Constant (const byte[]) rex1#0 = $0
|
||||
Constant (const byte*) screen#0 = ((byte*))1024
|
||||
Constant (const byte[]) main::rex2#0 = main::$3
|
||||
Constant (const byte*) print::string#2 = main::string
|
||||
Successful SSA optimization Pass2ConstantIdentification
|
||||
Constant (const byte[]) main::rex2#0 = rex1#0
|
||||
Constant (const byte*) print::string#0 = rex1#0
|
||||
Successful SSA optimization Pass2ConstantIdentification
|
||||
Constant (const byte*) print::string#1 = main::rex2#0
|
||||
Successful SSA optimization Pass2ConstantIdentification
|
||||
Successful SSA optimization Pass2ConstantStringConsolidation
|
||||
@ -146,14 +146,15 @@ Inlining constant with var siblings (const byte*) print::string#2
|
||||
Inlining constant with var siblings (const byte*) print::string#0
|
||||
Inlining constant with var siblings (const byte*) print::string#1
|
||||
Inlining constant with var siblings (const byte*) screen#0
|
||||
Constant inlined main::$3 = (const byte[]) main::rex2#0
|
||||
Constant inlined print::string#0 = (const byte[]) rex1#0
|
||||
Constant inlined print::string#1 = (const byte[]) rex1#0
|
||||
Constant inlined print::string#1 = (const byte[]) main::rex2#0
|
||||
Constant inlined $0 = (const byte[]) rex1#0
|
||||
Constant inlined print::string#2 = (const string) main::string
|
||||
Constant inlined main::rex2#0 = (const byte[]) rex1#0
|
||||
Constant inlined screen#0 = ((byte*))(word/signed word/dword/signed dword) 1024
|
||||
Successful SSA optimization Pass2ConstantInlining
|
||||
Successful SSA optimization Pass2ConstantStringConsolidation
|
||||
Constant inlined main::rex2#0 = (const byte[]) rex1#0
|
||||
Constant inlined main::string = (const byte[]) rex1#0
|
||||
Successful SSA optimization Pass2ConstantInlining
|
||||
Identical Phi Values (byte*) print::string#6 (const byte[]) rex1#0
|
||||
|
@ -50,9 +50,9 @@ main: {
|
||||
b3:
|
||||
lda #$37
|
||||
sta printu.b
|
||||
lda #<op1
|
||||
lda #<op
|
||||
sta printu.op
|
||||
lda #>op1
|
||||
lda #>op
|
||||
sta printu.op+1
|
||||
jsr printu
|
||||
lda a
|
||||
@ -67,9 +67,9 @@ main: {
|
||||
ldy i
|
||||
lda cs,y
|
||||
sta printu.b
|
||||
lda #<op2
|
||||
lda #<op
|
||||
sta printu.op
|
||||
lda #>op2
|
||||
lda #>op
|
||||
sta printu.op+1
|
||||
jsr printu
|
||||
lda a
|
||||
@ -82,9 +82,9 @@ main: {
|
||||
b5:
|
||||
lda a
|
||||
sta printu.b
|
||||
lda #<op3
|
||||
lda #<op
|
||||
sta printu.op
|
||||
lda #>op3
|
||||
lda #>op
|
||||
sta printu.op+1
|
||||
jsr printu
|
||||
jsr print_ln
|
||||
@ -117,9 +117,9 @@ main: {
|
||||
b7:
|
||||
lda #$37
|
||||
sta printu.b
|
||||
lda #<op5
|
||||
lda #<op4
|
||||
sta printu.op
|
||||
lda #>op5
|
||||
lda #>op4
|
||||
sta printu.op+1
|
||||
jsr printu
|
||||
ldy i
|
||||
@ -134,9 +134,9 @@ main: {
|
||||
ldy i
|
||||
lda cs,y
|
||||
sta printu.b
|
||||
lda #<op6
|
||||
lda #<op4
|
||||
sta printu.op
|
||||
lda #>op6
|
||||
lda #>op4
|
||||
sta printu.op+1
|
||||
jsr printu
|
||||
lda a
|
||||
@ -149,9 +149,9 @@ main: {
|
||||
b9:
|
||||
lda a
|
||||
sta printu.b
|
||||
lda #<op7
|
||||
lda #<op4
|
||||
sta printu.op
|
||||
lda #>op7
|
||||
lda #>op4
|
||||
sta printu.op+1
|
||||
jsr printu
|
||||
jsr print_ln
|
||||
@ -186,9 +186,9 @@ main: {
|
||||
b11:
|
||||
lda #$37
|
||||
sta printu.b
|
||||
lda #<op9
|
||||
lda #<op8
|
||||
sta printu.op
|
||||
lda #>op9
|
||||
lda #>op8
|
||||
sta printu.op+1
|
||||
jsr printu
|
||||
ldy i
|
||||
@ -203,9 +203,9 @@ main: {
|
||||
ldy i
|
||||
lda cs,y
|
||||
sta printu.b
|
||||
lda #<op10
|
||||
lda #<op8
|
||||
sta printu.op
|
||||
lda #>op10
|
||||
lda #>op8
|
||||
sta printu.op+1
|
||||
jsr printu
|
||||
lda a
|
||||
@ -218,9 +218,9 @@ main: {
|
||||
b13:
|
||||
lda a
|
||||
sta printu.b
|
||||
lda #<op11
|
||||
lda #<op8
|
||||
sta printu.op
|
||||
lda #>op11
|
||||
lda #>op8
|
||||
sta printu.op+1
|
||||
jsr printu
|
||||
jsr print_ln
|
||||
@ -253,9 +253,9 @@ main: {
|
||||
b15:
|
||||
lda #$37
|
||||
sta printu.b
|
||||
lda #<op13
|
||||
lda #<op12
|
||||
sta printu.op
|
||||
lda #>op13
|
||||
lda #>op12
|
||||
sta printu.op+1
|
||||
jsr printu
|
||||
lda a
|
||||
@ -270,9 +270,9 @@ main: {
|
||||
ldy i
|
||||
lda cs,y
|
||||
sta printu.b
|
||||
lda #<op14
|
||||
lda #<op12
|
||||
sta printu.op
|
||||
lda #>op14
|
||||
lda #>op12
|
||||
sta printu.op+1
|
||||
jsr printu
|
||||
lda a
|
||||
@ -285,9 +285,9 @@ main: {
|
||||
b17:
|
||||
lda a
|
||||
sta printu.b
|
||||
lda #<op15
|
||||
lda #<op12
|
||||
sta printu.op
|
||||
lda #>op15
|
||||
lda #>op12
|
||||
sta printu.op+1
|
||||
jsr printu
|
||||
jsr print_ln
|
||||
@ -320,9 +320,9 @@ main: {
|
||||
b19:
|
||||
lda #$37
|
||||
sta printu.b
|
||||
lda #<op17
|
||||
lda #<op16
|
||||
sta printu.op
|
||||
lda #>op17
|
||||
lda #>op16
|
||||
sta printu.op+1
|
||||
jsr printu
|
||||
lda a
|
||||
@ -337,9 +337,9 @@ main: {
|
||||
ldy i
|
||||
lda cs,y
|
||||
sta printu.b
|
||||
lda #<op18
|
||||
lda #<op16
|
||||
sta printu.op
|
||||
lda #>op18
|
||||
lda #>op16
|
||||
sta printu.op+1
|
||||
jsr printu
|
||||
lda a
|
||||
@ -352,9 +352,9 @@ main: {
|
||||
b21:
|
||||
lda a
|
||||
sta printu.b
|
||||
lda #<op19
|
||||
lda #<op16
|
||||
sta printu.op
|
||||
lda #>op19
|
||||
lda #>op16
|
||||
sta printu.op+1
|
||||
jsr printu
|
||||
jsr print_ln
|
||||
@ -375,25 +375,10 @@ main: {
|
||||
sta print_char_cursor+1
|
||||
jmp b1
|
||||
op: .text "< @"
|
||||
op1: .text "< @"
|
||||
op2: .text "< @"
|
||||
op3: .text "< @"
|
||||
op4: .text "> @"
|
||||
op5: .text "> @"
|
||||
op6: .text "> @"
|
||||
op7: .text "> @"
|
||||
op8: .text "<=@"
|
||||
op9: .text "<=@"
|
||||
op10: .text "<=@"
|
||||
op11: .text "<=@"
|
||||
op12: .text ">=@"
|
||||
op13: .text ">=@"
|
||||
op14: .text ">=@"
|
||||
op15: .text ">=@"
|
||||
op16: .text "==@"
|
||||
op17: .text "==@"
|
||||
op18: .text "==@"
|
||||
op19: .text "==@"
|
||||
cs: .byte 7, $c7, $37, $97, $67
|
||||
}
|
||||
// Print a newline
|
||||
|
@ -320,7 +320,7 @@ print_ln::@return: scope:[print_ln] from print_ln::@1
|
||||
printu: scope:[printu] from main::@10 main::@11 main::@12 main::@13 main::@14 main::@15 main::@16 main::@17 main::@18 main::@19 main::@2 main::@20 main::@21 main::@3 main::@4 main::@5 main::@6 main::@7 main::@8 main::@9
|
||||
[167] (byte) printu::res#20 ← phi( main::@10/(byte) printu::res#8 main::@11/(byte) printu::res#9 main::@12/(byte) printu::res#10 main::@13/(byte) printu::res#11 main::@14/(byte) printu::res#12 main::@15/(byte) printu::res#13 main::@16/(byte) printu::res#14 main::@17/(byte) printu::res#15 main::@18/(byte) printu::res#16 main::@19/(byte) printu::res#17 main::@2/(byte) printu::res#0 main::@20/(byte) printu::res#18 main::@21/(byte) printu::res#19 main::@3/(byte) printu::res#1 main::@4/(byte) printu::res#2 main::@5/(byte) printu::res#3 main::@6/(byte) printu::res#4 main::@7/(byte) printu::res#5 main::@8/(byte) printu::res#6 main::@9/(byte) printu::res#7 )
|
||||
[167] (byte) printu::b#20 ← phi( main::@10/(byte) printu::b#8 main::@11/(byte/signed byte/word/signed word/dword/signed dword) 55 main::@12/(byte) printu::b#10 main::@13/(byte) printu::b#11 main::@14/(byte) printu::b#12 main::@15/(byte/signed byte/word/signed word/dword/signed dword) 55 main::@16/(byte) printu::b#14 main::@17/(byte) printu::b#15 main::@18/(byte) printu::b#16 main::@19/(byte/signed byte/word/signed word/dword/signed dword) 55 main::@2/(byte) printu::b#0 main::@20/(byte) printu::b#18 main::@21/(byte) printu::b#19 main::@3/(byte/signed byte/word/signed word/dword/signed dword) 55 main::@4/(byte) printu::b#2 main::@5/(byte) printu::b#3 main::@6/(byte) printu::b#4 main::@7/(byte/signed byte/word/signed word/dword/signed dword) 55 main::@8/(byte) printu::b#6 main::@9/(byte) printu::b#7 )
|
||||
[167] (byte[]) printu::op#20 ← phi( main::@10/(const string) main::op8 main::@11/(const string) main::op9 main::@12/(const string) main::op10 main::@13/(const string) main::op11 main::@14/(const string) main::op12 main::@15/(const string) main::op13 main::@16/(const string) main::op14 main::@17/(const string) main::op15 main::@18/(const string) main::op16 main::@19/(const string) main::op17 main::@2/(const string) main::op main::@20/(const string) main::op18 main::@21/(const string) main::op19 main::@3/(const string) main::op1 main::@4/(const string) main::op2 main::@5/(const string) main::op3 main::@6/(const string) main::op4 main::@7/(const string) main::op5 main::@8/(const string) main::op6 main::@9/(const string) main::op7 )
|
||||
[167] (byte[]) printu::op#20 ← phi( main::@10/(const string) main::op8 main::@11/(const string) main::op8 main::@12/(const string) main::op8 main::@13/(const string) main::op8 main::@14/(const string) main::op12 main::@15/(const string) main::op12 main::@16/(const string) main::op12 main::@17/(const string) main::op12 main::@18/(const string) main::op16 main::@19/(const string) main::op16 main::@2/(const string) main::op main::@20/(const string) main::op16 main::@21/(const string) main::op16 main::@3/(const string) main::op main::@4/(const string) main::op main::@5/(const string) main::op main::@6/(const string) main::op4 main::@7/(const string) main::op4 main::@8/(const string) main::op4 main::@9/(const string) main::op4 )
|
||||
[167] (byte) printu::a#20 ← phi( main::@10/(byte) printu::a#8 main::@11/(byte) printu::a#9 main::@12/(byte) printu::a#10 main::@13/(byte) printu::a#11 main::@14/(byte) printu::a#12 main::@15/(byte) printu::a#13 main::@16/(byte) printu::a#14 main::@17/(byte) printu::a#15 main::@18/(byte) printu::a#16 main::@19/(byte) printu::a#17 main::@2/(byte) printu::a#0 main::@20/(byte) printu::a#18 main::@21/(byte) printu::a#19 main::@3/(byte) printu::a#1 main::@4/(byte) printu::a#2 main::@5/(byte) printu::a#3 main::@6/(byte) printu::a#4 main::@7/(byte) printu::a#5 main::@8/(byte) printu::a#6 main::@9/(byte) printu::a#7 )
|
||||
[167] (byte*) print_char_cursor#95 ← phi( main::@10/(byte*~) print_char_cursor#143 main::@11/(byte*) print_char_cursor#55 main::@12/(byte*) print_char_cursor#55 main::@13/(byte*) print_char_cursor#55 main::@14/(byte*~) print_char_cursor#147 main::@15/(byte*) print_char_cursor#55 main::@16/(byte*) print_char_cursor#55 main::@17/(byte*) print_char_cursor#55 main::@18/(byte*~) print_char_cursor#151 main::@19/(byte*) print_char_cursor#55 main::@2/(byte*) print_char_cursor#120 main::@20/(byte*) print_char_cursor#55 main::@21/(byte*) print_char_cursor#55 main::@3/(byte*) print_char_cursor#55 main::@4/(byte*) print_char_cursor#55 main::@5/(byte*) print_char_cursor#55 main::@6/(byte*~) print_char_cursor#159 main::@7/(byte*) print_char_cursor#55 main::@8/(byte*) print_char_cursor#55 main::@9/(byte*) print_char_cursor#55 )
|
||||
[168] call print_char
|
||||
|
@ -2076,6 +2076,7 @@ Constant (const byte*) print_cls::$0 = print_line_cursor#0+1000
|
||||
Successful SSA optimization Pass2ConstantIdentification
|
||||
if() condition always true - replacing block destination [154] if(true) goto main::@22
|
||||
Successful SSA optimization Pass2ConstantIfs
|
||||
Successful SSA optimization Pass2ConstantStringConsolidation
|
||||
Removing unused block main::@return
|
||||
Successful SSA optimization Pass2EliminateUnusedBlocks
|
||||
Resolved ranged next value main::i#1 ← ++ main::i#10 to ++
|
||||
@ -2160,17 +2161,17 @@ Inlining constant with var siblings (const byte[]) printu::op#18
|
||||
Inlining constant with var siblings (const byte[]) printu::op#19
|
||||
Inlining constant with var siblings (const byte*) print_line_cursor#0
|
||||
Constant inlined printu::op#0 = (const string) main::op
|
||||
Constant inlined printu::op#1 = (const string) main::op1
|
||||
Constant inlined printu::op#1 = (const string) main::op
|
||||
Constant inlined printu::op#8 = (const string) main::op8
|
||||
Constant inlined printu::op#9 = (const string) main::op9
|
||||
Constant inlined printu::op#6 = (const string) main::op6
|
||||
Constant inlined printu::op#9 = (const string) main::op8
|
||||
Constant inlined printu::op#6 = (const string) main::op4
|
||||
Constant inlined main::r#39 = (byte) '+'
|
||||
Constant inlined printu::op#7 = (const string) main::op7
|
||||
Constant inlined printu::op#7 = (const string) main::op4
|
||||
Constant inlined printu::op#4 = (const string) main::op4
|
||||
Constant inlined $0 = (const byte[]) print_hextab#0
|
||||
Constant inlined printu::op#5 = (const string) main::op5
|
||||
Constant inlined printu::op#2 = (const string) main::op2
|
||||
Constant inlined printu::op#3 = (const string) main::op3
|
||||
Constant inlined printu::op#5 = (const string) main::op4
|
||||
Constant inlined printu::op#2 = (const string) main::op
|
||||
Constant inlined printu::op#3 = (const string) main::op
|
||||
Constant inlined main::r#33 = (byte) '-'
|
||||
Constant inlined main::r#34 = (byte) '+'
|
||||
Constant inlined main::r#31 = (byte) '-'
|
||||
@ -2180,14 +2181,19 @@ Constant inlined main::r#38 = (byte) '+'
|
||||
Constant inlined main::r#35 = (byte) '-'
|
||||
Constant inlined main::r#36 = (byte) '+'
|
||||
Constant inlined main::r#30 = (byte) '+'
|
||||
Constant inlined main::op11 = (const string) main::op8
|
||||
Constant inlined printu::b#17 = (byte/signed byte/word/signed word/dword/signed dword) 55
|
||||
Constant inlined main::op10 = (const string) main::op8
|
||||
Constant inlined main::op15 = (const string) main::op12
|
||||
Constant inlined printu::b#13 = (byte/signed byte/word/signed word/dword/signed dword) 55
|
||||
Constant inlined main::op13 = (const string) main::op12
|
||||
Constant inlined print_line_cursor#0 = ((byte*))(word/signed word/dword/signed dword) 1024
|
||||
Constant inlined main::op14 = (const string) main::op12
|
||||
Constant inlined print_cls::$0 = ((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000
|
||||
Constant inlined printu::op#17 = (const string) main::op17
|
||||
Constant inlined printu::op#17 = (const string) main::op16
|
||||
Constant inlined main::r#19 = (byte) '-'
|
||||
Constant inlined printu::op#18 = (const string) main::op18
|
||||
Constant inlined printu::op#19 = (const string) main::op19
|
||||
Constant inlined printu::op#18 = (const string) main::op16
|
||||
Constant inlined printu::op#19 = (const string) main::op16
|
||||
Constant inlined main::r#17 = (byte) '-'
|
||||
Constant inlined main::r#18 = (byte) '+'
|
||||
Constant inlined main::a#0 = (byte/signed byte/word/signed word/dword/signed dword) 7
|
||||
@ -2198,7 +2204,10 @@ Constant inlined main::r#15 = (byte) '-'
|
||||
Constant inlined main::r#16 = (byte) '+'
|
||||
Constant inlined main::r#13 = (byte) '-'
|
||||
Constant inlined main::r#14 = (byte) '+'
|
||||
Constant inlined main::op19 = (const string) main::op16
|
||||
Constant inlined main::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
Constant inlined main::op17 = (const string) main::op16
|
||||
Constant inlined main::op18 = (const string) main::op16
|
||||
Constant inlined main::r#0 = (byte) '-'
|
||||
Constant inlined main::r#1 = (byte) '-'
|
||||
Constant inlined main::r#8 = (byte) '+'
|
||||
@ -2216,22 +2225,29 @@ Constant inlined main::r#3 = (byte) '-'
|
||||
Constant inlined print_char::ch#3 = (byte) ' '
|
||||
Constant inlined main::r#22 = (byte) '+'
|
||||
Constant inlined printu::b#5 = (byte/signed byte/word/signed word/dword/signed dword) 55
|
||||
Constant inlined printu::op#10 = (const string) main::op10
|
||||
Constant inlined main::op1 = (const string) main::op
|
||||
Constant inlined printu::op#10 = (const string) main::op8
|
||||
Constant inlined print_char::ch#2 = (byte) ' '
|
||||
Constant inlined main::r#23 = (byte) '-'
|
||||
Constant inlined printu::op#11 = (const string) main::op11
|
||||
Constant inlined printu::op#11 = (const string) main::op8
|
||||
Constant inlined main::r#20 = (byte) '+'
|
||||
Constant inlined printu::op#12 = (const string) main::op12
|
||||
Constant inlined main::r#21 = (byte) '-'
|
||||
Constant inlined printu::op#13 = (const string) main::op13
|
||||
Constant inlined printu::op#13 = (const string) main::op12
|
||||
Constant inlined main::r#26 = (byte) '+'
|
||||
Constant inlined printu::b#1 = (byte/signed byte/word/signed word/dword/signed dword) 55
|
||||
Constant inlined printu::op#14 = (const string) main::op14
|
||||
Constant inlined printu::op#14 = (const string) main::op12
|
||||
Constant inlined main::r#27 = (byte) '-'
|
||||
Constant inlined printu::op#15 = (const string) main::op15
|
||||
Constant inlined printu::op#15 = (const string) main::op12
|
||||
Constant inlined main::r#24 = (byte) '+'
|
||||
Constant inlined printu::op#16 = (const string) main::op16
|
||||
Constant inlined main::r#25 = (byte) '-'
|
||||
Constant inlined main::op9 = (const string) main::op8
|
||||
Constant inlined main::op6 = (const string) main::op4
|
||||
Constant inlined main::op7 = (const string) main::op4
|
||||
Constant inlined main::op5 = (const string) main::op4
|
||||
Constant inlined main::op2 = (const string) main::op
|
||||
Constant inlined main::op3 = (const string) main::op
|
||||
Successful SSA optimization Pass2ConstantInlining
|
||||
Added new block during phi lifting main::@71(between main::@70 and main::@1)
|
||||
Added new block during phi lifting print_ln::@3(between print_ln::@1 and print_ln::@1)
|
||||
@ -2732,7 +2748,7 @@ print_ln::@return: scope:[print_ln] from print_ln::@1
|
||||
printu: scope:[printu] from main::@10 main::@11 main::@12 main::@13 main::@14 main::@15 main::@16 main::@17 main::@18 main::@19 main::@2 main::@20 main::@21 main::@3 main::@4 main::@5 main::@6 main::@7 main::@8 main::@9
|
||||
[167] (byte) printu::res#20 ← phi( main::@10/(byte) printu::res#8 main::@11/(byte) printu::res#9 main::@12/(byte) printu::res#10 main::@13/(byte) printu::res#11 main::@14/(byte) printu::res#12 main::@15/(byte) printu::res#13 main::@16/(byte) printu::res#14 main::@17/(byte) printu::res#15 main::@18/(byte) printu::res#16 main::@19/(byte) printu::res#17 main::@2/(byte) printu::res#0 main::@20/(byte) printu::res#18 main::@21/(byte) printu::res#19 main::@3/(byte) printu::res#1 main::@4/(byte) printu::res#2 main::@5/(byte) printu::res#3 main::@6/(byte) printu::res#4 main::@7/(byte) printu::res#5 main::@8/(byte) printu::res#6 main::@9/(byte) printu::res#7 )
|
||||
[167] (byte) printu::b#20 ← phi( main::@10/(byte) printu::b#8 main::@11/(byte/signed byte/word/signed word/dword/signed dword) 55 main::@12/(byte) printu::b#10 main::@13/(byte) printu::b#11 main::@14/(byte) printu::b#12 main::@15/(byte/signed byte/word/signed word/dword/signed dword) 55 main::@16/(byte) printu::b#14 main::@17/(byte) printu::b#15 main::@18/(byte) printu::b#16 main::@19/(byte/signed byte/word/signed word/dword/signed dword) 55 main::@2/(byte) printu::b#0 main::@20/(byte) printu::b#18 main::@21/(byte) printu::b#19 main::@3/(byte/signed byte/word/signed word/dword/signed dword) 55 main::@4/(byte) printu::b#2 main::@5/(byte) printu::b#3 main::@6/(byte) printu::b#4 main::@7/(byte/signed byte/word/signed word/dword/signed dword) 55 main::@8/(byte) printu::b#6 main::@9/(byte) printu::b#7 )
|
||||
[167] (byte[]) printu::op#20 ← phi( main::@10/(const string) main::op8 main::@11/(const string) main::op9 main::@12/(const string) main::op10 main::@13/(const string) main::op11 main::@14/(const string) main::op12 main::@15/(const string) main::op13 main::@16/(const string) main::op14 main::@17/(const string) main::op15 main::@18/(const string) main::op16 main::@19/(const string) main::op17 main::@2/(const string) main::op main::@20/(const string) main::op18 main::@21/(const string) main::op19 main::@3/(const string) main::op1 main::@4/(const string) main::op2 main::@5/(const string) main::op3 main::@6/(const string) main::op4 main::@7/(const string) main::op5 main::@8/(const string) main::op6 main::@9/(const string) main::op7 )
|
||||
[167] (byte[]) printu::op#20 ← phi( main::@10/(const string) main::op8 main::@11/(const string) main::op8 main::@12/(const string) main::op8 main::@13/(const string) main::op8 main::@14/(const string) main::op12 main::@15/(const string) main::op12 main::@16/(const string) main::op12 main::@17/(const string) main::op12 main::@18/(const string) main::op16 main::@19/(const string) main::op16 main::@2/(const string) main::op main::@20/(const string) main::op16 main::@21/(const string) main::op16 main::@3/(const string) main::op main::@4/(const string) main::op main::@5/(const string) main::op main::@6/(const string) main::op4 main::@7/(const string) main::op4 main::@8/(const string) main::op4 main::@9/(const string) main::op4 )
|
||||
[167] (byte) printu::a#20 ← phi( main::@10/(byte) printu::a#8 main::@11/(byte) printu::a#9 main::@12/(byte) printu::a#10 main::@13/(byte) printu::a#11 main::@14/(byte) printu::a#12 main::@15/(byte) printu::a#13 main::@16/(byte) printu::a#14 main::@17/(byte) printu::a#15 main::@18/(byte) printu::a#16 main::@19/(byte) printu::a#17 main::@2/(byte) printu::a#0 main::@20/(byte) printu::a#18 main::@21/(byte) printu::a#19 main::@3/(byte) printu::a#1 main::@4/(byte) printu::a#2 main::@5/(byte) printu::a#3 main::@6/(byte) printu::a#4 main::@7/(byte) printu::a#5 main::@8/(byte) printu::a#6 main::@9/(byte) printu::a#7 )
|
||||
[167] (byte*) print_char_cursor#95 ← phi( main::@10/(byte*~) print_char_cursor#143 main::@11/(byte*) print_char_cursor#55 main::@12/(byte*) print_char_cursor#55 main::@13/(byte*) print_char_cursor#55 main::@14/(byte*~) print_char_cursor#147 main::@15/(byte*) print_char_cursor#55 main::@16/(byte*) print_char_cursor#55 main::@17/(byte*) print_char_cursor#55 main::@18/(byte*~) print_char_cursor#151 main::@19/(byte*) print_char_cursor#55 main::@2/(byte*) print_char_cursor#120 main::@20/(byte*) print_char_cursor#55 main::@21/(byte*) print_char_cursor#55 main::@3/(byte*) print_char_cursor#55 main::@4/(byte*) print_char_cursor#55 main::@5/(byte*) print_char_cursor#55 main::@6/(byte*~) print_char_cursor#159 main::@7/(byte*) print_char_cursor#55 main::@8/(byte*) print_char_cursor#55 main::@9/(byte*) print_char_cursor#55 )
|
||||
[168] call print_char
|
||||
@ -3226,10 +3242,10 @@ main: {
|
||||
//SEG52 [167] phi (byte) printu::b#20 = (byte/signed byte/word/signed word/dword/signed dword) 55 [phi:main::@3->printu#1] -- vbuz1=vbuc1
|
||||
lda #$37
|
||||
sta printu.b
|
||||
//SEG53 [167] phi (byte[]) printu::op#20 = (const string) main::op1 [phi:main::@3->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op1
|
||||
//SEG53 [167] phi (byte[]) printu::op#20 = (const string) main::op [phi:main::@3->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op
|
||||
sta printu.op
|
||||
lda #>op1
|
||||
lda #>op
|
||||
sta printu.op+1
|
||||
//SEG54 [167] phi (byte) printu::a#20 = (byte) printu::a#1 [phi:main::@3->printu#3] -- register_copy
|
||||
//SEG55 [167] phi (byte*) print_char_cursor#95 = (byte*) print_char_cursor#55 [phi:main::@3->printu#4] -- register_copy
|
||||
@ -3276,10 +3292,10 @@ main: {
|
||||
printu_from_b4:
|
||||
//SEG70 [167] phi (byte) printu::res#20 = (byte) printu::res#2 [phi:main::@4->printu#0] -- register_copy
|
||||
//SEG71 [167] phi (byte) printu::b#20 = (byte) printu::b#2 [phi:main::@4->printu#1] -- register_copy
|
||||
//SEG72 [167] phi (byte[]) printu::op#20 = (const string) main::op2 [phi:main::@4->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op2
|
||||
//SEG72 [167] phi (byte[]) printu::op#20 = (const string) main::op [phi:main::@4->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op
|
||||
sta printu.op
|
||||
lda #>op2
|
||||
lda #>op
|
||||
sta printu.op+1
|
||||
//SEG73 [167] phi (byte) printu::a#20 = (byte) printu::a#2 [phi:main::@4->printu#3] -- register_copy
|
||||
//SEG74 [167] phi (byte*) print_char_cursor#95 = (byte*) print_char_cursor#55 [phi:main::@4->printu#4] -- register_copy
|
||||
@ -3324,10 +3340,10 @@ main: {
|
||||
printu_from_b5:
|
||||
//SEG89 [167] phi (byte) printu::res#20 = (byte) printu::res#3 [phi:main::@5->printu#0] -- register_copy
|
||||
//SEG90 [167] phi (byte) printu::b#20 = (byte) printu::b#3 [phi:main::@5->printu#1] -- register_copy
|
||||
//SEG91 [167] phi (byte[]) printu::op#20 = (const string) main::op3 [phi:main::@5->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op3
|
||||
//SEG91 [167] phi (byte[]) printu::op#20 = (const string) main::op [phi:main::@5->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op
|
||||
sta printu.op
|
||||
lda #>op3
|
||||
lda #>op
|
||||
sta printu.op+1
|
||||
//SEG92 [167] phi (byte) printu::a#20 = (byte) printu::a#3 [phi:main::@5->printu#3] -- register_copy
|
||||
//SEG93 [167] phi (byte*) print_char_cursor#95 = (byte*) print_char_cursor#55 [phi:main::@5->printu#4] -- register_copy
|
||||
@ -3434,10 +3450,10 @@ main: {
|
||||
//SEG133 [167] phi (byte) printu::b#20 = (byte/signed byte/word/signed word/dword/signed dword) 55 [phi:main::@7->printu#1] -- vbuz1=vbuc1
|
||||
lda #$37
|
||||
sta printu.b
|
||||
//SEG134 [167] phi (byte[]) printu::op#20 = (const string) main::op5 [phi:main::@7->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op5
|
||||
//SEG134 [167] phi (byte[]) printu::op#20 = (const string) main::op4 [phi:main::@7->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op4
|
||||
sta printu.op
|
||||
lda #>op5
|
||||
lda #>op4
|
||||
sta printu.op+1
|
||||
//SEG135 [167] phi (byte) printu::a#20 = (byte) printu::a#5 [phi:main::@7->printu#3] -- register_copy
|
||||
//SEG136 [167] phi (byte*) print_char_cursor#95 = (byte*) print_char_cursor#55 [phi:main::@7->printu#4] -- register_copy
|
||||
@ -3484,10 +3500,10 @@ main: {
|
||||
printu_from_b8:
|
||||
//SEG151 [167] phi (byte) printu::res#20 = (byte) printu::res#6 [phi:main::@8->printu#0] -- register_copy
|
||||
//SEG152 [167] phi (byte) printu::b#20 = (byte) printu::b#6 [phi:main::@8->printu#1] -- register_copy
|
||||
//SEG153 [167] phi (byte[]) printu::op#20 = (const string) main::op6 [phi:main::@8->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op6
|
||||
//SEG153 [167] phi (byte[]) printu::op#20 = (const string) main::op4 [phi:main::@8->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op4
|
||||
sta printu.op
|
||||
lda #>op6
|
||||
lda #>op4
|
||||
sta printu.op+1
|
||||
//SEG154 [167] phi (byte) printu::a#20 = (byte) printu::a#6 [phi:main::@8->printu#3] -- register_copy
|
||||
//SEG155 [167] phi (byte*) print_char_cursor#95 = (byte*) print_char_cursor#55 [phi:main::@8->printu#4] -- register_copy
|
||||
@ -3532,10 +3548,10 @@ main: {
|
||||
printu_from_b9:
|
||||
//SEG170 [167] phi (byte) printu::res#20 = (byte) printu::res#7 [phi:main::@9->printu#0] -- register_copy
|
||||
//SEG171 [167] phi (byte) printu::b#20 = (byte) printu::b#7 [phi:main::@9->printu#1] -- register_copy
|
||||
//SEG172 [167] phi (byte[]) printu::op#20 = (const string) main::op7 [phi:main::@9->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op7
|
||||
//SEG172 [167] phi (byte[]) printu::op#20 = (const string) main::op4 [phi:main::@9->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op4
|
||||
sta printu.op
|
||||
lda #>op7
|
||||
lda #>op4
|
||||
sta printu.op+1
|
||||
//SEG173 [167] phi (byte) printu::a#20 = (byte) printu::a#7 [phi:main::@9->printu#3] -- register_copy
|
||||
//SEG174 [167] phi (byte*) print_char_cursor#95 = (byte*) print_char_cursor#55 [phi:main::@9->printu#4] -- register_copy
|
||||
@ -3644,10 +3660,10 @@ main: {
|
||||
//SEG214 [167] phi (byte) printu::b#20 = (byte/signed byte/word/signed word/dword/signed dword) 55 [phi:main::@11->printu#1] -- vbuz1=vbuc1
|
||||
lda #$37
|
||||
sta printu.b
|
||||
//SEG215 [167] phi (byte[]) printu::op#20 = (const string) main::op9 [phi:main::@11->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op9
|
||||
//SEG215 [167] phi (byte[]) printu::op#20 = (const string) main::op8 [phi:main::@11->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op8
|
||||
sta printu.op
|
||||
lda #>op9
|
||||
lda #>op8
|
||||
sta printu.op+1
|
||||
//SEG216 [167] phi (byte) printu::a#20 = (byte) printu::a#9 [phi:main::@11->printu#3] -- register_copy
|
||||
//SEG217 [167] phi (byte*) print_char_cursor#95 = (byte*) print_char_cursor#55 [phi:main::@11->printu#4] -- register_copy
|
||||
@ -3694,10 +3710,10 @@ main: {
|
||||
printu_from_b12:
|
||||
//SEG232 [167] phi (byte) printu::res#20 = (byte) printu::res#10 [phi:main::@12->printu#0] -- register_copy
|
||||
//SEG233 [167] phi (byte) printu::b#20 = (byte) printu::b#10 [phi:main::@12->printu#1] -- register_copy
|
||||
//SEG234 [167] phi (byte[]) printu::op#20 = (const string) main::op10 [phi:main::@12->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op10
|
||||
//SEG234 [167] phi (byte[]) printu::op#20 = (const string) main::op8 [phi:main::@12->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op8
|
||||
sta printu.op
|
||||
lda #>op10
|
||||
lda #>op8
|
||||
sta printu.op+1
|
||||
//SEG235 [167] phi (byte) printu::a#20 = (byte) printu::a#10 [phi:main::@12->printu#3] -- register_copy
|
||||
//SEG236 [167] phi (byte*) print_char_cursor#95 = (byte*) print_char_cursor#55 [phi:main::@12->printu#4] -- register_copy
|
||||
@ -3742,10 +3758,10 @@ main: {
|
||||
printu_from_b13:
|
||||
//SEG251 [167] phi (byte) printu::res#20 = (byte) printu::res#11 [phi:main::@13->printu#0] -- register_copy
|
||||
//SEG252 [167] phi (byte) printu::b#20 = (byte) printu::b#11 [phi:main::@13->printu#1] -- register_copy
|
||||
//SEG253 [167] phi (byte[]) printu::op#20 = (const string) main::op11 [phi:main::@13->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op11
|
||||
//SEG253 [167] phi (byte[]) printu::op#20 = (const string) main::op8 [phi:main::@13->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op8
|
||||
sta printu.op
|
||||
lda #>op11
|
||||
lda #>op8
|
||||
sta printu.op+1
|
||||
//SEG254 [167] phi (byte) printu::a#20 = (byte) printu::a#11 [phi:main::@13->printu#3] -- register_copy
|
||||
//SEG255 [167] phi (byte*) print_char_cursor#95 = (byte*) print_char_cursor#55 [phi:main::@13->printu#4] -- register_copy
|
||||
@ -3852,10 +3868,10 @@ main: {
|
||||
//SEG295 [167] phi (byte) printu::b#20 = (byte/signed byte/word/signed word/dword/signed dword) 55 [phi:main::@15->printu#1] -- vbuz1=vbuc1
|
||||
lda #$37
|
||||
sta printu.b
|
||||
//SEG296 [167] phi (byte[]) printu::op#20 = (const string) main::op13 [phi:main::@15->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op13
|
||||
//SEG296 [167] phi (byte[]) printu::op#20 = (const string) main::op12 [phi:main::@15->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op12
|
||||
sta printu.op
|
||||
lda #>op13
|
||||
lda #>op12
|
||||
sta printu.op+1
|
||||
//SEG297 [167] phi (byte) printu::a#20 = (byte) printu::a#13 [phi:main::@15->printu#3] -- register_copy
|
||||
//SEG298 [167] phi (byte*) print_char_cursor#95 = (byte*) print_char_cursor#55 [phi:main::@15->printu#4] -- register_copy
|
||||
@ -3902,10 +3918,10 @@ main: {
|
||||
printu_from_b16:
|
||||
//SEG313 [167] phi (byte) printu::res#20 = (byte) printu::res#14 [phi:main::@16->printu#0] -- register_copy
|
||||
//SEG314 [167] phi (byte) printu::b#20 = (byte) printu::b#14 [phi:main::@16->printu#1] -- register_copy
|
||||
//SEG315 [167] phi (byte[]) printu::op#20 = (const string) main::op14 [phi:main::@16->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op14
|
||||
//SEG315 [167] phi (byte[]) printu::op#20 = (const string) main::op12 [phi:main::@16->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op12
|
||||
sta printu.op
|
||||
lda #>op14
|
||||
lda #>op12
|
||||
sta printu.op+1
|
||||
//SEG316 [167] phi (byte) printu::a#20 = (byte) printu::a#14 [phi:main::@16->printu#3] -- register_copy
|
||||
//SEG317 [167] phi (byte*) print_char_cursor#95 = (byte*) print_char_cursor#55 [phi:main::@16->printu#4] -- register_copy
|
||||
@ -3950,10 +3966,10 @@ main: {
|
||||
printu_from_b17:
|
||||
//SEG332 [167] phi (byte) printu::res#20 = (byte) printu::res#15 [phi:main::@17->printu#0] -- register_copy
|
||||
//SEG333 [167] phi (byte) printu::b#20 = (byte) printu::b#15 [phi:main::@17->printu#1] -- register_copy
|
||||
//SEG334 [167] phi (byte[]) printu::op#20 = (const string) main::op15 [phi:main::@17->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op15
|
||||
//SEG334 [167] phi (byte[]) printu::op#20 = (const string) main::op12 [phi:main::@17->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op12
|
||||
sta printu.op
|
||||
lda #>op15
|
||||
lda #>op12
|
||||
sta printu.op+1
|
||||
//SEG335 [167] phi (byte) printu::a#20 = (byte) printu::a#15 [phi:main::@17->printu#3] -- register_copy
|
||||
//SEG336 [167] phi (byte*) print_char_cursor#95 = (byte*) print_char_cursor#55 [phi:main::@17->printu#4] -- register_copy
|
||||
@ -4060,10 +4076,10 @@ main: {
|
||||
//SEG376 [167] phi (byte) printu::b#20 = (byte/signed byte/word/signed word/dword/signed dword) 55 [phi:main::@19->printu#1] -- vbuz1=vbuc1
|
||||
lda #$37
|
||||
sta printu.b
|
||||
//SEG377 [167] phi (byte[]) printu::op#20 = (const string) main::op17 [phi:main::@19->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op17
|
||||
//SEG377 [167] phi (byte[]) printu::op#20 = (const string) main::op16 [phi:main::@19->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op16
|
||||
sta printu.op
|
||||
lda #>op17
|
||||
lda #>op16
|
||||
sta printu.op+1
|
||||
//SEG378 [167] phi (byte) printu::a#20 = (byte) printu::a#17 [phi:main::@19->printu#3] -- register_copy
|
||||
//SEG379 [167] phi (byte*) print_char_cursor#95 = (byte*) print_char_cursor#55 [phi:main::@19->printu#4] -- register_copy
|
||||
@ -4110,10 +4126,10 @@ main: {
|
||||
printu_from_b20:
|
||||
//SEG394 [167] phi (byte) printu::res#20 = (byte) printu::res#18 [phi:main::@20->printu#0] -- register_copy
|
||||
//SEG395 [167] phi (byte) printu::b#20 = (byte) printu::b#18 [phi:main::@20->printu#1] -- register_copy
|
||||
//SEG396 [167] phi (byte[]) printu::op#20 = (const string) main::op18 [phi:main::@20->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op18
|
||||
//SEG396 [167] phi (byte[]) printu::op#20 = (const string) main::op16 [phi:main::@20->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op16
|
||||
sta printu.op
|
||||
lda #>op18
|
||||
lda #>op16
|
||||
sta printu.op+1
|
||||
//SEG397 [167] phi (byte) printu::a#20 = (byte) printu::a#18 [phi:main::@20->printu#3] -- register_copy
|
||||
//SEG398 [167] phi (byte*) print_char_cursor#95 = (byte*) print_char_cursor#55 [phi:main::@20->printu#4] -- register_copy
|
||||
@ -4158,10 +4174,10 @@ main: {
|
||||
printu_from_b21:
|
||||
//SEG413 [167] phi (byte) printu::res#20 = (byte) printu::res#19 [phi:main::@21->printu#0] -- register_copy
|
||||
//SEG414 [167] phi (byte) printu::b#20 = (byte) printu::b#19 [phi:main::@21->printu#1] -- register_copy
|
||||
//SEG415 [167] phi (byte[]) printu::op#20 = (const string) main::op19 [phi:main::@21->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op19
|
||||
//SEG415 [167] phi (byte[]) printu::op#20 = (const string) main::op16 [phi:main::@21->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op16
|
||||
sta printu.op
|
||||
lda #>op19
|
||||
lda #>op16
|
||||
sta printu.op+1
|
||||
//SEG416 [167] phi (byte) printu::a#20 = (byte) printu::a#19 [phi:main::@21->printu#3] -- register_copy
|
||||
//SEG417 [167] phi (byte*) print_char_cursor#95 = (byte*) print_char_cursor#55 [phi:main::@21->printu#4] -- register_copy
|
||||
@ -4212,25 +4228,10 @@ main: {
|
||||
//SEG435 [6] phi (byte) main::a#10 = (byte) main::a#1 [phi:main::@71->main::@1#3] -- register_copy
|
||||
jmp b1
|
||||
op: .text "< @"
|
||||
op1: .text "< @"
|
||||
op2: .text "< @"
|
||||
op3: .text "< @"
|
||||
op4: .text "> @"
|
||||
op5: .text "> @"
|
||||
op6: .text "> @"
|
||||
op7: .text "> @"
|
||||
op8: .text "<=@"
|
||||
op9: .text "<=@"
|
||||
op10: .text "<=@"
|
||||
op11: .text "<=@"
|
||||
op12: .text ">=@"
|
||||
op13: .text ">=@"
|
||||
op14: .text ">=@"
|
||||
op15: .text ">=@"
|
||||
op16: .text "==@"
|
||||
op17: .text "==@"
|
||||
op18: .text "==@"
|
||||
op19: .text "==@"
|
||||
cs: .byte 7, $c7, $37, $97, $67
|
||||
}
|
||||
//SEG436 print_ln
|
||||
@ -4863,10 +4864,10 @@ main: {
|
||||
//SEG52 [167] phi (byte) printu::b#20 = (byte/signed byte/word/signed word/dword/signed dword) 55 [phi:main::@3->printu#1] -- vbuz1=vbuc1
|
||||
lda #$37
|
||||
sta printu.b
|
||||
//SEG53 [167] phi (byte[]) printu::op#20 = (const string) main::op1 [phi:main::@3->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op1
|
||||
//SEG53 [167] phi (byte[]) printu::op#20 = (const string) main::op [phi:main::@3->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op
|
||||
sta printu.op
|
||||
lda #>op1
|
||||
lda #>op
|
||||
sta printu.op+1
|
||||
//SEG54 [167] phi (byte) printu::a#20 = (byte) printu::a#1 [phi:main::@3->printu#3] -- register_copy
|
||||
//SEG55 [167] phi (byte*) print_char_cursor#95 = (byte*) print_char_cursor#55 [phi:main::@3->printu#4] -- register_copy
|
||||
@ -4907,10 +4908,10 @@ main: {
|
||||
printu_from_b4:
|
||||
//SEG70 [167] phi (byte) printu::res#20 = (byte) printu::res#2 [phi:main::@4->printu#0] -- register_copy
|
||||
//SEG71 [167] phi (byte) printu::b#20 = (byte) printu::b#2 [phi:main::@4->printu#1] -- register_copy
|
||||
//SEG72 [167] phi (byte[]) printu::op#20 = (const string) main::op2 [phi:main::@4->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op2
|
||||
//SEG72 [167] phi (byte[]) printu::op#20 = (const string) main::op [phi:main::@4->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op
|
||||
sta printu.op
|
||||
lda #>op2
|
||||
lda #>op
|
||||
sta printu.op+1
|
||||
//SEG73 [167] phi (byte) printu::a#20 = (byte) printu::a#2 [phi:main::@4->printu#3] -- register_copy
|
||||
//SEG74 [167] phi (byte*) print_char_cursor#95 = (byte*) print_char_cursor#55 [phi:main::@4->printu#4] -- register_copy
|
||||
@ -4949,10 +4950,10 @@ main: {
|
||||
printu_from_b5:
|
||||
//SEG89 [167] phi (byte) printu::res#20 = (byte) printu::res#3 [phi:main::@5->printu#0] -- register_copy
|
||||
//SEG90 [167] phi (byte) printu::b#20 = (byte) printu::b#3 [phi:main::@5->printu#1] -- register_copy
|
||||
//SEG91 [167] phi (byte[]) printu::op#20 = (const string) main::op3 [phi:main::@5->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op3
|
||||
//SEG91 [167] phi (byte[]) printu::op#20 = (const string) main::op [phi:main::@5->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op
|
||||
sta printu.op
|
||||
lda #>op3
|
||||
lda #>op
|
||||
sta printu.op+1
|
||||
//SEG92 [167] phi (byte) printu::a#20 = (byte) printu::a#3 [phi:main::@5->printu#3] -- register_copy
|
||||
//SEG93 [167] phi (byte*) print_char_cursor#95 = (byte*) print_char_cursor#55 [phi:main::@5->printu#4] -- register_copy
|
||||
@ -5047,10 +5048,10 @@ main: {
|
||||
//SEG133 [167] phi (byte) printu::b#20 = (byte/signed byte/word/signed word/dword/signed dword) 55 [phi:main::@7->printu#1] -- vbuz1=vbuc1
|
||||
lda #$37
|
||||
sta printu.b
|
||||
//SEG134 [167] phi (byte[]) printu::op#20 = (const string) main::op5 [phi:main::@7->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op5
|
||||
//SEG134 [167] phi (byte[]) printu::op#20 = (const string) main::op4 [phi:main::@7->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op4
|
||||
sta printu.op
|
||||
lda #>op5
|
||||
lda #>op4
|
||||
sta printu.op+1
|
||||
//SEG135 [167] phi (byte) printu::a#20 = (byte) printu::a#5 [phi:main::@7->printu#3] -- register_copy
|
||||
//SEG136 [167] phi (byte*) print_char_cursor#95 = (byte*) print_char_cursor#55 [phi:main::@7->printu#4] -- register_copy
|
||||
@ -5091,10 +5092,10 @@ main: {
|
||||
printu_from_b8:
|
||||
//SEG151 [167] phi (byte) printu::res#20 = (byte) printu::res#6 [phi:main::@8->printu#0] -- register_copy
|
||||
//SEG152 [167] phi (byte) printu::b#20 = (byte) printu::b#6 [phi:main::@8->printu#1] -- register_copy
|
||||
//SEG153 [167] phi (byte[]) printu::op#20 = (const string) main::op6 [phi:main::@8->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op6
|
||||
//SEG153 [167] phi (byte[]) printu::op#20 = (const string) main::op4 [phi:main::@8->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op4
|
||||
sta printu.op
|
||||
lda #>op6
|
||||
lda #>op4
|
||||
sta printu.op+1
|
||||
//SEG154 [167] phi (byte) printu::a#20 = (byte) printu::a#6 [phi:main::@8->printu#3] -- register_copy
|
||||
//SEG155 [167] phi (byte*) print_char_cursor#95 = (byte*) print_char_cursor#55 [phi:main::@8->printu#4] -- register_copy
|
||||
@ -5133,10 +5134,10 @@ main: {
|
||||
printu_from_b9:
|
||||
//SEG170 [167] phi (byte) printu::res#20 = (byte) printu::res#7 [phi:main::@9->printu#0] -- register_copy
|
||||
//SEG171 [167] phi (byte) printu::b#20 = (byte) printu::b#7 [phi:main::@9->printu#1] -- register_copy
|
||||
//SEG172 [167] phi (byte[]) printu::op#20 = (const string) main::op7 [phi:main::@9->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op7
|
||||
//SEG172 [167] phi (byte[]) printu::op#20 = (const string) main::op4 [phi:main::@9->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op4
|
||||
sta printu.op
|
||||
lda #>op7
|
||||
lda #>op4
|
||||
sta printu.op+1
|
||||
//SEG173 [167] phi (byte) printu::a#20 = (byte) printu::a#7 [phi:main::@9->printu#3] -- register_copy
|
||||
//SEG174 [167] phi (byte*) print_char_cursor#95 = (byte*) print_char_cursor#55 [phi:main::@9->printu#4] -- register_copy
|
||||
@ -5233,10 +5234,10 @@ main: {
|
||||
//SEG214 [167] phi (byte) printu::b#20 = (byte/signed byte/word/signed word/dword/signed dword) 55 [phi:main::@11->printu#1] -- vbuz1=vbuc1
|
||||
lda #$37
|
||||
sta printu.b
|
||||
//SEG215 [167] phi (byte[]) printu::op#20 = (const string) main::op9 [phi:main::@11->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op9
|
||||
//SEG215 [167] phi (byte[]) printu::op#20 = (const string) main::op8 [phi:main::@11->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op8
|
||||
sta printu.op
|
||||
lda #>op9
|
||||
lda #>op8
|
||||
sta printu.op+1
|
||||
//SEG216 [167] phi (byte) printu::a#20 = (byte) printu::a#9 [phi:main::@11->printu#3] -- register_copy
|
||||
//SEG217 [167] phi (byte*) print_char_cursor#95 = (byte*) print_char_cursor#55 [phi:main::@11->printu#4] -- register_copy
|
||||
@ -5277,10 +5278,10 @@ main: {
|
||||
printu_from_b12:
|
||||
//SEG232 [167] phi (byte) printu::res#20 = (byte) printu::res#10 [phi:main::@12->printu#0] -- register_copy
|
||||
//SEG233 [167] phi (byte) printu::b#20 = (byte) printu::b#10 [phi:main::@12->printu#1] -- register_copy
|
||||
//SEG234 [167] phi (byte[]) printu::op#20 = (const string) main::op10 [phi:main::@12->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op10
|
||||
//SEG234 [167] phi (byte[]) printu::op#20 = (const string) main::op8 [phi:main::@12->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op8
|
||||
sta printu.op
|
||||
lda #>op10
|
||||
lda #>op8
|
||||
sta printu.op+1
|
||||
//SEG235 [167] phi (byte) printu::a#20 = (byte) printu::a#10 [phi:main::@12->printu#3] -- register_copy
|
||||
//SEG236 [167] phi (byte*) print_char_cursor#95 = (byte*) print_char_cursor#55 [phi:main::@12->printu#4] -- register_copy
|
||||
@ -5319,10 +5320,10 @@ main: {
|
||||
printu_from_b13:
|
||||
//SEG251 [167] phi (byte) printu::res#20 = (byte) printu::res#11 [phi:main::@13->printu#0] -- register_copy
|
||||
//SEG252 [167] phi (byte) printu::b#20 = (byte) printu::b#11 [phi:main::@13->printu#1] -- register_copy
|
||||
//SEG253 [167] phi (byte[]) printu::op#20 = (const string) main::op11 [phi:main::@13->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op11
|
||||
//SEG253 [167] phi (byte[]) printu::op#20 = (const string) main::op8 [phi:main::@13->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op8
|
||||
sta printu.op
|
||||
lda #>op11
|
||||
lda #>op8
|
||||
sta printu.op+1
|
||||
//SEG254 [167] phi (byte) printu::a#20 = (byte) printu::a#11 [phi:main::@13->printu#3] -- register_copy
|
||||
//SEG255 [167] phi (byte*) print_char_cursor#95 = (byte*) print_char_cursor#55 [phi:main::@13->printu#4] -- register_copy
|
||||
@ -5417,10 +5418,10 @@ main: {
|
||||
//SEG295 [167] phi (byte) printu::b#20 = (byte/signed byte/word/signed word/dword/signed dword) 55 [phi:main::@15->printu#1] -- vbuz1=vbuc1
|
||||
lda #$37
|
||||
sta printu.b
|
||||
//SEG296 [167] phi (byte[]) printu::op#20 = (const string) main::op13 [phi:main::@15->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op13
|
||||
//SEG296 [167] phi (byte[]) printu::op#20 = (const string) main::op12 [phi:main::@15->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op12
|
||||
sta printu.op
|
||||
lda #>op13
|
||||
lda #>op12
|
||||
sta printu.op+1
|
||||
//SEG297 [167] phi (byte) printu::a#20 = (byte) printu::a#13 [phi:main::@15->printu#3] -- register_copy
|
||||
//SEG298 [167] phi (byte*) print_char_cursor#95 = (byte*) print_char_cursor#55 [phi:main::@15->printu#4] -- register_copy
|
||||
@ -5461,10 +5462,10 @@ main: {
|
||||
printu_from_b16:
|
||||
//SEG313 [167] phi (byte) printu::res#20 = (byte) printu::res#14 [phi:main::@16->printu#0] -- register_copy
|
||||
//SEG314 [167] phi (byte) printu::b#20 = (byte) printu::b#14 [phi:main::@16->printu#1] -- register_copy
|
||||
//SEG315 [167] phi (byte[]) printu::op#20 = (const string) main::op14 [phi:main::@16->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op14
|
||||
//SEG315 [167] phi (byte[]) printu::op#20 = (const string) main::op12 [phi:main::@16->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op12
|
||||
sta printu.op
|
||||
lda #>op14
|
||||
lda #>op12
|
||||
sta printu.op+1
|
||||
//SEG316 [167] phi (byte) printu::a#20 = (byte) printu::a#14 [phi:main::@16->printu#3] -- register_copy
|
||||
//SEG317 [167] phi (byte*) print_char_cursor#95 = (byte*) print_char_cursor#55 [phi:main::@16->printu#4] -- register_copy
|
||||
@ -5503,10 +5504,10 @@ main: {
|
||||
printu_from_b17:
|
||||
//SEG332 [167] phi (byte) printu::res#20 = (byte) printu::res#15 [phi:main::@17->printu#0] -- register_copy
|
||||
//SEG333 [167] phi (byte) printu::b#20 = (byte) printu::b#15 [phi:main::@17->printu#1] -- register_copy
|
||||
//SEG334 [167] phi (byte[]) printu::op#20 = (const string) main::op15 [phi:main::@17->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op15
|
||||
//SEG334 [167] phi (byte[]) printu::op#20 = (const string) main::op12 [phi:main::@17->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op12
|
||||
sta printu.op
|
||||
lda #>op15
|
||||
lda #>op12
|
||||
sta printu.op+1
|
||||
//SEG335 [167] phi (byte) printu::a#20 = (byte) printu::a#15 [phi:main::@17->printu#3] -- register_copy
|
||||
//SEG336 [167] phi (byte*) print_char_cursor#95 = (byte*) print_char_cursor#55 [phi:main::@17->printu#4] -- register_copy
|
||||
@ -5601,10 +5602,10 @@ main: {
|
||||
//SEG376 [167] phi (byte) printu::b#20 = (byte/signed byte/word/signed word/dword/signed dword) 55 [phi:main::@19->printu#1] -- vbuz1=vbuc1
|
||||
lda #$37
|
||||
sta printu.b
|
||||
//SEG377 [167] phi (byte[]) printu::op#20 = (const string) main::op17 [phi:main::@19->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op17
|
||||
//SEG377 [167] phi (byte[]) printu::op#20 = (const string) main::op16 [phi:main::@19->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op16
|
||||
sta printu.op
|
||||
lda #>op17
|
||||
lda #>op16
|
||||
sta printu.op+1
|
||||
//SEG378 [167] phi (byte) printu::a#20 = (byte) printu::a#17 [phi:main::@19->printu#3] -- register_copy
|
||||
//SEG379 [167] phi (byte*) print_char_cursor#95 = (byte*) print_char_cursor#55 [phi:main::@19->printu#4] -- register_copy
|
||||
@ -5645,10 +5646,10 @@ main: {
|
||||
printu_from_b20:
|
||||
//SEG394 [167] phi (byte) printu::res#20 = (byte) printu::res#18 [phi:main::@20->printu#0] -- register_copy
|
||||
//SEG395 [167] phi (byte) printu::b#20 = (byte) printu::b#18 [phi:main::@20->printu#1] -- register_copy
|
||||
//SEG396 [167] phi (byte[]) printu::op#20 = (const string) main::op18 [phi:main::@20->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op18
|
||||
//SEG396 [167] phi (byte[]) printu::op#20 = (const string) main::op16 [phi:main::@20->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op16
|
||||
sta printu.op
|
||||
lda #>op18
|
||||
lda #>op16
|
||||
sta printu.op+1
|
||||
//SEG397 [167] phi (byte) printu::a#20 = (byte) printu::a#18 [phi:main::@20->printu#3] -- register_copy
|
||||
//SEG398 [167] phi (byte*) print_char_cursor#95 = (byte*) print_char_cursor#55 [phi:main::@20->printu#4] -- register_copy
|
||||
@ -5687,10 +5688,10 @@ main: {
|
||||
printu_from_b21:
|
||||
//SEG413 [167] phi (byte) printu::res#20 = (byte) printu::res#19 [phi:main::@21->printu#0] -- register_copy
|
||||
//SEG414 [167] phi (byte) printu::b#20 = (byte) printu::b#19 [phi:main::@21->printu#1] -- register_copy
|
||||
//SEG415 [167] phi (byte[]) printu::op#20 = (const string) main::op19 [phi:main::@21->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op19
|
||||
//SEG415 [167] phi (byte[]) printu::op#20 = (const string) main::op16 [phi:main::@21->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op16
|
||||
sta printu.op
|
||||
lda #>op19
|
||||
lda #>op16
|
||||
sta printu.op+1
|
||||
//SEG416 [167] phi (byte) printu::a#20 = (byte) printu::a#19 [phi:main::@21->printu#3] -- register_copy
|
||||
//SEG417 [167] phi (byte*) print_char_cursor#95 = (byte*) print_char_cursor#55 [phi:main::@21->printu#4] -- register_copy
|
||||
@ -5741,25 +5742,10 @@ main: {
|
||||
//SEG435 [6] phi (byte) main::a#10 = (byte) main::a#1 [phi:main::@71->main::@1#3] -- register_copy
|
||||
jmp b1
|
||||
op: .text "< @"
|
||||
op1: .text "< @"
|
||||
op2: .text "< @"
|
||||
op3: .text "< @"
|
||||
op4: .text "> @"
|
||||
op5: .text "> @"
|
||||
op6: .text "> @"
|
||||
op7: .text "> @"
|
||||
op8: .text "<=@"
|
||||
op9: .text "<=@"
|
||||
op10: .text "<=@"
|
||||
op11: .text "<=@"
|
||||
op12: .text ">=@"
|
||||
op13: .text ">=@"
|
||||
op14: .text ">=@"
|
||||
op15: .text ">=@"
|
||||
op16: .text "==@"
|
||||
op17: .text "==@"
|
||||
op18: .text "==@"
|
||||
op19: .text "==@"
|
||||
cs: .byte 7, $c7, $37, $97, $67
|
||||
}
|
||||
//SEG436 print_ln
|
||||
@ -6373,25 +6359,10 @@ FINAL SYMBOL TABLE
|
||||
(byte) main::i#1 i zp ZP_BYTE:3 11.0
|
||||
(byte) main::i#10 i zp ZP_BYTE:3 0.8684210526315792
|
||||
(const string) main::op op = (string) "< @"
|
||||
(const string) main::op1 op1 = (string) "< @"
|
||||
(const string) main::op10 op10 = (string) "<=@"
|
||||
(const string) main::op11 op11 = (string) "<=@"
|
||||
(const string) main::op12 op12 = (string) ">=@"
|
||||
(const string) main::op13 op13 = (string) ">=@"
|
||||
(const string) main::op14 op14 = (string) ">=@"
|
||||
(const string) main::op15 op15 = (string) ">=@"
|
||||
(const string) main::op16 op16 = (string) "==@"
|
||||
(const string) main::op17 op17 = (string) "==@"
|
||||
(const string) main::op18 op18 = (string) "==@"
|
||||
(const string) main::op19 op19 = (string) "==@"
|
||||
(const string) main::op2 op2 = (string) "< @"
|
||||
(const string) main::op3 op3 = (string) "< @"
|
||||
(const string) main::op4 op4 = (string) "> @"
|
||||
(const string) main::op5 op5 = (string) "> @"
|
||||
(const string) main::op6 op6 = (string) "> @"
|
||||
(const string) main::op7 op7 = (string) "> @"
|
||||
(const string) main::op8 op8 = (string) "<=@"
|
||||
(const string) main::op9 op9 = (string) "<=@"
|
||||
(byte) main::r
|
||||
(byte) main::r#40 reg byte x 3.6666666666666665
|
||||
(byte) main::r#41 reg byte x 5.5
|
||||
@ -6680,10 +6651,10 @@ main: {
|
||||
//SEG52 [167] phi (byte) printu::b#20 = (byte/signed byte/word/signed word/dword/signed dword) 55 [phi:main::@3->printu#1] -- vbuz1=vbuc1
|
||||
lda #$37
|
||||
sta printu.b
|
||||
//SEG53 [167] phi (byte[]) printu::op#20 = (const string) main::op1 [phi:main::@3->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op1
|
||||
//SEG53 [167] phi (byte[]) printu::op#20 = (const string) main::op [phi:main::@3->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op
|
||||
sta printu.op
|
||||
lda #>op1
|
||||
lda #>op
|
||||
sta printu.op+1
|
||||
//SEG54 [167] phi (byte) printu::a#20 = (byte) printu::a#1 [phi:main::@3->printu#3] -- register_copy
|
||||
//SEG55 [167] phi (byte*) print_char_cursor#95 = (byte*) print_char_cursor#55 [phi:main::@3->printu#4] -- register_copy
|
||||
@ -6716,10 +6687,10 @@ main: {
|
||||
//SEG69 [167] phi from main::@4 to printu [phi:main::@4->printu]
|
||||
//SEG70 [167] phi (byte) printu::res#20 = (byte) printu::res#2 [phi:main::@4->printu#0] -- register_copy
|
||||
//SEG71 [167] phi (byte) printu::b#20 = (byte) printu::b#2 [phi:main::@4->printu#1] -- register_copy
|
||||
//SEG72 [167] phi (byte[]) printu::op#20 = (const string) main::op2 [phi:main::@4->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op2
|
||||
//SEG72 [167] phi (byte[]) printu::op#20 = (const string) main::op [phi:main::@4->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op
|
||||
sta printu.op
|
||||
lda #>op2
|
||||
lda #>op
|
||||
sta printu.op+1
|
||||
//SEG73 [167] phi (byte) printu::a#20 = (byte) printu::a#2 [phi:main::@4->printu#3] -- register_copy
|
||||
//SEG74 [167] phi (byte*) print_char_cursor#95 = (byte*) print_char_cursor#55 [phi:main::@4->printu#4] -- register_copy
|
||||
@ -6750,10 +6721,10 @@ main: {
|
||||
//SEG88 [167] phi from main::@5 to printu [phi:main::@5->printu]
|
||||
//SEG89 [167] phi (byte) printu::res#20 = (byte) printu::res#3 [phi:main::@5->printu#0] -- register_copy
|
||||
//SEG90 [167] phi (byte) printu::b#20 = (byte) printu::b#3 [phi:main::@5->printu#1] -- register_copy
|
||||
//SEG91 [167] phi (byte[]) printu::op#20 = (const string) main::op3 [phi:main::@5->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op3
|
||||
//SEG91 [167] phi (byte[]) printu::op#20 = (const string) main::op [phi:main::@5->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op
|
||||
sta printu.op
|
||||
lda #>op3
|
||||
lda #>op
|
||||
sta printu.op+1
|
||||
//SEG92 [167] phi (byte) printu::a#20 = (byte) printu::a#3 [phi:main::@5->printu#3] -- register_copy
|
||||
//SEG93 [167] phi (byte*) print_char_cursor#95 = (byte*) print_char_cursor#55 [phi:main::@5->printu#4] -- register_copy
|
||||
@ -6828,10 +6799,10 @@ main: {
|
||||
//SEG133 [167] phi (byte) printu::b#20 = (byte/signed byte/word/signed word/dword/signed dword) 55 [phi:main::@7->printu#1] -- vbuz1=vbuc1
|
||||
lda #$37
|
||||
sta printu.b
|
||||
//SEG134 [167] phi (byte[]) printu::op#20 = (const string) main::op5 [phi:main::@7->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op5
|
||||
//SEG134 [167] phi (byte[]) printu::op#20 = (const string) main::op4 [phi:main::@7->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op4
|
||||
sta printu.op
|
||||
lda #>op5
|
||||
lda #>op4
|
||||
sta printu.op+1
|
||||
//SEG135 [167] phi (byte) printu::a#20 = (byte) printu::a#5 [phi:main::@7->printu#3] -- register_copy
|
||||
//SEG136 [167] phi (byte*) print_char_cursor#95 = (byte*) print_char_cursor#55 [phi:main::@7->printu#4] -- register_copy
|
||||
@ -6864,10 +6835,10 @@ main: {
|
||||
//SEG150 [167] phi from main::@8 to printu [phi:main::@8->printu]
|
||||
//SEG151 [167] phi (byte) printu::res#20 = (byte) printu::res#6 [phi:main::@8->printu#0] -- register_copy
|
||||
//SEG152 [167] phi (byte) printu::b#20 = (byte) printu::b#6 [phi:main::@8->printu#1] -- register_copy
|
||||
//SEG153 [167] phi (byte[]) printu::op#20 = (const string) main::op6 [phi:main::@8->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op6
|
||||
//SEG153 [167] phi (byte[]) printu::op#20 = (const string) main::op4 [phi:main::@8->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op4
|
||||
sta printu.op
|
||||
lda #>op6
|
||||
lda #>op4
|
||||
sta printu.op+1
|
||||
//SEG154 [167] phi (byte) printu::a#20 = (byte) printu::a#6 [phi:main::@8->printu#3] -- register_copy
|
||||
//SEG155 [167] phi (byte*) print_char_cursor#95 = (byte*) print_char_cursor#55 [phi:main::@8->printu#4] -- register_copy
|
||||
@ -6898,10 +6869,10 @@ main: {
|
||||
//SEG169 [167] phi from main::@9 to printu [phi:main::@9->printu]
|
||||
//SEG170 [167] phi (byte) printu::res#20 = (byte) printu::res#7 [phi:main::@9->printu#0] -- register_copy
|
||||
//SEG171 [167] phi (byte) printu::b#20 = (byte) printu::b#7 [phi:main::@9->printu#1] -- register_copy
|
||||
//SEG172 [167] phi (byte[]) printu::op#20 = (const string) main::op7 [phi:main::@9->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op7
|
||||
//SEG172 [167] phi (byte[]) printu::op#20 = (const string) main::op4 [phi:main::@9->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op4
|
||||
sta printu.op
|
||||
lda #>op7
|
||||
lda #>op4
|
||||
sta printu.op+1
|
||||
//SEG173 [167] phi (byte) printu::a#20 = (byte) printu::a#7 [phi:main::@9->printu#3] -- register_copy
|
||||
//SEG174 [167] phi (byte*) print_char_cursor#95 = (byte*) print_char_cursor#55 [phi:main::@9->printu#4] -- register_copy
|
||||
@ -6978,10 +6949,10 @@ main: {
|
||||
//SEG214 [167] phi (byte) printu::b#20 = (byte/signed byte/word/signed word/dword/signed dword) 55 [phi:main::@11->printu#1] -- vbuz1=vbuc1
|
||||
lda #$37
|
||||
sta printu.b
|
||||
//SEG215 [167] phi (byte[]) printu::op#20 = (const string) main::op9 [phi:main::@11->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op9
|
||||
//SEG215 [167] phi (byte[]) printu::op#20 = (const string) main::op8 [phi:main::@11->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op8
|
||||
sta printu.op
|
||||
lda #>op9
|
||||
lda #>op8
|
||||
sta printu.op+1
|
||||
//SEG216 [167] phi (byte) printu::a#20 = (byte) printu::a#9 [phi:main::@11->printu#3] -- register_copy
|
||||
//SEG217 [167] phi (byte*) print_char_cursor#95 = (byte*) print_char_cursor#55 [phi:main::@11->printu#4] -- register_copy
|
||||
@ -7014,10 +6985,10 @@ main: {
|
||||
//SEG231 [167] phi from main::@12 to printu [phi:main::@12->printu]
|
||||
//SEG232 [167] phi (byte) printu::res#20 = (byte) printu::res#10 [phi:main::@12->printu#0] -- register_copy
|
||||
//SEG233 [167] phi (byte) printu::b#20 = (byte) printu::b#10 [phi:main::@12->printu#1] -- register_copy
|
||||
//SEG234 [167] phi (byte[]) printu::op#20 = (const string) main::op10 [phi:main::@12->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op10
|
||||
//SEG234 [167] phi (byte[]) printu::op#20 = (const string) main::op8 [phi:main::@12->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op8
|
||||
sta printu.op
|
||||
lda #>op10
|
||||
lda #>op8
|
||||
sta printu.op+1
|
||||
//SEG235 [167] phi (byte) printu::a#20 = (byte) printu::a#10 [phi:main::@12->printu#3] -- register_copy
|
||||
//SEG236 [167] phi (byte*) print_char_cursor#95 = (byte*) print_char_cursor#55 [phi:main::@12->printu#4] -- register_copy
|
||||
@ -7048,10 +7019,10 @@ main: {
|
||||
//SEG250 [167] phi from main::@13 to printu [phi:main::@13->printu]
|
||||
//SEG251 [167] phi (byte) printu::res#20 = (byte) printu::res#11 [phi:main::@13->printu#0] -- register_copy
|
||||
//SEG252 [167] phi (byte) printu::b#20 = (byte) printu::b#11 [phi:main::@13->printu#1] -- register_copy
|
||||
//SEG253 [167] phi (byte[]) printu::op#20 = (const string) main::op11 [phi:main::@13->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op11
|
||||
//SEG253 [167] phi (byte[]) printu::op#20 = (const string) main::op8 [phi:main::@13->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op8
|
||||
sta printu.op
|
||||
lda #>op11
|
||||
lda #>op8
|
||||
sta printu.op+1
|
||||
//SEG254 [167] phi (byte) printu::a#20 = (byte) printu::a#11 [phi:main::@13->printu#3] -- register_copy
|
||||
//SEG255 [167] phi (byte*) print_char_cursor#95 = (byte*) print_char_cursor#55 [phi:main::@13->printu#4] -- register_copy
|
||||
@ -7126,10 +7097,10 @@ main: {
|
||||
//SEG295 [167] phi (byte) printu::b#20 = (byte/signed byte/word/signed word/dword/signed dword) 55 [phi:main::@15->printu#1] -- vbuz1=vbuc1
|
||||
lda #$37
|
||||
sta printu.b
|
||||
//SEG296 [167] phi (byte[]) printu::op#20 = (const string) main::op13 [phi:main::@15->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op13
|
||||
//SEG296 [167] phi (byte[]) printu::op#20 = (const string) main::op12 [phi:main::@15->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op12
|
||||
sta printu.op
|
||||
lda #>op13
|
||||
lda #>op12
|
||||
sta printu.op+1
|
||||
//SEG297 [167] phi (byte) printu::a#20 = (byte) printu::a#13 [phi:main::@15->printu#3] -- register_copy
|
||||
//SEG298 [167] phi (byte*) print_char_cursor#95 = (byte*) print_char_cursor#55 [phi:main::@15->printu#4] -- register_copy
|
||||
@ -7162,10 +7133,10 @@ main: {
|
||||
//SEG312 [167] phi from main::@16 to printu [phi:main::@16->printu]
|
||||
//SEG313 [167] phi (byte) printu::res#20 = (byte) printu::res#14 [phi:main::@16->printu#0] -- register_copy
|
||||
//SEG314 [167] phi (byte) printu::b#20 = (byte) printu::b#14 [phi:main::@16->printu#1] -- register_copy
|
||||
//SEG315 [167] phi (byte[]) printu::op#20 = (const string) main::op14 [phi:main::@16->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op14
|
||||
//SEG315 [167] phi (byte[]) printu::op#20 = (const string) main::op12 [phi:main::@16->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op12
|
||||
sta printu.op
|
||||
lda #>op14
|
||||
lda #>op12
|
||||
sta printu.op+1
|
||||
//SEG316 [167] phi (byte) printu::a#20 = (byte) printu::a#14 [phi:main::@16->printu#3] -- register_copy
|
||||
//SEG317 [167] phi (byte*) print_char_cursor#95 = (byte*) print_char_cursor#55 [phi:main::@16->printu#4] -- register_copy
|
||||
@ -7196,10 +7167,10 @@ main: {
|
||||
//SEG331 [167] phi from main::@17 to printu [phi:main::@17->printu]
|
||||
//SEG332 [167] phi (byte) printu::res#20 = (byte) printu::res#15 [phi:main::@17->printu#0] -- register_copy
|
||||
//SEG333 [167] phi (byte) printu::b#20 = (byte) printu::b#15 [phi:main::@17->printu#1] -- register_copy
|
||||
//SEG334 [167] phi (byte[]) printu::op#20 = (const string) main::op15 [phi:main::@17->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op15
|
||||
//SEG334 [167] phi (byte[]) printu::op#20 = (const string) main::op12 [phi:main::@17->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op12
|
||||
sta printu.op
|
||||
lda #>op15
|
||||
lda #>op12
|
||||
sta printu.op+1
|
||||
//SEG335 [167] phi (byte) printu::a#20 = (byte) printu::a#15 [phi:main::@17->printu#3] -- register_copy
|
||||
//SEG336 [167] phi (byte*) print_char_cursor#95 = (byte*) print_char_cursor#55 [phi:main::@17->printu#4] -- register_copy
|
||||
@ -7274,10 +7245,10 @@ main: {
|
||||
//SEG376 [167] phi (byte) printu::b#20 = (byte/signed byte/word/signed word/dword/signed dword) 55 [phi:main::@19->printu#1] -- vbuz1=vbuc1
|
||||
lda #$37
|
||||
sta printu.b
|
||||
//SEG377 [167] phi (byte[]) printu::op#20 = (const string) main::op17 [phi:main::@19->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op17
|
||||
//SEG377 [167] phi (byte[]) printu::op#20 = (const string) main::op16 [phi:main::@19->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op16
|
||||
sta printu.op
|
||||
lda #>op17
|
||||
lda #>op16
|
||||
sta printu.op+1
|
||||
//SEG378 [167] phi (byte) printu::a#20 = (byte) printu::a#17 [phi:main::@19->printu#3] -- register_copy
|
||||
//SEG379 [167] phi (byte*) print_char_cursor#95 = (byte*) print_char_cursor#55 [phi:main::@19->printu#4] -- register_copy
|
||||
@ -7310,10 +7281,10 @@ main: {
|
||||
//SEG393 [167] phi from main::@20 to printu [phi:main::@20->printu]
|
||||
//SEG394 [167] phi (byte) printu::res#20 = (byte) printu::res#18 [phi:main::@20->printu#0] -- register_copy
|
||||
//SEG395 [167] phi (byte) printu::b#20 = (byte) printu::b#18 [phi:main::@20->printu#1] -- register_copy
|
||||
//SEG396 [167] phi (byte[]) printu::op#20 = (const string) main::op18 [phi:main::@20->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op18
|
||||
//SEG396 [167] phi (byte[]) printu::op#20 = (const string) main::op16 [phi:main::@20->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op16
|
||||
sta printu.op
|
||||
lda #>op18
|
||||
lda #>op16
|
||||
sta printu.op+1
|
||||
//SEG397 [167] phi (byte) printu::a#20 = (byte) printu::a#18 [phi:main::@20->printu#3] -- register_copy
|
||||
//SEG398 [167] phi (byte*) print_char_cursor#95 = (byte*) print_char_cursor#55 [phi:main::@20->printu#4] -- register_copy
|
||||
@ -7344,10 +7315,10 @@ main: {
|
||||
//SEG412 [167] phi from main::@21 to printu [phi:main::@21->printu]
|
||||
//SEG413 [167] phi (byte) printu::res#20 = (byte) printu::res#19 [phi:main::@21->printu#0] -- register_copy
|
||||
//SEG414 [167] phi (byte) printu::b#20 = (byte) printu::b#19 [phi:main::@21->printu#1] -- register_copy
|
||||
//SEG415 [167] phi (byte[]) printu::op#20 = (const string) main::op19 [phi:main::@21->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op19
|
||||
//SEG415 [167] phi (byte[]) printu::op#20 = (const string) main::op16 [phi:main::@21->printu#2] -- pbuz1=pbuc1
|
||||
lda #<op16
|
||||
sta printu.op
|
||||
lda #>op19
|
||||
lda #>op16
|
||||
sta printu.op+1
|
||||
//SEG416 [167] phi (byte) printu::a#20 = (byte) printu::a#19 [phi:main::@21->printu#3] -- register_copy
|
||||
//SEG417 [167] phi (byte*) print_char_cursor#95 = (byte*) print_char_cursor#55 [phi:main::@21->printu#4] -- register_copy
|
||||
@ -7388,25 +7359,10 @@ main: {
|
||||
//SEG435 [6] phi (byte) main::a#10 = (byte) main::a#1 [phi:main::@71->main::@1#3] -- register_copy
|
||||
jmp b1
|
||||
op: .text "< @"
|
||||
op1: .text "< @"
|
||||
op2: .text "< @"
|
||||
op3: .text "< @"
|
||||
op4: .text "> @"
|
||||
op5: .text "> @"
|
||||
op6: .text "> @"
|
||||
op7: .text "> @"
|
||||
op8: .text "<=@"
|
||||
op9: .text "<=@"
|
||||
op10: .text "<=@"
|
||||
op11: .text "<=@"
|
||||
op12: .text ">=@"
|
||||
op13: .text ">=@"
|
||||
op14: .text ">=@"
|
||||
op15: .text ">=@"
|
||||
op16: .text "==@"
|
||||
op17: .text "==@"
|
||||
op18: .text "==@"
|
||||
op19: .text "==@"
|
||||
cs: .byte 7, $c7, $37, $97, $67
|
||||
}
|
||||
//SEG436 print_ln
|
||||
|
@ -81,25 +81,10 @@
|
||||
(byte) main::i#1 i zp ZP_BYTE:3 11.0
|
||||
(byte) main::i#10 i zp ZP_BYTE:3 0.8684210526315792
|
||||
(const string) main::op op = (string) "< @"
|
||||
(const string) main::op1 op1 = (string) "< @"
|
||||
(const string) main::op10 op10 = (string) "<=@"
|
||||
(const string) main::op11 op11 = (string) "<=@"
|
||||
(const string) main::op12 op12 = (string) ">=@"
|
||||
(const string) main::op13 op13 = (string) ">=@"
|
||||
(const string) main::op14 op14 = (string) ">=@"
|
||||
(const string) main::op15 op15 = (string) ">=@"
|
||||
(const string) main::op16 op16 = (string) "==@"
|
||||
(const string) main::op17 op17 = (string) "==@"
|
||||
(const string) main::op18 op18 = (string) "==@"
|
||||
(const string) main::op19 op19 = (string) "==@"
|
||||
(const string) main::op2 op2 = (string) "< @"
|
||||
(const string) main::op3 op3 = (string) "< @"
|
||||
(const string) main::op4 op4 = (string) "> @"
|
||||
(const string) main::op5 op5 = (string) "> @"
|
||||
(const string) main::op6 op6 = (string) "> @"
|
||||
(const string) main::op7 op7 = (string) "> @"
|
||||
(const string) main::op8 op8 = (string) "<=@"
|
||||
(const string) main::op9 op9 = (string) "<=@"
|
||||
(byte) main::r
|
||||
(byte) main::r#40 reg byte x 3.6666666666666665
|
||||
(byte) main::r#41 reg byte x 5.5
|
||||
|
@ -75,9 +75,6 @@ test_16s: {
|
||||
cmp #$c
|
||||
bne b1
|
||||
rts
|
||||
str: .text " / @"
|
||||
str1: .text " = @"
|
||||
str2: .text " @"
|
||||
dividends: .word $7fff, $7fff, -$7fff, -$7fff, $7fff, -$7fff
|
||||
divisors: .word 5, -7, $b, -$d, -$11, $13
|
||||
}
|
||||
@ -398,9 +395,6 @@ test_8s: {
|
||||
cmp #6
|
||||
bne b1
|
||||
rts
|
||||
str: .text " / @"
|
||||
str1: .text " = @"
|
||||
str2: .text " @"
|
||||
dividends: .byte $7f, -$7f, -$7f, $7f, $7f, $7f
|
||||
divisors: .byte 5, 7, -$b, -$d, $11, $13
|
||||
}
|
||||
@ -598,9 +592,6 @@ test_16u: {
|
||||
cmp #$c
|
||||
bne b1
|
||||
rts
|
||||
str: .text " / @"
|
||||
str1: .text " = @"
|
||||
str2: .text " @"
|
||||
dividends: .word $ffff, $ffff, $ffff, $ffff, $ffff, $ffff
|
||||
divisors: .word 5, 7, $b, $d, $11, $13
|
||||
}
|
||||
@ -684,9 +675,6 @@ test_8u: {
|
||||
lda print_line_cursor+1
|
||||
sta print_char_cursor+1
|
||||
jmp b1
|
||||
str: .text " / @"
|
||||
str1: .text " = @"
|
||||
str2: .text " @"
|
||||
dividends: .byte $ff, $ff, $ff, $ff, $ff, $ff
|
||||
divisors: .byte 5, 7, $b, $d, $11, $13
|
||||
}
|
||||
@ -714,3 +702,6 @@ print_cls: {
|
||||
rts
|
||||
}
|
||||
print_hextab: .text "0123456789abcdef"
|
||||
str: .text " / @"
|
||||
str2: .text " @"
|
||||
str1: .text " = @"
|
||||
|
@ -153,7 +153,7 @@ print_char::@return: scope:[print_char] from print_char
|
||||
[75] return
|
||||
to:@return
|
||||
print_str: scope:[print_str] from test_16s::@4 test_16s::@6 test_16s::@8 test_16u::@4 test_16u::@6 test_16u::@8 test_8s::@4 test_8s::@6 test_8s::@8 test_8u::@4 test_8u::@6 test_8u::@8
|
||||
[76] (byte*) print_str::str#15 ← phi( test_16s::@4/(const string) test_16s::str test_16s::@6/(const string) test_16s::str1 test_16s::@8/(const string) test_16s::str2 test_16u::@4/(const string) test_16u::str test_16u::@6/(const string) test_16u::str1 test_16u::@8/(const string) test_16u::str2 test_8s::@4/(const string) test_8s::str test_8s::@6/(const string) test_8s::str1 test_8s::@8/(const string) test_8s::str2 test_8u::@4/(const string) test_8u::str test_8u::@6/(const string) test_8u::str1 test_8u::@8/(const string) test_8u::str2 )
|
||||
[76] (byte*) print_str::str#15 ← phi( test_16s::@4/(const string) str test_16s::@6/(const string) str1 test_16s::@8/(const string) str2 test_16u::@4/(const string) str test_16u::@6/(const string) str1 test_16u::@8/(const string) str2 test_8s::@4/(const string) str test_8s::@6/(const string) str1 test_8s::@8/(const string) str2 test_8u::@4/(const string) str test_8u::@6/(const string) str1 test_8u::@8/(const string) str2 )
|
||||
to:print_str::@1
|
||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||
[77] (byte*) print_char_cursor#128 ← phi( print_str/(byte*) print_char_cursor#18 print_str::@2/(byte*) print_char_cursor#1 )
|
||||
|
@ -3007,6 +3007,7 @@ Constant (const word) divr16s::remu#1 = ((word))divr16s::$7
|
||||
Successful SSA optimization Pass2ConstantIdentification
|
||||
if() condition always false - eliminating [256] if((const bool) divr16s::$1) goto divr16s::@1
|
||||
Successful SSA optimization Pass2ConstantIfs
|
||||
Successful SSA optimization Pass2ConstantStringConsolidation
|
||||
Successful SSA optimization PassNEliminateUnusedVars
|
||||
Successful SSA optimization PassNEliminateUnusedVars
|
||||
Successful SSA optimization PassNEliminateUnusedVars
|
||||
@ -3095,50 +3096,62 @@ 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/signed byte/word/signed word/dword/signed dword) 0
|
||||
Constant inlined print_cls::$0 = ((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000
|
||||
Constant inlined divr16u::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
Constant inlined print_str::str#12 = (const string) test_16s::str2
|
||||
Constant inlined print_str::str#11 = (const string) test_16s::str1
|
||||
Constant inlined print_str::str#10 = (const string) test_16s::str
|
||||
Constant inlined test_8s::str1 = (const string) str1
|
||||
Constant inlined test_8s::str2 = (const string) str2
|
||||
Constant inlined $0 = (const byte[]) print_hextab#0
|
||||
Constant inlined divr16s::$7 = -(const signed word) divr16s::rem#0
|
||||
Constant inlined divr16s::neg#1 = (byte/signed byte/word/signed word/dword/signed dword) 1
|
||||
Constant inlined divr8u::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
Constant inlined divr16s::neg#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
Constant inlined test_16u::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
Constant inlined divr16u::quotient#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
Constant inlined test_8u::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
Constant inlined test_8s::$3 = -(byte/signed byte/word/signed word/dword/signed dword) 13
|
||||
Constant inlined test_8s::$2 = -(byte/signed byte/word/signed word/dword/signed dword) 11
|
||||
Constant inlined test_8s::$1 = -(byte/signed byte/word/signed word/dword/signed dword) 127
|
||||
Constant inlined test_8s::$0 = -(byte/signed byte/word/signed word/dword/signed dword) 127
|
||||
Constant inlined test_16s::str1 = (const string) str1
|
||||
Constant inlined print_line_cursor#0 = ((byte*))(word/signed word/dword/signed dword) 1024
|
||||
Constant inlined test_16s::str2 = (const string) str2
|
||||
Constant inlined test_16s::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
Constant inlined divr8u::rem#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
Constant inlined print_str::str#9 = (const string) str2
|
||||
Constant inlined print_str::str#4 = (const string) str
|
||||
Constant inlined print_str::str#3 = (const string) str2
|
||||
Constant inlined div8s::neg#1 = (byte/signed byte/word/signed word/dword/signed dword) 1
|
||||
Constant inlined print_str::str#2 = (const string) str1
|
||||
Constant inlined div8s::neg#0 = (byte/signed byte/word/signed word/dword/signed dword) 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#5 = (const string) str1
|
||||
Constant inlined test_16s::str = (const string) str
|
||||
Constant inlined print_cls::$0 = ((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000
|
||||
Constant inlined divr16u::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
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 divr16s::$7 = -(const signed word) divr16s::rem#0
|
||||
Constant inlined divr16s::neg#1 = (byte/signed byte/word/signed word/dword/signed dword) 1
|
||||
Constant inlined divr16s::neg#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
Constant inlined test_8u::str2 = (const string) str2
|
||||
Constant inlined divr16u::quotient#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
Constant inlined test_8u::str1 = (const string) str1
|
||||
Constant inlined test_8s::str = (const string) str
|
||||
Constant inlined test_16s::$3 = -(byte/signed byte/word/signed word/dword/signed dword) 7
|
||||
Constant inlined test_16s::$4 = -(byte/signed byte/word/signed word/dword/signed dword) 13
|
||||
Constant inlined test_16s::$5 = -(byte/signed byte/word/signed word/dword/signed dword) 17
|
||||
Constant inlined print_line_cursor#0 = ((byte*))(word/signed word/dword/signed dword) 1024
|
||||
Constant inlined test_16s::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
Constant inlined print_cls::sc#0 = ((byte*))(word/signed word/dword/signed dword) 1024
|
||||
Constant inlined divr8u::rem#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
Constant inlined divr8u::quotient#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
Constant inlined test_16u::str1 = (const string) str1
|
||||
Constant inlined print_char::ch#2 = (byte) ' '
|
||||
Constant inlined print_str::str#9 = (const string) test_8s::str2
|
||||
Constant inlined test_16u::str = (const string) str
|
||||
Constant inlined test_16u::str2 = (const string) str2
|
||||
Constant inlined print_char::ch#1 = (byte) '-'
|
||||
Constant inlined print_char::ch#0 = (byte) '-'
|
||||
Constant inlined print_str::str#4 = (const string) test_16u::str
|
||||
Constant inlined print_str::str#3 = (const string) test_8u::str2
|
||||
Constant inlined div8s::neg#1 = (byte/signed byte/word/signed word/dword/signed dword) 1
|
||||
Constant inlined print_str::str#2 = (const string) test_8u::str1
|
||||
Constant inlined div8s::neg#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
Constant inlined print_str::str#1 = (const string) test_8u::str
|
||||
Constant inlined print_str::str#8 = (const string) test_8s::str1
|
||||
Constant inlined test_16s::$0 = -(word/signed word/dword/signed dword) 32767
|
||||
Constant inlined print_str::str#7 = (const string) test_8s::str
|
||||
Constant inlined test_16s::$1 = -(word/signed word/dword/signed dword) 32767
|
||||
Constant inlined print_str::str#6 = (const string) test_16u::str2
|
||||
Constant inlined divr16s::remu#1 = ((word))-(const signed word) divr16s::rem#0
|
||||
Constant inlined test_8s::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
Constant inlined test_16s::$2 = -(word/signed word/dword/signed dword) 32767
|
||||
Constant inlined print_str::str#5 = (const string) test_16u::str1
|
||||
Constant inlined divr16s::remu#2 = ((word))(const signed word) divr16s::rem#0
|
||||
Successful SSA optimization Pass2ConstantInlining
|
||||
Added new block during phi lifting test_16s::@12(between test_16s::@11 and test_16s::@1)
|
||||
@ -3517,7 +3530,7 @@ print_char::@return: scope:[print_char] from print_char
|
||||
[75] return
|
||||
to:@return
|
||||
print_str: scope:[print_str] from test_16s::@4 test_16s::@6 test_16s::@8 test_16u::@4 test_16u::@6 test_16u::@8 test_8s::@4 test_8s::@6 test_8s::@8 test_8u::@4 test_8u::@6 test_8u::@8
|
||||
[76] (byte*) print_str::str#15 ← phi( test_16s::@4/(const string) test_16s::str test_16s::@6/(const string) test_16s::str1 test_16s::@8/(const string) test_16s::str2 test_16u::@4/(const string) test_16u::str test_16u::@6/(const string) test_16u::str1 test_16u::@8/(const string) test_16u::str2 test_8s::@4/(const string) test_8s::str test_8s::@6/(const string) test_8s::str1 test_8s::@8/(const string) test_8s::str2 test_8u::@4/(const string) test_8u::str test_8u::@6/(const string) test_8u::str1 test_8u::@8/(const string) test_8u::str2 )
|
||||
[76] (byte*) print_str::str#15 ← phi( test_16s::@4/(const string) str test_16s::@6/(const string) str1 test_16s::@8/(const string) str2 test_16u::@4/(const string) str test_16u::@6/(const string) str1 test_16u::@8/(const string) str2 test_8s::@4/(const string) str test_8s::@6/(const string) str1 test_8s::@8/(const string) str2 test_8u::@4/(const string) str test_8u::@6/(const string) str1 test_8u::@8/(const string) str2 )
|
||||
to:print_str::@1
|
||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||
[77] (byte*) print_char_cursor#128 ← phi( print_str/(byte*) print_char_cursor#18 print_str::@2/(byte*) print_char_cursor#1 )
|
||||
@ -4630,7 +4643,7 @@ test_16s: {
|
||||
//SEG53 [28] call print_str
|
||||
//SEG54 [76] phi from test_16s::@4 to print_str [phi:test_16s::@4->print_str]
|
||||
print_str_from_b4:
|
||||
//SEG55 [76] phi (byte*) print_str::str#15 = (const string) test_16s::str [phi:test_16s::@4->print_str#0] -- pbuz1=pbuc1
|
||||
//SEG55 [76] phi (byte*) print_str::str#15 = (const string) str [phi:test_16s::@4->print_str#0] -- pbuz1=pbuc1
|
||||
lda #<str
|
||||
sta print_str.str
|
||||
lda #>str
|
||||
@ -4658,7 +4671,7 @@ test_16s: {
|
||||
//SEG64 [32] call print_str
|
||||
//SEG65 [76] phi from test_16s::@6 to print_str [phi:test_16s::@6->print_str]
|
||||
print_str_from_b6:
|
||||
//SEG66 [76] phi (byte*) print_str::str#15 = (const string) test_16s::str1 [phi:test_16s::@6->print_str#0] -- pbuz1=pbuc1
|
||||
//SEG66 [76] phi (byte*) print_str::str#15 = (const string) str1 [phi:test_16s::@6->print_str#0] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str1
|
||||
@ -4686,7 +4699,7 @@ test_16s: {
|
||||
//SEG75 [36] call print_str
|
||||
//SEG76 [76] phi from test_16s::@8 to print_str [phi:test_16s::@8->print_str]
|
||||
print_str_from_b8:
|
||||
//SEG77 [76] phi (byte*) print_str::str#15 = (const string) test_16s::str2 [phi:test_16s::@8->print_str#0] -- pbuz1=pbuc1
|
||||
//SEG77 [76] phi (byte*) print_str::str#15 = (const string) str2 [phi:test_16s::@8->print_str#0] -- pbuz1=pbuc1
|
||||
lda #<str2
|
||||
sta print_str.str
|
||||
lda #>str2
|
||||
@ -4733,9 +4746,6 @@ test_16s: {
|
||||
breturn:
|
||||
//SEG93 [43] return
|
||||
rts
|
||||
str: .text " / @"
|
||||
str1: .text " = @"
|
||||
str2: .text " @"
|
||||
dividends: .word $7fff, $7fff, -$7fff, -$7fff, $7fff, -$7fff
|
||||
divisors: .word 5, -7, $b, -$d, -$11, $13
|
||||
}
|
||||
@ -5408,7 +5418,7 @@ test_8s: {
|
||||
//SEG288 [144] call print_str
|
||||
//SEG289 [76] phi from test_8s::@4 to print_str [phi:test_8s::@4->print_str]
|
||||
print_str_from_b4:
|
||||
//SEG290 [76] phi (byte*) print_str::str#15 = (const string) test_8s::str [phi:test_8s::@4->print_str#0] -- pbuz1=pbuc1
|
||||
//SEG290 [76] phi (byte*) print_str::str#15 = (const string) str [phi:test_8s::@4->print_str#0] -- pbuz1=pbuc1
|
||||
lda #<str
|
||||
sta print_str.str
|
||||
lda #>str
|
||||
@ -5434,7 +5444,7 @@ test_8s: {
|
||||
//SEG299 [148] call print_str
|
||||
//SEG300 [76] phi from test_8s::@6 to print_str [phi:test_8s::@6->print_str]
|
||||
print_str_from_b6:
|
||||
//SEG301 [76] phi (byte*) print_str::str#15 = (const string) test_8s::str1 [phi:test_8s::@6->print_str#0] -- pbuz1=pbuc1
|
||||
//SEG301 [76] phi (byte*) print_str::str#15 = (const string) str1 [phi:test_8s::@6->print_str#0] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str1
|
||||
@ -5460,7 +5470,7 @@ test_8s: {
|
||||
//SEG310 [152] call print_str
|
||||
//SEG311 [76] phi from test_8s::@8 to print_str [phi:test_8s::@8->print_str]
|
||||
print_str_from_b8:
|
||||
//SEG312 [76] phi (byte*) print_str::str#15 = (const string) test_8s::str2 [phi:test_8s::@8->print_str#0] -- pbuz1=pbuc1
|
||||
//SEG312 [76] phi (byte*) print_str::str#15 = (const string) str2 [phi:test_8s::@8->print_str#0] -- pbuz1=pbuc1
|
||||
lda #<str2
|
||||
sta print_str.str
|
||||
lda #>str2
|
||||
@ -5502,9 +5512,6 @@ test_8s: {
|
||||
breturn:
|
||||
//SEG328 [159] return
|
||||
rts
|
||||
str: .text " / @"
|
||||
str1: .text " = @"
|
||||
str2: .text " @"
|
||||
dividends: .byte $7f, -$7f, -$7f, $7f, $7f, $7f
|
||||
divisors: .byte 5, 7, -$b, -$d, $11, $13
|
||||
}
|
||||
@ -5943,7 +5950,7 @@ test_16u: {
|
||||
//SEG469 [231] call print_str
|
||||
//SEG470 [76] phi from test_16u::@4 to print_str [phi:test_16u::@4->print_str]
|
||||
print_str_from_b4:
|
||||
//SEG471 [76] phi (byte*) print_str::str#15 = (const string) test_16u::str [phi:test_16u::@4->print_str#0] -- pbuz1=pbuc1
|
||||
//SEG471 [76] phi (byte*) print_str::str#15 = (const string) str [phi:test_16u::@4->print_str#0] -- pbuz1=pbuc1
|
||||
lda #<str
|
||||
sta print_str.str
|
||||
lda #>str
|
||||
@ -5971,7 +5978,7 @@ test_16u: {
|
||||
//SEG480 [235] call print_str
|
||||
//SEG481 [76] phi from test_16u::@6 to print_str [phi:test_16u::@6->print_str]
|
||||
print_str_from_b6:
|
||||
//SEG482 [76] phi (byte*) print_str::str#15 = (const string) test_16u::str1 [phi:test_16u::@6->print_str#0] -- pbuz1=pbuc1
|
||||
//SEG482 [76] phi (byte*) print_str::str#15 = (const string) str1 [phi:test_16u::@6->print_str#0] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str1
|
||||
@ -5999,7 +6006,7 @@ test_16u: {
|
||||
//SEG491 [239] call print_str
|
||||
//SEG492 [76] phi from test_16u::@8 to print_str [phi:test_16u::@8->print_str]
|
||||
print_str_from_b8:
|
||||
//SEG493 [76] phi (byte*) print_str::str#15 = (const string) test_16u::str2 [phi:test_16u::@8->print_str#0] -- pbuz1=pbuc1
|
||||
//SEG493 [76] phi (byte*) print_str::str#15 = (const string) str2 [phi:test_16u::@8->print_str#0] -- pbuz1=pbuc1
|
||||
lda #<str2
|
||||
sta print_str.str
|
||||
lda #>str2
|
||||
@ -6046,9 +6053,6 @@ test_16u: {
|
||||
breturn:
|
||||
//SEG509 [246] return
|
||||
rts
|
||||
str: .text " / @"
|
||||
str1: .text " = @"
|
||||
str2: .text " @"
|
||||
dividends: .word $ffff, $ffff, $ffff, $ffff, $ffff, $ffff
|
||||
divisors: .word 5, 7, $b, $d, $11, $13
|
||||
}
|
||||
@ -6173,7 +6177,7 @@ test_8u: {
|
||||
//SEG547 [265] call print_str
|
||||
//SEG548 [76] phi from test_8u::@4 to print_str [phi:test_8u::@4->print_str]
|
||||
print_str_from_b4:
|
||||
//SEG549 [76] phi (byte*) print_str::str#15 = (const string) test_8u::str [phi:test_8u::@4->print_str#0] -- pbuz1=pbuc1
|
||||
//SEG549 [76] phi (byte*) print_str::str#15 = (const string) str [phi:test_8u::@4->print_str#0] -- pbuz1=pbuc1
|
||||
lda #<str
|
||||
sta print_str.str
|
||||
lda #>str
|
||||
@ -6199,7 +6203,7 @@ test_8u: {
|
||||
//SEG558 [269] call print_str
|
||||
//SEG559 [76] phi from test_8u::@6 to print_str [phi:test_8u::@6->print_str]
|
||||
print_str_from_b6:
|
||||
//SEG560 [76] phi (byte*) print_str::str#15 = (const string) test_8u::str1 [phi:test_8u::@6->print_str#0] -- pbuz1=pbuc1
|
||||
//SEG560 [76] phi (byte*) print_str::str#15 = (const string) str1 [phi:test_8u::@6->print_str#0] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str1
|
||||
@ -6225,7 +6229,7 @@ test_8u: {
|
||||
//SEG569 [273] call print_str
|
||||
//SEG570 [76] phi from test_8u::@8 to print_str [phi:test_8u::@8->print_str]
|
||||
print_str_from_b8:
|
||||
//SEG571 [76] phi (byte*) print_str::str#15 = (const string) test_8u::str2 [phi:test_8u::@8->print_str#0] -- pbuz1=pbuc1
|
||||
//SEG571 [76] phi (byte*) print_str::str#15 = (const string) str2 [phi:test_8u::@8->print_str#0] -- pbuz1=pbuc1
|
||||
lda #<str2
|
||||
sta print_str.str
|
||||
lda #>str2
|
||||
@ -6280,9 +6284,6 @@ test_8u: {
|
||||
//SEG592 [254] phi (byte*) print_char_cursor#138 = (byte*~) print_char_cursor#188 [phi:test_8u::@12->test_8u::@1#1] -- register_copy
|
||||
//SEG593 [254] phi (byte) test_8u::i#10 = (byte) test_8u::i#1 [phi:test_8u::@12->test_8u::@1#2] -- register_copy
|
||||
jmp b1
|
||||
str: .text " / @"
|
||||
str1: .text " = @"
|
||||
str2: .text " @"
|
||||
dividends: .byte $ff, $ff, $ff, $ff, $ff, $ff
|
||||
divisors: .byte 5, 7, $b, $d, $11, $13
|
||||
}
|
||||
@ -6327,6 +6328,9 @@ print_cls: {
|
||||
rts
|
||||
}
|
||||
print_hextab: .text "0123456789abcdef"
|
||||
str: .text " / @"
|
||||
str2: .text " @"
|
||||
str1: .text " = @"
|
||||
|
||||
REGISTER UPLIFT POTENTIAL REGISTERS
|
||||
Statement [17] (signed word) test_16s::dividend#0 ← *((const signed word[]) test_16s::dividends#0 + (byte) test_16s::i#10) [ test_16s::i#10 test_16s::dividend#0 print_line_cursor#1 ] ( main:2::test_16s:13 [ test_16s::i#10 test_16s::dividend#0 print_line_cursor#1 ] ) always clobbers reg byte a
|
||||
@ -6893,7 +6897,7 @@ test_16s: {
|
||||
//SEG53 [28] call print_str
|
||||
//SEG54 [76] phi from test_16s::@4 to print_str [phi:test_16s::@4->print_str]
|
||||
print_str_from_b4:
|
||||
//SEG55 [76] phi (byte*) print_str::str#15 = (const string) test_16s::str [phi:test_16s::@4->print_str#0] -- pbuz1=pbuc1
|
||||
//SEG55 [76] phi (byte*) print_str::str#15 = (const string) str [phi:test_16s::@4->print_str#0] -- pbuz1=pbuc1
|
||||
lda #<str
|
||||
sta print_str.str
|
||||
lda #>str
|
||||
@ -6921,7 +6925,7 @@ test_16s: {
|
||||
//SEG64 [32] call print_str
|
||||
//SEG65 [76] phi from test_16s::@6 to print_str [phi:test_16s::@6->print_str]
|
||||
print_str_from_b6:
|
||||
//SEG66 [76] phi (byte*) print_str::str#15 = (const string) test_16s::str1 [phi:test_16s::@6->print_str#0] -- pbuz1=pbuc1
|
||||
//SEG66 [76] phi (byte*) print_str::str#15 = (const string) str1 [phi:test_16s::@6->print_str#0] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str1
|
||||
@ -6949,7 +6953,7 @@ test_16s: {
|
||||
//SEG75 [36] call print_str
|
||||
//SEG76 [76] phi from test_16s::@8 to print_str [phi:test_16s::@8->print_str]
|
||||
print_str_from_b8:
|
||||
//SEG77 [76] phi (byte*) print_str::str#15 = (const string) test_16s::str2 [phi:test_16s::@8->print_str#0] -- pbuz1=pbuc1
|
||||
//SEG77 [76] phi (byte*) print_str::str#15 = (const string) str2 [phi:test_16s::@8->print_str#0] -- pbuz1=pbuc1
|
||||
lda #<str2
|
||||
sta print_str.str
|
||||
lda #>str2
|
||||
@ -6996,9 +7000,6 @@ test_16s: {
|
||||
breturn:
|
||||
//SEG93 [43] return
|
||||
rts
|
||||
str: .text " / @"
|
||||
str1: .text " = @"
|
||||
str2: .text " @"
|
||||
dividends: .word $7fff, $7fff, -$7fff, -$7fff, $7fff, -$7fff
|
||||
divisors: .word 5, -7, $b, -$d, -$11, $13
|
||||
}
|
||||
@ -7578,7 +7579,7 @@ test_8s: {
|
||||
//SEG288 [144] call print_str
|
||||
//SEG289 [76] phi from test_8s::@4 to print_str [phi:test_8s::@4->print_str]
|
||||
print_str_from_b4:
|
||||
//SEG290 [76] phi (byte*) print_str::str#15 = (const string) test_8s::str [phi:test_8s::@4->print_str#0] -- pbuz1=pbuc1
|
||||
//SEG290 [76] phi (byte*) print_str::str#15 = (const string) str [phi:test_8s::@4->print_str#0] -- pbuz1=pbuc1
|
||||
lda #<str
|
||||
sta print_str.str
|
||||
lda #>str
|
||||
@ -7604,7 +7605,7 @@ test_8s: {
|
||||
//SEG299 [148] call print_str
|
||||
//SEG300 [76] phi from test_8s::@6 to print_str [phi:test_8s::@6->print_str]
|
||||
print_str_from_b6:
|
||||
//SEG301 [76] phi (byte*) print_str::str#15 = (const string) test_8s::str1 [phi:test_8s::@6->print_str#0] -- pbuz1=pbuc1
|
||||
//SEG301 [76] phi (byte*) print_str::str#15 = (const string) str1 [phi:test_8s::@6->print_str#0] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str1
|
||||
@ -7630,7 +7631,7 @@ test_8s: {
|
||||
//SEG310 [152] call print_str
|
||||
//SEG311 [76] phi from test_8s::@8 to print_str [phi:test_8s::@8->print_str]
|
||||
print_str_from_b8:
|
||||
//SEG312 [76] phi (byte*) print_str::str#15 = (const string) test_8s::str2 [phi:test_8s::@8->print_str#0] -- pbuz1=pbuc1
|
||||
//SEG312 [76] phi (byte*) print_str::str#15 = (const string) str2 [phi:test_8s::@8->print_str#0] -- pbuz1=pbuc1
|
||||
lda #<str2
|
||||
sta print_str.str
|
||||
lda #>str2
|
||||
@ -7671,9 +7672,6 @@ test_8s: {
|
||||
breturn:
|
||||
//SEG328 [159] return
|
||||
rts
|
||||
str: .text " / @"
|
||||
str1: .text " = @"
|
||||
str2: .text " @"
|
||||
dividends: .byte $7f, -$7f, -$7f, $7f, $7f, $7f
|
||||
divisors: .byte 5, 7, -$b, -$d, $11, $13
|
||||
}
|
||||
@ -8043,7 +8041,7 @@ test_16u: {
|
||||
//SEG469 [231] call print_str
|
||||
//SEG470 [76] phi from test_16u::@4 to print_str [phi:test_16u::@4->print_str]
|
||||
print_str_from_b4:
|
||||
//SEG471 [76] phi (byte*) print_str::str#15 = (const string) test_16u::str [phi:test_16u::@4->print_str#0] -- pbuz1=pbuc1
|
||||
//SEG471 [76] phi (byte*) print_str::str#15 = (const string) str [phi:test_16u::@4->print_str#0] -- pbuz1=pbuc1
|
||||
lda #<str
|
||||
sta print_str.str
|
||||
lda #>str
|
||||
@ -8071,7 +8069,7 @@ test_16u: {
|
||||
//SEG480 [235] call print_str
|
||||
//SEG481 [76] phi from test_16u::@6 to print_str [phi:test_16u::@6->print_str]
|
||||
print_str_from_b6:
|
||||
//SEG482 [76] phi (byte*) print_str::str#15 = (const string) test_16u::str1 [phi:test_16u::@6->print_str#0] -- pbuz1=pbuc1
|
||||
//SEG482 [76] phi (byte*) print_str::str#15 = (const string) str1 [phi:test_16u::@6->print_str#0] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str1
|
||||
@ -8099,7 +8097,7 @@ test_16u: {
|
||||
//SEG491 [239] call print_str
|
||||
//SEG492 [76] phi from test_16u::@8 to print_str [phi:test_16u::@8->print_str]
|
||||
print_str_from_b8:
|
||||
//SEG493 [76] phi (byte*) print_str::str#15 = (const string) test_16u::str2 [phi:test_16u::@8->print_str#0] -- pbuz1=pbuc1
|
||||
//SEG493 [76] phi (byte*) print_str::str#15 = (const string) str2 [phi:test_16u::@8->print_str#0] -- pbuz1=pbuc1
|
||||
lda #<str2
|
||||
sta print_str.str
|
||||
lda #>str2
|
||||
@ -8146,9 +8144,6 @@ test_16u: {
|
||||
breturn:
|
||||
//SEG509 [246] return
|
||||
rts
|
||||
str: .text " / @"
|
||||
str1: .text " = @"
|
||||
str2: .text " @"
|
||||
dividends: .word $ffff, $ffff, $ffff, $ffff, $ffff, $ffff
|
||||
divisors: .word 5, 7, $b, $d, $11, $13
|
||||
}
|
||||
@ -8253,7 +8248,7 @@ test_8u: {
|
||||
//SEG547 [265] call print_str
|
||||
//SEG548 [76] phi from test_8u::@4 to print_str [phi:test_8u::@4->print_str]
|
||||
print_str_from_b4:
|
||||
//SEG549 [76] phi (byte*) print_str::str#15 = (const string) test_8u::str [phi:test_8u::@4->print_str#0] -- pbuz1=pbuc1
|
||||
//SEG549 [76] phi (byte*) print_str::str#15 = (const string) str [phi:test_8u::@4->print_str#0] -- pbuz1=pbuc1
|
||||
lda #<str
|
||||
sta print_str.str
|
||||
lda #>str
|
||||
@ -8279,7 +8274,7 @@ test_8u: {
|
||||
//SEG558 [269] call print_str
|
||||
//SEG559 [76] phi from test_8u::@6 to print_str [phi:test_8u::@6->print_str]
|
||||
print_str_from_b6:
|
||||
//SEG560 [76] phi (byte*) print_str::str#15 = (const string) test_8u::str1 [phi:test_8u::@6->print_str#0] -- pbuz1=pbuc1
|
||||
//SEG560 [76] phi (byte*) print_str::str#15 = (const string) str1 [phi:test_8u::@6->print_str#0] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str1
|
||||
@ -8305,7 +8300,7 @@ test_8u: {
|
||||
//SEG569 [273] call print_str
|
||||
//SEG570 [76] phi from test_8u::@8 to print_str [phi:test_8u::@8->print_str]
|
||||
print_str_from_b8:
|
||||
//SEG571 [76] phi (byte*) print_str::str#15 = (const string) test_8u::str2 [phi:test_8u::@8->print_str#0] -- pbuz1=pbuc1
|
||||
//SEG571 [76] phi (byte*) print_str::str#15 = (const string) str2 [phi:test_8u::@8->print_str#0] -- pbuz1=pbuc1
|
||||
lda #<str2
|
||||
sta print_str.str
|
||||
lda #>str2
|
||||
@ -8359,9 +8354,6 @@ test_8u: {
|
||||
//SEG592 [254] phi (byte*) print_char_cursor#138 = (byte*~) print_char_cursor#188 [phi:test_8u::@12->test_8u::@1#1] -- register_copy
|
||||
//SEG593 [254] phi (byte) test_8u::i#10 = (byte) test_8u::i#1 [phi:test_8u::@12->test_8u::@1#2] -- register_copy
|
||||
jmp b1
|
||||
str: .text " / @"
|
||||
str1: .text " = @"
|
||||
str2: .text " @"
|
||||
dividends: .byte $ff, $ff, $ff, $ff, $ff, $ff
|
||||
divisors: .byte 5, 7, $b, $d, $11, $13
|
||||
}
|
||||
@ -8406,6 +8398,9 @@ print_cls: {
|
||||
rts
|
||||
}
|
||||
print_hextab: .text "0123456789abcdef"
|
||||
str: .text " / @"
|
||||
str2: .text " @"
|
||||
str1: .text " = @"
|
||||
|
||||
ASSEMBLER OPTIMIZATIONS
|
||||
Removing instruction jmp b32
|
||||
@ -9074,6 +9069,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 str = (string) " / @"
|
||||
(const string) str1 str1 = (string) " = @"
|
||||
(const string) str2 str2 = (string) " @"
|
||||
(void()) test_16s()
|
||||
(label) test_16s::@1
|
||||
(label) test_16s::@10
|
||||
@ -9099,9 +9097,6 @@ FINAL SYMBOL TABLE
|
||||
(byte) test_16s::i#10 i zp ZP_BYTE:2 1.76
|
||||
(signed word) test_16s::res
|
||||
(signed word) test_16s::res#0 res zp ZP_WORD:14 2.2
|
||||
(const string) test_16s::str str = (string) " / @"
|
||||
(const string) test_16s::str1 str1 = (string) " = @"
|
||||
(const string) test_16s::str2 str2 = (string) " @"
|
||||
(void()) test_16u()
|
||||
(label) test_16u::@1
|
||||
(label) test_16u::@10
|
||||
@ -9127,9 +9122,6 @@ FINAL SYMBOL TABLE
|
||||
(byte) test_16u::i#10 i zp ZP_BYTE:2 1.76
|
||||
(word) test_16u::res
|
||||
(word) test_16u::res#0 res zp ZP_WORD:14 2.2
|
||||
(const string) test_16u::str str = (string) " / @"
|
||||
(const string) test_16u::str1 str1 = (string) " = @"
|
||||
(const string) test_16u::str2 str2 = (string) " @"
|
||||
(void()) test_8s()
|
||||
(label) test_8s::@1
|
||||
(label) test_8s::@10
|
||||
@ -9155,9 +9147,6 @@ FINAL SYMBOL TABLE
|
||||
(byte) test_8s::i#10 i zp ZP_BYTE:2 1.76
|
||||
(signed byte) test_8s::res
|
||||
(signed byte) test_8s::res#0 res zp ZP_BYTE:16 2.2
|
||||
(const string) test_8s::str str = (string) " / @"
|
||||
(const string) test_8s::str1 str1 = (string) " = @"
|
||||
(const string) test_8s::str2 str2 = (string) " @"
|
||||
(void()) test_8u()
|
||||
(label) test_8u::@1
|
||||
(label) test_8u::@10
|
||||
@ -9185,9 +9174,6 @@ FINAL SYMBOL TABLE
|
||||
(byte) test_8u::rem
|
||||
(byte) test_8u::res
|
||||
(byte) test_8u::res#0 res zp ZP_BYTE:17 2.4444444444444446
|
||||
(const string) test_8u::str str = (string) " / @"
|
||||
(const string) test_8u::str1 str1 = (string) " = @"
|
||||
(const string) test_8u::str2 str2 = (string) " @"
|
||||
|
||||
zp ZP_BYTE:2 [ test_16s::i#10 test_16s::i#1 test_8s::i#10 test_8s::i#1 test_16u::i#10 test_16u::i#1 test_8u::i#10 test_8u::i#1 ]
|
||||
zp ZP_WORD:3 [ print_line_cursor#20 print_line_cursor#39 print_line_cursor#1 print_line_cursor#41 print_cls::sc#2 print_cls::sc#1 ]
|
||||
@ -9329,7 +9315,7 @@ test_16s: {
|
||||
//SEG52 test_16s::@4
|
||||
//SEG53 [28] call print_str
|
||||
//SEG54 [76] phi from test_16s::@4 to print_str [phi:test_16s::@4->print_str]
|
||||
//SEG55 [76] phi (byte*) print_str::str#15 = (const string) test_16s::str [phi:test_16s::@4->print_str#0] -- pbuz1=pbuc1
|
||||
//SEG55 [76] phi (byte*) print_str::str#15 = (const string) str [phi:test_16s::@4->print_str#0] -- pbuz1=pbuc1
|
||||
lda #<str
|
||||
sta print_str.str
|
||||
lda #>str
|
||||
@ -9350,7 +9336,7 @@ test_16s: {
|
||||
//SEG63 test_16s::@6
|
||||
//SEG64 [32] call print_str
|
||||
//SEG65 [76] phi from test_16s::@6 to print_str [phi:test_16s::@6->print_str]
|
||||
//SEG66 [76] phi (byte*) print_str::str#15 = (const string) test_16s::str1 [phi:test_16s::@6->print_str#0] -- pbuz1=pbuc1
|
||||
//SEG66 [76] phi (byte*) print_str::str#15 = (const string) str1 [phi:test_16s::@6->print_str#0] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str1
|
||||
@ -9371,7 +9357,7 @@ test_16s: {
|
||||
//SEG74 test_16s::@8
|
||||
//SEG75 [36] call print_str
|
||||
//SEG76 [76] phi from test_16s::@8 to print_str [phi:test_16s::@8->print_str]
|
||||
//SEG77 [76] phi (byte*) print_str::str#15 = (const string) test_16s::str2 [phi:test_16s::@8->print_str#0] -- pbuz1=pbuc1
|
||||
//SEG77 [76] phi (byte*) print_str::str#15 = (const string) str2 [phi:test_16s::@8->print_str#0] -- pbuz1=pbuc1
|
||||
lda #<str2
|
||||
sta print_str.str
|
||||
lda #>str2
|
||||
@ -9406,9 +9392,6 @@ test_16s: {
|
||||
//SEG92 test_16s::@return
|
||||
//SEG93 [43] return
|
||||
rts
|
||||
str: .text " / @"
|
||||
str1: .text " = @"
|
||||
str2: .text " @"
|
||||
dividends: .word $7fff, $7fff, -$7fff, -$7fff, $7fff, -$7fff
|
||||
divisors: .word 5, -7, $b, -$d, -$11, $13
|
||||
}
|
||||
@ -9896,7 +9879,7 @@ test_8s: {
|
||||
//SEG287 test_8s::@4
|
||||
//SEG288 [144] call print_str
|
||||
//SEG289 [76] phi from test_8s::@4 to print_str [phi:test_8s::@4->print_str]
|
||||
//SEG290 [76] phi (byte*) print_str::str#15 = (const string) test_8s::str [phi:test_8s::@4->print_str#0] -- pbuz1=pbuc1
|
||||
//SEG290 [76] phi (byte*) print_str::str#15 = (const string) str [phi:test_8s::@4->print_str#0] -- pbuz1=pbuc1
|
||||
lda #<str
|
||||
sta print_str.str
|
||||
lda #>str
|
||||
@ -9915,7 +9898,7 @@ test_8s: {
|
||||
//SEG298 test_8s::@6
|
||||
//SEG299 [148] call print_str
|
||||
//SEG300 [76] phi from test_8s::@6 to print_str [phi:test_8s::@6->print_str]
|
||||
//SEG301 [76] phi (byte*) print_str::str#15 = (const string) test_8s::str1 [phi:test_8s::@6->print_str#0] -- pbuz1=pbuc1
|
||||
//SEG301 [76] phi (byte*) print_str::str#15 = (const string) str1 [phi:test_8s::@6->print_str#0] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str1
|
||||
@ -9934,7 +9917,7 @@ test_8s: {
|
||||
//SEG309 test_8s::@8
|
||||
//SEG310 [152] call print_str
|
||||
//SEG311 [76] phi from test_8s::@8 to print_str [phi:test_8s::@8->print_str]
|
||||
//SEG312 [76] phi (byte*) print_str::str#15 = (const string) test_8s::str2 [phi:test_8s::@8->print_str#0] -- pbuz1=pbuc1
|
||||
//SEG312 [76] phi (byte*) print_str::str#15 = (const string) str2 [phi:test_8s::@8->print_str#0] -- pbuz1=pbuc1
|
||||
lda #<str2
|
||||
sta print_str.str
|
||||
lda #>str2
|
||||
@ -9964,9 +9947,6 @@ test_8s: {
|
||||
//SEG327 test_8s::@return
|
||||
//SEG328 [159] return
|
||||
rts
|
||||
str: .text " / @"
|
||||
str1: .text " = @"
|
||||
str2: .text " @"
|
||||
dividends: .byte $7f, -$7f, -$7f, $7f, $7f, $7f
|
||||
divisors: .byte 5, 7, -$b, -$d, $11, $13
|
||||
}
|
||||
@ -10268,7 +10248,7 @@ test_16u: {
|
||||
//SEG468 test_16u::@4
|
||||
//SEG469 [231] call print_str
|
||||
//SEG470 [76] phi from test_16u::@4 to print_str [phi:test_16u::@4->print_str]
|
||||
//SEG471 [76] phi (byte*) print_str::str#15 = (const string) test_16u::str [phi:test_16u::@4->print_str#0] -- pbuz1=pbuc1
|
||||
//SEG471 [76] phi (byte*) print_str::str#15 = (const string) str [phi:test_16u::@4->print_str#0] -- pbuz1=pbuc1
|
||||
lda #<str
|
||||
sta print_str.str
|
||||
lda #>str
|
||||
@ -10289,7 +10269,7 @@ test_16u: {
|
||||
//SEG479 test_16u::@6
|
||||
//SEG480 [235] call print_str
|
||||
//SEG481 [76] phi from test_16u::@6 to print_str [phi:test_16u::@6->print_str]
|
||||
//SEG482 [76] phi (byte*) print_str::str#15 = (const string) test_16u::str1 [phi:test_16u::@6->print_str#0] -- pbuz1=pbuc1
|
||||
//SEG482 [76] phi (byte*) print_str::str#15 = (const string) str1 [phi:test_16u::@6->print_str#0] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str1
|
||||
@ -10310,7 +10290,7 @@ test_16u: {
|
||||
//SEG490 test_16u::@8
|
||||
//SEG491 [239] call print_str
|
||||
//SEG492 [76] phi from test_16u::@8 to print_str [phi:test_16u::@8->print_str]
|
||||
//SEG493 [76] phi (byte*) print_str::str#15 = (const string) test_16u::str2 [phi:test_16u::@8->print_str#0] -- pbuz1=pbuc1
|
||||
//SEG493 [76] phi (byte*) print_str::str#15 = (const string) str2 [phi:test_16u::@8->print_str#0] -- pbuz1=pbuc1
|
||||
lda #<str2
|
||||
sta print_str.str
|
||||
lda #>str2
|
||||
@ -10345,9 +10325,6 @@ test_16u: {
|
||||
//SEG508 test_16u::@return
|
||||
//SEG509 [246] return
|
||||
rts
|
||||
str: .text " / @"
|
||||
str1: .text " = @"
|
||||
str2: .text " @"
|
||||
dividends: .word $ffff, $ffff, $ffff, $ffff, $ffff, $ffff
|
||||
divisors: .word 5, 7, $b, $d, $11, $13
|
||||
}
|
||||
@ -10435,7 +10412,7 @@ test_8u: {
|
||||
//SEG546 test_8u::@4
|
||||
//SEG547 [265] call print_str
|
||||
//SEG548 [76] phi from test_8u::@4 to print_str [phi:test_8u::@4->print_str]
|
||||
//SEG549 [76] phi (byte*) print_str::str#15 = (const string) test_8u::str [phi:test_8u::@4->print_str#0] -- pbuz1=pbuc1
|
||||
//SEG549 [76] phi (byte*) print_str::str#15 = (const string) str [phi:test_8u::@4->print_str#0] -- pbuz1=pbuc1
|
||||
lda #<str
|
||||
sta print_str.str
|
||||
lda #>str
|
||||
@ -10454,7 +10431,7 @@ test_8u: {
|
||||
//SEG557 test_8u::@6
|
||||
//SEG558 [269] call print_str
|
||||
//SEG559 [76] phi from test_8u::@6 to print_str [phi:test_8u::@6->print_str]
|
||||
//SEG560 [76] phi (byte*) print_str::str#15 = (const string) test_8u::str1 [phi:test_8u::@6->print_str#0] -- pbuz1=pbuc1
|
||||
//SEG560 [76] phi (byte*) print_str::str#15 = (const string) str1 [phi:test_8u::@6->print_str#0] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str1
|
||||
@ -10473,7 +10450,7 @@ test_8u: {
|
||||
//SEG568 test_8u::@8
|
||||
//SEG569 [273] call print_str
|
||||
//SEG570 [76] phi from test_8u::@8 to print_str [phi:test_8u::@8->print_str]
|
||||
//SEG571 [76] phi (byte*) print_str::str#15 = (const string) test_8u::str2 [phi:test_8u::@8->print_str#0] -- pbuz1=pbuc1
|
||||
//SEG571 [76] phi (byte*) print_str::str#15 = (const string) str2 [phi:test_8u::@8->print_str#0] -- pbuz1=pbuc1
|
||||
lda #<str2
|
||||
sta print_str.str
|
||||
lda #>str2
|
||||
@ -10515,9 +10492,6 @@ test_8u: {
|
||||
//SEG592 [254] phi (byte*) print_char_cursor#138 = (byte*~) print_char_cursor#188 [phi:test_8u::@12->test_8u::@1#1] -- register_copy
|
||||
//SEG593 [254] phi (byte) test_8u::i#10 = (byte) test_8u::i#1 [phi:test_8u::@12->test_8u::@1#2] -- register_copy
|
||||
jmp b1
|
||||
str: .text " / @"
|
||||
str1: .text " = @"
|
||||
str2: .text " @"
|
||||
dividends: .byte $ff, $ff, $ff, $ff, $ff, $ff
|
||||
divisors: .byte 5, 7, $b, $d, $11, $13
|
||||
}
|
||||
@ -10556,4 +10530,7 @@ print_cls: {
|
||||
rts
|
||||
}
|
||||
print_hextab: .text "0123456789abcdef"
|
||||
str: .text " / @"
|
||||
str2: .text " @"
|
||||
str1: .text " = @"
|
||||
|
||||
|
@ -299,6 +299,9 @@
|
||||
(signed byte~) rem8s#33 reg byte x 4.0
|
||||
(byte) rem8u
|
||||
(byte) rem8u#17 reg byte x 0.5
|
||||
(const string) str str = (string) " / @"
|
||||
(const string) str1 str1 = (string) " = @"
|
||||
(const string) str2 str2 = (string) " @"
|
||||
(void()) test_16s()
|
||||
(label) test_16s::@1
|
||||
(label) test_16s::@10
|
||||
@ -324,9 +327,6 @@
|
||||
(byte) test_16s::i#10 i zp ZP_BYTE:2 1.76
|
||||
(signed word) test_16s::res
|
||||
(signed word) test_16s::res#0 res zp ZP_WORD:14 2.2
|
||||
(const string) test_16s::str str = (string) " / @"
|
||||
(const string) test_16s::str1 str1 = (string) " = @"
|
||||
(const string) test_16s::str2 str2 = (string) " @"
|
||||
(void()) test_16u()
|
||||
(label) test_16u::@1
|
||||
(label) test_16u::@10
|
||||
@ -352,9 +352,6 @@
|
||||
(byte) test_16u::i#10 i zp ZP_BYTE:2 1.76
|
||||
(word) test_16u::res
|
||||
(word) test_16u::res#0 res zp ZP_WORD:14 2.2
|
||||
(const string) test_16u::str str = (string) " / @"
|
||||
(const string) test_16u::str1 str1 = (string) " = @"
|
||||
(const string) test_16u::str2 str2 = (string) " @"
|
||||
(void()) test_8s()
|
||||
(label) test_8s::@1
|
||||
(label) test_8s::@10
|
||||
@ -380,9 +377,6 @@
|
||||
(byte) test_8s::i#10 i zp ZP_BYTE:2 1.76
|
||||
(signed byte) test_8s::res
|
||||
(signed byte) test_8s::res#0 res zp ZP_BYTE:16 2.2
|
||||
(const string) test_8s::str str = (string) " / @"
|
||||
(const string) test_8s::str1 str1 = (string) " = @"
|
||||
(const string) test_8s::str2 str2 = (string) " @"
|
||||
(void()) test_8u()
|
||||
(label) test_8u::@1
|
||||
(label) test_8u::@10
|
||||
@ -410,9 +404,6 @@
|
||||
(byte) test_8u::rem
|
||||
(byte) test_8u::res
|
||||
(byte) test_8u::res#0 res zp ZP_BYTE:17 2.4444444444444446
|
||||
(const string) test_8u::str str = (string) " / @"
|
||||
(const string) test_8u::str1 str1 = (string) " = @"
|
||||
(const string) test_8u::str2 str2 = (string) " @"
|
||||
|
||||
zp ZP_BYTE:2 [ test_16s::i#10 test_16s::i#1 test_8s::i#10 test_8s::i#1 test_16u::i#10 test_16u::i#1 test_8u::i#10 test_8u::i#1 ]
|
||||
zp ZP_WORD:3 [ print_line_cursor#20 print_line_cursor#39 print_line_cursor#1 print_line_cursor#41 print_cls::sc#2 print_cls::sc#1 ]
|
||||
|
@ -123,7 +123,6 @@ mul16s_compare: {
|
||||
jsr print_str
|
||||
jsr print_ln
|
||||
jmp breturn
|
||||
str: .text ".@"
|
||||
str1: .text "signed word multiply results match!@"
|
||||
}
|
||||
// Print a newline
|
||||
@ -230,10 +229,6 @@ mul16s_error: {
|
||||
jsr print_ln
|
||||
rts
|
||||
str: .text "signed word multiply mismatch @"
|
||||
str1: .text "*@"
|
||||
str2: .text " slow:@"
|
||||
str3: .text " / normal:@"
|
||||
str4: .text " / fast:@"
|
||||
}
|
||||
// Print a signed dword as HEX
|
||||
// print_sdword(signed dword zeropage($b) dw)
|
||||
@ -880,7 +875,6 @@ mul16u_compare: {
|
||||
jsr print_str
|
||||
jsr print_ln
|
||||
jmp breturn
|
||||
str: .text ".@"
|
||||
str1: .text "word multiply results match!@"
|
||||
}
|
||||
// mul16u_error(word zeropage(3) a, word zeropage($17) b, dword zeropage($b) ms, dword zeropage($19) mn, dword zeropage($11) mf)
|
||||
@ -947,10 +941,6 @@ mul16u_error: {
|
||||
jsr print_ln
|
||||
rts
|
||||
str: .text "multiply mismatch @"
|
||||
str1: .text "*@"
|
||||
str2: .text " slow:@"
|
||||
str3: .text " / normal:@"
|
||||
str4: .text " / fast:@"
|
||||
}
|
||||
// Slow multiplication of unsigned words
|
||||
// Calculate an unsigned multiplication by repeated addition
|
||||
@ -1152,3 +1142,8 @@ print_cls: {
|
||||
// >g(x) = >((( x - 255) * ( x - 255 ))/4)
|
||||
.align $100
|
||||
mulf_sqr2_hi: .fill $200, 0
|
||||
str: .text ".@"
|
||||
str4: .text " / fast:@"
|
||||
str3: .text " / normal:@"
|
||||
str1: .text "*@"
|
||||
str2: .text " slow:@"
|
||||
|
@ -125,7 +125,7 @@ print_ln::@return: scope:[print_ln] from print_ln::@1
|
||||
to:@return
|
||||
print_str: scope:[print_str] from mul16s_compare::@1 mul16s_compare::@17 mul16s_error mul16s_error::@2 mul16s_error::@4 mul16s_error::@6 mul16s_error::@8 mul16u_compare::@1 mul16u_compare::@17 mul16u_error mul16u_error::@2 mul16u_error::@4 mul16u_error::@6 mul16u_error::@8
|
||||
[64] (byte*) print_char_cursor#148 ← phi( mul16s_compare::@1/(byte*) print_char_cursor#143 mul16s_compare::@17/(byte*~) print_char_cursor#185 mul16s_error/(byte*) print_char_cursor#128 mul16s_error::@2/(byte*) print_char_cursor#20 mul16s_error::@4/(byte*) print_char_cursor#20 mul16s_error::@6/(byte*) print_char_cursor#20 mul16s_error::@8/(byte*) print_char_cursor#20 mul16u_compare::@1/(byte*) print_char_cursor#139 mul16u_compare::@17/(byte*~) print_char_cursor#192 mul16u_error/(byte*) print_char_cursor#128 mul16u_error::@2/(byte*) print_char_cursor#20 mul16u_error::@4/(byte*) print_char_cursor#20 mul16u_error::@6/(byte*) print_char_cursor#20 mul16u_error::@8/(byte*) print_char_cursor#20 )
|
||||
[64] (byte*) print_str::str#17 ← phi( mul16s_compare::@1/(const string) mul16s_compare::str mul16s_compare::@17/(const string) mul16s_compare::str1 mul16s_error/(const string) mul16s_error::str mul16s_error::@2/(const string) mul16s_error::str1 mul16s_error::@4/(const string) mul16s_error::str2 mul16s_error::@6/(const string) mul16s_error::str3 mul16s_error::@8/(const string) mul16s_error::str4 mul16u_compare::@1/(const string) mul16u_compare::str mul16u_compare::@17/(const string) mul16u_compare::str1 mul16u_error/(const string) mul16u_error::str mul16u_error::@2/(const string) mul16u_error::str1 mul16u_error::@4/(const string) mul16u_error::str2 mul16u_error::@6/(const string) mul16u_error::str3 mul16u_error::@8/(const string) mul16u_error::str4 )
|
||||
[64] (byte*) print_str::str#17 ← phi( mul16s_compare::@1/(const string) str mul16s_compare::@17/(const string) mul16s_compare::str1 mul16s_error/(const string) mul16s_error::str mul16s_error::@2/(const string) str1 mul16s_error::@4/(const string) str2 mul16s_error::@6/(const string) str3 mul16s_error::@8/(const string) str4 mul16u_compare::@1/(const string) str mul16u_compare::@17/(const string) mul16u_compare::str1 mul16u_error/(const string) mul16u_error::str mul16u_error::@2/(const string) str1 mul16u_error::@4/(const string) str2 mul16u_error::@6/(const string) str3 mul16u_error::@8/(const string) str4 )
|
||||
to:print_str::@1
|
||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||
[65] (byte*) print_char_cursor#128 ← phi( print_str/(byte*) print_char_cursor#148 print_str::@2/(byte*) print_char_cursor#1 )
|
||||
|
@ -3092,6 +3092,7 @@ Constant (const byte*) mulf_init::$18 = mulf_sqr1_lo#0+256
|
||||
Constant (const byte*) mulf_init::$19 = mulf_sqr2_hi#0+511
|
||||
Constant (const byte*) mulf_init::$20 = mulf_sqr1_hi#0+256
|
||||
Successful SSA optimization Pass2ConstantIdentification
|
||||
Successful SSA optimization Pass2ConstantStringConsolidation
|
||||
Eliminating Noop Cast (word) print_word::w#0 ← ((word)) (signed word) print_sword::w#4
|
||||
Eliminating Noop Cast (word) mul16u::a#1 ← ((word)) (signed word) mul16s::a#0
|
||||
Eliminating Noop Cast (word) mul16u::b#0 ← ((word)) (signed word) mul16s::b#0
|
||||
@ -3196,7 +3197,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[512]) mulf_sqr2_lo#0
|
||||
Constant inlined mul16u_error::str1 = (const string) str1
|
||||
Constant inlined mul16u_error::str3 = (const string) str3
|
||||
Constant inlined mulf_init::sqr2_hi#0 = (const byte[512]) mulf_sqr2_hi#0
|
||||
Constant inlined mul16u_error::str2 = (const string) str2
|
||||
Constant inlined mul16u_error::str4 = (const string) str4
|
||||
Constant inlined $0 = (const byte[]) print_hextab#0
|
||||
Constant inlined muls16s::j#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
Constant inlined mul16u_compare::ok#0 = (byte/signed byte/word/signed word/dword/signed dword) 1
|
||||
@ -3206,9 +3211,13 @@ Constant inlined muls16u::i#0 = (byte/signed byte/word/signed word/dword/signed
|
||||
Constant inlined mul16u_compare::ok#2 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
Constant inlined mulf_init::$20 = (const byte[512]) mulf_sqr1_hi#0+(word/signed word/dword/signed dword) 256
|
||||
Constant inlined mul16u_compare::ok#1 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
Constant inlined mul16s_error::str1 = (const string) str1
|
||||
Constant inlined muls16u::m#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
Constant inlined mul16s_compare::a#0 = -(word/signed word/dword/signed dword) 32767
|
||||
Constant inlined mulf_init::x_255#0 = ((byte))-(byte/signed byte/word/signed word/dword/signed dword) 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 mulf_init::x_2#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
Constant inlined mul16u_compare::a#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
Constant inlined mul16s_compare::j#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
@ -3218,29 +3227,30 @@ Constant inlined print_str::str#9 = (const string) mul16s_compare::str1
|
||||
Constant inlined mulf_init::sqr1_hi#0 = (const byte[512]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1
|
||||
Constant inlined mulf_init::$10 = -(byte/signed byte/word/signed word/dword/signed dword) 1
|
||||
Constant inlined mulf_init::sqr1_lo#0 = (const byte[512]) mulf_sqr1_lo#0+(byte/signed byte/word/signed word/dword/signed dword) 1
|
||||
Constant inlined print_str::str#4 = (const string) mul16u_error::str1
|
||||
Constant inlined print_str::str#4 = (const string) str1
|
||||
Constant inlined mulf_init::$15 = (const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511
|
||||
Constant inlined print_str::str#3 = (const string) mul16u_error::str
|
||||
Constant inlined print_str::str#2 = (const string) mul16u_compare::str1
|
||||
Constant inlined print_str::str#1 = (const string) mul16u_compare::str
|
||||
Constant inlined print_str::str#1 = (const string) str
|
||||
Constant inlined mulf_init::$18 = (const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 256
|
||||
Constant inlined print_str::str#8 = (const string) mul16s_compare::str
|
||||
Constant inlined print_str::str#8 = (const string) str
|
||||
Constant inlined mulf_init::$19 = (const byte[512]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) 511
|
||||
Constant inlined print_str::str#7 = (const string) mul16u_error::str4
|
||||
Constant inlined print_str::str#6 = (const string) mul16u_error::str3
|
||||
Constant inlined print_str::str#7 = (const string) str4
|
||||
Constant inlined print_str::str#6 = (const string) str3
|
||||
Constant inlined mulf_init::$17 = (const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511
|
||||
Constant inlined print_str::str#5 = (const string) mul16u_error::str2
|
||||
Constant inlined print_str::str#5 = (const string) str2
|
||||
Constant inlined mulf_init::c#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
Constant inlined muls16s::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
Constant inlined print_cls::$0 = ((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000
|
||||
Constant inlined print_str::str#13 = (const string) mul16s_error::str3
|
||||
Constant inlined print_str::str#12 = (const string) mul16s_error::str2
|
||||
Constant inlined print_str::str#11 = (const string) mul16s_error::str1
|
||||
Constant inlined mul16s_compare::str = (const string) str
|
||||
Constant inlined print_str::str#13 = (const string) str3
|
||||
Constant inlined print_str::str#12 = (const string) str2
|
||||
Constant inlined print_str::str#11 = (const string) str1
|
||||
Constant inlined print_str::str#10 = (const string) mul16s_error::str
|
||||
Constant inlined muls16s::m#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
Constant inlined mul16s_compare::ok#0 = (byte/signed byte/word/signed word/dword/signed dword) 1
|
||||
Constant inlined mul16s_compare::ok#1 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
Constant inlined print_str::str#14 = (const string) mul16s_error::str4
|
||||
Constant inlined print_str::str#14 = (const string) str4
|
||||
Constant inlined mul16s_compare::ok#2 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
Constant inlined mul16u::res#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
Constant inlined mul16s_compare::b#0 = -(word/signed word/dword/signed dword) 32767
|
||||
@ -3252,6 +3262,7 @@ Constant inlined print_cls::sc#0 = ((byte*))(word/signed word/dword/signed dword
|
||||
Constant inlined mulf_init::$8 = (const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512
|
||||
Constant inlined print_char::ch#1 = (byte) '-'
|
||||
Constant inlined print_char::ch#0 = (byte) '-'
|
||||
Constant inlined mul16u_compare::str = (const string) str
|
||||
Successful SSA optimization Pass2ConstantInlining
|
||||
Added new block during phi lifting mul16s_compare::@20(between mul16s_compare::@10 and mul16s_compare::@1)
|
||||
Added new block during phi lifting mul16s_compare::@21(between mul16s_compare::@5 and mul16s_compare::@2)
|
||||
@ -3629,7 +3640,7 @@ print_ln::@return: scope:[print_ln] from print_ln::@1
|
||||
to:@return
|
||||
print_str: scope:[print_str] from mul16s_compare::@1 mul16s_compare::@17 mul16s_error mul16s_error::@2 mul16s_error::@4 mul16s_error::@6 mul16s_error::@8 mul16u_compare::@1 mul16u_compare::@17 mul16u_error mul16u_error::@2 mul16u_error::@4 mul16u_error::@6 mul16u_error::@8
|
||||
[64] (byte*) print_char_cursor#148 ← phi( mul16s_compare::@1/(byte*) print_char_cursor#143 mul16s_compare::@17/(byte*~) print_char_cursor#185 mul16s_error/(byte*) print_char_cursor#128 mul16s_error::@2/(byte*) print_char_cursor#20 mul16s_error::@4/(byte*) print_char_cursor#20 mul16s_error::@6/(byte*) print_char_cursor#20 mul16s_error::@8/(byte*) print_char_cursor#20 mul16u_compare::@1/(byte*) print_char_cursor#139 mul16u_compare::@17/(byte*~) print_char_cursor#192 mul16u_error/(byte*) print_char_cursor#128 mul16u_error::@2/(byte*) print_char_cursor#20 mul16u_error::@4/(byte*) print_char_cursor#20 mul16u_error::@6/(byte*) print_char_cursor#20 mul16u_error::@8/(byte*) print_char_cursor#20 )
|
||||
[64] (byte*) print_str::str#17 ← phi( mul16s_compare::@1/(const string) mul16s_compare::str mul16s_compare::@17/(const string) mul16s_compare::str1 mul16s_error/(const string) mul16s_error::str mul16s_error::@2/(const string) mul16s_error::str1 mul16s_error::@4/(const string) mul16s_error::str2 mul16s_error::@6/(const string) mul16s_error::str3 mul16s_error::@8/(const string) mul16s_error::str4 mul16u_compare::@1/(const string) mul16u_compare::str mul16u_compare::@17/(const string) mul16u_compare::str1 mul16u_error/(const string) mul16u_error::str mul16u_error::@2/(const string) mul16u_error::str1 mul16u_error::@4/(const string) mul16u_error::str2 mul16u_error::@6/(const string) mul16u_error::str3 mul16u_error::@8/(const string) mul16u_error::str4 )
|
||||
[64] (byte*) print_str::str#17 ← phi( mul16s_compare::@1/(const string) str mul16s_compare::@17/(const string) mul16s_compare::str1 mul16s_error/(const string) mul16s_error::str mul16s_error::@2/(const string) str1 mul16s_error::@4/(const string) str2 mul16s_error::@6/(const string) str3 mul16s_error::@8/(const string) str4 mul16u_compare::@1/(const string) str mul16u_compare::@17/(const string) mul16u_compare::str1 mul16u_error/(const string) mul16u_error::str mul16u_error::@2/(const string) str1 mul16u_error::@4/(const string) str2 mul16u_error::@6/(const string) str3 mul16u_error::@8/(const string) str4 )
|
||||
to:print_str::@1
|
||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||
[65] (byte*) print_char_cursor#128 ← phi( print_str/(byte*) print_char_cursor#148 print_str::@2/(byte*) print_char_cursor#1 )
|
||||
@ -4825,7 +4836,7 @@ mul16s_compare: {
|
||||
//SEG40 [64] phi from mul16s_compare::@1 to print_str [phi:mul16s_compare::@1->print_str]
|
||||
print_str_from_b1:
|
||||
//SEG41 [64] phi (byte*) print_char_cursor#148 = (byte*) print_char_cursor#143 [phi:mul16s_compare::@1->print_str#0] -- register_copy
|
||||
//SEG42 [64] phi (byte*) print_str::str#17 = (const string) mul16s_compare::str [phi:mul16s_compare::@1->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG42 [64] phi (byte*) print_str::str#17 = (const string) str [phi:mul16s_compare::@1->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str
|
||||
sta print_str.str
|
||||
lda #>str
|
||||
@ -5140,7 +5151,6 @@ mul16s_compare: {
|
||||
b4_from_b22:
|
||||
//SEG123 [38] phi (byte) mul16s_compare::ok#3 = (byte) mul16s_compare::ok#4 [phi:mul16s_compare::@22->mul16s_compare::@4#0] -- register_copy
|
||||
jmp b4
|
||||
str: .text ".@"
|
||||
str1: .text "signed word multiply results match!@"
|
||||
}
|
||||
//SEG124 print_ln
|
||||
@ -5258,7 +5268,7 @@ mul16s_error: {
|
||||
//SEG157 [64] phi from mul16s_error::@2 to print_str [phi:mul16s_error::@2->print_str]
|
||||
print_str_from_b2:
|
||||
//SEG158 [64] phi (byte*) print_char_cursor#148 = (byte*) print_char_cursor#20 [phi:mul16s_error::@2->print_str#0] -- register_copy
|
||||
//SEG159 [64] phi (byte*) print_str::str#17 = (const string) mul16s_error::str1 [phi:mul16s_error::@2->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG159 [64] phi (byte*) print_str::str#17 = (const string) str1 [phi:mul16s_error::@2->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str1
|
||||
@ -5286,7 +5296,7 @@ mul16s_error: {
|
||||
//SEG168 [64] phi from mul16s_error::@4 to print_str [phi:mul16s_error::@4->print_str]
|
||||
print_str_from_b4:
|
||||
//SEG169 [64] phi (byte*) print_char_cursor#148 = (byte*) print_char_cursor#20 [phi:mul16s_error::@4->print_str#0] -- register_copy
|
||||
//SEG170 [64] phi (byte*) print_str::str#17 = (const string) mul16s_error::str2 [phi:mul16s_error::@4->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG170 [64] phi (byte*) print_str::str#17 = (const string) str2 [phi:mul16s_error::@4->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str2
|
||||
sta print_str.str
|
||||
lda #>str2
|
||||
@ -5318,7 +5328,7 @@ mul16s_error: {
|
||||
//SEG179 [64] phi from mul16s_error::@6 to print_str [phi:mul16s_error::@6->print_str]
|
||||
print_str_from_b6:
|
||||
//SEG180 [64] phi (byte*) print_char_cursor#148 = (byte*) print_char_cursor#20 [phi:mul16s_error::@6->print_str#0] -- register_copy
|
||||
//SEG181 [64] phi (byte*) print_str::str#17 = (const string) mul16s_error::str3 [phi:mul16s_error::@6->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG181 [64] phi (byte*) print_str::str#17 = (const string) str3 [phi:mul16s_error::@6->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str3
|
||||
sta print_str.str
|
||||
lda #>str3
|
||||
@ -5350,7 +5360,7 @@ mul16s_error: {
|
||||
//SEG190 [64] phi from mul16s_error::@8 to print_str [phi:mul16s_error::@8->print_str]
|
||||
print_str_from_b8:
|
||||
//SEG191 [64] phi (byte*) print_char_cursor#148 = (byte*) print_char_cursor#20 [phi:mul16s_error::@8->print_str#0] -- register_copy
|
||||
//SEG192 [64] phi (byte*) print_str::str#17 = (const string) mul16s_error::str4 [phi:mul16s_error::@8->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG192 [64] phi (byte*) print_str::str#17 = (const string) str4 [phi:mul16s_error::@8->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str4
|
||||
sta print_str.str
|
||||
lda #>str4
|
||||
@ -5390,10 +5400,6 @@ mul16s_error: {
|
||||
//SEG205 [93] return
|
||||
rts
|
||||
str: .text "signed word multiply mismatch @"
|
||||
str1: .text "*@"
|
||||
str2: .text " slow:@"
|
||||
str3: .text " / normal:@"
|
||||
str4: .text " / fast:@"
|
||||
}
|
||||
//SEG206 print_sdword
|
||||
// Print a signed dword as HEX
|
||||
@ -6373,7 +6379,7 @@ mul16u_compare: {
|
||||
//SEG434 [64] phi from mul16u_compare::@1 to print_str [phi:mul16u_compare::@1->print_str]
|
||||
print_str_from_b1:
|
||||
//SEG435 [64] phi (byte*) print_char_cursor#148 = (byte*) print_char_cursor#139 [phi:mul16u_compare::@1->print_str#0] -- register_copy
|
||||
//SEG436 [64] phi (byte*) print_str::str#17 = (const string) mul16u_compare::str [phi:mul16u_compare::@1->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG436 [64] phi (byte*) print_str::str#17 = (const string) str [phi:mul16u_compare::@1->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str
|
||||
sta print_str.str
|
||||
lda #>str
|
||||
@ -6700,7 +6706,6 @@ mul16u_compare: {
|
||||
b4_from_b22:
|
||||
//SEG523 [228] phi (byte) mul16u_compare::ok#3 = (byte) mul16u_compare::ok#4 [phi:mul16u_compare::@22->mul16u_compare::@4#0] -- register_copy
|
||||
jmp b4
|
||||
str: .text ".@"
|
||||
str1: .text "word multiply results match!@"
|
||||
}
|
||||
//SEG524 mul16u_error
|
||||
@ -6744,7 +6749,7 @@ mul16u_error: {
|
||||
//SEG538 [64] phi from mul16u_error::@2 to print_str [phi:mul16u_error::@2->print_str]
|
||||
print_str_from_b2:
|
||||
//SEG539 [64] phi (byte*) print_char_cursor#148 = (byte*) print_char_cursor#20 [phi:mul16u_error::@2->print_str#0] -- register_copy
|
||||
//SEG540 [64] phi (byte*) print_str::str#17 = (const string) mul16u_error::str1 [phi:mul16u_error::@2->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG540 [64] phi (byte*) print_str::str#17 = (const string) str1 [phi:mul16u_error::@2->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str1
|
||||
@ -6773,7 +6778,7 @@ mul16u_error: {
|
||||
//SEG550 [64] phi from mul16u_error::@4 to print_str [phi:mul16u_error::@4->print_str]
|
||||
print_str_from_b4:
|
||||
//SEG551 [64] phi (byte*) print_char_cursor#148 = (byte*) print_char_cursor#20 [phi:mul16u_error::@4->print_str#0] -- register_copy
|
||||
//SEG552 [64] phi (byte*) print_str::str#17 = (const string) mul16u_error::str2 [phi:mul16u_error::@4->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG552 [64] phi (byte*) print_str::str#17 = (const string) str2 [phi:mul16u_error::@4->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str2
|
||||
sta print_str.str
|
||||
lda #>str2
|
||||
@ -6806,7 +6811,7 @@ mul16u_error: {
|
||||
//SEG562 [64] phi from mul16u_error::@6 to print_str [phi:mul16u_error::@6->print_str]
|
||||
print_str_from_b6:
|
||||
//SEG563 [64] phi (byte*) print_char_cursor#148 = (byte*) print_char_cursor#20 [phi:mul16u_error::@6->print_str#0] -- register_copy
|
||||
//SEG564 [64] phi (byte*) print_str::str#17 = (const string) mul16u_error::str3 [phi:mul16u_error::@6->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG564 [64] phi (byte*) print_str::str#17 = (const string) str3 [phi:mul16u_error::@6->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str3
|
||||
sta print_str.str
|
||||
lda #>str3
|
||||
@ -6839,7 +6844,7 @@ mul16u_error: {
|
||||
//SEG574 [64] phi from mul16u_error::@8 to print_str [phi:mul16u_error::@8->print_str]
|
||||
print_str_from_b8:
|
||||
//SEG575 [64] phi (byte*) print_char_cursor#148 = (byte*) print_char_cursor#20 [phi:mul16u_error::@8->print_str#0] -- register_copy
|
||||
//SEG576 [64] phi (byte*) print_str::str#17 = (const string) mul16u_error::str4 [phi:mul16u_error::@8->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG576 [64] phi (byte*) print_str::str#17 = (const string) str4 [phi:mul16u_error::@8->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str4
|
||||
sta print_str.str
|
||||
lda #>str4
|
||||
@ -6884,10 +6889,6 @@ mul16u_error: {
|
||||
//SEG590 [271] return
|
||||
rts
|
||||
str: .text "multiply mismatch @"
|
||||
str1: .text "*@"
|
||||
str2: .text " slow:@"
|
||||
str3: .text " / normal:@"
|
||||
str4: .text " / fast:@"
|
||||
}
|
||||
//SEG591 muls16u
|
||||
// Slow multiplication of unsigned words
|
||||
@ -7243,6 +7244,11 @@ print_cls: {
|
||||
// >g(x) = >((( x - 255) * ( x - 255 ))/4)
|
||||
.align $100
|
||||
mulf_sqr2_hi: .fill $200, 0
|
||||
str: .text ".@"
|
||||
str4: .text " / fast:@"
|
||||
str3: .text " / normal:@"
|
||||
str1: .text "*@"
|
||||
str2: .text " slow:@"
|
||||
|
||||
REGISTER UPLIFT POTENTIAL REGISTERS
|
||||
Statement [4] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 5 [ ] ( main:2 [ ] ) always clobbers reg byte a
|
||||
@ -7887,7 +7893,7 @@ mul16s_compare: {
|
||||
//SEG40 [64] phi from mul16s_compare::@1 to print_str [phi:mul16s_compare::@1->print_str]
|
||||
print_str_from_b1:
|
||||
//SEG41 [64] phi (byte*) print_char_cursor#148 = (byte*) print_char_cursor#143 [phi:mul16s_compare::@1->print_str#0] -- register_copy
|
||||
//SEG42 [64] phi (byte*) print_str::str#17 = (const string) mul16s_compare::str [phi:mul16s_compare::@1->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG42 [64] phi (byte*) print_str::str#17 = (const string) str [phi:mul16s_compare::@1->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str
|
||||
sta print_str.str
|
||||
lda #>str
|
||||
@ -8092,7 +8098,6 @@ mul16s_compare: {
|
||||
b4_from_b22:
|
||||
//SEG123 [38] phi (byte) mul16s_compare::ok#3 = (byte) mul16s_compare::ok#4 [phi:mul16s_compare::@22->mul16s_compare::@4#0] -- register_copy
|
||||
jmp b4
|
||||
str: .text ".@"
|
||||
str1: .text "signed word multiply results match!@"
|
||||
}
|
||||
//SEG124 print_ln
|
||||
@ -8206,7 +8211,7 @@ mul16s_error: {
|
||||
//SEG157 [64] phi from mul16s_error::@2 to print_str [phi:mul16s_error::@2->print_str]
|
||||
print_str_from_b2:
|
||||
//SEG158 [64] phi (byte*) print_char_cursor#148 = (byte*) print_char_cursor#20 [phi:mul16s_error::@2->print_str#0] -- register_copy
|
||||
//SEG159 [64] phi (byte*) print_str::str#17 = (const string) mul16s_error::str1 [phi:mul16s_error::@2->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG159 [64] phi (byte*) print_str::str#17 = (const string) str1 [phi:mul16s_error::@2->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str1
|
||||
@ -8234,7 +8239,7 @@ mul16s_error: {
|
||||
//SEG168 [64] phi from mul16s_error::@4 to print_str [phi:mul16s_error::@4->print_str]
|
||||
print_str_from_b4:
|
||||
//SEG169 [64] phi (byte*) print_char_cursor#148 = (byte*) print_char_cursor#20 [phi:mul16s_error::@4->print_str#0] -- register_copy
|
||||
//SEG170 [64] phi (byte*) print_str::str#17 = (const string) mul16s_error::str2 [phi:mul16s_error::@4->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG170 [64] phi (byte*) print_str::str#17 = (const string) str2 [phi:mul16s_error::@4->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str2
|
||||
sta print_str.str
|
||||
lda #>str2
|
||||
@ -8258,7 +8263,7 @@ mul16s_error: {
|
||||
//SEG179 [64] phi from mul16s_error::@6 to print_str [phi:mul16s_error::@6->print_str]
|
||||
print_str_from_b6:
|
||||
//SEG180 [64] phi (byte*) print_char_cursor#148 = (byte*) print_char_cursor#20 [phi:mul16s_error::@6->print_str#0] -- register_copy
|
||||
//SEG181 [64] phi (byte*) print_str::str#17 = (const string) mul16s_error::str3 [phi:mul16s_error::@6->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG181 [64] phi (byte*) print_str::str#17 = (const string) str3 [phi:mul16s_error::@6->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str3
|
||||
sta print_str.str
|
||||
lda #>str3
|
||||
@ -8290,7 +8295,7 @@ mul16s_error: {
|
||||
//SEG190 [64] phi from mul16s_error::@8 to print_str [phi:mul16s_error::@8->print_str]
|
||||
print_str_from_b8:
|
||||
//SEG191 [64] phi (byte*) print_char_cursor#148 = (byte*) print_char_cursor#20 [phi:mul16s_error::@8->print_str#0] -- register_copy
|
||||
//SEG192 [64] phi (byte*) print_str::str#17 = (const string) mul16s_error::str4 [phi:mul16s_error::@8->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG192 [64] phi (byte*) print_str::str#17 = (const string) str4 [phi:mul16s_error::@8->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str4
|
||||
sta print_str.str
|
||||
lda #>str4
|
||||
@ -8330,10 +8335,6 @@ mul16s_error: {
|
||||
//SEG205 [93] return
|
||||
rts
|
||||
str: .text "signed word multiply mismatch @"
|
||||
str1: .text "*@"
|
||||
str2: .text " slow:@"
|
||||
str3: .text " / normal:@"
|
||||
str4: .text " / fast:@"
|
||||
}
|
||||
//SEG206 print_sdword
|
||||
// Print a signed dword as HEX
|
||||
@ -9231,7 +9232,7 @@ mul16u_compare: {
|
||||
//SEG434 [64] phi from mul16u_compare::@1 to print_str [phi:mul16u_compare::@1->print_str]
|
||||
print_str_from_b1:
|
||||
//SEG435 [64] phi (byte*) print_char_cursor#148 = (byte*) print_char_cursor#139 [phi:mul16u_compare::@1->print_str#0] -- register_copy
|
||||
//SEG436 [64] phi (byte*) print_str::str#17 = (const string) mul16u_compare::str [phi:mul16u_compare::@1->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG436 [64] phi (byte*) print_str::str#17 = (const string) str [phi:mul16u_compare::@1->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str
|
||||
sta print_str.str
|
||||
lda #>str
|
||||
@ -9456,7 +9457,6 @@ mul16u_compare: {
|
||||
b4_from_b22:
|
||||
//SEG523 [228] phi (byte) mul16u_compare::ok#3 = (byte) mul16u_compare::ok#4 [phi:mul16u_compare::@22->mul16u_compare::@4#0] -- register_copy
|
||||
jmp b4
|
||||
str: .text ".@"
|
||||
str1: .text "word multiply results match!@"
|
||||
}
|
||||
//SEG524 mul16u_error
|
||||
@ -9496,7 +9496,7 @@ mul16u_error: {
|
||||
//SEG538 [64] phi from mul16u_error::@2 to print_str [phi:mul16u_error::@2->print_str]
|
||||
print_str_from_b2:
|
||||
//SEG539 [64] phi (byte*) print_char_cursor#148 = (byte*) print_char_cursor#20 [phi:mul16u_error::@2->print_str#0] -- register_copy
|
||||
//SEG540 [64] phi (byte*) print_str::str#17 = (const string) mul16u_error::str1 [phi:mul16u_error::@2->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG540 [64] phi (byte*) print_str::str#17 = (const string) str1 [phi:mul16u_error::@2->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str1
|
||||
@ -9525,7 +9525,7 @@ mul16u_error: {
|
||||
//SEG550 [64] phi from mul16u_error::@4 to print_str [phi:mul16u_error::@4->print_str]
|
||||
print_str_from_b4:
|
||||
//SEG551 [64] phi (byte*) print_char_cursor#148 = (byte*) print_char_cursor#20 [phi:mul16u_error::@4->print_str#0] -- register_copy
|
||||
//SEG552 [64] phi (byte*) print_str::str#17 = (const string) mul16u_error::str2 [phi:mul16u_error::@4->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG552 [64] phi (byte*) print_str::str#17 = (const string) str2 [phi:mul16u_error::@4->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str2
|
||||
sta print_str.str
|
||||
lda #>str2
|
||||
@ -9550,7 +9550,7 @@ mul16u_error: {
|
||||
//SEG562 [64] phi from mul16u_error::@6 to print_str [phi:mul16u_error::@6->print_str]
|
||||
print_str_from_b6:
|
||||
//SEG563 [64] phi (byte*) print_char_cursor#148 = (byte*) print_char_cursor#20 [phi:mul16u_error::@6->print_str#0] -- register_copy
|
||||
//SEG564 [64] phi (byte*) print_str::str#17 = (const string) mul16u_error::str3 [phi:mul16u_error::@6->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG564 [64] phi (byte*) print_str::str#17 = (const string) str3 [phi:mul16u_error::@6->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str3
|
||||
sta print_str.str
|
||||
lda #>str3
|
||||
@ -9583,7 +9583,7 @@ mul16u_error: {
|
||||
//SEG574 [64] phi from mul16u_error::@8 to print_str [phi:mul16u_error::@8->print_str]
|
||||
print_str_from_b8:
|
||||
//SEG575 [64] phi (byte*) print_char_cursor#148 = (byte*) print_char_cursor#20 [phi:mul16u_error::@8->print_str#0] -- register_copy
|
||||
//SEG576 [64] phi (byte*) print_str::str#17 = (const string) mul16u_error::str4 [phi:mul16u_error::@8->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG576 [64] phi (byte*) print_str::str#17 = (const string) str4 [phi:mul16u_error::@8->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str4
|
||||
sta print_str.str
|
||||
lda #>str4
|
||||
@ -9628,10 +9628,6 @@ mul16u_error: {
|
||||
//SEG590 [271] return
|
||||
rts
|
||||
str: .text "multiply mismatch @"
|
||||
str1: .text "*@"
|
||||
str2: .text " slow:@"
|
||||
str3: .text " / normal:@"
|
||||
str4: .text " / fast:@"
|
||||
}
|
||||
//SEG591 muls16u
|
||||
// Slow multiplication of unsigned words
|
||||
@ -9970,6 +9966,11 @@ print_cls: {
|
||||
// >g(x) = >((( x - 255) * ( x - 255 ))/4)
|
||||
.align $100
|
||||
mulf_sqr2_hi: .fill $200, 0
|
||||
str: .text ".@"
|
||||
str4: .text " / fast:@"
|
||||
str3: .text " / normal:@"
|
||||
str1: .text "*@"
|
||||
str2: .text " slow:@"
|
||||
|
||||
ASSEMBLER OPTIMIZATIONS
|
||||
Removing instruction jmp b40
|
||||
@ -10384,7 +10385,7 @@ Removing unreachable instruction jmp b4
|
||||
Removing unreachable instruction jmp b4
|
||||
Succesful ASM optimization Pass5UnreachableCodeElimination
|
||||
Fixing long branch [110] bne b1 to beq
|
||||
Fixing long branch [863] bne b1 to beq
|
||||
Fixing long branch [858] bne b1 to beq
|
||||
|
||||
FINAL SYMBOL TABLE
|
||||
(label) @40
|
||||
@ -10463,7 +10464,6 @@ FINAL SYMBOL TABLE
|
||||
(byte) mul16s_compare::ok
|
||||
(byte) mul16s_compare::ok#3 reg byte x 202.0
|
||||
(byte) mul16s_compare::ok#4 reg byte x 33.666666666666664
|
||||
(const string) mul16s_compare::str str = (string) ".@"
|
||||
(const string) mul16s_compare::str1 str1 = (string) "signed word multiply results match!@"
|
||||
(void()) mul16s_error((signed word) mul16s_error::a , (signed word) mul16s_error::b , (signed dword) mul16s_error::ms , (signed dword) mul16s_error::mn , (signed dword) mul16s_error::mf)
|
||||
(label) mul16s_error::@1
|
||||
@ -10488,10 +10488,6 @@ FINAL SYMBOL TABLE
|
||||
(signed dword) mul16s_error::ms
|
||||
(signed dword) mul16s_error::ms#0 ms zp ZP_DWORD:11 0.3076923076923077
|
||||
(const string) mul16s_error::str str = (string) "signed word multiply mismatch @"
|
||||
(const string) mul16s_error::str1 str1 = (string) "*@"
|
||||
(const string) mul16s_error::str2 str2 = (string) " slow:@"
|
||||
(const string) mul16s_error::str3 str3 = (string) " / normal:@"
|
||||
(const string) mul16s_error::str4 str4 = (string) " / fast:@"
|
||||
(dword()) mul16u((word) mul16u::a , (word) mul16u::b)
|
||||
(byte/word~) mul16u::$1 reg byte a 2002.0
|
||||
(label) mul16u::@1
|
||||
@ -10560,7 +10556,6 @@ FINAL SYMBOL TABLE
|
||||
(byte) mul16u_compare::ok
|
||||
(byte) mul16u_compare::ok#3 reg byte x 202.0
|
||||
(byte) mul16u_compare::ok#4 reg byte x 33.666666666666664
|
||||
(const string) mul16u_compare::str str = (string) ".@"
|
||||
(const string) mul16u_compare::str1 str1 = (string) "word multiply results match!@"
|
||||
(void()) mul16u_error((word) mul16u_error::a , (word) mul16u_error::b , (dword) mul16u_error::ms , (dword) mul16u_error::mn , (dword) mul16u_error::mf)
|
||||
(label) mul16u_error::@1
|
||||
@ -10585,10 +10580,6 @@ FINAL SYMBOL TABLE
|
||||
(dword) mul16u_error::ms
|
||||
(dword) mul16u_error::ms#0 ms zp ZP_DWORD:11 0.3076923076923077
|
||||
(const string) mul16u_error::str str = (string) "multiply mismatch @"
|
||||
(const string) mul16u_error::str1 str1 = (string) "*@"
|
||||
(const string) mul16u_error::str2 str2 = (string) " slow:@"
|
||||
(const string) mul16u_error::str3 str3 = (string) " / normal:@"
|
||||
(const string) mul16u_error::str4 str4 = (string) " / fast:@"
|
||||
(signed dword()) mulf16s((signed word) mulf16s::a , (signed word) mulf16s::b)
|
||||
(word~) mulf16s::$11 $11 zp ZP_WORD:3 20.0
|
||||
(word~) mulf16s::$12 $12 zp ZP_WORD:9 4.0
|
||||
@ -10824,6 +10815,11 @@ FINAL SYMBOL TABLE
|
||||
(word) print_word::w#3 w zp ZP_WORD:3 4.0
|
||||
(word) print_word::w#4 w zp ZP_WORD:3 4.0
|
||||
(word) print_word::w#5 w zp ZP_WORD:3 4.666666666666666
|
||||
(const string) str str = (string) ".@"
|
||||
(const string) str1 str1 = (string) "*@"
|
||||
(const string) str2 str2 = (string) " slow:@"
|
||||
(const string) str3 str3 = (string) " / normal:@"
|
||||
(const string) str4 str4 = (string) " / fast:@"
|
||||
|
||||
zp ZP_BYTE:2 [ mul16s_compare::i#12 mul16s_compare::i#1 mul16u_compare::i#12 mul16u_compare::i#1 mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 mulf_init::dir#2 mulf_init::dir#3 ]
|
||||
zp ZP_WORD:3 [ mul16s_compare::a#2 mul16s_compare::a#6 mul16s_compare::a#1 muls16s::a#0 mul16s::a#0 mulf16s::a#0 mul16s_error::a#0 print_word::w#5 print_word::w#3 print_word::w#4 print_word::w#1 print_word::w#2 print_word::w#11 print_sword::w#4 print_sword::w#3 print_sword::w#1 print_sword::w#2 print_sword::w#0 mul16u_error::a#0 muls16u::i#2 muls16u::i#1 mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 print_cls::sc#2 print_cls::sc#1 mulf16s::$5 mulf16s::$11 mul16s::$5 mul16s::$11 ]
|
||||
@ -10936,7 +10932,7 @@ mul16s_compare: {
|
||||
//SEG39 [15] call print_str
|
||||
//SEG40 [64] phi from mul16s_compare::@1 to print_str [phi:mul16s_compare::@1->print_str]
|
||||
//SEG41 [64] phi (byte*) print_char_cursor#148 = (byte*) print_char_cursor#143 [phi:mul16s_compare::@1->print_str#0] -- register_copy
|
||||
//SEG42 [64] phi (byte*) print_str::str#17 = (const string) mul16s_compare::str [phi:mul16s_compare::@1->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG42 [64] phi (byte*) print_str::str#17 = (const string) str [phi:mul16s_compare::@1->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str
|
||||
sta print_str.str
|
||||
lda #>str
|
||||
@ -11104,7 +11100,6 @@ mul16s_compare: {
|
||||
//SEG121 mul16s_compare::@22
|
||||
//SEG122 [38] phi from mul16s_compare::@22 to mul16s_compare::@4 [phi:mul16s_compare::@22->mul16s_compare::@4]
|
||||
//SEG123 [38] phi (byte) mul16s_compare::ok#3 = (byte) mul16s_compare::ok#4 [phi:mul16s_compare::@22->mul16s_compare::@4#0] -- register_copy
|
||||
str: .text ".@"
|
||||
str1: .text "signed word multiply results match!@"
|
||||
}
|
||||
//SEG124 print_ln
|
||||
@ -11199,7 +11194,7 @@ mul16s_error: {
|
||||
//SEG156 [76] call print_str
|
||||
//SEG157 [64] phi from mul16s_error::@2 to print_str [phi:mul16s_error::@2->print_str]
|
||||
//SEG158 [64] phi (byte*) print_char_cursor#148 = (byte*) print_char_cursor#20 [phi:mul16s_error::@2->print_str#0] -- register_copy
|
||||
//SEG159 [64] phi (byte*) print_str::str#17 = (const string) mul16s_error::str1 [phi:mul16s_error::@2->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG159 [64] phi (byte*) print_str::str#17 = (const string) str1 [phi:mul16s_error::@2->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str1
|
||||
@ -11220,7 +11215,7 @@ mul16s_error: {
|
||||
//SEG167 [80] call print_str
|
||||
//SEG168 [64] phi from mul16s_error::@4 to print_str [phi:mul16s_error::@4->print_str]
|
||||
//SEG169 [64] phi (byte*) print_char_cursor#148 = (byte*) print_char_cursor#20 [phi:mul16s_error::@4->print_str#0] -- register_copy
|
||||
//SEG170 [64] phi (byte*) print_str::str#17 = (const string) mul16s_error::str2 [phi:mul16s_error::@4->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG170 [64] phi (byte*) print_str::str#17 = (const string) str2 [phi:mul16s_error::@4->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str2
|
||||
sta print_str.str
|
||||
lda #>str2
|
||||
@ -11237,7 +11232,7 @@ mul16s_error: {
|
||||
//SEG178 [84] call print_str
|
||||
//SEG179 [64] phi from mul16s_error::@6 to print_str [phi:mul16s_error::@6->print_str]
|
||||
//SEG180 [64] phi (byte*) print_char_cursor#148 = (byte*) print_char_cursor#20 [phi:mul16s_error::@6->print_str#0] -- register_copy
|
||||
//SEG181 [64] phi (byte*) print_str::str#17 = (const string) mul16s_error::str3 [phi:mul16s_error::@6->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG181 [64] phi (byte*) print_str::str#17 = (const string) str3 [phi:mul16s_error::@6->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str3
|
||||
sta print_str.str
|
||||
lda #>str3
|
||||
@ -11262,7 +11257,7 @@ mul16s_error: {
|
||||
//SEG189 [88] call print_str
|
||||
//SEG190 [64] phi from mul16s_error::@8 to print_str [phi:mul16s_error::@8->print_str]
|
||||
//SEG191 [64] phi (byte*) print_char_cursor#148 = (byte*) print_char_cursor#20 [phi:mul16s_error::@8->print_str#0] -- register_copy
|
||||
//SEG192 [64] phi (byte*) print_str::str#17 = (const string) mul16s_error::str4 [phi:mul16s_error::@8->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG192 [64] phi (byte*) print_str::str#17 = (const string) str4 [phi:mul16s_error::@8->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str4
|
||||
sta print_str.str
|
||||
lda #>str4
|
||||
@ -11293,10 +11288,6 @@ mul16s_error: {
|
||||
//SEG205 [93] return
|
||||
rts
|
||||
str: .text "signed word multiply mismatch @"
|
||||
str1: .text "*@"
|
||||
str2: .text " slow:@"
|
||||
str3: .text " / normal:@"
|
||||
str4: .text " / fast:@"
|
||||
}
|
||||
//SEG206 print_sdword
|
||||
// Print a signed dword as HEX
|
||||
@ -12075,7 +12066,7 @@ mul16u_compare: {
|
||||
//SEG433 [205] call print_str
|
||||
//SEG434 [64] phi from mul16u_compare::@1 to print_str [phi:mul16u_compare::@1->print_str]
|
||||
//SEG435 [64] phi (byte*) print_char_cursor#148 = (byte*) print_char_cursor#139 [phi:mul16u_compare::@1->print_str#0] -- register_copy
|
||||
//SEG436 [64] phi (byte*) print_str::str#17 = (const string) mul16u_compare::str [phi:mul16u_compare::@1->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG436 [64] phi (byte*) print_str::str#17 = (const string) str [phi:mul16u_compare::@1->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str
|
||||
sta print_str.str
|
||||
lda #>str
|
||||
@ -12261,7 +12252,6 @@ mul16u_compare: {
|
||||
//SEG521 mul16u_compare::@22
|
||||
//SEG522 [228] phi from mul16u_compare::@22 to mul16u_compare::@4 [phi:mul16u_compare::@22->mul16u_compare::@4]
|
||||
//SEG523 [228] phi (byte) mul16u_compare::ok#3 = (byte) mul16u_compare::ok#4 [phi:mul16u_compare::@22->mul16u_compare::@4#0] -- register_copy
|
||||
str: .text ".@"
|
||||
str1: .text "word multiply results match!@"
|
||||
}
|
||||
//SEG524 mul16u_error
|
||||
@ -12293,7 +12283,7 @@ mul16u_error: {
|
||||
//SEG537 [254] call print_str
|
||||
//SEG538 [64] phi from mul16u_error::@2 to print_str [phi:mul16u_error::@2->print_str]
|
||||
//SEG539 [64] phi (byte*) print_char_cursor#148 = (byte*) print_char_cursor#20 [phi:mul16u_error::@2->print_str#0] -- register_copy
|
||||
//SEG540 [64] phi (byte*) print_str::str#17 = (const string) mul16u_error::str1 [phi:mul16u_error::@2->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG540 [64] phi (byte*) print_str::str#17 = (const string) str1 [phi:mul16u_error::@2->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str1
|
||||
@ -12315,7 +12305,7 @@ mul16u_error: {
|
||||
//SEG549 [258] call print_str
|
||||
//SEG550 [64] phi from mul16u_error::@4 to print_str [phi:mul16u_error::@4->print_str]
|
||||
//SEG551 [64] phi (byte*) print_char_cursor#148 = (byte*) print_char_cursor#20 [phi:mul16u_error::@4->print_str#0] -- register_copy
|
||||
//SEG552 [64] phi (byte*) print_str::str#17 = (const string) mul16u_error::str2 [phi:mul16u_error::@4->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG552 [64] phi (byte*) print_str::str#17 = (const string) str2 [phi:mul16u_error::@4->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str2
|
||||
sta print_str.str
|
||||
lda #>str2
|
||||
@ -12333,7 +12323,7 @@ mul16u_error: {
|
||||
//SEG561 [262] call print_str
|
||||
//SEG562 [64] phi from mul16u_error::@6 to print_str [phi:mul16u_error::@6->print_str]
|
||||
//SEG563 [64] phi (byte*) print_char_cursor#148 = (byte*) print_char_cursor#20 [phi:mul16u_error::@6->print_str#0] -- register_copy
|
||||
//SEG564 [64] phi (byte*) print_str::str#17 = (const string) mul16u_error::str3 [phi:mul16u_error::@6->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG564 [64] phi (byte*) print_str::str#17 = (const string) str3 [phi:mul16u_error::@6->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str3
|
||||
sta print_str.str
|
||||
lda #>str3
|
||||
@ -12359,7 +12349,7 @@ mul16u_error: {
|
||||
//SEG573 [266] call print_str
|
||||
//SEG574 [64] phi from mul16u_error::@8 to print_str [phi:mul16u_error::@8->print_str]
|
||||
//SEG575 [64] phi (byte*) print_char_cursor#148 = (byte*) print_char_cursor#20 [phi:mul16u_error::@8->print_str#0] -- register_copy
|
||||
//SEG576 [64] phi (byte*) print_str::str#17 = (const string) mul16u_error::str4 [phi:mul16u_error::@8->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG576 [64] phi (byte*) print_str::str#17 = (const string) str4 [phi:mul16u_error::@8->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str4
|
||||
sta print_str.str
|
||||
lda #>str4
|
||||
@ -12395,10 +12385,6 @@ mul16u_error: {
|
||||
//SEG590 [271] return
|
||||
rts
|
||||
str: .text "multiply mismatch @"
|
||||
str1: .text "*@"
|
||||
str2: .text " slow:@"
|
||||
str3: .text " / normal:@"
|
||||
str4: .text " / fast:@"
|
||||
}
|
||||
//SEG591 muls16u
|
||||
// Slow multiplication of unsigned words
|
||||
@ -12692,4 +12678,9 @@ print_cls: {
|
||||
// >g(x) = >((( x - 255) * ( x - 255 ))/4)
|
||||
.align $100
|
||||
mulf_sqr2_hi: .fill $200, 0
|
||||
str: .text ".@"
|
||||
str4: .text " / fast:@"
|
||||
str3: .text " / normal:@"
|
||||
str1: .text "*@"
|
||||
str2: .text " slow:@"
|
||||
|
||||
|
@ -74,7 +74,6 @@
|
||||
(byte) mul16s_compare::ok
|
||||
(byte) mul16s_compare::ok#3 reg byte x 202.0
|
||||
(byte) mul16s_compare::ok#4 reg byte x 33.666666666666664
|
||||
(const string) mul16s_compare::str str = (string) ".@"
|
||||
(const string) mul16s_compare::str1 str1 = (string) "signed word multiply results match!@"
|
||||
(void()) mul16s_error((signed word) mul16s_error::a , (signed word) mul16s_error::b , (signed dword) mul16s_error::ms , (signed dword) mul16s_error::mn , (signed dword) mul16s_error::mf)
|
||||
(label) mul16s_error::@1
|
||||
@ -99,10 +98,6 @@
|
||||
(signed dword) mul16s_error::ms
|
||||
(signed dword) mul16s_error::ms#0 ms zp ZP_DWORD:11 0.3076923076923077
|
||||
(const string) mul16s_error::str str = (string) "signed word multiply mismatch @"
|
||||
(const string) mul16s_error::str1 str1 = (string) "*@"
|
||||
(const string) mul16s_error::str2 str2 = (string) " slow:@"
|
||||
(const string) mul16s_error::str3 str3 = (string) " / normal:@"
|
||||
(const string) mul16s_error::str4 str4 = (string) " / fast:@"
|
||||
(dword()) mul16u((word) mul16u::a , (word) mul16u::b)
|
||||
(byte/word~) mul16u::$1 reg byte a 2002.0
|
||||
(label) mul16u::@1
|
||||
@ -171,7 +166,6 @@
|
||||
(byte) mul16u_compare::ok
|
||||
(byte) mul16u_compare::ok#3 reg byte x 202.0
|
||||
(byte) mul16u_compare::ok#4 reg byte x 33.666666666666664
|
||||
(const string) mul16u_compare::str str = (string) ".@"
|
||||
(const string) mul16u_compare::str1 str1 = (string) "word multiply results match!@"
|
||||
(void()) mul16u_error((word) mul16u_error::a , (word) mul16u_error::b , (dword) mul16u_error::ms , (dword) mul16u_error::mn , (dword) mul16u_error::mf)
|
||||
(label) mul16u_error::@1
|
||||
@ -196,10 +190,6 @@
|
||||
(dword) mul16u_error::ms
|
||||
(dword) mul16u_error::ms#0 ms zp ZP_DWORD:11 0.3076923076923077
|
||||
(const string) mul16u_error::str str = (string) "multiply mismatch @"
|
||||
(const string) mul16u_error::str1 str1 = (string) "*@"
|
||||
(const string) mul16u_error::str2 str2 = (string) " slow:@"
|
||||
(const string) mul16u_error::str3 str3 = (string) " / normal:@"
|
||||
(const string) mul16u_error::str4 str4 = (string) " / fast:@"
|
||||
(signed dword()) mulf16s((signed word) mulf16s::a , (signed word) mulf16s::b)
|
||||
(word~) mulf16s::$11 $11 zp ZP_WORD:3 20.0
|
||||
(word~) mulf16s::$12 $12 zp ZP_WORD:9 4.0
|
||||
@ -435,6 +425,11 @@
|
||||
(word) print_word::w#3 w zp ZP_WORD:3 4.0
|
||||
(word) print_word::w#4 w zp ZP_WORD:3 4.0
|
||||
(word) print_word::w#5 w zp ZP_WORD:3 4.666666666666666
|
||||
(const string) str str = (string) ".@"
|
||||
(const string) str1 str1 = (string) "*@"
|
||||
(const string) str2 str2 = (string) " slow:@"
|
||||
(const string) str3 str3 = (string) " / normal:@"
|
||||
(const string) str4 str4 = (string) " / fast:@"
|
||||
|
||||
zp ZP_BYTE:2 [ mul16s_compare::i#12 mul16s_compare::i#1 mul16u_compare::i#12 mul16u_compare::i#1 mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 mulf_init::dir#2 mulf_init::dir#3 ]
|
||||
zp ZP_WORD:3 [ mul16s_compare::a#2 mul16s_compare::a#6 mul16s_compare::a#1 muls16s::a#0 mul16s::a#0 mulf16s::a#0 mul16s_error::a#0 print_word::w#5 print_word::w#3 print_word::w#4 print_word::w#1 print_word::w#2 print_word::w#11 print_sword::w#4 print_sword::w#3 print_sword::w#1 print_sword::w#2 print_sword::w#0 mul16u_error::a#0 muls16u::i#2 muls16u::i#1 mulf_init::sqr1_lo#2 mulf_init::sqr1_lo#1 mulf_init::sqr2_lo#2 mulf_init::sqr2_lo#1 print_cls::sc#2 print_cls::sc#1 mulf16s::$5 mulf16s::$11 mul16s::$5 mul16s::$11 ]
|
||||
|
@ -183,10 +183,6 @@ mul8s_error: {
|
||||
jsr print_ln
|
||||
rts
|
||||
str: .text "signed multiply mismatch @"
|
||||
str1: .text "*@"
|
||||
str2: .text " slow:@"
|
||||
str3: .text " / normal:@"
|
||||
str4: .text " / fast:@"
|
||||
}
|
||||
// Print a signed word as HEX
|
||||
// print_sword(signed word zeropage(8) w)
|
||||
@ -588,10 +584,6 @@ mul8u_error: {
|
||||
jsr print_ln
|
||||
rts
|
||||
str: .text "multiply mismatch @"
|
||||
str1: .text "*@"
|
||||
str2: .text " slow:@"
|
||||
str3: .text " / normal:@"
|
||||
str4: .text " / fast:@"
|
||||
}
|
||||
// Fast multiply two unsigned bytes to a word result
|
||||
// mulf8u(byte register(A) a, byte register(X) b)
|
||||
@ -931,3 +923,7 @@ print_cls: {
|
||||
// >((( x - 255) * ( x - 255 ))/4)
|
||||
.align $100
|
||||
mula_sqr2_hi: .fill $200, 0
|
||||
str4: .text " / fast:@"
|
||||
str3: .text " / normal:@"
|
||||
str1: .text "*@"
|
||||
str2: .text " slow:@"
|
||||
|
@ -121,7 +121,7 @@ print_ln::@return: scope:[print_ln] from print_ln::@1
|
||||
to:@return
|
||||
print_str: scope:[print_str] from mul8s_compare::@11 mul8s_error mul8s_error::@2 mul8s_error::@4 mul8s_error::@6 mul8s_error::@8 mul8u_compare::@11 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::@7
|
||||
[63] (byte*) print_char_cursor#152 ← phi( mul8s_compare::@11/(byte*~) print_char_cursor#192 mul8s_error/(byte*~) print_char_cursor#193 mul8s_error::@2/(byte*) print_char_cursor#18 mul8s_error::@4/(byte*) print_char_cursor#18 mul8s_error::@6/(byte*) print_char_cursor#18 mul8s_error::@8/(byte*) print_char_cursor#18 mul8u_compare::@11/(byte*) print_char_cursor#31 mul8u_error/(byte*) print_char_cursor#31 mul8u_error::@2/(byte*) print_char_cursor#18 mul8u_error::@4/(byte*) print_char_cursor#18 mul8u_error::@6/(byte*) print_char_cursor#18 mul8u_error::@8/(byte*) print_char_cursor#18 mulf_tables_cmp::@3/((byte*))(word/signed word/dword/signed dword) 1024 mulf_tables_cmp::@5/((byte*))(word/signed word/dword/signed dword) 1024 mulf_tables_cmp::@7/(byte*) print_char_cursor#18 )
|
||||
[63] (byte*) print_str::str#18 ← phi( mul8s_compare::@11/(const string) mul8s_compare::str mul8s_error/(const string) mul8s_error::str mul8s_error::@2/(const string) mul8s_error::str1 mul8s_error::@4/(const string) mul8s_error::str2 mul8s_error::@6/(const string) mul8s_error::str3 mul8s_error::@8/(const string) mul8s_error::str4 mul8u_compare::@11/(const string) mul8u_compare::str mul8u_error/(const string) mul8u_error::str mul8u_error::@2/(const string) mul8u_error::str1 mul8u_error::@4/(const string) mul8u_error::str2 mul8u_error::@6/(const string) mul8u_error::str3 mul8u_error::@8/(const string) mul8u_error::str4 mulf_tables_cmp::@3/(const string) mulf_tables_cmp::str mulf_tables_cmp::@5/(const string) mulf_tables_cmp::str2 mulf_tables_cmp::@7/(const string) mulf_tables_cmp::str1 )
|
||||
[63] (byte*) print_str::str#18 ← phi( mul8s_compare::@11/(const string) mul8s_compare::str mul8s_error/(const string) mul8s_error::str mul8s_error::@2/(const string) str1 mul8s_error::@4/(const string) str2 mul8s_error::@6/(const string) str3 mul8s_error::@8/(const string) str4 mul8u_compare::@11/(const string) mul8u_compare::str mul8u_error/(const string) mul8u_error::str mul8u_error::@2/(const string) str1 mul8u_error::@4/(const string) str2 mul8u_error::@6/(const string) str3 mul8u_error::@8/(const string) str4 mulf_tables_cmp::@3/(const string) mulf_tables_cmp::str mulf_tables_cmp::@5/(const string) mulf_tables_cmp::str2 mulf_tables_cmp::@7/(const string) mulf_tables_cmp::str1 )
|
||||
to:print_str::@1
|
||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||
[64] (byte*) print_char_cursor#132 ← phi( print_str/(byte*) print_char_cursor#152 print_str::@2/(byte*) print_char_cursor#1 )
|
||||
|
@ -3235,6 +3235,7 @@ Constant (const byte*) mulf_tables_cmp::asm_sqr#0 = mula_sqr1_lo#0
|
||||
Constant (const byte*) mulf_tables_cmp::kc_sqr#0 = mulf_sqr1_lo#0
|
||||
Constant (const byte*) mulf_tables_cmp::$9 = mulf_sqr1_lo#0+mulf_tables_cmp::$8
|
||||
Successful SSA optimization Pass2ConstantIdentification
|
||||
Successful SSA optimization Pass2ConstantStringConsolidation
|
||||
Fixing inline constructor with mulf8u_prepared::$0 ← *(mulf8u_prepared::memB#0) w= *(mulf8u_prepared::resL#0)
|
||||
Successful SSA optimization Pass2FixInlineConstructors
|
||||
Eliminating Noop Cast (word) print_word::w#0 ← ((word)) (signed word) print_sword::w#5
|
||||
@ -3370,7 +3371,7 @@ Constant inlined mul8s_compare::ok#0 = (byte/signed byte/word/signed word/dword/
|
||||
Constant inlined mul8s_compare::ok#1 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
Constant inlined muls8s::m#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
Constant inlined muls8s::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
Constant inlined print_str::str#9 = (const string) mul8u_error::str4
|
||||
Constant inlined print_str::str#9 = (const string) str4
|
||||
Constant inlined mul8u::res#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
Constant inlined mulf_init::sqr1_hi#0 = (const byte[512]) mulf_sqr1_hi#0+(byte/signed byte/word/signed word/dword/signed dword) 1
|
||||
Constant inlined mulf_init::$10 = -(byte/signed byte/word/signed word/dword/signed dword) 1
|
||||
@ -3382,27 +3383,31 @@ Constant inlined print_str::str#3 = (const string) mulf_tables_cmp::str2
|
||||
Constant inlined print_str::str#2 = (const string) mulf_tables_cmp::str1
|
||||
Constant inlined print_str::str#1 = (const string) mulf_tables_cmp::str
|
||||
Constant inlined mulf_init::$18 = (const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 256
|
||||
Constant inlined print_str::str#8 = (const string) mul8u_error::str3
|
||||
Constant inlined print_str::str#8 = (const string) str3
|
||||
Constant inlined mulf_init::$19 = (const byte[512]) mulf_sqr2_hi#0+(word/signed word/dword/signed dword) 511
|
||||
Constant inlined print_str::str#7 = (const string) mul8u_error::str2
|
||||
Constant inlined print_str::str#6 = (const string) mul8u_error::str1
|
||||
Constant inlined print_str::str#7 = (const string) str2
|
||||
Constant inlined print_str::str#6 = (const string) str1
|
||||
Constant inlined mulf_init::$17 = (const byte[512]) mulf_sqr2_lo#0+(word/signed word/dword/signed dword) 511
|
||||
Constant inlined print_str::str#5 = (const string) mul8u_error::str
|
||||
Constant inlined mulf_init::c#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
Constant inlined print_cls::$0 = ((byte*))(word/signed word/dword/signed dword) 1024+(word/signed word/dword/signed dword) 1000
|
||||
Constant inlined print_str::str#13 = (const string) mul8s_error::str2
|
||||
Constant inlined print_str::str#12 = (const string) mul8s_error::str1
|
||||
Constant inlined print_str::str#13 = (const string) str2
|
||||
Constant inlined print_str::str#12 = (const string) str1
|
||||
Constant inlined print_str::str#11 = (const string) mul8s_error::str
|
||||
Constant inlined print_str::str#10 = (const string) mul8s_compare::str
|
||||
Constant inlined print_str::str#15 = (const string) mul8s_error::str4
|
||||
Constant inlined print_str::str#14 = (const string) mul8s_error::str3
|
||||
Constant inlined print_str::str#15 = (const string) str4
|
||||
Constant inlined print_str::str#14 = (const string) str3
|
||||
Constant inlined mul8u_compare::a#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
Constant inlined mul8s_compare::a#0 = -(byte/word/signed word/dword/signed dword) 128
|
||||
Constant inlined mulf_tables_cmp::$9 = (const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512*(byte/signed byte/word/signed word/dword/signed dword) 4
|
||||
Constant inlined mulf_tables_cmp::$8 = (word/signed word/dword/signed dword) 512*(byte/signed byte/word/signed word/dword/signed dword) 4
|
||||
Constant inlined mulf_init::sqr#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
Constant inlined muls8u::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 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 muls8u::m#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
||||
Constant inlined mul8s_error::str4 = (const string) str4
|
||||
Constant inlined print_cls::sc#0 = ((byte*))(word/signed word/dword/signed dword) 1024
|
||||
Constant inlined mulf_init::$8 = (const byte[512]) mulf_sqr1_lo#0+(word/signed word/dword/signed dword) 512
|
||||
Constant inlined print_char::ch#2 = (byte) ' '
|
||||
@ -3410,6 +3415,10 @@ Constant inlined muls8s::j#0 = (byte/signed byte/word/signed word/dword/signed d
|
||||
Constant inlined mulf_tables_cmp::asm_sqr#0 = (const byte[512]) mula_sqr1_lo#0
|
||||
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
|
||||
Successful SSA optimization Pass2ConstantInlining
|
||||
Added new block during phi lifting mul8s_compare::@18(between mul8s_compare::@10 and mul8s_compare::@1)
|
||||
Added new block during phi lifting mul8s_compare::@19(between mul8s_compare::@5 and mul8s_compare::@2)
|
||||
@ -3782,7 +3791,7 @@ print_ln::@return: scope:[print_ln] from print_ln::@1
|
||||
to:@return
|
||||
print_str: scope:[print_str] from mul8s_compare::@11 mul8s_error mul8s_error::@2 mul8s_error::@4 mul8s_error::@6 mul8s_error::@8 mul8u_compare::@11 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::@7
|
||||
[63] (byte*) print_char_cursor#152 ← phi( mul8s_compare::@11/(byte*~) print_char_cursor#192 mul8s_error/(byte*~) print_char_cursor#193 mul8s_error::@2/(byte*) print_char_cursor#18 mul8s_error::@4/(byte*) print_char_cursor#18 mul8s_error::@6/(byte*) print_char_cursor#18 mul8s_error::@8/(byte*) print_char_cursor#18 mul8u_compare::@11/(byte*) print_char_cursor#31 mul8u_error/(byte*) print_char_cursor#31 mul8u_error::@2/(byte*) print_char_cursor#18 mul8u_error::@4/(byte*) print_char_cursor#18 mul8u_error::@6/(byte*) print_char_cursor#18 mul8u_error::@8/(byte*) print_char_cursor#18 mulf_tables_cmp::@3/((byte*))(word/signed word/dword/signed dword) 1024 mulf_tables_cmp::@5/((byte*))(word/signed word/dword/signed dword) 1024 mulf_tables_cmp::@7/(byte*) print_char_cursor#18 )
|
||||
[63] (byte*) print_str::str#18 ← phi( mul8s_compare::@11/(const string) mul8s_compare::str mul8s_error/(const string) mul8s_error::str mul8s_error::@2/(const string) mul8s_error::str1 mul8s_error::@4/(const string) mul8s_error::str2 mul8s_error::@6/(const string) mul8s_error::str3 mul8s_error::@8/(const string) mul8s_error::str4 mul8u_compare::@11/(const string) mul8u_compare::str mul8u_error/(const string) mul8u_error::str mul8u_error::@2/(const string) mul8u_error::str1 mul8u_error::@4/(const string) mul8u_error::str2 mul8u_error::@6/(const string) mul8u_error::str3 mul8u_error::@8/(const string) mul8u_error::str4 mulf_tables_cmp::@3/(const string) mulf_tables_cmp::str mulf_tables_cmp::@5/(const string) mulf_tables_cmp::str2 mulf_tables_cmp::@7/(const string) mulf_tables_cmp::str1 )
|
||||
[63] (byte*) print_str::str#18 ← phi( mul8s_compare::@11/(const string) mul8s_compare::str mul8s_error/(const string) mul8s_error::str mul8s_error::@2/(const string) str1 mul8s_error::@4/(const string) str2 mul8s_error::@6/(const string) str3 mul8s_error::@8/(const string) str4 mul8u_compare::@11/(const string) mul8u_compare::str mul8u_error/(const string) mul8u_error::str mul8u_error::@2/(const string) str1 mul8u_error::@4/(const string) str2 mul8u_error::@6/(const string) str3 mul8u_error::@8/(const string) str4 mulf_tables_cmp::@3/(const string) mulf_tables_cmp::str mulf_tables_cmp::@5/(const string) mulf_tables_cmp::str2 mulf_tables_cmp::@7/(const string) mulf_tables_cmp::str1 )
|
||||
to:print_str::@1
|
||||
print_str::@1: scope:[print_str] from print_str print_str::@2
|
||||
[64] (byte*) print_char_cursor#132 ← phi( print_str/(byte*) print_char_cursor#152 print_str::@2/(byte*) print_char_cursor#1 )
|
||||
@ -5386,7 +5395,7 @@ mul8s_error: {
|
||||
//SEG143 [63] phi from mul8s_error::@2 to print_str [phi:mul8s_error::@2->print_str]
|
||||
print_str_from_b2:
|
||||
//SEG144 [63] phi (byte*) print_char_cursor#152 = (byte*) print_char_cursor#18 [phi:mul8s_error::@2->print_str#0] -- register_copy
|
||||
//SEG145 [63] phi (byte*) print_str::str#18 = (const string) mul8s_error::str1 [phi:mul8s_error::@2->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG145 [63] phi (byte*) print_str::str#18 = (const string) str1 [phi:mul8s_error::@2->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str1
|
||||
@ -5412,7 +5421,7 @@ mul8s_error: {
|
||||
//SEG154 [63] phi from mul8s_error::@4 to print_str [phi:mul8s_error::@4->print_str]
|
||||
print_str_from_b4:
|
||||
//SEG155 [63] phi (byte*) print_char_cursor#152 = (byte*) print_char_cursor#18 [phi:mul8s_error::@4->print_str#0] -- register_copy
|
||||
//SEG156 [63] phi (byte*) print_str::str#18 = (const string) mul8s_error::str2 [phi:mul8s_error::@4->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG156 [63] phi (byte*) print_str::str#18 = (const string) str2 [phi:mul8s_error::@4->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str2
|
||||
sta print_str.str
|
||||
lda #>str2
|
||||
@ -5440,7 +5449,7 @@ mul8s_error: {
|
||||
//SEG165 [63] phi from mul8s_error::@6 to print_str [phi:mul8s_error::@6->print_str]
|
||||
print_str_from_b6:
|
||||
//SEG166 [63] phi (byte*) print_char_cursor#152 = (byte*) print_char_cursor#18 [phi:mul8s_error::@6->print_str#0] -- register_copy
|
||||
//SEG167 [63] phi (byte*) print_str::str#18 = (const string) mul8s_error::str3 [phi:mul8s_error::@6->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG167 [63] phi (byte*) print_str::str#18 = (const string) str3 [phi:mul8s_error::@6->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str3
|
||||
sta print_str.str
|
||||
lda #>str3
|
||||
@ -5468,7 +5477,7 @@ mul8s_error: {
|
||||
//SEG176 [63] phi from mul8s_error::@8 to print_str [phi:mul8s_error::@8->print_str]
|
||||
print_str_from_b8:
|
||||
//SEG177 [63] phi (byte*) print_char_cursor#152 = (byte*) print_char_cursor#18 [phi:mul8s_error::@8->print_str#0] -- register_copy
|
||||
//SEG178 [63] phi (byte*) print_str::str#18 = (const string) mul8s_error::str4 [phi:mul8s_error::@8->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG178 [63] phi (byte*) print_str::str#18 = (const string) str4 [phi:mul8s_error::@8->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str4
|
||||
sta print_str.str
|
||||
lda #>str4
|
||||
@ -5504,10 +5513,6 @@ mul8s_error: {
|
||||
//SEG191 [92] return
|
||||
rts
|
||||
str: .text "signed multiply mismatch @"
|
||||
str1: .text "*@"
|
||||
str2: .text " slow:@"
|
||||
str3: .text " / normal:@"
|
||||
str4: .text " / fast:@"
|
||||
}
|
||||
//SEG192 print_sword
|
||||
// Print a signed word as HEX
|
||||
@ -6515,7 +6520,7 @@ mul8u_error: {
|
||||
//SEG504 [63] phi from mul8u_error::@2 to print_str [phi:mul8u_error::@2->print_str]
|
||||
print_str_from_b2:
|
||||
//SEG505 [63] phi (byte*) print_char_cursor#152 = (byte*) print_char_cursor#18 [phi:mul8u_error::@2->print_str#0] -- register_copy
|
||||
//SEG506 [63] phi (byte*) print_str::str#18 = (const string) mul8u_error::str1 [phi:mul8u_error::@2->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG506 [63] phi (byte*) print_str::str#18 = (const string) str1 [phi:mul8u_error::@2->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str1
|
||||
@ -6542,7 +6547,7 @@ mul8u_error: {
|
||||
//SEG516 [63] phi from mul8u_error::@4 to print_str [phi:mul8u_error::@4->print_str]
|
||||
print_str_from_b4:
|
||||
//SEG517 [63] phi (byte*) print_char_cursor#152 = (byte*) print_char_cursor#18 [phi:mul8u_error::@4->print_str#0] -- register_copy
|
||||
//SEG518 [63] phi (byte*) print_str::str#18 = (const string) mul8u_error::str2 [phi:mul8u_error::@4->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG518 [63] phi (byte*) print_str::str#18 = (const string) str2 [phi:mul8u_error::@4->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str2
|
||||
sta print_str.str
|
||||
lda #>str2
|
||||
@ -6571,7 +6576,7 @@ mul8u_error: {
|
||||
//SEG528 [63] phi from mul8u_error::@6 to print_str [phi:mul8u_error::@6->print_str]
|
||||
print_str_from_b6:
|
||||
//SEG529 [63] phi (byte*) print_char_cursor#152 = (byte*) print_char_cursor#18 [phi:mul8u_error::@6->print_str#0] -- register_copy
|
||||
//SEG530 [63] phi (byte*) print_str::str#18 = (const string) mul8u_error::str3 [phi:mul8u_error::@6->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG530 [63] phi (byte*) print_str::str#18 = (const string) str3 [phi:mul8u_error::@6->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str3
|
||||
sta print_str.str
|
||||
lda #>str3
|
||||
@ -6600,7 +6605,7 @@ mul8u_error: {
|
||||
//SEG540 [63] phi from mul8u_error::@8 to print_str [phi:mul8u_error::@8->print_str]
|
||||
print_str_from_b8:
|
||||
//SEG541 [63] phi (byte*) print_char_cursor#152 = (byte*) print_char_cursor#18 [phi:mul8u_error::@8->print_str#0] -- register_copy
|
||||
//SEG542 [63] phi (byte*) print_str::str#18 = (const string) mul8u_error::str4 [phi:mul8u_error::@8->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG542 [63] phi (byte*) print_str::str#18 = (const string) str4 [phi:mul8u_error::@8->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str4
|
||||
sta print_str.str
|
||||
lda #>str4
|
||||
@ -6637,10 +6642,6 @@ mul8u_error: {
|
||||
//SEG556 [269] return
|
||||
rts
|
||||
str: .text "multiply mismatch @"
|
||||
str1: .text "*@"
|
||||
str2: .text " slow:@"
|
||||
str3: .text " / normal:@"
|
||||
str4: .text " / fast:@"
|
||||
}
|
||||
//SEG557 mulf8u
|
||||
// Fast multiply two unsigned bytes to a word result
|
||||
@ -7275,6 +7276,10 @@ print_cls: {
|
||||
// >((( x - 255) * ( x - 255 ))/4)
|
||||
.align $100
|
||||
mula_sqr2_hi: .fill $200, 0
|
||||
str4: .text " / fast:@"
|
||||
str3: .text " / normal:@"
|
||||
str1: .text "*@"
|
||||
str2: .text " slow:@"
|
||||
|
||||
REGISTER UPLIFT POTENTIAL REGISTERS
|
||||
Statement [4] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 5 [ ] ( main:2 [ ] ) always clobbers reg byte a
|
||||
@ -8155,7 +8160,7 @@ mul8s_error: {
|
||||
//SEG143 [63] phi from mul8s_error::@2 to print_str [phi:mul8s_error::@2->print_str]
|
||||
print_str_from_b2:
|
||||
//SEG144 [63] phi (byte*) print_char_cursor#152 = (byte*) print_char_cursor#18 [phi:mul8s_error::@2->print_str#0] -- register_copy
|
||||
//SEG145 [63] phi (byte*) print_str::str#18 = (const string) mul8s_error::str1 [phi:mul8s_error::@2->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG145 [63] phi (byte*) print_str::str#18 = (const string) str1 [phi:mul8s_error::@2->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str1
|
||||
@ -8180,7 +8185,7 @@ mul8s_error: {
|
||||
//SEG154 [63] phi from mul8s_error::@4 to print_str [phi:mul8s_error::@4->print_str]
|
||||
print_str_from_b4:
|
||||
//SEG155 [63] phi (byte*) print_char_cursor#152 = (byte*) print_char_cursor#18 [phi:mul8s_error::@4->print_str#0] -- register_copy
|
||||
//SEG156 [63] phi (byte*) print_str::str#18 = (const string) mul8s_error::str2 [phi:mul8s_error::@4->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG156 [63] phi (byte*) print_str::str#18 = (const string) str2 [phi:mul8s_error::@4->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str2
|
||||
sta print_str.str
|
||||
lda #>str2
|
||||
@ -8204,7 +8209,7 @@ mul8s_error: {
|
||||
//SEG165 [63] phi from mul8s_error::@6 to print_str [phi:mul8s_error::@6->print_str]
|
||||
print_str_from_b6:
|
||||
//SEG166 [63] phi (byte*) print_char_cursor#152 = (byte*) print_char_cursor#18 [phi:mul8s_error::@6->print_str#0] -- register_copy
|
||||
//SEG167 [63] phi (byte*) print_str::str#18 = (const string) mul8s_error::str3 [phi:mul8s_error::@6->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG167 [63] phi (byte*) print_str::str#18 = (const string) str3 [phi:mul8s_error::@6->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str3
|
||||
sta print_str.str
|
||||
lda #>str3
|
||||
@ -8232,7 +8237,7 @@ mul8s_error: {
|
||||
//SEG176 [63] phi from mul8s_error::@8 to print_str [phi:mul8s_error::@8->print_str]
|
||||
print_str_from_b8:
|
||||
//SEG177 [63] phi (byte*) print_char_cursor#152 = (byte*) print_char_cursor#18 [phi:mul8s_error::@8->print_str#0] -- register_copy
|
||||
//SEG178 [63] phi (byte*) print_str::str#18 = (const string) mul8s_error::str4 [phi:mul8s_error::@8->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG178 [63] phi (byte*) print_str::str#18 = (const string) str4 [phi:mul8s_error::@8->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str4
|
||||
sta print_str.str
|
||||
lda #>str4
|
||||
@ -8268,10 +8273,6 @@ mul8s_error: {
|
||||
//SEG191 [92] return
|
||||
rts
|
||||
str: .text "signed multiply mismatch @"
|
||||
str1: .text "*@"
|
||||
str2: .text " slow:@"
|
||||
str3: .text " / normal:@"
|
||||
str4: .text " / fast:@"
|
||||
}
|
||||
//SEG192 print_sword
|
||||
// Print a signed word as HEX
|
||||
@ -9122,7 +9123,7 @@ mul8u_error: {
|
||||
//SEG504 [63] phi from mul8u_error::@2 to print_str [phi:mul8u_error::@2->print_str]
|
||||
print_str_from_b2:
|
||||
//SEG505 [63] phi (byte*) print_char_cursor#152 = (byte*) print_char_cursor#18 [phi:mul8u_error::@2->print_str#0] -- register_copy
|
||||
//SEG506 [63] phi (byte*) print_str::str#18 = (const string) mul8u_error::str1 [phi:mul8u_error::@2->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG506 [63] phi (byte*) print_str::str#18 = (const string) str1 [phi:mul8u_error::@2->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str1
|
||||
@ -9148,7 +9149,7 @@ mul8u_error: {
|
||||
//SEG516 [63] phi from mul8u_error::@4 to print_str [phi:mul8u_error::@4->print_str]
|
||||
print_str_from_b4:
|
||||
//SEG517 [63] phi (byte*) print_char_cursor#152 = (byte*) print_char_cursor#18 [phi:mul8u_error::@4->print_str#0] -- register_copy
|
||||
//SEG518 [63] phi (byte*) print_str::str#18 = (const string) mul8u_error::str2 [phi:mul8u_error::@4->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG518 [63] phi (byte*) print_str::str#18 = (const string) str2 [phi:mul8u_error::@4->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str2
|
||||
sta print_str.str
|
||||
lda #>str2
|
||||
@ -9173,7 +9174,7 @@ mul8u_error: {
|
||||
//SEG528 [63] phi from mul8u_error::@6 to print_str [phi:mul8u_error::@6->print_str]
|
||||
print_str_from_b6:
|
||||
//SEG529 [63] phi (byte*) print_char_cursor#152 = (byte*) print_char_cursor#18 [phi:mul8u_error::@6->print_str#0] -- register_copy
|
||||
//SEG530 [63] phi (byte*) print_str::str#18 = (const string) mul8u_error::str3 [phi:mul8u_error::@6->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG530 [63] phi (byte*) print_str::str#18 = (const string) str3 [phi:mul8u_error::@6->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str3
|
||||
sta print_str.str
|
||||
lda #>str3
|
||||
@ -9202,7 +9203,7 @@ mul8u_error: {
|
||||
//SEG540 [63] phi from mul8u_error::@8 to print_str [phi:mul8u_error::@8->print_str]
|
||||
print_str_from_b8:
|
||||
//SEG541 [63] phi (byte*) print_char_cursor#152 = (byte*) print_char_cursor#18 [phi:mul8u_error::@8->print_str#0] -- register_copy
|
||||
//SEG542 [63] phi (byte*) print_str::str#18 = (const string) mul8u_error::str4 [phi:mul8u_error::@8->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG542 [63] phi (byte*) print_str::str#18 = (const string) str4 [phi:mul8u_error::@8->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str4
|
||||
sta print_str.str
|
||||
lda #>str4
|
||||
@ -9239,10 +9240,6 @@ mul8u_error: {
|
||||
//SEG556 [269] return
|
||||
rts
|
||||
str: .text "multiply mismatch @"
|
||||
str1: .text "*@"
|
||||
str2: .text " slow:@"
|
||||
str3: .text " / normal:@"
|
||||
str4: .text " / fast:@"
|
||||
}
|
||||
//SEG557 mulf8u
|
||||
// Fast multiply two unsigned bytes to a word result
|
||||
@ -9837,6 +9834,10 @@ print_cls: {
|
||||
// >((( x - 255) * ( x - 255 ))/4)
|
||||
.align $100
|
||||
mula_sqr2_hi: .fill $200, 0
|
||||
str4: .text " / fast:@"
|
||||
str3: .text " / normal:@"
|
||||
str1: .text "*@"
|
||||
str2: .text " slow:@"
|
||||
|
||||
ASSEMBLER OPTIMIZATIONS
|
||||
Removing instruction jmp b42
|
||||
@ -10388,10 +10389,6 @@ FINAL SYMBOL TABLE
|
||||
(signed word) mul8s_error::ms
|
||||
(signed word) mul8s_error::ms#0 ms zp ZP_WORD:8 0.3076923076923077
|
||||
(const string) mul8s_error::str str = (string) "signed multiply mismatch @"
|
||||
(const string) mul8s_error::str1 str1 = (string) "*@"
|
||||
(const string) mul8s_error::str2 str2 = (string) " slow:@"
|
||||
(const string) mul8s_error::str3 str3 = (string) " / normal:@"
|
||||
(const string) mul8s_error::str4 str4 = (string) " / fast:@"
|
||||
(word()) mul8u((byte) mul8u::a , (byte) mul8u::b)
|
||||
(byte~) mul8u::$1 reg byte a 2002.0
|
||||
(label) mul8u::@1
|
||||
@ -10475,10 +10472,6 @@ FINAL SYMBOL TABLE
|
||||
(word) mul8u_error::ms
|
||||
(word) mul8u_error::ms#0 ms zp ZP_WORD:8 0.3076923076923077
|
||||
(const string) mul8u_error::str str = (string) "multiply mismatch @"
|
||||
(const string) mul8u_error::str1 str1 = (string) "*@"
|
||||
(const string) mul8u_error::str2 str2 = (string) " slow:@"
|
||||
(const string) mul8u_error::str3 str3 = (string) " / normal:@"
|
||||
(const string) mul8u_error::str4 str4 = (string) " / fast:@"
|
||||
(byte[512]) mula_sqr1_hi
|
||||
(const byte[512]) mula_sqr1_hi#0 mula_sqr1_hi = { fill( 512, 0) }
|
||||
(byte[512]) mula_sqr1_lo
|
||||
@ -10765,6 +10758,10 @@ FINAL SYMBOL TABLE
|
||||
(word) print_word::w#4 w zp ZP_WORD:8 4.0
|
||||
(word) print_word::w#5 w zp ZP_WORD:8 4.0
|
||||
(word) print_word::w#6 w zp ZP_WORD:8 5.333333333333333
|
||||
(const string) str1 str1 = (string) "*@"
|
||||
(const string) str2 str2 = (string) " slow:@"
|
||||
(const string) str3 str3 = (string) " / normal:@"
|
||||
(const string) str4 str4 = (string) " / fast:@"
|
||||
|
||||
zp ZP_BYTE:2 [ mul8s_compare::a#7 mul8s_compare::a#1 muls8s::a#0 mul8s::a#0 mul8u_compare::a#7 mul8u_compare::a#1 muls8u::a#0 mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 mulf_init::dir#2 mulf_init::dir#3 ]
|
||||
zp ZP_BYTE:3 [ mul8s_compare::b#10 mul8s_compare::b#1 mul8s_error::b#0 mul8u_compare::b#10 mul8u_compare::b#1 mul8u_error::b#0 mulf8s_prepared::b#0 ]
|
||||
@ -11114,7 +11111,7 @@ mul8s_error: {
|
||||
//SEG142 [75] call print_str
|
||||
//SEG143 [63] phi from mul8s_error::@2 to print_str [phi:mul8s_error::@2->print_str]
|
||||
//SEG144 [63] phi (byte*) print_char_cursor#152 = (byte*) print_char_cursor#18 [phi:mul8s_error::@2->print_str#0] -- register_copy
|
||||
//SEG145 [63] phi (byte*) print_str::str#18 = (const string) mul8s_error::str1 [phi:mul8s_error::@2->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG145 [63] phi (byte*) print_str::str#18 = (const string) str1 [phi:mul8s_error::@2->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str1
|
||||
@ -11132,7 +11129,7 @@ mul8s_error: {
|
||||
//SEG153 [79] call print_str
|
||||
//SEG154 [63] phi from mul8s_error::@4 to print_str [phi:mul8s_error::@4->print_str]
|
||||
//SEG155 [63] phi (byte*) print_char_cursor#152 = (byte*) print_char_cursor#18 [phi:mul8s_error::@4->print_str#0] -- register_copy
|
||||
//SEG156 [63] phi (byte*) print_str::str#18 = (const string) mul8s_error::str2 [phi:mul8s_error::@4->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG156 [63] phi (byte*) print_str::str#18 = (const string) str2 [phi:mul8s_error::@4->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str2
|
||||
sta print_str.str
|
||||
lda #>str2
|
||||
@ -11149,7 +11146,7 @@ mul8s_error: {
|
||||
//SEG164 [83] call print_str
|
||||
//SEG165 [63] phi from mul8s_error::@6 to print_str [phi:mul8s_error::@6->print_str]
|
||||
//SEG166 [63] phi (byte*) print_char_cursor#152 = (byte*) print_char_cursor#18 [phi:mul8s_error::@6->print_str#0] -- register_copy
|
||||
//SEG167 [63] phi (byte*) print_str::str#18 = (const string) mul8s_error::str3 [phi:mul8s_error::@6->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG167 [63] phi (byte*) print_str::str#18 = (const string) str3 [phi:mul8s_error::@6->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str3
|
||||
sta print_str.str
|
||||
lda #>str3
|
||||
@ -11170,7 +11167,7 @@ mul8s_error: {
|
||||
//SEG175 [87] call print_str
|
||||
//SEG176 [63] phi from mul8s_error::@8 to print_str [phi:mul8s_error::@8->print_str]
|
||||
//SEG177 [63] phi (byte*) print_char_cursor#152 = (byte*) print_char_cursor#18 [phi:mul8s_error::@8->print_str#0] -- register_copy
|
||||
//SEG178 [63] phi (byte*) print_str::str#18 = (const string) mul8s_error::str4 [phi:mul8s_error::@8->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG178 [63] phi (byte*) print_str::str#18 = (const string) str4 [phi:mul8s_error::@8->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str4
|
||||
sta print_str.str
|
||||
lda #>str4
|
||||
@ -11197,10 +11194,6 @@ mul8s_error: {
|
||||
//SEG191 [92] return
|
||||
rts
|
||||
str: .text "signed multiply mismatch @"
|
||||
str1: .text "*@"
|
||||
str2: .text " slow:@"
|
||||
str3: .text " / normal:@"
|
||||
str4: .text " / fast:@"
|
||||
}
|
||||
//SEG192 print_sword
|
||||
// Print a signed word as HEX
|
||||
@ -11880,7 +11873,7 @@ mul8u_error: {
|
||||
//SEG503 [252] call print_str
|
||||
//SEG504 [63] phi from mul8u_error::@2 to print_str [phi:mul8u_error::@2->print_str]
|
||||
//SEG505 [63] phi (byte*) print_char_cursor#152 = (byte*) print_char_cursor#18 [phi:mul8u_error::@2->print_str#0] -- register_copy
|
||||
//SEG506 [63] phi (byte*) print_str::str#18 = (const string) mul8u_error::str1 [phi:mul8u_error::@2->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG506 [63] phi (byte*) print_str::str#18 = (const string) str1 [phi:mul8u_error::@2->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str1
|
||||
sta print_str.str
|
||||
lda #>str1
|
||||
@ -11899,7 +11892,7 @@ mul8u_error: {
|
||||
//SEG515 [256] call print_str
|
||||
//SEG516 [63] phi from mul8u_error::@4 to print_str [phi:mul8u_error::@4->print_str]
|
||||
//SEG517 [63] phi (byte*) print_char_cursor#152 = (byte*) print_char_cursor#18 [phi:mul8u_error::@4->print_str#0] -- register_copy
|
||||
//SEG518 [63] phi (byte*) print_str::str#18 = (const string) mul8u_error::str2 [phi:mul8u_error::@4->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG518 [63] phi (byte*) print_str::str#18 = (const string) str2 [phi:mul8u_error::@4->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str2
|
||||
sta print_str.str
|
||||
lda #>str2
|
||||
@ -11917,7 +11910,7 @@ mul8u_error: {
|
||||
//SEG527 [260] call print_str
|
||||
//SEG528 [63] phi from mul8u_error::@6 to print_str [phi:mul8u_error::@6->print_str]
|
||||
//SEG529 [63] phi (byte*) print_char_cursor#152 = (byte*) print_char_cursor#18 [phi:mul8u_error::@6->print_str#0] -- register_copy
|
||||
//SEG530 [63] phi (byte*) print_str::str#18 = (const string) mul8u_error::str3 [phi:mul8u_error::@6->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG530 [63] phi (byte*) print_str::str#18 = (const string) str3 [phi:mul8u_error::@6->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str3
|
||||
sta print_str.str
|
||||
lda #>str3
|
||||
@ -11939,7 +11932,7 @@ mul8u_error: {
|
||||
//SEG539 [264] call print_str
|
||||
//SEG540 [63] phi from mul8u_error::@8 to print_str [phi:mul8u_error::@8->print_str]
|
||||
//SEG541 [63] phi (byte*) print_char_cursor#152 = (byte*) print_char_cursor#18 [phi:mul8u_error::@8->print_str#0] -- register_copy
|
||||
//SEG542 [63] phi (byte*) print_str::str#18 = (const string) mul8u_error::str4 [phi:mul8u_error::@8->print_str#1] -- pbuz1=pbuc1
|
||||
//SEG542 [63] phi (byte*) print_str::str#18 = (const string) str4 [phi:mul8u_error::@8->print_str#1] -- pbuz1=pbuc1
|
||||
lda #<str4
|
||||
sta print_str.str
|
||||
lda #>str4
|
||||
@ -11967,10 +11960,6 @@ mul8u_error: {
|
||||
//SEG556 [269] return
|
||||
rts
|
||||
str: .text "multiply mismatch @"
|
||||
str1: .text "*@"
|
||||
str2: .text " slow:@"
|
||||
str3: .text " / normal:@"
|
||||
str4: .text " / fast:@"
|
||||
}
|
||||
//SEG557 mulf8u
|
||||
// Fast multiply two unsigned bytes to a word result
|
||||
@ -12483,4 +12472,8 @@ print_cls: {
|
||||
// >((( x - 255) * ( x - 255 ))/4)
|
||||
.align $100
|
||||
mula_sqr2_hi: .fill $200, 0
|
||||
str4: .text " / fast:@"
|
||||
str3: .text " / normal:@"
|
||||
str1: .text "*@"
|
||||
str2: .text " slow:@"
|
||||
|
||||
|
@ -90,10 +90,6 @@
|
||||
(signed word) mul8s_error::ms
|
||||
(signed word) mul8s_error::ms#0 ms zp ZP_WORD:8 0.3076923076923077
|
||||
(const string) mul8s_error::str str = (string) "signed multiply mismatch @"
|
||||
(const string) mul8s_error::str1 str1 = (string) "*@"
|
||||
(const string) mul8s_error::str2 str2 = (string) " slow:@"
|
||||
(const string) mul8s_error::str3 str3 = (string) " / normal:@"
|
||||
(const string) mul8s_error::str4 str4 = (string) " / fast:@"
|
||||
(word()) mul8u((byte) mul8u::a , (byte) mul8u::b)
|
||||
(byte~) mul8u::$1 reg byte a 2002.0
|
||||
(label) mul8u::@1
|
||||
@ -177,10 +173,6 @@
|
||||
(word) mul8u_error::ms
|
||||
(word) mul8u_error::ms#0 ms zp ZP_WORD:8 0.3076923076923077
|
||||
(const string) mul8u_error::str str = (string) "multiply mismatch @"
|
||||
(const string) mul8u_error::str1 str1 = (string) "*@"
|
||||
(const string) mul8u_error::str2 str2 = (string) " slow:@"
|
||||
(const string) mul8u_error::str3 str3 = (string) " / normal:@"
|
||||
(const string) mul8u_error::str4 str4 = (string) " / fast:@"
|
||||
(byte[512]) mula_sqr1_hi
|
||||
(const byte[512]) mula_sqr1_hi#0 mula_sqr1_hi = { fill( 512, 0) }
|
||||
(byte[512]) mula_sqr1_lo
|
||||
@ -467,6 +459,10 @@
|
||||
(word) print_word::w#4 w zp ZP_WORD:8 4.0
|
||||
(word) print_word::w#5 w zp ZP_WORD:8 4.0
|
||||
(word) print_word::w#6 w zp ZP_WORD:8 5.333333333333333
|
||||
(const string) str1 str1 = (string) "*@"
|
||||
(const string) str2 str2 = (string) " slow:@"
|
||||
(const string) str3 str3 = (string) " / normal:@"
|
||||
(const string) str4 str4 = (string) " / fast:@"
|
||||
|
||||
zp ZP_BYTE:2 [ mul8s_compare::a#7 mul8s_compare::a#1 muls8s::a#0 mul8s::a#0 mul8u_compare::a#7 mul8u_compare::a#1 muls8u::a#0 mulf_init::x_2#3 mulf_init::x_2#2 mulf_init::x_2#1 mulf_init::dir#2 mulf_init::dir#3 ]
|
||||
zp ZP_BYTE:3 [ mul8s_compare::b#10 mul8s_compare::b#1 mul8s_error::b#0 mul8u_compare::b#10 mul8u_compare::b#1 mul8u_error::b#0 mulf8s_prepared::b#0 ]
|
||||
|
Loading…
x
Reference in New Issue
Block a user