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

Added initial min/max sin-generator.

This commit is contained in:
jespergravgaard 2018-02-26 23:00:10 +01:00
parent d5fd4a41c3
commit 0663888a3f
23 changed files with 13226 additions and 1033 deletions

View File

@ -0,0 +1,2 @@
clc
adc {z1}+1

View File

@ -42,7 +42,7 @@ public class TestPrograms {
public static void tearDown() throws Exception {
CompileLog log = new CompileLog();
log.setSysOut(true);
AsmFragmentTemplateUsages.logUsages(log, true, false, false, false, false, false);
AsmFragmentTemplateUsages.logUsages(log, false, false, false, false, false, false);
}
@Test
@ -60,6 +60,11 @@ public class TestPrograms {
compileAndCompare("sinusgen16");
}
@Test
public void testSinusGenScale8() throws IOException, URISyntaxException {
compileAndCompare("sinusgenscale8");
}
@Test
public void testSinusGen8() throws IOException, URISyntaxException {
compileAndCompare("sinusgen8");

View File

@ -27,6 +27,16 @@ signed word mul8s(signed byte a, signed byte b) {
return (signed word)m;
}
// Multiply a signed byte and an unsigned byte (into a signed word)
// Fixes offsets introduced by using unsigned multiplication
signed word mul8su(signed byte a, byte b) {
word m = mul8u((byte)a, (byte) b);
if(a<0) {
>m = (>m)-(byte)b;
}
return (signed word)m;
}
// Perform binary multiplication of two unsigned 16-bit words into a 32-bit unsigned double word
dword mul16u(word a, word b) {
dword res = 0;

View File

@ -0,0 +1,58 @@
import "sinus.kc"
import "multiply.kc"
import "print.kc"
void main() {
word tabsize = 20;
byte[20] sintab;
print_cls();
sin8u_table(sintab, tabsize, 10, 255);
/*
print_cls();
for(byte i: 0..191) {
signed byte sb = sintab[i];
if(sb>=0) {
print_str(" @");
}
print_sbyte(sb);
print_str(" @");
}
*/
}
// Generate unsigned byte sinus table in a min-max range
// sintab - the table to generate into
// tabsize - the number of sinus points (the size of the table)
// min - the minimal value
// max - the maximal value
void sin8u_table(byte* sintab, word tabsize, byte min, byte max) {
byte amplitude = max-min;
word sum = min+max;
byte mid = (byte)(sum>>1);
// u[4.28] step = PI*2/wavelength
word step = div16u(PI2_u4f12, tabsize); // u[4.12]
print_str("step:@");
print_word(step);
print_str(" min:@");
print_byte(min);
print_str(" max:@");
print_byte(max);
print_str(" ampl:@");
print_byte(amplitude);
print_str(" mid:@");
print_byte(mid);
print_ln();
// Iterate over the table
word x = 0; // u[4.12]
for( word i=0; i<tabsize; i++) {
byte sinval = mid+>mul8su(sin8s(x), amplitude);
*sintab++ = sinval;
print_str("x: @");
print_word(x);
print_str(" sin: @");
print_byte(sinval);
print_ln();
x = x + step;
}
}

View File

@ -1,13 +1,13 @@
@begin: scope:[] from
[0] phi() [ ] ( )
to:@28
@28: scope:[] from @begin
to:@29
@29: scope:[] from @begin
[1] phi() [ ] ( )
[2] call main param-assignment [ ] ( )
to:@end
@end: scope:[] from @28
@end: scope:[] from @29
[3] phi() [ ] ( )
main: scope:[main] from @28
main: scope:[main] from @29
[4] phi() [ ] ( main:2 [ ] )
[5] call sin16s_gen param-assignment [ ] ( main:2 [ ] )
to:main::@5

View File

@ -330,6 +330,16 @@ signed word mul8s(signed byte a, signed byte b) {
return (signed word)m;
}
// Multiply a signed byte and an unsigned byte (into a signed word)
// Fixes offsets introduced by using unsigned multiplication
signed word mul8su(signed byte a, byte b) {
word m = mul8u((byte)a, (byte) b);
if(a<0) {
>m = (>m)-(byte)b;
}
return (signed word)m;
}
// Perform binary multiplication of two unsigned 16-bit words into a 32-bit unsigned double word
dword mul16u(word a, word b) {
dword res = 0;
@ -719,6 +729,27 @@ mul8s::@return:
(signed word) mul8s::return ← (signed word) mul8s::return
return (signed word) mul8s::return
endproc // mul8s()
proc (signed word()) mul8su((signed byte) mul8su::a , (byte) mul8su::b)
(byte~) mul8su::$0 ← ((byte)) (signed byte) mul8su::a
(byte~) mul8su::$1 ← ((byte)) (byte) mul8su::b
(word~) mul8su::$2 ← call mul8u (byte~) mul8su::$0 (byte~) mul8su::$1
(word) mul8su::m ← (word~) mul8su::$2
(boolean~) mul8su::$3 ← (signed byte) mul8su::a < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) mul8su::$4 ← ! (boolean~) mul8su::$3
if((boolean~) mul8su::$4) goto mul8su::@1
(byte~) mul8su::$5 ← > (word) mul8su::m
(byte~) mul8su::$6 ← > (word) mul8su::m
(byte~) mul8su::$7 ← ((byte)) (byte) mul8su::b
(byte/signed byte/word/signed word/dword/signed dword~) mul8su::$8 ← (byte~) mul8su::$6 - (byte~) mul8su::$7
lval((byte~) mul8su::$5) ← (byte/signed byte/word/signed word/dword/signed dword~) mul8su::$8
mul8su::@1:
(signed word~) mul8su::$9 ← ((signed word)) (word) mul8su::m
(signed word) mul8su::return ← (signed word~) mul8su::$9
goto mul8su::@return
mul8su::@return:
(signed word) mul8su::return ← (signed word) mul8su::return
return (signed word) mul8su::return
endproc // mul8su()
proc (dword()) mul16u((word) mul16u::a , (word) mul16u::b)
(dword) mul16u::res ← (byte/signed byte/word/signed word/dword/signed dword) 0
(dword) mul16u::mb ← (word) mul16u::b
@ -1312,6 +1343,23 @@ SYMBOLS
(signed byte) mul8s::b
(word) mul8s::m
(signed word) mul8s::return
(signed word()) mul8su((signed byte) mul8su::a , (byte) mul8su::b)
(byte~) mul8su::$0
(byte~) mul8su::$1
(word~) mul8su::$2
(boolean~) mul8su::$3
(boolean~) mul8su::$4
(byte~) mul8su::$5
(byte~) mul8su::$6
(byte~) mul8su::$7
(byte/signed byte/word/signed word/dword/signed dword~) mul8su::$8
(signed word~) mul8su::$9
(label) mul8su::@1
(label) mul8su::@return
(signed byte) mul8su::a
(byte) mul8su::b
(word) mul8su::m
(signed word) mul8su::return
(word()) mul8u((byte) mul8u::a , (byte) mul8u::b)
(boolean~) mul8u::$0
(byte~) mul8u::$1
@ -1534,6 +1582,7 @@ SYMBOLS
Fixing lo/hi-lvalue with new tmpVar mul8s::$16 mul8s::$16 ← mul8s::$8
Fixing lo/hi-lvalue with new tmpVar mul8s::$17 mul8s::$17 ← mul8s::$14
Fixing lo/hi-lvalue with new tmpVar mul8su::$10 mul8su::$10 ← mul8su::$8
Fixing lo/hi-lvalue with new tmpVar mul16s::$16 mul16s::$16 ← mul16s::$8
Fixing lo/hi-lvalue with new tmpVar mul16s::$17 mul16s::$17 ← mul16s::$14
Promoting byte to word in mul8u::mb ← ((word)) mul8u::b
@ -1912,6 +1961,35 @@ mul8s::@5: scope:[mul8s] from
to:mul8s::@return
@9: scope:[] from @8
to:@10
mul8su: scope:[mul8su] from
(byte~) mul8su::$0 ← ((byte)) (signed byte) mul8su::a
(byte~) mul8su::$1 ← ((byte)) (byte) mul8su::b
(word~) mul8su::$2 ← call mul8u (byte~) mul8su::$0 (byte~) mul8su::$1
(word) mul8su::m ← (word~) mul8su::$2
(boolean~) mul8su::$3 ← (signed byte) mul8su::a < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) mul8su::$4 ← ! (boolean~) mul8su::$3
if((boolean~) mul8su::$4) goto mul8su::@1
to:mul8su::@2
mul8su::@1: scope:[mul8su] from mul8su mul8su::@2
(signed word~) mul8su::$9 ← ((signed word)) (word) mul8su::m
(signed word) mul8su::return ← (signed word~) mul8su::$9
to:mul8su::@return
mul8su::@2: scope:[mul8su] from mul8su
(byte~) mul8su::$5 ← > (word) mul8su::m
(byte~) mul8su::$6 ← > (word) mul8su::m
(byte~) mul8su::$7 ← ((byte)) (byte) mul8su::b
(byte/signed byte/word/signed word/dword/signed dword~) mul8su::$8 ← (byte~) mul8su::$6 - (byte~) mul8su::$7
(byte/signed byte/word/signed word/dword/signed dword~) mul8su::$10 ← (byte/signed byte/word/signed word/dword/signed dword~) mul8su::$8
(word) mul8su::m ← (word) mul8su::m hi= (byte/signed byte/word/signed word/dword/signed dword~) mul8su::$10
to:mul8su::@1
mul8su::@return: scope:[mul8su] from mul8su::@1 mul8su::@3
(signed word) mul8su::return ← (signed word) mul8su::return
return (signed word) mul8su::return
to:@return
mul8su::@3: scope:[mul8su] from
to:mul8su::@return
@10: scope:[] from @9
to:@11
mul16u: scope:[mul16u] from
(dword) mul16u::res ← (byte/signed byte/word/signed word/dword/signed dword) 0
(dword) mul16u::mb ← ((dword)) (word) mul16u::b
@ -1951,8 +2029,8 @@ mul16u::@return: scope:[mul16u] from mul16u::@3 mul16u::@9
to:@return
mul16u::@9: scope:[mul16u] from
to:mul16u::@return
@10: scope:[] from @9
to:@11
@11: scope:[] from @10
to:@12
mul16s: scope:[mul16s] from
(word~) mul16s::$0 ← ((word)) (signed word) mul16s::a
(word~) mul16s::$1 ← ((word)) (signed word) mul16s::b
@ -1993,14 +2071,14 @@ mul16s::@return: scope:[mul16s] from mul16s::@2 mul16s::@5
to:@return
mul16s::@5: scope:[mul16s] from
to:mul16s::@return
@11: scope:[] from @10
@12: scope:[] from @11
(dword) PI2_u4f28 ← (dword/signed dword) 1686629713
(dword) PI_u4f28 ← (dword/signed dword) 843314857
(dword) PI_HALF_u4f28 ← (dword/signed dword) 421657428
(word) PI2_u4f12 ← (word/signed word/dword/signed dword) 25736
(word) PI_u4f12 ← (word/signed word/dword/signed dword) 12868
(word) PI_HALF_u4f12 ← (word/signed word/dword/signed dword) 6434
to:@12
to:@13
sin16s_gen: scope:[sin16s_gen] from
(dword~) sin16s_gen::$0 ← call div32u16u (dword) PI2_u4f28 (word) sin16s_gen::wavelength
(dword) sin16s_gen::step ← (dword~) sin16s_gen::$0
@ -2023,8 +2101,8 @@ sin16s_gen::@2: scope:[sin16s_gen] from sin16s_gen::@1
sin16s_gen::@return: scope:[sin16s_gen] from sin16s_gen::@2
return
to:@return
@12: scope:[] from @11
to:@13
@13: scope:[] from @12
to:@14
sin8s_gen: scope:[sin8s_gen] from
(word~) sin8s_gen::$0 ← call div16u (word) PI2_u4f12 (word) sin8s_gen::wavelength
(word) sin8s_gen::step ← (word~) sin8s_gen::$0
@ -2046,8 +2124,8 @@ sin8s_gen::@2: scope:[sin8s_gen] from sin8s_gen::@1
sin8s_gen::@return: scope:[sin8s_gen] from sin8s_gen::@2
return
to:@return
@13: scope:[] from @12
to:@14
@14: scope:[] from @13
to:@15
sin16s: scope:[sin16s] from
(byte) sin16s::isUpper ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) sin16s::$0 ← (dword) sin16s::x >= (dword) PI_u4f28
@ -2109,8 +2187,8 @@ sin16s::@return: scope:[sin16s] from sin16s::@3 sin16s::@7
to:@return
sin16s::@7: scope:[sin16s] from
to:sin16s::@return
@14: scope:[] from @13
to:@15
@15: scope:[] from @14
to:@16
sin8s: scope:[sin8s] from
(byte) sin8s::isUpper ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) sin8s::$0 ← (word) sin8s::x >= (word) PI_u4f12
@ -2180,8 +2258,8 @@ sin8s::@return: scope:[sin8s] from sin8s::@4 sin8s::@9
to:@return
sin8s::@9: scope:[sin8s] from
to:sin8s::@return
@15: scope:[] from @14
to:@16
@16: scope:[] from @15
to:@17
mulu16_sel: scope:[mulu16_sel] from
(dword~) mulu16_sel::$0 ← call mul16u (word) mulu16_sel::v1 (word) mulu16_sel::v2
(dword~) mulu16_sel::$1 ← (dword~) mulu16_sel::$0 << (byte) mulu16_sel::select
@ -2194,8 +2272,8 @@ mulu16_sel::@return: scope:[mulu16_sel] from mulu16_sel mulu16_sel::@1
to:@return
mulu16_sel::@1: scope:[mulu16_sel] from
to:mulu16_sel::@return
@16: scope:[] from @15
to:@17
@17: scope:[] from @16
to:@18
mulu8_sel: scope:[mulu8_sel] from
(word~) mulu8_sel::$0 ← call mul8u (byte) mulu8_sel::v1 (byte) mulu8_sel::v2
(word~) mulu8_sel::$1 ← (word~) mulu8_sel::$0 << (byte) mulu8_sel::select
@ -2208,11 +2286,11 @@ mulu8_sel::@return: scope:[mulu8_sel] from mulu8_sel mulu8_sel::@1
to:@return
mulu8_sel::@1: scope:[mulu8_sel] from
to:mulu8_sel::@return
@17: scope:[] from @16
@18: scope:[] from @17
(byte*) SCREEN ← ((byte*)) (word/signed word/dword/signed dword) 1024
(byte*) line_cursor ← (byte*) SCREEN
(byte*) char_cursor ← (byte*) line_cursor
to:@18
to:@19
print_str: scope:[print_str] from
to:print_str::@1
print_str::@1: scope:[print_str] from print_str print_str::@2
@ -2235,8 +2313,8 @@ print_str::@6: scope:[print_str] from
print_str::@return: scope:[print_str] from print_str::@3
return
to:@return
@18: scope:[] from @17
to:@19
@19: scope:[] from @18
to:@20
print_ln: scope:[print_ln] from
to:print_ln::@1
print_ln::@1: scope:[print_ln] from print_ln print_ln::@1
@ -2251,8 +2329,8 @@ print_ln::@2: scope:[print_ln] from print_ln::@1
print_ln::@return: scope:[print_ln] from print_ln::@2
return
to:@return
@19: scope:[] from @18
to:@20
@20: scope:[] from @19
to:@21
print_sword: scope:[print_sword] from
(boolean~) print_sword::$0 ← (signed word) print_sword::w < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) print_sword::$1 ← ! (boolean~) print_sword::$0
@ -2270,8 +2348,8 @@ print_sword::@2: scope:[print_sword] from print_sword
print_sword::@return: scope:[print_sword] from print_sword::@1
return
to:@return
@20: scope:[] from @19
to:@21
@21: scope:[] from @20
to:@22
print_sbyte: scope:[print_sbyte] from
(boolean~) print_sbyte::$0 ← (signed byte) print_sbyte::b < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) print_sbyte::$1 ← ! (boolean~) print_sbyte::$0
@ -2289,8 +2367,8 @@ print_sbyte::@2: scope:[print_sbyte] from print_sbyte
print_sbyte::@return: scope:[print_sbyte] from print_sbyte::@1
return
to:@return
@21: scope:[] from @20
to:@22
@22: scope:[] from @21
to:@23
print_word: scope:[print_word] from
(byte~) print_word::$0 ← > (word) print_word::w
(void~) print_word::$1 ← call print_byte (byte~) print_word::$0
@ -2300,8 +2378,8 @@ print_word: scope:[print_word] from
print_word::@return: scope:[print_word] from print_word
return
to:@return
@22: scope:[] from @21
to:@23
@23: scope:[] from @22
to:@24
print_dword: scope:[print_dword] from
(word~) print_dword::$0 ← > (dword) print_dword::dw
(void~) print_dword::$1 ← call print_word (word~) print_dword::$0
@ -2311,8 +2389,8 @@ print_dword: scope:[print_dword] from
print_dword::@return: scope:[print_dword] from print_dword
return
to:@return
@23: scope:[] from @22
to:@24
@24: scope:[] from @23
to:@25
print_sdword: scope:[print_sdword] from
(boolean~) print_sdword::$0 ← (signed dword) print_sdword::dw < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) print_sdword::$1 ← ! (boolean~) print_sdword::$0
@ -2330,8 +2408,8 @@ print_sdword::@2: scope:[print_sdword] from print_sdword
print_sdword::@return: scope:[print_sdword] from print_sdword::@1
return
to:@return
@24: scope:[] from @23
to:@25
@25: scope:[] from @24
to:@26
print_byte: scope:[print_byte] from
(byte[]) print_byte::hextab ← (string) "0123456789abcdef"
(byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4
@ -2342,8 +2420,8 @@ print_byte: scope:[print_byte] from
print_byte::@return: scope:[print_byte] from print_byte
return
to:@return
@25: scope:[] from @24
to:@26
@26: scope:[] from @25
to:@27
print_char: scope:[print_char] from
*((byte*) char_cursor) ← (byte) print_char::ch
(byte*) char_cursor ← ++ (byte*) char_cursor
@ -2351,8 +2429,8 @@ print_char: scope:[print_char] from
print_char::@return: scope:[print_char] from print_char
return
to:@return
@26: scope:[] from @25
to:@27
@27: scope:[] from @26
to:@28
print_cls: scope:[print_cls] from
(byte*) print_cls::sc ← (byte*) SCREEN
to:print_cls::@1
@ -2370,8 +2448,8 @@ print_cls::@2: scope:[print_cls] from print_cls::@1
print_cls::@return: scope:[print_cls] from print_cls::@2
return
to:@return
@27: scope:[] from @26
to:@28
@28: scope:[] from @27
to:@29
main: scope:[main] from
(word) main::wavelength ← (byte/signed byte/word/signed word/dword/signed dword) 120
(signed word[120]) main::sintab1 ← { fill( 120, 0) }
@ -2403,14 +2481,15 @@ main::@4: scope:[main] from main::@2
main::@return: scope:[main] from main::@4
return
to:@return
@28: scope:[] from @27
@29: scope:[] from @28
call main
to:@end
@end: scope:[] from @28
@end: scope:[] from @29
Removing unused procedure div8s
Removing unused procedure div16s
Removing unused procedure mul8s
Removing unused procedure mul8su
Removing unused procedure mul16s
Removing unused procedure sin8s_gen
Removing unused procedure print_ln
@ -2453,24 +2532,24 @@ Removing empty block @6
Removing empty block @7
Removing empty block @8
Removing empty block @9
Removing empty block @10
Removing empty block mul16u::@5
Removing empty block mul16u::@6
Removing empty block mul16u::@8
Removing empty block mul16u::@9
Removing empty block @10
Removing empty block @11
Removing empty block sin16s_gen::@2
Removing empty block @12
Removing empty block @13
Removing empty block sin16s::@7
Removing empty block @14
Removing empty block sin16s::@7
Removing empty block @15
Removing empty block mulu16_sel::@1
Removing empty block @16
Removing empty block mulu16_sel::@1
Removing empty block @17
Removing empty block print_str::@4
Removing empty block print_str::@3
Removing empty block print_str::@5
Removing empty block print_str::@6
Removing empty block @18
Removing empty block @19
Removing empty block @20
Removing empty block @21
@ -2480,6 +2559,7 @@ Removing empty block @24
Removing empty block @25
Removing empty block @26
Removing empty block @27
Removing empty block @28
Removing empty block main::@4
PROCEDURE MODIFY VARIABLE ANALYSIS
divr16u modifies rem16u
@ -2509,7 +2589,7 @@ CONTROL FLOW GRAPH SSA WITH ASSIGNMENT CALL & RETURN
to:@2
@2: scope:[] from @begin
(word) rem16u#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
to:@11
to:@12
divr16u: scope:[divr16u] from div32u16u div32u16u::@2
(word) divr16u::divisor#6 ← phi( div32u16u/(word) divr16u::divisor#0 div32u16u::@2/(word) divr16u::divisor#1 )
(word) divr16u::dividend#5 ← phi( div32u16u/(word) divr16u::dividend#1 div32u16u::@2/(word) divr16u::dividend#2 )
@ -2677,12 +2757,12 @@ mul16u::@return: scope:[mul16u] from mul16u::@3
(dword) mul16u::return#1 ← (dword) mul16u::return#3
return
to:@return
@11: scope:[] from @2
@12: scope:[] from @2
(word) rem16u#29 ← phi( @2/(word) rem16u#0 )
(dword) PI2_u4f28#0 ← (dword/signed dword) 1686629713
(dword) PI_u4f28#0 ← (dword/signed dword) 843314857
(dword) PI_HALF_u4f28#0 ← (dword/signed dword) 421657428
to:@17
to:@18
sin16s_gen: scope:[sin16s_gen] from main
(signed word*) sin16s_gen::sintab#5 ← phi( main/(signed word*) sin16s_gen::sintab#1 )
(word) rem16u#21 ← phi( main/(word) rem16u#23 )
@ -2881,12 +2961,12 @@ mulu16_sel::@return: scope:[mulu16_sel] from mulu16_sel::@2
(word) mulu16_sel::return#6 ← (word) mulu16_sel::return#12
return
to:@return
@17: scope:[] from @11
(word) rem16u#28 ← phi( @11/(word) rem16u#29 )
@18: scope:[] from @12
(word) rem16u#28 ← phi( @12/(word) rem16u#29 )
(byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024
(byte*) line_cursor#0 ← (byte*) SCREEN#0
(byte*) char_cursor#0 ← (byte*) line_cursor#0
to:@28
to:@29
print_str: scope:[print_str] from main::@3 main::@7
(byte*) char_cursor#51 ← phi( main::@3/(byte*) char_cursor#49 main::@7/(byte*) char_cursor#17 )
(byte*) print_str::str#5 ← phi( main::@3/(byte*) print_str::str#2 main::@7/(byte*) print_str::str#1 )
@ -3027,10 +3107,10 @@ print_cls::@return: scope:[print_cls] from print_cls::@2
(byte*) char_cursor#15 ← (byte*) char_cursor#35
return
to:@return
main: scope:[main] from @28
(byte*) char_cursor#53 ← phi( @28/(byte*) char_cursor#50 )
(byte*) line_cursor#13 ← phi( @28/(byte*) line_cursor#12 )
(word) rem16u#23 ← phi( @28/(word) rem16u#25 )
main: scope:[main] from @29
(byte*) char_cursor#53 ← phi( @29/(byte*) char_cursor#50 )
(byte*) line_cursor#13 ← phi( @29/(byte*) line_cursor#12 )
(word) rem16u#23 ← phi( @29/(word) rem16u#25 )
(word) main::wavelength#0 ← (byte/signed byte/word/signed word/dword/signed dword) 120
(signed word[120]) main::sintab1#0 ← { fill( 120, 0) }
(signed word*) sin16s_gen::sintab#1 ← (signed word[120]) main::sintab1#0
@ -3127,28 +3207,28 @@ main::@return: scope:[main] from main::@8
(byte*) char_cursor#20 ← (byte*) char_cursor#40
return
to:@return
@28: scope:[] from @17
(byte*) char_cursor#50 ← phi( @17/(byte*) char_cursor#0 )
(byte*) line_cursor#12 ← phi( @17/(byte*) line_cursor#0 )
(word) rem16u#25 ← phi( @17/(word) rem16u#28 )
@29: scope:[] from @18
(byte*) char_cursor#50 ← phi( @18/(byte*) char_cursor#0 )
(byte*) line_cursor#12 ← phi( @18/(byte*) line_cursor#0 )
(word) rem16u#25 ← phi( @18/(word) rem16u#28 )
call main param-assignment
to:@29
@29: scope:[] from @28
(byte*) char_cursor#41 ← phi( @28/(byte*) char_cursor#20 )
(byte*) line_cursor#9 ← phi( @28/(byte*) line_cursor#4 )
(word) rem16u#19 ← phi( @28/(word) rem16u#9 )
to:@30
@30: scope:[] from @29
(byte*) char_cursor#41 ← phi( @29/(byte*) char_cursor#20 )
(byte*) line_cursor#9 ← phi( @29/(byte*) line_cursor#4 )
(word) rem16u#19 ← phi( @29/(word) rem16u#9 )
(word) rem16u#10 ← (word) rem16u#19
(byte*) line_cursor#5 ← (byte*) line_cursor#9
(byte*) char_cursor#21 ← (byte*) char_cursor#41
to:@end
@end: scope:[] from @29
@end: scope:[] from @30
SYMBOL TABLE SSA
(label) @11
(label) @17
(label) @12
(label) @18
(label) @2
(label) @28
(label) @29
(label) @30
(label) @begin
(label) @end
(dword) PI2_u4f28
@ -4235,15 +4315,15 @@ Eliminating Noop Cast (word) print_word::w#0 ← ((word)) (signed word) print_sw
Succesful SSA optimization Pass2NopCastElimination
Culled Empty Block (label) @2
Culled Empty Block (label) mul16u::@3
Culled Empty Block (label) @11
Culled Empty Block (label) @17
Culled Empty Block (label) @12
Culled Empty Block (label) @18
Culled Empty Block (label) print_sword::@3
Culled Empty Block (label) print_word::@2
Culled Empty Block (label) print_byte::@2
Culled Empty Block (label) print_cls::@2
Culled Empty Block (label) main::@6
Culled Empty Block (label) main::@9
Culled Empty Block (label) @29
Culled Empty Block (label) @30
Succesful SSA optimization Pass2CullEmptyBlocks
Not aliassing across scopes: rem16u#1 divr16u::rem#11
Not aliassing across scopes: divr16u::return#2 divr16u::return#0
@ -4489,7 +4569,7 @@ Constant inlined print_byte::$4 = (const string) print_byte::hextab#0
Constant inlined main::$9 = (const signed word[120]) main::sintab1#0+(const word) main::wavelength#0*(byte/signed byte/word/signed word/dword/signed dword) 2
Constant inlined main::$8 = (const word) main::wavelength#0*(byte/signed byte/word/signed word/dword/signed dword) 2
Succesful SSA optimization Pass2ConstantInlining
Block Sequence Planned @begin @28 @end main main::@5 main::@1 main::@3 main::@2 main::@7 main::@8 main::@return print_str print_str::@1 print_str::@return print_str::@2 print_sword print_sword::@2 print_sword::@4 print_sword::@1 print_sword::@return print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_cls print_cls::@1 print_cls::@return sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@4 sin16s_gen::@return sin16s sin16s::@4 sin16s::@1 sin16s::@5 sin16s::@2 sin16s::@8 sin16s::@9 sin16s::@10 sin16s::@11 sin16s::@12 sin16s::@6 sin16s::@3 sin16s::@return mulu16_sel mulu16_sel::@2 mulu16_sel::@return mul16u mul16u::@1 mul16u::@return mul16u::@2 mul16u::@7 mul16u::@4 div32u16u div32u16u::@2 div32u16u::@3 div32u16u::@return divr16u divr16u::@1 divr16u::@4 divr16u::@2 divr16u::@5 divr16u::@3 divr16u::@6 divr16u::@return
Block Sequence Planned @begin @29 @end main main::@5 main::@1 main::@3 main::@2 main::@7 main::@8 main::@return print_str print_str::@1 print_str::@return print_str::@2 print_sword print_sword::@2 print_sword::@4 print_sword::@1 print_sword::@return print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_cls print_cls::@1 print_cls::@return sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@4 sin16s_gen::@return sin16s sin16s::@4 sin16s::@1 sin16s::@5 sin16s::@2 sin16s::@8 sin16s::@9 sin16s::@10 sin16s::@11 sin16s::@12 sin16s::@6 sin16s::@3 sin16s::@return mulu16_sel mulu16_sel::@2 mulu16_sel::@return mul16u mul16u::@1 mul16u::@return mul16u::@2 mul16u::@7 mul16u::@4 div32u16u div32u16u::@2 div32u16u::@3 div32u16u::@return divr16u divr16u::@1 divr16u::@4 divr16u::@2 divr16u::@5 divr16u::@3 divr16u::@6 divr16u::@return
Added new block during phi lifting main::@10(between main::@8 and main::@1)
Added new block during phi lifting main::@11(between main::@1 and main::@2)
Added new block during phi lifting print_sword::@5(between print_sword and print_sword::@1)
@ -4503,9 +4583,9 @@ Added new block during phi lifting mul16u::@10(between mul16u::@2 and mul16u::@4
Added new block during phi lifting divr16u::@8(between divr16u::@3 and divr16u::@1)
Added new block during phi lifting divr16u::@9(between divr16u::@1 and divr16u::@2)
Added new block during phi lifting divr16u::@10(between divr16u::@2 and divr16u::@3)
Block Sequence Planned @begin @28 @end main main::@5 main::@1 main::@3 main::@2 main::@7 main::@8 main::@return main::@10 main::@11 print_str print_str::@1 print_str::@return print_str::@2 print_sword print_sword::@2 print_sword::@4 print_sword::@1 print_sword::@return print_sword::@5 print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_cls print_cls::@1 print_cls::@return print_cls::@3 sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@4 sin16s_gen::@return sin16s_gen::@5 sin16s sin16s::@4 sin16s::@1 sin16s::@5 sin16s::@2 sin16s::@8 sin16s::@9 sin16s::@10 sin16s::@11 sin16s::@12 sin16s::@6 sin16s::@3 sin16s::@return sin16s::@15 sin16s::@14 sin16s::@13 mulu16_sel mulu16_sel::@2 mulu16_sel::@return mul16u mul16u::@1 mul16u::@return mul16u::@2 mul16u::@7 mul16u::@4 mul16u::@10 div32u16u div32u16u::@2 div32u16u::@3 div32u16u::@return divr16u divr16u::@1 divr16u::@4 divr16u::@2 divr16u::@5 divr16u::@3 divr16u::@6 divr16u::@return divr16u::@8 divr16u::@10 divr16u::@9
Block Sequence Planned @begin @29 @end main main::@5 main::@1 main::@3 main::@2 main::@7 main::@8 main::@return main::@10 main::@11 print_str print_str::@1 print_str::@return print_str::@2 print_sword print_sword::@2 print_sword::@4 print_sword::@1 print_sword::@return print_sword::@5 print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_cls print_cls::@1 print_cls::@return print_cls::@3 sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@4 sin16s_gen::@return sin16s_gen::@5 sin16s sin16s::@4 sin16s::@1 sin16s::@5 sin16s::@2 sin16s::@8 sin16s::@9 sin16s::@10 sin16s::@11 sin16s::@12 sin16s::@6 sin16s::@3 sin16s::@return sin16s::@15 sin16s::@14 sin16s::@13 mulu16_sel mulu16_sel::@2 mulu16_sel::@return mul16u mul16u::@1 mul16u::@return mul16u::@2 mul16u::@7 mul16u::@4 mul16u::@10 div32u16u div32u16u::@2 div32u16u::@3 div32u16u::@return divr16u divr16u::@1 divr16u::@4 divr16u::@2 divr16u::@5 divr16u::@3 divr16u::@6 divr16u::@return divr16u::@8 divr16u::@10 divr16u::@9
Adding NOP phi() at start of @begin
Adding NOP phi() at start of @28
Adding NOP phi() at start of @29
Adding NOP phi() at start of @end
Adding NOP phi() at start of main
Adding NOP phi() at start of main::@5
@ -4639,9 +4719,9 @@ Culled Empty Block (label) mul16u::@10
Culled Empty Block (label) divr16u::@8
Culled Empty Block (label) divr16u::@10
Culled Empty Block (label) divr16u::@9
Block Sequence Planned @begin @28 @end main main::@5 main::@1 main::@3 main::@2 main::@7 main::@8 main::@return print_str print_str::@1 print_str::@return print_str::@2 print_sword print_sword::@2 print_sword::@4 print_sword::@1 print_sword::@return print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_cls print_cls::@1 print_cls::@return sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@4 sin16s_gen::@return sin16s sin16s::@4 sin16s::@1 sin16s::@5 sin16s::@2 sin16s::@8 sin16s::@9 sin16s::@10 sin16s::@11 sin16s::@12 sin16s::@6 sin16s::@3 sin16s::@return sin16s::@15 mulu16_sel mulu16_sel::@2 mulu16_sel::@return mul16u mul16u::@1 mul16u::@return mul16u::@2 mul16u::@7 mul16u::@4 div32u16u div32u16u::@2 div32u16u::@3 div32u16u::@return divr16u divr16u::@1 divr16u::@4 divr16u::@2 divr16u::@5 divr16u::@3 divr16u::@6 divr16u::@return
Block Sequence Planned @begin @29 @end main main::@5 main::@1 main::@3 main::@2 main::@7 main::@8 main::@return print_str print_str::@1 print_str::@return print_str::@2 print_sword print_sword::@2 print_sword::@4 print_sword::@1 print_sword::@return print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_cls print_cls::@1 print_cls::@return sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@4 sin16s_gen::@return sin16s sin16s::@4 sin16s::@1 sin16s::@5 sin16s::@2 sin16s::@8 sin16s::@9 sin16s::@10 sin16s::@11 sin16s::@12 sin16s::@6 sin16s::@3 sin16s::@return sin16s::@15 mulu16_sel mulu16_sel::@2 mulu16_sel::@return mul16u mul16u::@1 mul16u::@return mul16u::@2 mul16u::@7 mul16u::@4 div32u16u div32u16u::@2 div32u16u::@3 div32u16u::@return divr16u divr16u::@1 divr16u::@4 divr16u::@2 divr16u::@5 divr16u::@3 divr16u::@6 divr16u::@return
Adding NOP phi() at start of @begin
Adding NOP phi() at start of @28
Adding NOP phi() at start of @29
Adding NOP phi() at start of @end
Adding NOP phi() at start of main
Adding NOP phi() at start of main::@5
@ -4688,14 +4768,14 @@ Propagating live ranges...
FINAL CONTROL FLOW GRAPH
@begin: scope:[] from
[0] phi() [ ] ( )
to:@28
@28: scope:[] from @begin
to:@29
@29: scope:[] from @begin
[1] phi() [ ] ( )
[2] call main param-assignment [ ] ( )
to:@end
@end: scope:[] from @28
@end: scope:[] from @29
[3] phi() [ ] ( )
main: scope:[main] from @28
main: scope:[main] from @29
[4] phi() [ ] ( main:2 [ ] )
[5] call sin16s_gen param-assignment [ ] ( main:2 [ ] )
to:main::@5
@ -5009,76 +5089,76 @@ divr16u::@return: scope:[divr16u] from divr16u::@6
DOMINATORS
@begin dominated by @begin
@28 dominated by @28 @begin
@end dominated by @end @28 @begin
main dominated by @28 main @begin
main::@5 dominated by @28 main main::@5 @begin
main::@1 dominated by @28 main main::@1 main::@5 @begin
main::@3 dominated by @28 main main::@1 main::@5 main::@3 @begin
main::@2 dominated by @28 main main::@1 main::@2 main::@5 @begin
main::@7 dominated by main::@7 @28 main main::@1 main::@2 main::@5 @begin
main::@8 dominated by main::@7 main::@8 @28 main main::@1 main::@2 main::@5 @begin
main::@return dominated by main::@7 main::@8 @28 main main::@1 main::@2 main::@5 @begin main::@return
print_str dominated by @28 main main::@1 main::@5 @begin print_str
print_str::@1 dominated by @28 main main::@1 main::@5 @begin print_str::@1 print_str
print_str::@return dominated by @28 main main::@1 main::@5 @begin print_str::@return print_str::@1 print_str
print_str::@2 dominated by @28 main main::@1 main::@5 @begin print_str::@1 print_str::@2 print_str
print_sword dominated by @28 main main::@1 main::@2 main::@5 @begin print_sword
print_sword::@2 dominated by print_sword::@2 @28 main main::@1 main::@2 main::@5 @begin print_sword
print_sword::@4 dominated by print_sword::@2 @28 print_sword::@4 main main::@1 main::@2 main::@5 @begin print_sword
print_sword::@1 dominated by print_sword::@1 @28 main main::@1 main::@2 main::@5 @begin print_sword
print_sword::@return dominated by print_sword::@1 @28 main main::@1 main::@2 main::@5 @begin print_sword::@return print_sword
print_word dominated by print_sword::@1 @28 main print_word main::@1 main::@2 main::@5 @begin print_sword
print_word::@1 dominated by print_sword::@1 @28 main print_word main::@1 main::@2 main::@5 @begin print_word::@1 print_sword
print_word::@return dominated by print_sword::@1 @28 main print_word main::@1 main::@2 main::@5 @begin print_word::@return print_word::@1 print_sword
print_byte dominated by print_sword::@1 @28 main print_word main::@1 main::@2 main::@5 @begin print_byte print_sword
print_byte::@1 dominated by print_sword::@1 @28 main print_word main::@1 main::@2 main::@5 @begin print_byte::@1 print_byte print_sword
print_byte::@return dominated by print_sword::@1 @28 main print_word main::@1 main::@2 main::@5 @begin print_byte::@return print_byte::@1 print_byte print_sword
print_char dominated by @28 main print_char main::@1 main::@2 main::@5 @begin print_sword
print_char::@return dominated by @28 main print_char main::@1 main::@2 main::@5 print_char::@return @begin print_sword
print_cls dominated by @28 main main::@5 @begin print_cls
print_cls::@1 dominated by @28 main main::@5 @begin print_cls::@1 print_cls
print_cls::@return dominated by @28 main main::@5 @begin print_cls::@return print_cls::@1 print_cls
sin16s_gen dominated by @28 main @begin sin16s_gen
sin16s_gen::@3 dominated by @28 main @begin sin16s_gen sin16s_gen::@3
sin16s_gen::@1 dominated by @28 main @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1
sin16s_gen::@4 dominated by @28 main @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@4 sin16s_gen::@1
sin16s_gen::@return dominated by @28 main sin16s_gen::@return @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@4 sin16s_gen::@1
sin16s dominated by @28 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1
sin16s::@4 dominated by @28 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s::@4
sin16s::@1 dominated by @28 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1
sin16s::@5 dominated by @28 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@5
sin16s::@2 dominated by @28 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@2
sin16s::@8 dominated by @28 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@8 sin16s::@2
sin16s::@9 dominated by @28 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@2
sin16s::@10 dominated by @28 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@10 sin16s::@2
sin16s::@11 dominated by @28 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@11 sin16s::@10 sin16s::@2
sin16s::@12 dominated by @28 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@12 sin16s::@11 sin16s::@10 sin16s::@2
sin16s::@6 dominated by @28 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@6 sin16s::@12 sin16s::@11 sin16s::@10 sin16s::@2
sin16s::@3 dominated by @28 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@12 sin16s::@11 sin16s::@10 sin16s::@3 sin16s::@2
sin16s::@return dominated by @28 main sin16s @begin sin16s::@return sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@12 sin16s::@11 sin16s::@10 sin16s::@3 sin16s::@2
sin16s::@15 dominated by @28 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@15 sin16s::@12 sin16s::@11 sin16s::@10 sin16s::@2
mulu16_sel dominated by @28 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2
mulu16_sel::@2 dominated by @28 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2 mulu16_sel::@2
mulu16_sel::@return dominated by @28 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2 mulu16_sel::@return mulu16_sel::@2
mul16u dominated by @28 main mul16u sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2
mul16u::@1 dominated by @28 main mul16u mul16u::@1 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2
mul16u::@return dominated by @28 main mul16u mul16u::@1 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2 mul16u::@return
mul16u::@2 dominated by @28 main mul16u mul16u::@1 mul16u::@2 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2
mul16u::@7 dominated by @28 main mul16u mul16u::@1 mul16u::@2 sin16s @begin mul16u::@7 sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2
mul16u::@4 dominated by @28 main mul16u mul16u::@1 mul16u::@2 sin16s @begin mul16u::@4 sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2
div32u16u dominated by @28 main @begin sin16s_gen div32u16u
div32u16u::@2 dominated by @28 main div32u16u::@2 @begin sin16s_gen div32u16u
div32u16u::@3 dominated by @28 main div32u16u::@2 div32u16u::@3 @begin sin16s_gen div32u16u
div32u16u::@return dominated by @28 main div32u16u::@2 div32u16u::@3 @begin sin16s_gen div32u16u div32u16u::@return
divr16u dominated by divr16u @28 main @begin sin16s_gen div32u16u
divr16u::@1 dominated by divr16u @28 divr16u::@1 main @begin sin16s_gen div32u16u
divr16u::@4 dominated by divr16u @28 divr16u::@1 main divr16u::@4 @begin sin16s_gen div32u16u
divr16u::@2 dominated by divr16u @28 divr16u::@2 divr16u::@1 main @begin sin16s_gen div32u16u
divr16u::@5 dominated by divr16u @28 divr16u::@2 divr16u::@1 main divr16u::@5 @begin sin16s_gen div32u16u
divr16u::@3 dominated by divr16u @28 divr16u::@2 divr16u::@1 main divr16u::@3 @begin sin16s_gen div32u16u
divr16u::@6 dominated by divr16u @28 divr16u::@2 divr16u::@1 main divr16u::@3 divr16u::@6 @begin sin16s_gen div32u16u
divr16u::@return dominated by divr16u @28 divr16u::@2 divr16u::@1 main divr16u::@3 divr16u::@6 @begin sin16s_gen div32u16u divr16u::@return
@29 dominated by @29 @begin
@end dominated by @end @29 @begin
main dominated by @29 main @begin
main::@5 dominated by @29 main main::@5 @begin
main::@1 dominated by @29 main main::@1 main::@5 @begin
main::@3 dominated by @29 main main::@1 main::@5 main::@3 @begin
main::@2 dominated by @29 main main::@1 main::@2 main::@5 @begin
main::@7 dominated by main::@7 @29 main main::@1 main::@2 main::@5 @begin
main::@8 dominated by main::@7 main::@8 @29 main main::@1 main::@2 main::@5 @begin
main::@return dominated by main::@7 main::@8 @29 main main::@1 main::@2 main::@5 @begin main::@return
print_str dominated by @29 main main::@1 main::@5 @begin print_str
print_str::@1 dominated by @29 main main::@1 main::@5 @begin print_str::@1 print_str
print_str::@return dominated by @29 main main::@1 main::@5 @begin print_str::@return print_str::@1 print_str
print_str::@2 dominated by @29 main main::@1 main::@5 @begin print_str::@1 print_str::@2 print_str
print_sword dominated by @29 main main::@1 main::@2 main::@5 @begin print_sword
print_sword::@2 dominated by print_sword::@2 @29 main main::@1 main::@2 main::@5 @begin print_sword
print_sword::@4 dominated by print_sword::@2 print_sword::@4 @29 main main::@1 main::@2 main::@5 @begin print_sword
print_sword::@1 dominated by print_sword::@1 @29 main main::@1 main::@2 main::@5 @begin print_sword
print_sword::@return dominated by print_sword::@1 @29 main main::@1 main::@2 main::@5 @begin print_sword::@return print_sword
print_word dominated by print_sword::@1 @29 main print_word main::@1 main::@2 main::@5 @begin print_sword
print_word::@1 dominated by print_sword::@1 @29 main print_word main::@1 main::@2 main::@5 @begin print_word::@1 print_sword
print_word::@return dominated by print_sword::@1 @29 main print_word main::@1 main::@2 main::@5 @begin print_word::@return print_word::@1 print_sword
print_byte dominated by print_sword::@1 @29 main print_word main::@1 main::@2 main::@5 @begin print_byte print_sword
print_byte::@1 dominated by print_sword::@1 @29 main print_word main::@1 main::@2 main::@5 @begin print_byte::@1 print_byte print_sword
print_byte::@return dominated by print_sword::@1 @29 main print_word main::@1 main::@2 main::@5 @begin print_byte::@return print_byte::@1 print_byte print_sword
print_char dominated by @29 main print_char main::@1 main::@2 main::@5 @begin print_sword
print_char::@return dominated by @29 main print_char main::@1 main::@2 main::@5 print_char::@return @begin print_sword
print_cls dominated by @29 main main::@5 @begin print_cls
print_cls::@1 dominated by @29 main main::@5 @begin print_cls::@1 print_cls
print_cls::@return dominated by @29 main main::@5 @begin print_cls::@return print_cls::@1 print_cls
sin16s_gen dominated by @29 main @begin sin16s_gen
sin16s_gen::@3 dominated by @29 main @begin sin16s_gen sin16s_gen::@3
sin16s_gen::@1 dominated by @29 main @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1
sin16s_gen::@4 dominated by @29 main @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@4 sin16s_gen::@1
sin16s_gen::@return dominated by @29 main sin16s_gen::@return @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@4 sin16s_gen::@1
sin16s dominated by @29 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1
sin16s::@4 dominated by @29 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s::@4
sin16s::@1 dominated by @29 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1
sin16s::@5 dominated by @29 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@5
sin16s::@2 dominated by @29 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@2
sin16s::@8 dominated by @29 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@8 sin16s::@2
sin16s::@9 dominated by @29 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@2
sin16s::@10 dominated by @29 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@10 sin16s::@2
sin16s::@11 dominated by @29 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@11 sin16s::@10 sin16s::@2
sin16s::@12 dominated by @29 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@12 sin16s::@11 sin16s::@10 sin16s::@2
sin16s::@6 dominated by @29 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@6 sin16s::@12 sin16s::@11 sin16s::@10 sin16s::@2
sin16s::@3 dominated by @29 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@12 sin16s::@11 sin16s::@10 sin16s::@3 sin16s::@2
sin16s::@return dominated by @29 main sin16s @begin sin16s::@return sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@12 sin16s::@11 sin16s::@10 sin16s::@3 sin16s::@2
sin16s::@15 dominated by @29 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@15 sin16s::@12 sin16s::@11 sin16s::@10 sin16s::@2
mulu16_sel dominated by @29 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2
mulu16_sel::@2 dominated by @29 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2 mulu16_sel::@2
mulu16_sel::@return dominated by @29 main sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2 mulu16_sel::@return mulu16_sel::@2
mul16u dominated by @29 main mul16u sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2
mul16u::@1 dominated by @29 main mul16u mul16u::@1 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2
mul16u::@return dominated by @29 main mul16u mul16u::@1 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2 mul16u::@return
mul16u::@2 dominated by @29 main mul16u mul16u::@1 mul16u::@2 sin16s @begin sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2
mul16u::@7 dominated by @29 main mul16u mul16u::@1 mul16u::@2 sin16s @begin mul16u::@7 sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2
mul16u::@4 dominated by @29 main mul16u mul16u::@1 mul16u::@2 sin16s @begin mul16u::@4 sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2
div32u16u dominated by @29 main @begin sin16s_gen div32u16u
div32u16u::@2 dominated by @29 main div32u16u::@2 @begin sin16s_gen div32u16u
div32u16u::@3 dominated by @29 main div32u16u::@2 div32u16u::@3 @begin sin16s_gen div32u16u
div32u16u::@return dominated by @29 main div32u16u::@2 div32u16u::@3 @begin sin16s_gen div32u16u div32u16u::@return
divr16u dominated by divr16u @29 main @begin sin16s_gen div32u16u
divr16u::@1 dominated by divr16u @29 divr16u::@1 main @begin sin16s_gen div32u16u
divr16u::@4 dominated by divr16u @29 divr16u::@1 main divr16u::@4 @begin sin16s_gen div32u16u
divr16u::@2 dominated by divr16u @29 divr16u::@2 divr16u::@1 main @begin sin16s_gen div32u16u
divr16u::@5 dominated by divr16u @29 divr16u::@2 divr16u::@1 main divr16u::@5 @begin sin16s_gen div32u16u
divr16u::@3 dominated by divr16u @29 divr16u::@2 divr16u::@1 main divr16u::@3 @begin sin16s_gen div32u16u
divr16u::@6 dominated by divr16u @29 divr16u::@2 divr16u::@1 main divr16u::@3 divr16u::@6 @begin sin16s_gen div32u16u
divr16u::@return dominated by divr16u @29 divr16u::@2 divr16u::@1 main divr16u::@3 divr16u::@6 @begin sin16s_gen div32u16u divr16u::@return
NATURAL LOOPS
Found back edge: Loop head: main::@1 tails: main::@8 blocks: null
@ -5512,17 +5592,17 @@ INITIAL ASM
.label char_cursor = $a
//SEG2 @begin
bbegin:
//SEG3 [1] phi from @begin to @28 [phi:@begin->@28]
b28_from_bbegin:
jmp b28
//SEG4 @28
b28:
//SEG3 [1] phi from @begin to @29 [phi:@begin->@29]
b29_from_bbegin:
jmp b29
//SEG4 @29
b29:
//SEG5 [2] call main param-assignment [ ] ( )
//SEG6 [4] phi from @28 to main [phi:@28->main]
main_from_b28:
//SEG6 [4] phi from @29 to main [phi:@29->main]
main_from_b29:
jsr main
//SEG7 [3] phi from @28 to @end [phi:@28->@end]
bend_from_b28:
//SEG7 [3] phi from @29 to @end [phi:@29->@end]
bend_from_b29:
jmp bend
//SEG8 @end
bend:
@ -7042,17 +7122,17 @@ ASSEMBLER BEFORE OPTIMIZATION
.label char_cursor = 8
//SEG2 @begin
bbegin:
//SEG3 [1] phi from @begin to @28 [phi:@begin->@28]
b28_from_bbegin:
jmp b28
//SEG4 @28
b28:
//SEG3 [1] phi from @begin to @29 [phi:@begin->@29]
b29_from_bbegin:
jmp b29
//SEG4 @29
b29:
//SEG5 [2] call main param-assignment [ ] ( )
//SEG6 [4] phi from @28 to main [phi:@28->main]
main_from_b28:
//SEG6 [4] phi from @29 to main [phi:@29->main]
main_from_b29:
jsr main
//SEG7 [3] phi from @28 to @end [phi:@28->@end]
bend_from_b28:
//SEG7 [3] phi from @29 to @end [phi:@29->@end]
bend_from_b29:
jmp bend
//SEG8 @end
bend:
@ -8111,7 +8191,7 @@ divr16u: {
}
ASSEMBLER OPTIMIZATIONS
Removing instruction jmp b28
Removing instruction jmp b29
Removing instruction jmp bend
Removing instruction jmp b5
Removing instruction jmp b1
@ -8196,9 +8276,9 @@ Replacing label b3_from_b2 with b3
Replacing label b3_from_b2 with b3
Replacing label b1_from_b3 with b1
Removing instruction bbegin:
Removing instruction b28_from_bbegin:
Removing instruction main_from_b28:
Removing instruction bend_from_b28:
Removing instruction b29_from_bbegin:
Removing instruction main_from_b29:
Removing instruction bend_from_b29:
Removing instruction b5_from_main:
Removing instruction print_cls_from_b5:
Removing instruction b1_from_b8:
@ -8229,7 +8309,7 @@ Removing instruction b2_from_b4:
Removing instruction b3_from_b2:
Removing instruction b3_from_b5:
Succesful ASM optimization Pass5RedundantLabelElimination
Removing instruction b28:
Removing instruction b29:
Removing instruction bend:
Removing instruction sin16s_gen_from_main:
Removing instruction b5:
@ -8306,7 +8386,7 @@ Removing unreachable instruction jmp b3
Succesful ASM optimization Pass5UnreachableCodeElimination
FINAL SYMBOL TABLE
(label) @28
(label) @29
(label) @begin
(label) @end
(dword) PI2_u4f28
@ -8596,12 +8676,12 @@ Score: 20907
.label rem16u = 4
.label char_cursor = 8
//SEG2 @begin
//SEG3 [1] phi from @begin to @28 [phi:@begin->@28]
//SEG4 @28
//SEG3 [1] phi from @begin to @29 [phi:@begin->@29]
//SEG4 @29
//SEG5 [2] call main param-assignment [ ] ( )
//SEG6 [4] phi from @28 to main [phi:@28->main]
//SEG6 [4] phi from @29 to main [phi:@29->main]
jsr main
//SEG7 [3] phi from @28 to @end [phi:@28->@end]
//SEG7 [3] phi from @29 to @end [phi:@29->@end]
//SEG8 @end
//SEG9 main
main: {

View File

@ -1,4 +1,4 @@
(label) @28
(label) @29
(label) @begin
(label) @end
(dword) PI2_u4f28

View File

@ -1,13 +1,13 @@
@begin: scope:[] from
[0] phi() [ ] ( )
to:@28
@28: scope:[] from @begin
to:@29
@29: scope:[] from @begin
[1] phi() [ ] ( )
[2] call main param-assignment [ ] ( )
to:@end
@end: scope:[] from @28
@end: scope:[] from @29
[3] phi() [ ] ( )
main: scope:[main] from @28
main: scope:[main] from @29
[4] phi() [ ] ( main:2 [ ] )
[5] call sin8s_gen param-assignment [ ] ( main:2 [ ] )
to:main::@5

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
(label) @28
(label) @29
(label) @begin
(label) @end
(word) PI2_u4f12

View File

@ -1,13 +1,13 @@
@begin: scope:[] from
[0] phi() [ ] ( )
to:@28
@28: scope:[] from @begin
to:@29
@29: scope:[] from @begin
[1] phi() [ ] ( )
[2] call main param-assignment [ ] ( )
to:@end
@end: scope:[] from @28
@end: scope:[] from @29
[3] phi() [ ] ( )
main: scope:[main] from @28
main: scope:[main] from @29
[4] phi() [ ] ( main:2 [ ] )
[5] call sin8s_gen param-assignment [ ] ( main:2 [ ] )
to:main::@5

View File

@ -333,6 +333,16 @@ signed word mul8s(signed byte a, signed byte b) {
return (signed word)m;
}
// Multiply a signed byte and an unsigned byte (into a signed word)
// Fixes offsets introduced by using unsigned multiplication
signed word mul8su(signed byte a, byte b) {
word m = mul8u((byte)a, (byte) b);
if(a<0) {
>m = (>m)-(byte)b;
}
return (signed word)m;
}
// Perform binary multiplication of two unsigned 16-bit words into a 32-bit unsigned double word
dword mul16u(word a, word b) {
dword res = 0;
@ -722,6 +732,27 @@ mul8s::@return:
(signed word) mul8s::return ← (signed word) mul8s::return
return (signed word) mul8s::return
endproc // mul8s()
proc (signed word()) mul8su((signed byte) mul8su::a , (byte) mul8su::b)
(byte~) mul8su::$0 ← ((byte)) (signed byte) mul8su::a
(byte~) mul8su::$1 ← ((byte)) (byte) mul8su::b
(word~) mul8su::$2 ← call mul8u (byte~) mul8su::$0 (byte~) mul8su::$1
(word) mul8su::m ← (word~) mul8su::$2
(boolean~) mul8su::$3 ← (signed byte) mul8su::a < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) mul8su::$4 ← ! (boolean~) mul8su::$3
if((boolean~) mul8su::$4) goto mul8su::@1
(byte~) mul8su::$5 ← > (word) mul8su::m
(byte~) mul8su::$6 ← > (word) mul8su::m
(byte~) mul8su::$7 ← ((byte)) (byte) mul8su::b
(byte/signed byte/word/signed word/dword/signed dword~) mul8su::$8 ← (byte~) mul8su::$6 - (byte~) mul8su::$7
lval((byte~) mul8su::$5) ← (byte/signed byte/word/signed word/dword/signed dword~) mul8su::$8
mul8su::@1:
(signed word~) mul8su::$9 ← ((signed word)) (word) mul8su::m
(signed word) mul8su::return ← (signed word~) mul8su::$9
goto mul8su::@return
mul8su::@return:
(signed word) mul8su::return ← (signed word) mul8su::return
return (signed word) mul8su::return
endproc // mul8su()
proc (dword()) mul16u((word) mul16u::a , (word) mul16u::b)
(dword) mul16u::res ← (byte/signed byte/word/signed word/dword/signed dword) 0
(dword) mul16u::mb ← (word) mul16u::b
@ -1329,6 +1360,23 @@ SYMBOLS
(signed byte) mul8s::b
(word) mul8s::m
(signed word) mul8s::return
(signed word()) mul8su((signed byte) mul8su::a , (byte) mul8su::b)
(byte~) mul8su::$0
(byte~) mul8su::$1
(word~) mul8su::$2
(boolean~) mul8su::$3
(boolean~) mul8su::$4
(byte~) mul8su::$5
(byte~) mul8su::$6
(byte~) mul8su::$7
(byte/signed byte/word/signed word/dword/signed dword~) mul8su::$8
(signed word~) mul8su::$9
(label) mul8su::@1
(label) mul8su::@return
(signed byte) mul8su::a
(byte) mul8su::b
(word) mul8su::m
(signed word) mul8su::return
(word()) mul8u((byte) mul8u::a , (byte) mul8u::b)
(boolean~) mul8u::$0
(byte~) mul8u::$1
@ -1551,6 +1599,7 @@ SYMBOLS
Fixing lo/hi-lvalue with new tmpVar mul8s::$16 mul8s::$16 ← mul8s::$8
Fixing lo/hi-lvalue with new tmpVar mul8s::$17 mul8s::$17 ← mul8s::$14
Fixing lo/hi-lvalue with new tmpVar mul8su::$10 mul8su::$10 ← mul8su::$8
Fixing lo/hi-lvalue with new tmpVar mul16s::$16 mul16s::$16 ← mul16s::$8
Fixing lo/hi-lvalue with new tmpVar mul16s::$17 mul16s::$17 ← mul16s::$14
Promoting byte to word in mul8u::mb ← ((word)) mul8u::b
@ -1929,6 +1978,35 @@ mul8s::@5: scope:[mul8s] from
to:mul8s::@return
@9: scope:[] from @8
to:@10
mul8su: scope:[mul8su] from
(byte~) mul8su::$0 ← ((byte)) (signed byte) mul8su::a
(byte~) mul8su::$1 ← ((byte)) (byte) mul8su::b
(word~) mul8su::$2 ← call mul8u (byte~) mul8su::$0 (byte~) mul8su::$1
(word) mul8su::m ← (word~) mul8su::$2
(boolean~) mul8su::$3 ← (signed byte) mul8su::a < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) mul8su::$4 ← ! (boolean~) mul8su::$3
if((boolean~) mul8su::$4) goto mul8su::@1
to:mul8su::@2
mul8su::@1: scope:[mul8su] from mul8su mul8su::@2
(signed word~) mul8su::$9 ← ((signed word)) (word) mul8su::m
(signed word) mul8su::return ← (signed word~) mul8su::$9
to:mul8su::@return
mul8su::@2: scope:[mul8su] from mul8su
(byte~) mul8su::$5 ← > (word) mul8su::m
(byte~) mul8su::$6 ← > (word) mul8su::m
(byte~) mul8su::$7 ← ((byte)) (byte) mul8su::b
(byte/signed byte/word/signed word/dword/signed dword~) mul8su::$8 ← (byte~) mul8su::$6 - (byte~) mul8su::$7
(byte/signed byte/word/signed word/dword/signed dword~) mul8su::$10 ← (byte/signed byte/word/signed word/dword/signed dword~) mul8su::$8
(word) mul8su::m ← (word) mul8su::m hi= (byte/signed byte/word/signed word/dword/signed dword~) mul8su::$10
to:mul8su::@1
mul8su::@return: scope:[mul8su] from mul8su::@1 mul8su::@3
(signed word) mul8su::return ← (signed word) mul8su::return
return (signed word) mul8su::return
to:@return
mul8su::@3: scope:[mul8su] from
to:mul8su::@return
@10: scope:[] from @9
to:@11
mul16u: scope:[mul16u] from
(dword) mul16u::res ← (byte/signed byte/word/signed word/dword/signed dword) 0
(dword) mul16u::mb ← ((dword)) (word) mul16u::b
@ -1968,8 +2046,8 @@ mul16u::@return: scope:[mul16u] from mul16u::@3 mul16u::@9
to:@return
mul16u::@9: scope:[mul16u] from
to:mul16u::@return
@10: scope:[] from @9
to:@11
@11: scope:[] from @10
to:@12
mul16s: scope:[mul16s] from
(word~) mul16s::$0 ← ((word)) (signed word) mul16s::a
(word~) mul16s::$1 ← ((word)) (signed word) mul16s::b
@ -2010,14 +2088,14 @@ mul16s::@return: scope:[mul16s] from mul16s::@2 mul16s::@5
to:@return
mul16s::@5: scope:[mul16s] from
to:mul16s::@return
@11: scope:[] from @10
@12: scope:[] from @11
(dword) PI2_u4f28 ← (dword/signed dword) 1686629713
(dword) PI_u4f28 ← (dword/signed dword) 843314857
(dword) PI_HALF_u4f28 ← (dword/signed dword) 421657428
(word) PI2_u4f12 ← (word/signed word/dword/signed dword) 25736
(word) PI_u4f12 ← (word/signed word/dword/signed dword) 12868
(word) PI_HALF_u4f12 ← (word/signed word/dword/signed dword) 6434
to:@12
to:@13
sin16s_gen: scope:[sin16s_gen] from
(dword~) sin16s_gen::$0 ← call div32u16u (dword) PI2_u4f28 (word) sin16s_gen::wavelength
(dword) sin16s_gen::step ← (dword~) sin16s_gen::$0
@ -2040,8 +2118,8 @@ sin16s_gen::@2: scope:[sin16s_gen] from sin16s_gen::@1
sin16s_gen::@return: scope:[sin16s_gen] from sin16s_gen::@2
return
to:@return
@12: scope:[] from @11
to:@13
@13: scope:[] from @12
to:@14
sin8s_gen: scope:[sin8s_gen] from
(word~) sin8s_gen::$0 ← call div16u (word) PI2_u4f12 (word) sin8s_gen::wavelength
(word) sin8s_gen::step ← (word~) sin8s_gen::$0
@ -2063,8 +2141,8 @@ sin8s_gen::@2: scope:[sin8s_gen] from sin8s_gen::@1
sin8s_gen::@return: scope:[sin8s_gen] from sin8s_gen::@2
return
to:@return
@13: scope:[] from @12
to:@14
@14: scope:[] from @13
to:@15
sin16s: scope:[sin16s] from
(byte) sin16s::isUpper ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) sin16s::$0 ← (dword) sin16s::x >= (dword) PI_u4f28
@ -2126,8 +2204,8 @@ sin16s::@return: scope:[sin16s] from sin16s::@3 sin16s::@7
to:@return
sin16s::@7: scope:[sin16s] from
to:sin16s::@return
@14: scope:[] from @13
to:@15
@15: scope:[] from @14
to:@16
sin8s: scope:[sin8s] from
(byte) sin8s::isUpper ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) sin8s::$0 ← (word) sin8s::x >= (word) PI_u4f12
@ -2197,8 +2275,8 @@ sin8s::@return: scope:[sin8s] from sin8s::@4 sin8s::@9
to:@return
sin8s::@9: scope:[sin8s] from
to:sin8s::@return
@15: scope:[] from @14
to:@16
@16: scope:[] from @15
to:@17
mulu16_sel: scope:[mulu16_sel] from
(dword~) mulu16_sel::$0 ← call mul16u (word) mulu16_sel::v1 (word) mulu16_sel::v2
(dword~) mulu16_sel::$1 ← (dword~) mulu16_sel::$0 << (byte) mulu16_sel::select
@ -2211,8 +2289,8 @@ mulu16_sel::@return: scope:[mulu16_sel] from mulu16_sel mulu16_sel::@1
to:@return
mulu16_sel::@1: scope:[mulu16_sel] from
to:mulu16_sel::@return
@16: scope:[] from @15
to:@17
@17: scope:[] from @16
to:@18
mulu8_sel: scope:[mulu8_sel] from
(word~) mulu8_sel::$0 ← call mul8u (byte) mulu8_sel::v1 (byte) mulu8_sel::v2
(word~) mulu8_sel::$1 ← (word~) mulu8_sel::$0 << (byte) mulu8_sel::select
@ -2225,11 +2303,11 @@ mulu8_sel::@return: scope:[mulu8_sel] from mulu8_sel mulu8_sel::@1
to:@return
mulu8_sel::@1: scope:[mulu8_sel] from
to:mulu8_sel::@return
@17: scope:[] from @16
@18: scope:[] from @17
(byte*) SCREEN ← ((byte*)) (word/signed word/dword/signed dword) 1024
(byte*) line_cursor ← (byte*) SCREEN
(byte*) char_cursor ← (byte*) line_cursor
to:@18
to:@19
print_str: scope:[print_str] from
to:print_str::@1
print_str::@1: scope:[print_str] from print_str print_str::@2
@ -2252,8 +2330,8 @@ print_str::@6: scope:[print_str] from
print_str::@return: scope:[print_str] from print_str::@3
return
to:@return
@18: scope:[] from @17
to:@19
@19: scope:[] from @18
to:@20
print_ln: scope:[print_ln] from
to:print_ln::@1
print_ln::@1: scope:[print_ln] from print_ln print_ln::@1
@ -2268,8 +2346,8 @@ print_ln::@2: scope:[print_ln] from print_ln::@1
print_ln::@return: scope:[print_ln] from print_ln::@2
return
to:@return
@19: scope:[] from @18
to:@20
@20: scope:[] from @19
to:@21
print_sword: scope:[print_sword] from
(boolean~) print_sword::$0 ← (signed word) print_sword::w < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) print_sword::$1 ← ! (boolean~) print_sword::$0
@ -2287,8 +2365,8 @@ print_sword::@2: scope:[print_sword] from print_sword
print_sword::@return: scope:[print_sword] from print_sword::@1
return
to:@return
@20: scope:[] from @19
to:@21
@21: scope:[] from @20
to:@22
print_sbyte: scope:[print_sbyte] from
(boolean~) print_sbyte::$0 ← (signed byte) print_sbyte::b < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) print_sbyte::$1 ← ! (boolean~) print_sbyte::$0
@ -2306,8 +2384,8 @@ print_sbyte::@2: scope:[print_sbyte] from print_sbyte
print_sbyte::@return: scope:[print_sbyte] from print_sbyte::@1
return
to:@return
@21: scope:[] from @20
to:@22
@22: scope:[] from @21
to:@23
print_word: scope:[print_word] from
(byte~) print_word::$0 ← > (word) print_word::w
(void~) print_word::$1 ← call print_byte (byte~) print_word::$0
@ -2317,8 +2395,8 @@ print_word: scope:[print_word] from
print_word::@return: scope:[print_word] from print_word
return
to:@return
@22: scope:[] from @21
to:@23
@23: scope:[] from @22
to:@24
print_dword: scope:[print_dword] from
(word~) print_dword::$0 ← > (dword) print_dword::dw
(void~) print_dword::$1 ← call print_word (word~) print_dword::$0
@ -2328,8 +2406,8 @@ print_dword: scope:[print_dword] from
print_dword::@return: scope:[print_dword] from print_dword
return
to:@return
@23: scope:[] from @22
to:@24
@24: scope:[] from @23
to:@25
print_sdword: scope:[print_sdword] from
(boolean~) print_sdword::$0 ← (signed dword) print_sdword::dw < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) print_sdword::$1 ← ! (boolean~) print_sdword::$0
@ -2347,8 +2425,8 @@ print_sdword::@2: scope:[print_sdword] from print_sdword
print_sdword::@return: scope:[print_sdword] from print_sdword::@1
return
to:@return
@24: scope:[] from @23
to:@25
@25: scope:[] from @24
to:@26
print_byte: scope:[print_byte] from
(byte[]) print_byte::hextab ← (string) "0123456789abcdef"
(byte~) print_byte::$0 ← (byte) print_byte::b >> (byte/signed byte/word/signed word/dword/signed dword) 4
@ -2359,8 +2437,8 @@ print_byte: scope:[print_byte] from
print_byte::@return: scope:[print_byte] from print_byte
return
to:@return
@25: scope:[] from @24
to:@26
@26: scope:[] from @25
to:@27
print_char: scope:[print_char] from
*((byte*) char_cursor) ← (byte) print_char::ch
(byte*) char_cursor ← ++ (byte*) char_cursor
@ -2368,8 +2446,8 @@ print_char: scope:[print_char] from
print_char::@return: scope:[print_char] from print_char
return
to:@return
@26: scope:[] from @25
to:@27
@27: scope:[] from @26
to:@28
print_cls: scope:[print_cls] from
(byte*) print_cls::sc ← (byte*) SCREEN
to:print_cls::@1
@ -2387,8 +2465,8 @@ print_cls::@2: scope:[print_cls] from print_cls::@1
print_cls::@return: scope:[print_cls] from print_cls::@2
return
to:@return
@27: scope:[] from @26
to:@28
@28: scope:[] from @27
to:@29
main: scope:[main] from
(word) main::wavelength ← (byte/word/signed word/dword/signed dword) 192
(signed byte[192]) main::sintabb ← { fill( 192, 0) }
@ -2427,14 +2505,15 @@ main::@4: scope:[main] from main::@2
main::@return: scope:[main] from main::@4
return
to:@return
@28: scope:[] from @27
@29: scope:[] from @28
call main
to:@end
@end: scope:[] from @28
@end: scope:[] from @29
Removing unused procedure div8s
Removing unused procedure div16s
Removing unused procedure mul8s
Removing unused procedure mul8su
Removing unused procedure mul16s
Removing unused procedure print_ln
Removing unused procedure print_sword
@ -2474,27 +2553,27 @@ Removing empty block mul8u::@8
Removing empty block mul8u::@9
Removing empty block @8
Removing empty block @9
Removing empty block @10
Removing empty block mul16u::@5
Removing empty block mul16u::@6
Removing empty block mul16u::@8
Removing empty block mul16u::@9
Removing empty block @10
Removing empty block @11
Removing empty block sin16s_gen::@2
Removing empty block @12
Removing empty block sin8s_gen::@2
Removing empty block @13
Removing empty block sin16s::@7
Removing empty block sin8s_gen::@2
Removing empty block @14
Removing empty block sin8s::@9
Removing empty block sin16s::@7
Removing empty block @15
Removing empty block mulu16_sel::@1
Removing empty block sin8s::@9
Removing empty block @16
Removing empty block mulu16_sel::@1
Removing empty block @17
Removing empty block mulu8_sel::@1
Removing empty block print_str::@4
Removing empty block print_str::@3
Removing empty block print_str::@5
Removing empty block print_str::@6
Removing empty block @18
Removing empty block @19
Removing empty block @20
Removing empty block @21
@ -2504,6 +2583,7 @@ Removing empty block @24
Removing empty block @25
Removing empty block @26
Removing empty block @27
Removing empty block @28
Removing empty block main::@4
PROCEDURE MODIFY VARIABLE ANALYSIS
divr16u modifies rem16u
@ -2535,7 +2615,7 @@ CONTROL FLOW GRAPH SSA WITH ASSIGNMENT CALL & RETURN
to:@2
@2: scope:[] from @begin
(word) rem16u#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
to:@11
to:@12
divr16u: scope:[divr16u] from div16u div32u16u div32u16u::@2
(word) divr16u::divisor#7 ← phi( div16u/(word) divr16u::divisor#0 div32u16u/(word) divr16u::divisor#1 div32u16u::@2/(word) divr16u::divisor#2 )
(word) divr16u::dividend#6 ← phi( div16u/(word) divr16u::dividend#1 div32u16u/(word) divr16u::dividend#2 div32u16u::@2/(word) divr16u::dividend#3 )
@ -2774,7 +2854,7 @@ mul16u::@return: scope:[mul16u] from mul16u::@3
(dword) mul16u::return#1 ← (dword) mul16u::return#3
return
to:@return
@11: scope:[] from @2
@12: scope:[] from @2
(word) rem16u#43 ← phi( @2/(word) rem16u#0 )
(dword) PI2_u4f28#0 ← (dword/signed dword) 1686629713
(dword) PI_u4f28#0 ← (dword/signed dword) 843314857
@ -2782,7 +2862,7 @@ mul16u::@return: scope:[mul16u] from mul16u::@3
(word) PI2_u4f12#0 ← (word/signed word/dword/signed dword) 25736
(word) PI_u4f12#0 ← (word/signed word/dword/signed dword) 12868
(word) PI_HALF_u4f12#0 ← (word/signed word/dword/signed dword) 6434
to:@17
to:@18
sin16s_gen: scope:[sin16s_gen] from main::@5
(signed word*) sin16s_gen::sintab#5 ← phi( main::@5/(signed word*) sin16s_gen::sintab#1 )
(word) rem16u#32 ← phi( main::@5/(word) rem16u#12 )
@ -3190,12 +3270,12 @@ mulu8_sel::@return: scope:[mulu8_sel] from mulu8_sel::@2
(byte) mulu8_sel::return#6 ← (byte) mulu8_sel::return#12
return
to:@return
@17: scope:[] from @11
(word) rem16u#42 ← phi( @11/(word) rem16u#43 )
@18: scope:[] from @12
(word) rem16u#42 ← phi( @12/(word) rem16u#43 )
(byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024
(byte*) line_cursor#0 ← (byte*) SCREEN#0
(byte*) char_cursor#0 ← (byte*) line_cursor#0
to:@28
to:@29
print_str: scope:[print_str] from main::@3 main::@8
(byte*) char_cursor#44 ← phi( main::@3/(byte*) char_cursor#42 main::@8/(byte*) char_cursor#14 )
(byte*) print_str::str#5 ← phi( main::@3/(byte*) print_str::str#2 main::@8/(byte*) print_str::str#1 )
@ -3312,10 +3392,10 @@ print_cls::@return: scope:[print_cls] from print_cls::@2
(byte*) char_cursor#12 ← (byte*) char_cursor#29
return
to:@return
main: scope:[main] from @28
(byte*) char_cursor#48 ← phi( @28/(byte*) char_cursor#43 )
(byte*) line_cursor#15 ← phi( @28/(byte*) line_cursor#12 )
(word) rem16u#36 ← phi( @28/(word) rem16u#38 )
main: scope:[main] from @29
(byte*) char_cursor#48 ← phi( @29/(byte*) char_cursor#43 )
(byte*) line_cursor#15 ← phi( @29/(byte*) line_cursor#12 )
(word) rem16u#36 ← phi( @29/(word) rem16u#38 )
(word) main::wavelength#0 ← (byte/word/signed word/dword/signed dword) 192
(signed byte[192]) main::sintabb#0 ← { fill( 192, 0) }
(signed byte*) sin8s_gen::sintab#1 ← (signed byte[192]) main::sintabb#0
@ -3420,28 +3500,28 @@ main::@return: scope:[main] from main::@9
(byte*) char_cursor#17 ← (byte*) char_cursor#34
return
to:@return
@28: scope:[] from @17
(byte*) char_cursor#43 ← phi( @17/(byte*) char_cursor#0 )
(byte*) line_cursor#12 ← phi( @17/(byte*) line_cursor#0 )
(word) rem16u#38 ← phi( @17/(word) rem16u#42 )
@29: scope:[] from @18
(byte*) char_cursor#43 ← phi( @18/(byte*) char_cursor#0 )
(byte*) line_cursor#12 ← phi( @18/(byte*) line_cursor#0 )
(word) rem16u#38 ← phi( @18/(word) rem16u#42 )
call main param-assignment
to:@29
@29: scope:[] from @28
(byte*) char_cursor#35 ← phi( @28/(byte*) char_cursor#17 )
(byte*) line_cursor#9 ← phi( @28/(byte*) line_cursor#4 )
(word) rem16u#29 ← phi( @28/(word) rem16u#14 )
to:@30
@30: scope:[] from @29
(byte*) char_cursor#35 ← phi( @29/(byte*) char_cursor#17 )
(byte*) line_cursor#9 ← phi( @29/(byte*) line_cursor#4 )
(word) rem16u#29 ← phi( @29/(word) rem16u#14 )
(word) rem16u#15 ← (word) rem16u#29
(byte*) line_cursor#5 ← (byte*) line_cursor#9
(byte*) char_cursor#18 ← (byte*) char_cursor#35
to:@end
@end: scope:[] from @29
@end: scope:[] from @30
SYMBOL TABLE SSA
(label) @11
(label) @17
(label) @12
(label) @18
(label) @2
(label) @28
(label) @29
(label) @30
(label) @begin
(label) @end
(word) PI2_u4f12
@ -5019,14 +5099,14 @@ Succesful SSA optimization Pass2NopCastElimination
Culled Empty Block (label) @2
Culled Empty Block (label) mul8u::@3
Culled Empty Block (label) mul16u::@3
Culled Empty Block (label) @11
Culled Empty Block (label) @17
Culled Empty Block (label) @12
Culled Empty Block (label) @18
Culled Empty Block (label) print_sbyte::@3
Culled Empty Block (label) print_byte::@2
Culled Empty Block (label) print_cls::@2
Culled Empty Block (label) main::@7
Culled Empty Block (label) main::@10
Culled Empty Block (label) @29
Culled Empty Block (label) @30
Succesful SSA optimization Pass2CullEmptyBlocks
Not aliassing across scopes: rem16u#1 divr16u::rem#10
Not aliassing across scopes: divr16u::return#2 divr16u::return#0
@ -5436,7 +5516,7 @@ Constant inlined print_str::str#1 = (const string) main::str
Constant inlined print_byte::$4 = (const string) print_byte::hextab#0
Constant inlined sin8s_gen::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
Succesful SSA optimization Pass2ConstantInlining
Block Sequence Planned @begin @28 @end main main::@5 main::@6 main::@1 main::@3 main::@2 main::@8 main::@9 main::@return print_str print_str::@1 print_str::@return print_str::@2 print_sbyte print_sbyte::@2 print_sbyte::@4 print_sbyte::@1 print_sbyte::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_cls print_cls::@1 print_cls::@return sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@4 sin16s_gen::@return sin16s sin16s::@4 sin16s::@1 sin16s::@5 sin16s::@2 sin16s::@8 sin16s::@9 sin16s::@10 sin16s::@11 sin16s::@12 sin16s::@6 sin16s::@3 sin16s::@return mulu16_sel mulu16_sel::@2 mulu16_sel::@return mul16u mul16u::@1 mul16u::@return mul16u::@2 mul16u::@7 mul16u::@4 div32u16u div32u16u::@2 div32u16u::@3 div32u16u::@return divr16u divr16u::@1 divr16u::@4 divr16u::@2 divr16u::@5 divr16u::@3 divr16u::@6 divr16u::@return sin8s_gen sin8s_gen::@3 sin8s_gen::@1 sin8s_gen::@4 sin8s_gen::@return sin8s sin8s::@5 sin8s::@1 sin8s::@6 sin8s::@2 sin8s::@10 sin8s::@11 sin8s::@12 sin8s::@13 sin8s::@14 sin8s::@7 sin8s::@3 sin8s::@8 sin8s::@4 sin8s::@return mulu8_sel mulu8_sel::@2 mulu8_sel::@return mul8u mul8u::@1 mul8u::@return mul8u::@2 mul8u::@7 mul8u::@4 div16u div16u::@2 div16u::@return
Block Sequence Planned @begin @29 @end main main::@5 main::@6 main::@1 main::@3 main::@2 main::@8 main::@9 main::@return print_str print_str::@1 print_str::@return print_str::@2 print_sbyte print_sbyte::@2 print_sbyte::@4 print_sbyte::@1 print_sbyte::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_cls print_cls::@1 print_cls::@return sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@4 sin16s_gen::@return sin16s sin16s::@4 sin16s::@1 sin16s::@5 sin16s::@2 sin16s::@8 sin16s::@9 sin16s::@10 sin16s::@11 sin16s::@12 sin16s::@6 sin16s::@3 sin16s::@return mulu16_sel mulu16_sel::@2 mulu16_sel::@return mul16u mul16u::@1 mul16u::@return mul16u::@2 mul16u::@7 mul16u::@4 div32u16u div32u16u::@2 div32u16u::@3 div32u16u::@return divr16u divr16u::@1 divr16u::@4 divr16u::@2 divr16u::@5 divr16u::@3 divr16u::@6 divr16u::@return sin8s_gen sin8s_gen::@3 sin8s_gen::@1 sin8s_gen::@4 sin8s_gen::@return sin8s sin8s::@5 sin8s::@1 sin8s::@6 sin8s::@2 sin8s::@10 sin8s::@11 sin8s::@12 sin8s::@13 sin8s::@14 sin8s::@7 sin8s::@3 sin8s::@8 sin8s::@4 sin8s::@return mulu8_sel mulu8_sel::@2 mulu8_sel::@return mul8u mul8u::@1 mul8u::@return mul8u::@2 mul8u::@7 mul8u::@4 div16u div16u::@2 div16u::@return
Added new block during phi lifting main::@11(between main::@9 and main::@1)
Added new block during phi lifting main::@12(between main::@1 and main::@2)
Added new block during phi lifting print_sbyte::@5(between print_sbyte and print_sbyte::@1)
@ -5457,9 +5537,9 @@ Added new block during phi lifting sin8s::@16(between sin8s::@1 and sin8s::@2)
Added new block during phi lifting sin8s::@17(between sin8s::@14 and sin8s::@3)
Added new block during phi lifting sin8s::@18(between sin8s::@3 and sin8s::@4)
Added new block during phi lifting mul8u::@10(between mul8u::@2 and mul8u::@4)
Block Sequence Planned @begin @28 @end main main::@5 main::@6 main::@1 main::@3 main::@2 main::@8 main::@9 main::@return main::@11 main::@12 print_str print_str::@1 print_str::@return print_str::@2 print_sbyte print_sbyte::@2 print_sbyte::@4 print_sbyte::@1 print_sbyte::@return print_sbyte::@5 print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_cls print_cls::@1 print_cls::@return print_cls::@3 sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@4 sin16s_gen::@return sin16s_gen::@5 sin16s sin16s::@4 sin16s::@1 sin16s::@5 sin16s::@2 sin16s::@8 sin16s::@9 sin16s::@10 sin16s::@11 sin16s::@12 sin16s::@6 sin16s::@3 sin16s::@return sin16s::@15 sin16s::@14 sin16s::@13 mulu16_sel mulu16_sel::@2 mulu16_sel::@return mul16u mul16u::@1 mul16u::@return mul16u::@2 mul16u::@7 mul16u::@4 mul16u::@10 div32u16u div32u16u::@2 div32u16u::@3 div32u16u::@return divr16u divr16u::@1 divr16u::@4 divr16u::@2 divr16u::@5 divr16u::@3 divr16u::@6 divr16u::@return divr16u::@8 divr16u::@10 divr16u::@9 sin8s_gen sin8s_gen::@3 sin8s_gen::@1 sin8s_gen::@4 sin8s_gen::@return sin8s_gen::@5 sin8s sin8s::@5 sin8s::@1 sin8s::@6 sin8s::@2 sin8s::@10 sin8s::@11 sin8s::@12 sin8s::@13 sin8s::@14 sin8s::@7 sin8s::@3 sin8s::@8 sin8s::@4 sin8s::@return sin8s::@18 sin8s::@17 sin8s::@16 sin8s::@15 mulu8_sel mulu8_sel::@2 mulu8_sel::@return mul8u mul8u::@1 mul8u::@return mul8u::@2 mul8u::@7 mul8u::@4 mul8u::@10 div16u div16u::@2 div16u::@return
Block Sequence Planned @begin @29 @end main main::@5 main::@6 main::@1 main::@3 main::@2 main::@8 main::@9 main::@return main::@11 main::@12 print_str print_str::@1 print_str::@return print_str::@2 print_sbyte print_sbyte::@2 print_sbyte::@4 print_sbyte::@1 print_sbyte::@return print_sbyte::@5 print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_cls print_cls::@1 print_cls::@return print_cls::@3 sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@4 sin16s_gen::@return sin16s_gen::@5 sin16s sin16s::@4 sin16s::@1 sin16s::@5 sin16s::@2 sin16s::@8 sin16s::@9 sin16s::@10 sin16s::@11 sin16s::@12 sin16s::@6 sin16s::@3 sin16s::@return sin16s::@15 sin16s::@14 sin16s::@13 mulu16_sel mulu16_sel::@2 mulu16_sel::@return mul16u mul16u::@1 mul16u::@return mul16u::@2 mul16u::@7 mul16u::@4 mul16u::@10 div32u16u div32u16u::@2 div32u16u::@3 div32u16u::@return divr16u divr16u::@1 divr16u::@4 divr16u::@2 divr16u::@5 divr16u::@3 divr16u::@6 divr16u::@return divr16u::@8 divr16u::@10 divr16u::@9 sin8s_gen sin8s_gen::@3 sin8s_gen::@1 sin8s_gen::@4 sin8s_gen::@return sin8s_gen::@5 sin8s sin8s::@5 sin8s::@1 sin8s::@6 sin8s::@2 sin8s::@10 sin8s::@11 sin8s::@12 sin8s::@13 sin8s::@14 sin8s::@7 sin8s::@3 sin8s::@8 sin8s::@4 sin8s::@return sin8s::@18 sin8s::@17 sin8s::@16 sin8s::@15 mulu8_sel mulu8_sel::@2 mulu8_sel::@return mul8u mul8u::@1 mul8u::@return mul8u::@2 mul8u::@7 mul8u::@4 mul8u::@10 div16u div16u::@2 div16u::@return
Adding NOP phi() at start of @begin
Adding NOP phi() at start of @28
Adding NOP phi() at start of @29
Adding NOP phi() at start of @end
Adding NOP phi() at start of main
Adding NOP phi() at start of main::@5
@ -5628,9 +5708,9 @@ Culled Empty Block (label) sin8s::@17
Culled Empty Block (label) sin8s::@16
Culled Empty Block (label) sin8s::@15
Culled Empty Block (label) mul8u::@10
Block Sequence Planned @begin @28 @end main main::@5 main::@6 main::@1 main::@3 main::@2 main::@8 main::@9 main::@return print_str print_str::@1 print_str::@return print_str::@2 print_sbyte print_sbyte::@2 print_sbyte::@4 print_sbyte::@1 print_sbyte::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_cls print_cls::@1 print_cls::@return sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@4 sin16s_gen::@return sin16s sin16s::@4 sin16s::@1 sin16s::@5 sin16s::@2 sin16s::@8 sin16s::@9 sin16s::@10 sin16s::@11 sin16s::@12 sin16s::@6 sin16s::@3 sin16s::@return sin16s::@15 mulu16_sel mulu16_sel::@2 mulu16_sel::@return mul16u mul16u::@1 mul16u::@return mul16u::@2 mul16u::@7 mul16u::@4 div32u16u div32u16u::@2 div32u16u::@3 div32u16u::@return divr16u divr16u::@1 divr16u::@4 divr16u::@2 divr16u::@5 divr16u::@3 divr16u::@6 divr16u::@return sin8s_gen sin8s_gen::@3 sin8s_gen::@1 sin8s_gen::@4 sin8s_gen::@return sin8s sin8s::@5 sin8s::@1 sin8s::@6 sin8s::@2 sin8s::@10 sin8s::@11 sin8s::@12 sin8s::@13 sin8s::@14 sin8s::@7 sin8s::@3 sin8s::@8 sin8s::@4 sin8s::@return sin8s::@18 mulu8_sel mulu8_sel::@2 mulu8_sel::@return mul8u mul8u::@1 mul8u::@return mul8u::@2 mul8u::@7 mul8u::@4 div16u div16u::@2 div16u::@return
Block Sequence Planned @begin @29 @end main main::@5 main::@6 main::@1 main::@3 main::@2 main::@8 main::@9 main::@return print_str print_str::@1 print_str::@return print_str::@2 print_sbyte print_sbyte::@2 print_sbyte::@4 print_sbyte::@1 print_sbyte::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_cls print_cls::@1 print_cls::@return sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s_gen::@4 sin16s_gen::@return sin16s sin16s::@4 sin16s::@1 sin16s::@5 sin16s::@2 sin16s::@8 sin16s::@9 sin16s::@10 sin16s::@11 sin16s::@12 sin16s::@6 sin16s::@3 sin16s::@return sin16s::@15 mulu16_sel mulu16_sel::@2 mulu16_sel::@return mul16u mul16u::@1 mul16u::@return mul16u::@2 mul16u::@7 mul16u::@4 div32u16u div32u16u::@2 div32u16u::@3 div32u16u::@return divr16u divr16u::@1 divr16u::@4 divr16u::@2 divr16u::@5 divr16u::@3 divr16u::@6 divr16u::@return sin8s_gen sin8s_gen::@3 sin8s_gen::@1 sin8s_gen::@4 sin8s_gen::@return sin8s sin8s::@5 sin8s::@1 sin8s::@6 sin8s::@2 sin8s::@10 sin8s::@11 sin8s::@12 sin8s::@13 sin8s::@14 sin8s::@7 sin8s::@3 sin8s::@8 sin8s::@4 sin8s::@return sin8s::@18 mulu8_sel mulu8_sel::@2 mulu8_sel::@return mul8u mul8u::@1 mul8u::@return mul8u::@2 mul8u::@7 mul8u::@4 div16u div16u::@2 div16u::@return
Adding NOP phi() at start of @begin
Adding NOP phi() at start of @28
Adding NOP phi() at start of @29
Adding NOP phi() at start of @end
Adding NOP phi() at start of main
Adding NOP phi() at start of main::@5
@ -5682,14 +5762,14 @@ Propagating live ranges...
FINAL CONTROL FLOW GRAPH
@begin: scope:[] from
[0] phi() [ ] ( )
to:@28
@28: scope:[] from @begin
to:@29
@29: scope:[] from @begin
[1] phi() [ ] ( )
[2] call main param-assignment [ ] ( )
to:@end
@end: scope:[] from @28
@end: scope:[] from @29
[3] phi() [ ] ( )
main: scope:[main] from @28
main: scope:[main] from @29
[4] phi() [ ] ( main:2 [ ] )
[5] call sin8s_gen param-assignment [ ] ( main:2 [ ] )
to:main::@5
@ -6155,107 +6235,107 @@ div16u::@return: scope:[div16u] from div16u::@2
DOMINATORS
@begin dominated by @begin
@28 dominated by @28 @begin
@end dominated by @end @28 @begin
main dominated by @28 main @begin
main::@5 dominated by main::@5 @28 main @begin
main::@6 dominated by main::@5 main::@6 @28 main @begin
main::@1 dominated by main::@1 main::@5 main::@6 @28 main @begin
main::@3 dominated by main::@1 main::@5 main::@6 main::@3 @28 main @begin
main::@2 dominated by main::@1 main::@2 main::@5 main::@6 @28 main @begin
main::@8 dominated by main::@8 main::@1 main::@2 main::@5 main::@6 @28 main @begin
main::@9 dominated by main::@9 main::@8 main::@1 main::@2 main::@5 main::@6 @28 main @begin
main::@return dominated by main::@9 main::@8 main::@1 main::@2 main::@5 main::@6 main::@return @28 main @begin
print_str dominated by main::@1 main::@5 main::@6 print_str @28 main @begin
print_str::@1 dominated by main::@1 main::@5 main::@6 print_str::@1 print_str @28 main @begin
print_str::@return dominated by main::@1 main::@5 main::@6 print_str::@return print_str::@1 print_str @28 main @begin
print_str::@2 dominated by main::@1 main::@5 main::@6 print_str::@1 print_str::@2 print_str @28 main @begin
print_sbyte dominated by main::@1 main::@2 main::@5 main::@6 print_sbyte @28 main @begin
print_sbyte::@2 dominated by main::@1 main::@2 main::@5 main::@6 print_sbyte @28 main print_sbyte::@2 @begin
print_sbyte::@4 dominated by main::@1 main::@2 main::@5 main::@6 print_sbyte @28 main print_sbyte::@4 print_sbyte::@2 @begin
print_sbyte::@1 dominated by main::@1 main::@2 main::@5 main::@6 print_sbyte @28 main print_sbyte::@1 @begin
print_sbyte::@return dominated by main::@1 main::@2 main::@5 main::@6 print_sbyte @28 main print_sbyte::@1 @begin print_sbyte::@return
print_byte dominated by main::@1 main::@2 main::@5 main::@6 print_byte print_sbyte @28 main print_sbyte::@1 @begin
print_byte::@1 dominated by main::@1 main::@2 main::@5 main::@6 print_byte::@1 print_byte print_sbyte @28 main print_sbyte::@1 @begin
print_byte::@return dominated by main::@1 main::@2 main::@5 main::@6 print_byte::@1 print_byte print_sbyte @28 main print_sbyte::@1 @begin print_byte::@return
print_char dominated by main::@1 main::@2 main::@5 main::@6 print_sbyte @28 main print_char @begin
print_char::@return dominated by main::@1 main::@2 main::@5 main::@6 print_sbyte @28 main print_char print_char::@return @begin
print_cls dominated by main::@5 main::@6 print_cls @28 main @begin
print_cls::@1 dominated by main::@5 main::@6 print_cls @28 main @begin print_cls::@1
print_cls::@return dominated by main::@5 main::@6 print_cls @28 main @begin print_cls::@return print_cls::@1
sin16s_gen dominated by main::@5 sin16s_gen @28 main @begin
sin16s_gen::@3 dominated by main::@5 sin16s_gen sin16s_gen::@3 @28 main @begin
sin16s_gen::@1 dominated by main::@5 sin16s_gen sin16s_gen::@3 sin16s_gen::@1 @28 main @begin
sin16s_gen::@4 dominated by main::@5 sin16s_gen sin16s_gen::@3 sin16s_gen::@4 sin16s_gen::@1 @28 main @begin
sin16s_gen::@return dominated by main::@5 sin16s_gen::@return sin16s_gen sin16s_gen::@3 sin16s_gen::@4 sin16s_gen::@1 @28 main @begin
sin16s dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s_gen::@1 @28 main @begin
sin16s::@4 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s::@4 @28 main @begin
sin16s::@1 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 @28 main @begin
sin16s::@5 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@5 @28 main @begin
sin16s::@2 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@2 @28 main @begin
sin16s::@8 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@8 sin16s::@2 @28 main @begin
sin16s::@9 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@2 @28 main @begin
sin16s::@10 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@2 @28 main @begin sin16s::@10
sin16s::@11 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@2 @28 main @begin sin16s::@11 sin16s::@10
sin16s::@12 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@2 @28 main @begin sin16s::@12 sin16s::@11 sin16s::@10
sin16s::@6 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@6 sin16s::@2 @28 main @begin sin16s::@12 sin16s::@11 sin16s::@10
sin16s::@3 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@3 sin16s::@2 @28 main @begin sin16s::@12 sin16s::@11 sin16s::@10
sin16s::@return dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@3 sin16s::@2 @28 main @begin sin16s::@return sin16s::@12 sin16s::@11 sin16s::@10
sin16s::@15 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@2 @28 main @begin sin16s::@15 sin16s::@12 sin16s::@11 sin16s::@10
mulu16_sel dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2 @28 main @begin
mulu16_sel::@2 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2 @28 main @begin mulu16_sel::@2
mulu16_sel::@return dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2 @28 main @begin mulu16_sel::@return mulu16_sel::@2
mul16u dominated by mul16u main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2 @28 main @begin
mul16u::@1 dominated by mul16u main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2 @28 main mul16u::@1 @begin
mul16u::@return dominated by mul16u main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2 mul16u::@return @28 main mul16u::@1 @begin
mul16u::@2 dominated by mul16u main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2 @28 main mul16u::@1 mul16u::@2 @begin
mul16u::@7 dominated by mul16u main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2 @28 main mul16u::@1 mul16u::@2 @begin mul16u::@7
mul16u::@4 dominated by mul16u main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2 @28 main mul16u::@1 mul16u::@2 @begin mul16u::@4
div32u16u dominated by main::@5 sin16s_gen div32u16u @28 main @begin
div32u16u::@2 dominated by main::@5 sin16s_gen div32u16u @28 main div32u16u::@2 @begin
div32u16u::@3 dominated by main::@5 sin16s_gen div32u16u @28 main div32u16u::@2 div32u16u::@3 @begin
div32u16u::@return dominated by main::@5 sin16s_gen div32u16u div32u16u::@return @28 main div32u16u::@2 div32u16u::@3 @begin
divr16u dominated by divr16u @28 main @begin
divr16u::@1 dominated by divr16u::@1 divr16u @28 main @begin
divr16u::@4 dominated by divr16u::@1 divr16u::@4 divr16u @28 main @begin
divr16u::@2 dominated by divr16u::@2 divr16u::@1 divr16u @28 main @begin
divr16u::@5 dominated by divr16u::@2 divr16u::@1 divr16u::@5 divr16u @28 main @begin
divr16u::@3 dominated by divr16u::@2 divr16u::@1 divr16u::@3 divr16u @28 main @begin
divr16u::@6 dominated by divr16u::@2 divr16u::@1 divr16u::@3 divr16u::@6 divr16u @28 main @begin
divr16u::@return dominated by divr16u::@2 divr16u::@1 divr16u::@3 divr16u::@6 divr16u::@return divr16u @28 main @begin
sin8s_gen dominated by sin8s_gen @28 main @begin
sin8s_gen::@3 dominated by sin8s_gen @28 main @begin sin8s_gen::@3
sin8s_gen::@1 dominated by sin8s_gen @28 main @begin sin8s_gen::@1 sin8s_gen::@3
sin8s_gen::@4 dominated by sin8s_gen @28 main @begin sin8s_gen::@1 sin8s_gen::@3 sin8s_gen::@4
sin8s_gen::@return dominated by sin8s_gen sin8s_gen::@return @28 main @begin sin8s_gen::@1 sin8s_gen::@3 sin8s_gen::@4
sin8s dominated by sin8s_gen @28 main sin8s @begin sin8s_gen::@1 sin8s_gen::@3
sin8s::@5 dominated by sin8s_gen @28 main sin8s @begin sin8s::@5 sin8s_gen::@1 sin8s_gen::@3
sin8s::@1 dominated by sin8s_gen @28 main sin8s @begin sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
sin8s::@6 dominated by sin8s_gen @28 main sin8s @begin sin8s::@1 sin8s::@6 sin8s_gen::@1 sin8s_gen::@3
sin8s::@2 dominated by sin8s_gen @28 main sin8s @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
sin8s::@10 dominated by sin8s_gen sin8s::@10 @28 main sin8s @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
sin8s::@11 dominated by sin8s_gen sin8s::@11 sin8s::@10 @28 main sin8s @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
sin8s::@12 dominated by sin8s_gen sin8s::@12 sin8s::@11 sin8s::@10 @28 main sin8s @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
sin8s::@13 dominated by sin8s_gen sin8s::@13 sin8s::@12 sin8s::@11 sin8s::@10 @28 main sin8s @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
sin8s::@14 dominated by sin8s_gen sin8s::@14 sin8s::@13 sin8s::@12 sin8s::@11 sin8s::@10 @28 main sin8s @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
sin8s::@7 dominated by sin8s_gen sin8s::@14 sin8s::@13 sin8s::@12 sin8s::@11 sin8s::@10 @28 main sin8s @begin sin8s::@2 sin8s::@1 sin8s::@7 sin8s_gen::@1 sin8s_gen::@3
sin8s::@3 dominated by sin8s_gen sin8s::@14 sin8s::@13 sin8s::@12 sin8s::@11 sin8s::@10 @28 main sin8s @begin sin8s::@2 sin8s::@1 sin8s::@3 sin8s_gen::@1 sin8s_gen::@3
sin8s::@8 dominated by sin8s_gen sin8s::@14 sin8s::@13 sin8s::@12 sin8s::@11 sin8s::@10 @28 main sin8s @begin sin8s::@2 sin8s::@1 sin8s::@3 sin8s::@8 sin8s_gen::@1 sin8s_gen::@3
sin8s::@4 dominated by sin8s_gen sin8s::@14 sin8s::@13 sin8s::@12 sin8s::@11 sin8s::@10 @28 main sin8s @begin sin8s::@2 sin8s::@1 sin8s::@4 sin8s::@3 sin8s_gen::@1 sin8s_gen::@3
sin8s::@return dominated by sin8s_gen sin8s::@14 sin8s::@13 sin8s::@12 sin8s::@11 sin8s::@10 sin8s::@return @28 main sin8s @begin sin8s::@2 sin8s::@1 sin8s::@4 sin8s::@3 sin8s_gen::@1 sin8s_gen::@3
sin8s::@18 dominated by sin8s_gen sin8s::@18 sin8s::@14 sin8s::@13 sin8s::@12 sin8s::@11 sin8s::@10 @28 main sin8s @begin sin8s::@2 sin8s::@1 sin8s::@3 sin8s_gen::@1 sin8s_gen::@3
mulu8_sel dominated by sin8s_gen mulu8_sel @28 main sin8s @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
mulu8_sel::@2 dominated by mulu8_sel::@2 sin8s_gen mulu8_sel @28 main sin8s @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
mulu8_sel::@return dominated by mulu8_sel::@2 sin8s_gen mulu8_sel::@return mulu8_sel @28 main sin8s @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
mul8u dominated by sin8s_gen mul8u mulu8_sel @28 main sin8s @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
mul8u::@1 dominated by sin8s_gen mul8u mulu8_sel @28 main sin8s @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3 mul8u::@1
mul8u::@return dominated by sin8s_gen mul8u mulu8_sel mul8u::@return @28 main sin8s @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3 mul8u::@1
mul8u::@2 dominated by sin8s_gen mul8u mulu8_sel @28 main sin8s @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3 mul8u::@2 mul8u::@1
mul8u::@7 dominated by sin8s_gen mul8u mulu8_sel @28 main sin8s @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3 mul8u::@7 mul8u::@2 mul8u::@1
mul8u::@4 dominated by sin8s_gen mul8u mulu8_sel @28 main sin8s @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3 mul8u::@2 mul8u::@1 mul8u::@4
div16u dominated by div16u sin8s_gen @28 main @begin
div16u::@2 dominated by div16u sin8s_gen div16u::@2 @28 main @begin
div16u::@return dominated by div16u::@return div16u sin8s_gen div16u::@2 @28 main @begin
@29 dominated by @29 @begin
@end dominated by @end @29 @begin
main dominated by @29 main @begin
main::@5 dominated by main::@5 @29 main @begin
main::@6 dominated by main::@5 main::@6 @29 main @begin
main::@1 dominated by main::@1 main::@5 main::@6 @29 main @begin
main::@3 dominated by main::@1 main::@5 main::@6 main::@3 @29 main @begin
main::@2 dominated by main::@1 main::@2 main::@5 main::@6 @29 main @begin
main::@8 dominated by main::@8 main::@1 main::@2 main::@5 main::@6 @29 main @begin
main::@9 dominated by main::@9 main::@8 main::@1 main::@2 main::@5 main::@6 @29 main @begin
main::@return dominated by main::@9 main::@8 main::@1 main::@2 main::@5 main::@6 main::@return @29 main @begin
print_str dominated by main::@1 main::@5 main::@6 print_str @29 main @begin
print_str::@1 dominated by main::@1 main::@5 main::@6 print_str::@1 print_str @29 main @begin
print_str::@return dominated by main::@1 main::@5 main::@6 print_str::@return print_str::@1 print_str @29 main @begin
print_str::@2 dominated by main::@1 main::@5 main::@6 print_str::@1 print_str::@2 print_str @29 main @begin
print_sbyte dominated by main::@1 main::@2 main::@5 main::@6 print_sbyte @29 main @begin
print_sbyte::@2 dominated by main::@1 main::@2 main::@5 main::@6 print_sbyte @29 main print_sbyte::@2 @begin
print_sbyte::@4 dominated by main::@1 main::@2 main::@5 main::@6 print_sbyte @29 main print_sbyte::@4 print_sbyte::@2 @begin
print_sbyte::@1 dominated by main::@1 main::@2 main::@5 main::@6 print_sbyte @29 main print_sbyte::@1 @begin
print_sbyte::@return dominated by main::@1 main::@2 main::@5 main::@6 print_sbyte @29 main print_sbyte::@1 @begin print_sbyte::@return
print_byte dominated by main::@1 main::@2 main::@5 main::@6 print_byte print_sbyte @29 main print_sbyte::@1 @begin
print_byte::@1 dominated by main::@1 main::@2 main::@5 main::@6 print_byte::@1 print_byte print_sbyte @29 main print_sbyte::@1 @begin
print_byte::@return dominated by main::@1 main::@2 main::@5 main::@6 print_byte::@1 print_byte print_sbyte @29 main print_sbyte::@1 @begin print_byte::@return
print_char dominated by main::@1 main::@2 main::@5 main::@6 print_sbyte @29 main print_char @begin
print_char::@return dominated by main::@1 main::@2 main::@5 main::@6 print_sbyte @29 main print_char print_char::@return @begin
print_cls dominated by main::@5 main::@6 print_cls @29 main @begin
print_cls::@1 dominated by main::@5 main::@6 print_cls @29 main @begin print_cls::@1
print_cls::@return dominated by main::@5 main::@6 print_cls @29 main @begin print_cls::@return print_cls::@1
sin16s_gen dominated by main::@5 sin16s_gen @29 main @begin
sin16s_gen::@3 dominated by main::@5 sin16s_gen sin16s_gen::@3 @29 main @begin
sin16s_gen::@1 dominated by main::@5 sin16s_gen sin16s_gen::@3 sin16s_gen::@1 @29 main @begin
sin16s_gen::@4 dominated by main::@5 sin16s_gen sin16s_gen::@3 sin16s_gen::@4 sin16s_gen::@1 @29 main @begin
sin16s_gen::@return dominated by main::@5 sin16s_gen::@return sin16s_gen sin16s_gen::@3 sin16s_gen::@4 sin16s_gen::@1 @29 main @begin
sin16s dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s_gen::@1 @29 main @begin
sin16s::@4 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s_gen::@1 sin16s::@4 @29 main @begin
sin16s::@1 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 @29 main @begin
sin16s::@5 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@5 @29 main @begin
sin16s::@2 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@2 @29 main @begin
sin16s::@8 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@8 sin16s::@2 @29 main @begin
sin16s::@9 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@2 @29 main @begin
sin16s::@10 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@2 @29 main @begin sin16s::@10
sin16s::@11 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@2 @29 main @begin sin16s::@11 sin16s::@10
sin16s::@12 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@2 @29 main @begin sin16s::@12 sin16s::@11 sin16s::@10
sin16s::@6 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@6 sin16s::@2 @29 main @begin sin16s::@12 sin16s::@11 sin16s::@10
sin16s::@3 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@3 sin16s::@2 @29 main @begin sin16s::@12 sin16s::@11 sin16s::@10
sin16s::@return dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@3 sin16s::@2 @29 main @begin sin16s::@return sin16s::@12 sin16s::@11 sin16s::@10
sin16s::@15 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 sin16s::@9 sin16s::@8 sin16s::@2 @29 main @begin sin16s::@15 sin16s::@12 sin16s::@11 sin16s::@10
mulu16_sel dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2 @29 main @begin
mulu16_sel::@2 dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2 @29 main @begin mulu16_sel::@2
mulu16_sel::@return dominated by main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2 @29 main @begin mulu16_sel::@return mulu16_sel::@2
mul16u dominated by mul16u main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2 @29 main @begin
mul16u::@1 dominated by mul16u main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2 @29 main mul16u::@1 @begin
mul16u::@return dominated by mul16u main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2 mul16u::@return @29 main mul16u::@1 @begin
mul16u::@2 dominated by mul16u main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2 @29 main mul16u::@1 mul16u::@2 @begin
mul16u::@7 dominated by mul16u main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2 @29 main mul16u::@1 mul16u::@2 @begin mul16u::@7
mul16u::@4 dominated by mul16u main::@5 sin16s sin16s_gen sin16s_gen::@3 sin16s::@1 sin16s_gen::@1 mulu16_sel sin16s::@2 @29 main mul16u::@1 mul16u::@2 @begin mul16u::@4
div32u16u dominated by main::@5 sin16s_gen div32u16u @29 main @begin
div32u16u::@2 dominated by main::@5 sin16s_gen div32u16u @29 main div32u16u::@2 @begin
div32u16u::@3 dominated by main::@5 sin16s_gen div32u16u @29 main div32u16u::@2 div32u16u::@3 @begin
div32u16u::@return dominated by main::@5 sin16s_gen div32u16u div32u16u::@return @29 main div32u16u::@2 div32u16u::@3 @begin
divr16u dominated by divr16u @29 main @begin
divr16u::@1 dominated by divr16u::@1 divr16u @29 main @begin
divr16u::@4 dominated by divr16u::@1 divr16u::@4 divr16u @29 main @begin
divr16u::@2 dominated by divr16u::@2 divr16u::@1 divr16u @29 main @begin
divr16u::@5 dominated by divr16u::@2 divr16u::@1 divr16u::@5 divr16u @29 main @begin
divr16u::@3 dominated by divr16u::@2 divr16u::@1 divr16u::@3 divr16u @29 main @begin
divr16u::@6 dominated by divr16u::@2 divr16u::@1 divr16u::@3 divr16u::@6 divr16u @29 main @begin
divr16u::@return dominated by divr16u::@2 divr16u::@1 divr16u::@3 divr16u::@6 divr16u::@return divr16u @29 main @begin
sin8s_gen dominated by sin8s_gen @29 main @begin
sin8s_gen::@3 dominated by sin8s_gen @29 main @begin sin8s_gen::@3
sin8s_gen::@1 dominated by sin8s_gen @29 main @begin sin8s_gen::@1 sin8s_gen::@3
sin8s_gen::@4 dominated by sin8s_gen @29 main @begin sin8s_gen::@1 sin8s_gen::@3 sin8s_gen::@4
sin8s_gen::@return dominated by sin8s_gen sin8s_gen::@return @29 main @begin sin8s_gen::@1 sin8s_gen::@3 sin8s_gen::@4
sin8s dominated by sin8s_gen @29 main sin8s @begin sin8s_gen::@1 sin8s_gen::@3
sin8s::@5 dominated by sin8s_gen @29 main sin8s @begin sin8s::@5 sin8s_gen::@1 sin8s_gen::@3
sin8s::@1 dominated by sin8s_gen @29 main sin8s @begin sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
sin8s::@6 dominated by sin8s_gen @29 main sin8s @begin sin8s::@1 sin8s::@6 sin8s_gen::@1 sin8s_gen::@3
sin8s::@2 dominated by sin8s_gen @29 main sin8s @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
sin8s::@10 dominated by sin8s_gen sin8s::@10 @29 main sin8s @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
sin8s::@11 dominated by sin8s_gen sin8s::@11 sin8s::@10 @29 main sin8s @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
sin8s::@12 dominated by sin8s_gen sin8s::@12 sin8s::@11 sin8s::@10 @29 main sin8s @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
sin8s::@13 dominated by sin8s_gen sin8s::@13 sin8s::@12 sin8s::@11 sin8s::@10 @29 main sin8s @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
sin8s::@14 dominated by sin8s_gen sin8s::@14 sin8s::@13 sin8s::@12 sin8s::@11 sin8s::@10 @29 main sin8s @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
sin8s::@7 dominated by sin8s_gen sin8s::@14 sin8s::@13 sin8s::@12 sin8s::@11 sin8s::@10 @29 main sin8s @begin sin8s::@2 sin8s::@1 sin8s::@7 sin8s_gen::@1 sin8s_gen::@3
sin8s::@3 dominated by sin8s_gen sin8s::@14 sin8s::@13 sin8s::@12 sin8s::@11 sin8s::@10 @29 main sin8s @begin sin8s::@2 sin8s::@1 sin8s::@3 sin8s_gen::@1 sin8s_gen::@3
sin8s::@8 dominated by sin8s_gen sin8s::@14 sin8s::@13 sin8s::@12 sin8s::@11 sin8s::@10 @29 main sin8s @begin sin8s::@2 sin8s::@1 sin8s::@3 sin8s::@8 sin8s_gen::@1 sin8s_gen::@3
sin8s::@4 dominated by sin8s_gen sin8s::@14 sin8s::@13 sin8s::@12 sin8s::@11 sin8s::@10 @29 main sin8s @begin sin8s::@2 sin8s::@1 sin8s::@4 sin8s::@3 sin8s_gen::@1 sin8s_gen::@3
sin8s::@return dominated by sin8s_gen sin8s::@14 sin8s::@13 sin8s::@12 sin8s::@11 sin8s::@10 sin8s::@return @29 main sin8s @begin sin8s::@2 sin8s::@1 sin8s::@4 sin8s::@3 sin8s_gen::@1 sin8s_gen::@3
sin8s::@18 dominated by sin8s_gen sin8s::@18 sin8s::@14 sin8s::@13 sin8s::@12 sin8s::@11 sin8s::@10 @29 main sin8s @begin sin8s::@2 sin8s::@1 sin8s::@3 sin8s_gen::@1 sin8s_gen::@3
mulu8_sel dominated by sin8s_gen mulu8_sel @29 main sin8s @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
mulu8_sel::@2 dominated by mulu8_sel::@2 sin8s_gen mulu8_sel @29 main sin8s @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
mulu8_sel::@return dominated by mulu8_sel::@2 sin8s_gen mulu8_sel::@return mulu8_sel @29 main sin8s @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
mul8u dominated by sin8s_gen mul8u mulu8_sel @29 main sin8s @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3
mul8u::@1 dominated by sin8s_gen mul8u mulu8_sel @29 main sin8s @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3 mul8u::@1
mul8u::@return dominated by sin8s_gen mul8u mulu8_sel mul8u::@return @29 main sin8s @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3 mul8u::@1
mul8u::@2 dominated by sin8s_gen mul8u mulu8_sel @29 main sin8s @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3 mul8u::@2 mul8u::@1
mul8u::@7 dominated by sin8s_gen mul8u mulu8_sel @29 main sin8s @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3 mul8u::@7 mul8u::@2 mul8u::@1
mul8u::@4 dominated by sin8s_gen mul8u mulu8_sel @29 main sin8s @begin sin8s::@2 sin8s::@1 sin8s_gen::@1 sin8s_gen::@3 mul8u::@2 mul8u::@1 mul8u::@4
div16u dominated by div16u sin8s_gen @29 main @begin
div16u::@2 dominated by div16u sin8s_gen div16u::@2 @29 main @begin
div16u::@return dominated by div16u::@return div16u sin8s_gen div16u::@2 @29 main @begin
NATURAL LOOPS
Found back edge: Loop head: main::@1 tails: main::@9 blocks: null
@ -6944,17 +7024,17 @@ INITIAL ASM
.label char_cursor = 7
//SEG2 @begin
bbegin:
//SEG3 [1] phi from @begin to @28 [phi:@begin->@28]
b28_from_bbegin:
jmp b28
//SEG4 @28
b28:
//SEG3 [1] phi from @begin to @29 [phi:@begin->@29]
b29_from_bbegin:
jmp b29
//SEG4 @29
b29:
//SEG5 [2] call main param-assignment [ ] ( )
//SEG6 [4] phi from @28 to main [phi:@28->main]
main_from_b28:
//SEG6 [4] phi from @29 to main [phi:@29->main]
main_from_b29:
jsr main
//SEG7 [3] phi from @28 to @end [phi:@28->@end]
bend_from_b28:
//SEG7 [3] phi from @29 to @end [phi:@29->@end]
bend_from_b29:
jmp bend
//SEG8 @end
bend:
@ -9204,17 +9284,17 @@ ASSEMBLER BEFORE OPTIMIZATION
.label char_cursor = 5
//SEG2 @begin
bbegin:
//SEG3 [1] phi from @begin to @28 [phi:@begin->@28]
b28_from_bbegin:
jmp b28
//SEG4 @28
b28:
//SEG3 [1] phi from @begin to @29 [phi:@begin->@29]
b29_from_bbegin:
jmp b29
//SEG4 @29
b29:
//SEG5 [2] call main param-assignment [ ] ( )
//SEG6 [4] phi from @28 to main [phi:@28->main]
main_from_b28:
//SEG6 [4] phi from @29 to main [phi:@29->main]
main_from_b29:
jsr main
//SEG7 [3] phi from @28 to @end [phi:@28->@end]
bend_from_b28:
//SEG7 [3] phi from @29 to @end [phi:@29->@end]
bend_from_b29:
jmp bend
//SEG8 @end
bend:
@ -10737,7 +10817,7 @@ div16u: {
}
ASSEMBLER OPTIMIZATIONS
Removing instruction jmp b28
Removing instruction jmp b29
Removing instruction jmp bend
Removing instruction jmp b5
Removing instruction jmp b6
@ -10860,9 +10940,9 @@ Replacing label b3_from_b14 with b3
Replacing label b4_from_b18 with b4
Replacing label b4_from_b2 with b4
Removing instruction bbegin:
Removing instruction b28_from_bbegin:
Removing instruction main_from_b28:
Removing instruction bend_from_b28:
Removing instruction b29_from_bbegin:
Removing instruction main_from_b29:
Removing instruction bend_from_b29:
Removing instruction b5_from_main:
Removing instruction sin16s_gen_from_b5:
Removing instruction b6_from_b5:
@ -10905,7 +10985,7 @@ Removing instruction breturn:
Removing instruction b4_from_b2:
Removing instruction b4_from_b7:
Succesful ASM optimization Pass5RedundantLabelElimination
Removing instruction b28:
Removing instruction b29:
Removing instruction bend:
Removing instruction sin8s_gen_from_main:
Removing instruction b5:
@ -11011,7 +11091,7 @@ Removing unreachable instruction jmp b3
Succesful ASM optimization Pass5UnreachableCodeElimination
FINAL SYMBOL TABLE
(label) @28
(label) @29
(label) @begin
(label) @end
(word) PI2_u4f12
@ -11467,12 +11547,12 @@ Score: 28398
.label rem16u = 5
.label char_cursor = 5
//SEG2 @begin
//SEG3 [1] phi from @begin to @28 [phi:@begin->@28]
//SEG4 @28
//SEG3 [1] phi from @begin to @29 [phi:@begin->@29]
//SEG4 @29
//SEG5 [2] call main param-assignment [ ] ( )
//SEG6 [4] phi from @28 to main [phi:@28->main]
//SEG6 [4] phi from @29 to main [phi:@29->main]
jsr main
//SEG7 [3] phi from @28 to @end [phi:@28->@end]
//SEG7 [3] phi from @29 to @end [phi:@29->@end]
//SEG8 @end
//SEG9 main
main: {

View File

@ -1,4 +1,4 @@
(label) @28
(label) @29
(label) @begin
(label) @end
(word) PI2_u4f12

View File

@ -0,0 +1,489 @@
.pc = $801 "Basic"
:BasicUpstart(main)
.pc = $80d "Program"
.const PI2_u4f12 = $6488
.const PI_u4f12 = $3244
.const PI_HALF_u4f12 = $1922
.label SCREEN = $400
.label char_cursor = $b
.label line_cursor = 8
jsr main
main: {
.label tabsize = $14
jsr print_cls
jsr sin8u_table
rts
sintab: .fill $14, 0
}
sin8u_table: {
.const min = $a
.const max = $ff
.label amplitude = max-min
.const sum = min+max
.const mid = $ff & sum>>1
.label _17 = $b
.label step = $10
.label sintab = 4
.label x = 2
.label i = 6
jsr div16u
lda #<SCREEN
sta char_cursor
lda #>SCREEN
sta char_cursor+1
lda #<str
sta print_str.str
lda #>str
sta print_str.str+1
jsr print_str
lda step
sta print_word.w
lda step+1
sta print_word.w+1
jsr print_word
lda #<str1
sta print_str.str
lda #>str1
sta print_str.str+1
jsr print_str
lda #min
sta print_byte.b
jsr print_byte
lda #<str2
sta print_str.str
lda #>str2
sta print_str.str+1
jsr print_str
lda #max
sta print_byte.b
jsr print_byte
lda #<str3
sta print_str.str
lda #>str3
sta print_str.str+1
jsr print_str
lda #amplitude
sta print_byte.b
jsr print_byte
lda #<str4
sta print_str.str
lda #>str4
sta print_str.str+1
jsr print_str
lda #mid
sta print_byte.b
jsr print_byte
lda #<SCREEN
sta line_cursor
lda #>SCREEN
sta line_cursor+1
jsr print_ln
lda #<0
sta i
sta i+1
lda #<main.sintab
sta sintab
lda #>main.sintab
sta sintab+1
lda #<0
sta x
sta x+1
b1:
lda x
sta sin8s.x
lda x+1
sta sin8s.x+1
jsr sin8s
tay
jsr mul8su
lda _17+1
clc
adc #mid
tax
txa
ldy #0
sta (sintab),y
inc sintab
bne !+
inc sintab+1
!:
lda line_cursor
sta char_cursor
lda line_cursor+1
sta char_cursor+1
lda #<str5
sta print_str.str
lda #>str5
sta print_str.str+1
jsr print_str
jsr print_word
lda #<str6
sta print_str.str
lda #>str6
sta print_str.str+1
jsr print_str
stx print_byte.b
jsr print_byte
jsr print_ln
lda x
clc
adc step
sta x
lda x+1
adc step+1
sta x+1
inc i
bne !+
inc i+1
!:
lda i+1
cmp #>main.tabsize
bcc b1
bne !+
lda i
cmp #<main.tabsize
bcc b1
!:
rts
str: .text "step:@"
str1: .text " min:@"
str2: .text " max:@"
str3: .text " ampl:@"
str4: .text " mid:@"
str5: .text "x: @"
str6: .text " sin: @"
}
print_ln: {
b1:
lda line_cursor
clc
adc #$28
sta line_cursor
bcc !+
inc line_cursor+1
!:
lda line_cursor+1
cmp char_cursor+1
bcc b1
bne !+
lda line_cursor
cmp char_cursor
bcc b1
!:
rts
}
print_byte: {
.label b = $a
lda b
lsr
lsr
lsr
lsr
tay
lda hextab,y
jsr print_char
lda #$f
and b
tay
lda hextab,y
jsr print_char
rts
hextab: .text "0123456789abcdef"
}
print_char: {
ldy #0
sta (char_cursor),y
inc char_cursor
bne !+
inc char_cursor+1
!:
rts
}
print_str: {
.label str = $d
b1:
ldy #0
lda (str),y
cmp #'@'
bne b2
rts
b2:
ldy #0
lda (str),y
sta (char_cursor),y
inc char_cursor
bne !+
inc char_cursor+1
!:
inc str
bne !+
inc str+1
!:
jmp b1
}
print_word: {
.label w = 2
lda w+1
sta print_byte.b
jsr print_byte
lda w
sta print_byte.b
jsr print_byte
rts
}
mul8su: {
.label m = $b
.label return = $b
tya
tax
lda #sin8u_table.amplitude
jsr mul8u
cpy #0
bpl b1
lda m+1
sec
sbc #sin8u_table.amplitude
sta m+1
b1:
rts
}
mul8u: {
.label mb = $d
.label res = $b
.label return = $b
sta mb
lda #0
sta mb+1
sta res
sta res+1
b1:
cpx #0
bne b2
rts
b2:
txa
and #1
cmp #0
beq b4
lda res
clc
adc mb
sta res
lda res+1
adc mb+1
sta res+1
b4:
txa
lsr
tax
asl mb
rol mb+1
jmp b1
}
sin8s: {
.const DIV_6 = $2b
.label _6 = $b
.label x = $b
.label x1 = $12
.label x3 = $13
.label usinx = $14
.label isUpper = $a
lda x+1
cmp #>PI_u4f12
bcc b5
bne !+
lda x
cmp #<PI_u4f12
bcc b5
!:
lda x
sec
sbc #<PI_u4f12
sta x
lda x+1
sbc #>PI_u4f12
sta x+1
lda #1
sta isUpper
jmp b1
b5:
lda #0
sta isUpper
b1:
lda x+1
cmp #>PI_HALF_u4f12
bcc b2
bne !+
lda x
cmp #<PI_HALF_u4f12
bcc b2
!:
sec
lda #<PI_u4f12
sbc x
sta x
lda #>PI_u4f12
sbc x+1
sta x+1
b2:
asl _6
rol _6+1
asl _6
rol _6+1
asl _6
rol _6+1
lda _6+1
sta x1
tax
tay
lda #0
sta mulu8_sel.select
jsr mulu8_sel
tax
ldy x1
lda #1
sta mulu8_sel.select
jsr mulu8_sel
sta x3
tax
lda #1
sta mulu8_sel.select
ldy #DIV_6
jsr mulu8_sel
eor #$ff
sec
adc x1
sta usinx
ldx x3
ldy x1
lda #0
sta mulu8_sel.select
jsr mulu8_sel
tax
ldy x1
lda #0
sta mulu8_sel.select
jsr mulu8_sel
lsr
lsr
lsr
lsr
clc
adc usinx
tax
cpx #$80
bcc b3
dex
b3:
lda isUpper
beq b18
txa
eor #$ff
clc
adc #1
b4:
rts
b18:
txa
jmp b4
}
mulu8_sel: {
.label _0 = $b
.label _1 = $b
.label select = $f
tya
jsr mul8u
ldy select
beq !e+
!:
asl _1
rol _1+1
dey
bne !-
!e:
lda _1+1
rts
}
div16u: {
.label return = $10
jsr divr16u
rts
}
divr16u: {
.label rem = 2
.label dividend = 4
.label quotient = $10
.label return = $10
ldx #0
txa
sta quotient
sta quotient+1
lda #<PI2_u4f12
sta dividend
lda #>PI2_u4f12
sta dividend+1
txa
sta rem
sta rem+1
b1:
asl rem
rol rem+1
lda dividend+1
and #$80
cmp #0
beq b2
lda #1
ora rem
sta rem
b2:
asl dividend
rol dividend+1
asl quotient
rol quotient+1
lda rem+1
cmp #>main.tabsize
bcc b3
bne !+
lda rem
cmp #<main.tabsize
bcc b3
!:
inc quotient
bne !+
inc quotient+1
!:
lda rem
sec
sbc #<main.tabsize
sta rem
lda rem+1
sbc #>main.tabsize
sta rem+1
b3:
inx
cpx #$10
bne b1
rts
}
print_cls: {
.label sc = 2
lda #<SCREEN
sta sc
lda #>SCREEN
sta sc+1
b1:
lda #' '
ldy #0
sta (sc),y
inc sc
bne !+
inc sc+1
!:
lda sc+1
cmp #>SCREEN+$3e8
bne b1
lda sc
cmp #<SCREEN+$3e8
bne b1
rts
}

View File

@ -0,0 +1,376 @@
@begin: scope:[] from
[0] phi() [ ] ( )
to:@30
@30: scope:[] from @begin
[1] phi() [ ] ( )
[2] call main param-assignment [ ] ( )
to:@end
@end: scope:[] from @30
[3] phi() [ ] ( )
main: scope:[main] from @30
[4] phi() [ ] ( main:2 [ ] )
[5] call print_cls param-assignment [ ] ( main:2 [ ] )
to:main::@1
main::@1: scope:[main] from main
[6] phi() [ ] ( main:2 [ ] )
[7] call sin8u_table param-assignment [ ] ( main:2 [ ] )
to:main::@return
main::@return: scope:[main] from main::@1
[8] return [ ] ( main:2 [ ] )
to:@return
sin8u_table: scope:[sin8u_table] from main::@1
[9] phi() [ ] ( main:2::sin8u_table:7 [ ] )
[10] call div16u param-assignment [ div16u::return#0 ] ( main:2::sin8u_table:7 [ div16u::return#0 ] )
[11] (word) div16u::return#2 ← (word) div16u::return#0 [ div16u::return#2 ] ( main:2::sin8u_table:7 [ div16u::return#2 ] )
to:sin8u_table::@3
sin8u_table::@3: scope:[sin8u_table] from sin8u_table
[12] (word) sin8u_table::step#0 ← (word) div16u::return#2 [ sin8u_table::step#0 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 ] )
[13] call print_str param-assignment [ sin8u_table::step#0 char_cursor#2 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 char_cursor#2 ] )
to:sin8u_table::@4
sin8u_table::@4: scope:[sin8u_table] from sin8u_table::@3
[14] (word) print_word::w#0 ← (word) sin8u_table::step#0 [ sin8u_table::step#0 print_word::w#0 char_cursor#2 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 print_word::w#0 char_cursor#2 ] )
[15] call print_word param-assignment [ sin8u_table::step#0 char_cursor#11 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 char_cursor#11 ] )
to:sin8u_table::@5
sin8u_table::@5: scope:[sin8u_table] from sin8u_table::@4
[16] phi() [ sin8u_table::step#0 char_cursor#11 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 char_cursor#11 ] )
[17] call print_str param-assignment [ sin8u_table::step#0 char_cursor#2 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 char_cursor#2 ] )
to:sin8u_table::@6
sin8u_table::@6: scope:[sin8u_table] from sin8u_table::@5
[18] phi() [ sin8u_table::step#0 char_cursor#2 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 char_cursor#2 ] )
[19] call print_byte param-assignment [ sin8u_table::step#0 char_cursor#11 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 char_cursor#11 ] )
to:sin8u_table::@7
sin8u_table::@7: scope:[sin8u_table] from sin8u_table::@6
[20] phi() [ sin8u_table::step#0 char_cursor#11 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 char_cursor#11 ] )
[21] call print_str param-assignment [ sin8u_table::step#0 char_cursor#2 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 char_cursor#2 ] )
to:sin8u_table::@8
sin8u_table::@8: scope:[sin8u_table] from sin8u_table::@7
[22] phi() [ sin8u_table::step#0 char_cursor#2 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 char_cursor#2 ] )
[23] call print_byte param-assignment [ sin8u_table::step#0 char_cursor#11 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 char_cursor#11 ] )
to:sin8u_table::@9
sin8u_table::@9: scope:[sin8u_table] from sin8u_table::@8
[24] phi() [ sin8u_table::step#0 char_cursor#11 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 char_cursor#11 ] )
[25] call print_str param-assignment [ sin8u_table::step#0 char_cursor#2 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 char_cursor#2 ] )
to:sin8u_table::@10
sin8u_table::@10: scope:[sin8u_table] from sin8u_table::@9
[26] phi() [ sin8u_table::step#0 char_cursor#2 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 char_cursor#2 ] )
[27] call print_byte param-assignment [ sin8u_table::step#0 char_cursor#11 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 char_cursor#11 ] )
to:sin8u_table::@11
sin8u_table::@11: scope:[sin8u_table] from sin8u_table::@10
[28] phi() [ sin8u_table::step#0 char_cursor#11 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 char_cursor#11 ] )
[29] call print_str param-assignment [ sin8u_table::step#0 char_cursor#2 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 char_cursor#2 ] )
to:sin8u_table::@12
sin8u_table::@12: scope:[sin8u_table] from sin8u_table::@11
[30] phi() [ sin8u_table::step#0 char_cursor#2 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 char_cursor#2 ] )
[31] call print_byte param-assignment [ sin8u_table::step#0 char_cursor#11 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 char_cursor#11 ] )
to:sin8u_table::@13
sin8u_table::@13: scope:[sin8u_table] from sin8u_table::@12
[32] phi() [ sin8u_table::step#0 char_cursor#11 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 char_cursor#11 ] )
[33] call print_ln param-assignment [ sin8u_table::step#0 line_cursor#1 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 line_cursor#1 ] )
to:sin8u_table::@1
sin8u_table::@1: scope:[sin8u_table] from sin8u_table::@13 sin8u_table::@21
[34] (word) sin8u_table::i#2 ← phi( sin8u_table::@13/(byte/signed byte/word/signed word/dword/signed dword) 0 sin8u_table::@21/(word) sin8u_table::i#1 ) [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 ] )
[34] (byte*) sin8u_table::sintab#2 ← phi( sin8u_table::@13/(const byte[20]) main::sintab#0 sin8u_table::@21/(byte*) sin8u_table::sintab#1 ) [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 ] )
[34] (word) sin8u_table::x#2 ← phi( sin8u_table::@13/(byte/signed byte/word/signed word/dword/signed dword) 0 sin8u_table::@21/(word) sin8u_table::x#1 ) [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 ] )
[35] (word) sin8s::x#2 ← (word) sin8u_table::x#2 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 sin8s::x#2 line_cursor#1 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 sin8s::x#2 line_cursor#1 ] )
[36] call sin8s param-assignment [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 sin8s::return#0 line_cursor#1 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 sin8s::return#0 line_cursor#1 ] )
[37] (signed byte) sin8s::return#2 ← (signed byte) sin8s::return#0 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 sin8s::return#2 line_cursor#1 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 sin8s::return#2 line_cursor#1 ] )
to:sin8u_table::@15
sin8u_table::@15: scope:[sin8u_table] from sin8u_table::@1
[38] (signed byte) mul8su::a#0 ← (signed byte) sin8s::return#2 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 mul8su::a#0 line_cursor#1 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 mul8su::a#0 line_cursor#1 ] )
[39] call mul8su param-assignment [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 mul8su::m#2 line_cursor#1 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 mul8su::m#2 line_cursor#1 ] )
[40] (signed word) mul8su::return#2 ← (signed word)(word) mul8su::m#2 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 mul8su::return#2 line_cursor#1 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 mul8su::return#2 line_cursor#1 ] )
to:sin8u_table::@16
sin8u_table::@16: scope:[sin8u_table] from sin8u_table::@15
[41] (signed word~) sin8u_table::$17 ← (signed word) mul8su::return#2 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 sin8u_table::$17 line_cursor#1 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 sin8u_table::$17 line_cursor#1 ] )
[42] (byte~) sin8u_table::$18 ← > (signed word~) sin8u_table::$17 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 sin8u_table::$18 line_cursor#1 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 sin8u_table::$18 line_cursor#1 ] )
[43] (byte) sin8u_table::sinval#0 ← (const byte) sin8u_table::mid#0 + (byte~) sin8u_table::$18 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 sin8u_table::sinval#0 line_cursor#1 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 sin8u_table::sinval#0 line_cursor#1 ] )
[44] *((byte*) sin8u_table::sintab#2) ← (byte) sin8u_table::sinval#0 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 sin8u_table::sinval#0 line_cursor#1 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 sin8u_table::sinval#0 line_cursor#1 ] )
[45] (byte*) sin8u_table::sintab#1 ← ++ (byte*) sin8u_table::sintab#2 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 ] )
[46] (byte*~) char_cursor#92 ← (byte*) line_cursor#1 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 char_cursor#92 line_cursor#1 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 char_cursor#92 line_cursor#1 ] )
[47] call print_str param-assignment [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 char_cursor#2 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 char_cursor#2 ] )
to:sin8u_table::@17
sin8u_table::@17: scope:[sin8u_table] from sin8u_table::@16
[48] (word) print_word::w#1 ← (word) sin8u_table::x#2 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 print_word::w#1 char_cursor#2 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 print_word::w#1 char_cursor#2 ] )
[49] call print_word param-assignment [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 char_cursor#11 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 char_cursor#11 ] )
to:sin8u_table::@18
sin8u_table::@18: scope:[sin8u_table] from sin8u_table::@17
[50] phi() [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 char_cursor#11 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 char_cursor#11 ] )
[51] call print_str param-assignment [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 char_cursor#2 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 char_cursor#2 ] )
to:sin8u_table::@19
sin8u_table::@19: scope:[sin8u_table] from sin8u_table::@18
[52] (byte) print_byte::b#6 ← (byte) sin8u_table::sinval#0 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 line_cursor#1 print_byte::b#6 char_cursor#2 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 line_cursor#1 print_byte::b#6 char_cursor#2 ] )
[53] call print_byte param-assignment [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 line_cursor#1 char_cursor#11 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 line_cursor#1 char_cursor#11 ] )
to:sin8u_table::@20
sin8u_table::@20: scope:[sin8u_table] from sin8u_table::@19
[54] phi() [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 line_cursor#1 char_cursor#11 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 line_cursor#1 char_cursor#11 ] )
[55] call print_ln param-assignment [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 line_cursor#1 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 line_cursor#1 ] )
to:sin8u_table::@21
sin8u_table::@21: scope:[sin8u_table] from sin8u_table::@20
[56] (word) sin8u_table::x#1 ← (word) sin8u_table::x#2 + (word) sin8u_table::step#0 [ sin8u_table::step#0 sin8u_table::i#2 sin8u_table::x#1 sin8u_table::sintab#1 line_cursor#1 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::i#2 sin8u_table::x#1 sin8u_table::sintab#1 line_cursor#1 ] )
[57] (word) sin8u_table::i#1 ← ++ (word) sin8u_table::i#2 [ sin8u_table::step#0 sin8u_table::x#1 sin8u_table::sintab#1 sin8u_table::i#1 line_cursor#1 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#1 sin8u_table::sintab#1 sin8u_table::i#1 line_cursor#1 ] )
[58] if((word) sin8u_table::i#1<(const word) main::tabsize#0) goto sin8u_table::@1 [ sin8u_table::step#0 sin8u_table::x#1 sin8u_table::sintab#1 sin8u_table::i#1 line_cursor#1 ] ( main:2::sin8u_table:7 [ sin8u_table::step#0 sin8u_table::x#1 sin8u_table::sintab#1 sin8u_table::i#1 line_cursor#1 ] )
to:sin8u_table::@return
sin8u_table::@return: scope:[sin8u_table] from sin8u_table::@21
[59] return [ ] ( main:2::sin8u_table:7 [ ] )
to:@return
print_ln: scope:[print_ln] from sin8u_table::@13 sin8u_table::@20
[60] (byte*) line_cursor#23 ← phi( sin8u_table::@13/(const byte*) SCREEN#0 sin8u_table::@20/(byte*) line_cursor#1 ) [ line_cursor#23 char_cursor#11 ] ( main:2::sin8u_table:7::print_ln:33 [ sin8u_table::step#0 line_cursor#23 char_cursor#11 ] main:2::sin8u_table:7::print_ln:55 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 line_cursor#23 char_cursor#11 ] )
to:print_ln::@1
print_ln::@1: scope:[print_ln] from print_ln print_ln::@1
[61] (byte*) line_cursor#12 ← phi( print_ln/(byte*) line_cursor#23 print_ln::@1/(byte*) line_cursor#1 ) [ line_cursor#12 char_cursor#11 ] ( main:2::sin8u_table:7::print_ln:33 [ sin8u_table::step#0 line_cursor#12 char_cursor#11 ] main:2::sin8u_table:7::print_ln:55 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 line_cursor#12 char_cursor#11 ] )
[62] (byte*) line_cursor#1 ← (byte*) line_cursor#12 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ line_cursor#1 char_cursor#11 ] ( main:2::sin8u_table:7::print_ln:33 [ sin8u_table::step#0 line_cursor#1 char_cursor#11 ] main:2::sin8u_table:7::print_ln:55 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 line_cursor#1 char_cursor#11 ] )
[63] if((byte*) line_cursor#1<(byte*) char_cursor#11) goto print_ln::@1 [ line_cursor#1 char_cursor#11 ] ( main:2::sin8u_table:7::print_ln:33 [ sin8u_table::step#0 line_cursor#1 char_cursor#11 ] main:2::sin8u_table:7::print_ln:55 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 line_cursor#1 char_cursor#11 ] )
to:print_ln::@return
print_ln::@return: scope:[print_ln] from print_ln::@1
[64] return [ line_cursor#1 ] ( main:2::sin8u_table:7::print_ln:33 [ sin8u_table::step#0 line_cursor#1 ] main:2::sin8u_table:7::print_ln:55 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 line_cursor#1 ] )
to:@return
print_byte: scope:[print_byte] from print_word print_word::@1 sin8u_table::@10 sin8u_table::@12 sin8u_table::@19 sin8u_table::@6 sin8u_table::@8
[65] (byte*) char_cursor#73 ← phi( print_word/(byte*) char_cursor#2 print_word::@1/(byte*) char_cursor#11 sin8u_table::@10/(byte*) char_cursor#2 sin8u_table::@12/(byte*) char_cursor#2 sin8u_table::@19/(byte*) char_cursor#2 sin8u_table::@6/(byte*) char_cursor#2 sin8u_table::@8/(byte*) char_cursor#2 ) [ print_byte::b#7 char_cursor#73 ] ( main:2::sin8u_table:7::print_byte:19 [ sin8u_table::step#0 print_byte::b#7 char_cursor#73 ] main:2::sin8u_table:7::print_byte:23 [ sin8u_table::step#0 print_byte::b#7 char_cursor#73 ] main:2::sin8u_table:7::print_byte:27 [ sin8u_table::step#0 print_byte::b#7 char_cursor#73 ] main:2::sin8u_table:7::print_byte:31 [ sin8u_table::step#0 print_byte::b#7 char_cursor#73 ] main:2::sin8u_table:7::print_byte:53 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 line_cursor#1 print_byte::b#7 char_cursor#73 ] main:2::sin8u_table:7::print_word:15::print_byte:86 [ sin8u_table::step#0 print_word::w#2 print_byte::b#7 char_cursor#73 ] main:2::sin8u_table:7::print_word:49::print_byte:86 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 print_word::w#2 print_byte::b#7 char_cursor#73 ] main:2::sin8u_table:7::print_word:15::print_byte:88 [ sin8u_table::step#0 print_byte::b#7 char_cursor#73 ] main:2::sin8u_table:7::print_word:49::print_byte:88 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 print_byte::b#7 char_cursor#73 ] )
[65] (byte) print_byte::b#7 ← phi( print_word/(byte) print_byte::b#0 print_word::@1/(byte) print_byte::b#1 sin8u_table::@10/(const byte) sin8u_table::amplitude#0 sin8u_table::@12/(const byte) sin8u_table::mid#0 sin8u_table::@19/(byte) print_byte::b#6 sin8u_table::@6/(const byte) sin8u_table::min#0 sin8u_table::@8/(const byte) sin8u_table::max#0 ) [ print_byte::b#7 char_cursor#73 ] ( main:2::sin8u_table:7::print_byte:19 [ sin8u_table::step#0 print_byte::b#7 char_cursor#73 ] main:2::sin8u_table:7::print_byte:23 [ sin8u_table::step#0 print_byte::b#7 char_cursor#73 ] main:2::sin8u_table:7::print_byte:27 [ sin8u_table::step#0 print_byte::b#7 char_cursor#73 ] main:2::sin8u_table:7::print_byte:31 [ sin8u_table::step#0 print_byte::b#7 char_cursor#73 ] main:2::sin8u_table:7::print_byte:53 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 line_cursor#1 print_byte::b#7 char_cursor#73 ] main:2::sin8u_table:7::print_word:15::print_byte:86 [ sin8u_table::step#0 print_word::w#2 print_byte::b#7 char_cursor#73 ] main:2::sin8u_table:7::print_word:49::print_byte:86 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 print_word::w#2 print_byte::b#7 char_cursor#73 ] main:2::sin8u_table:7::print_word:15::print_byte:88 [ sin8u_table::step#0 print_byte::b#7 char_cursor#73 ] main:2::sin8u_table:7::print_word:49::print_byte:88 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 print_byte::b#7 char_cursor#73 ] )
[66] (byte~) print_byte::$0 ← (byte) print_byte::b#7 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_byte::b#7 char_cursor#73 print_byte::$0 ] ( main:2::sin8u_table:7::print_byte:19 [ sin8u_table::step#0 print_byte::b#7 char_cursor#73 print_byte::$0 ] main:2::sin8u_table:7::print_byte:23 [ sin8u_table::step#0 print_byte::b#7 char_cursor#73 print_byte::$0 ] main:2::sin8u_table:7::print_byte:27 [ sin8u_table::step#0 print_byte::b#7 char_cursor#73 print_byte::$0 ] main:2::sin8u_table:7::print_byte:31 [ sin8u_table::step#0 print_byte::b#7 char_cursor#73 print_byte::$0 ] main:2::sin8u_table:7::print_byte:53 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 line_cursor#1 print_byte::b#7 char_cursor#73 print_byte::$0 ] main:2::sin8u_table:7::print_word:15::print_byte:86 [ sin8u_table::step#0 print_word::w#2 print_byte::b#7 char_cursor#73 print_byte::$0 ] main:2::sin8u_table:7::print_word:49::print_byte:86 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 print_word::w#2 print_byte::b#7 char_cursor#73 print_byte::$0 ] main:2::sin8u_table:7::print_word:15::print_byte:88 [ sin8u_table::step#0 print_byte::b#7 char_cursor#73 print_byte::$0 ] main:2::sin8u_table:7::print_word:49::print_byte:88 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 print_byte::b#7 char_cursor#73 print_byte::$0 ] )
[67] (byte) print_char::ch#0 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_byte::b#7 char_cursor#73 print_char::ch#0 ] ( main:2::sin8u_table:7::print_byte:19 [ sin8u_table::step#0 print_byte::b#7 char_cursor#73 print_char::ch#0 ] main:2::sin8u_table:7::print_byte:23 [ sin8u_table::step#0 print_byte::b#7 char_cursor#73 print_char::ch#0 ] main:2::sin8u_table:7::print_byte:27 [ sin8u_table::step#0 print_byte::b#7 char_cursor#73 print_char::ch#0 ] main:2::sin8u_table:7::print_byte:31 [ sin8u_table::step#0 print_byte::b#7 char_cursor#73 print_char::ch#0 ] main:2::sin8u_table:7::print_byte:53 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 line_cursor#1 print_byte::b#7 char_cursor#73 print_char::ch#0 ] main:2::sin8u_table:7::print_word:15::print_byte:86 [ sin8u_table::step#0 print_word::w#2 print_byte::b#7 char_cursor#73 print_char::ch#0 ] main:2::sin8u_table:7::print_word:49::print_byte:86 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 print_word::w#2 print_byte::b#7 char_cursor#73 print_char::ch#0 ] main:2::sin8u_table:7::print_word:15::print_byte:88 [ sin8u_table::step#0 print_byte::b#7 char_cursor#73 print_char::ch#0 ] main:2::sin8u_table:7::print_word:49::print_byte:88 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 print_byte::b#7 char_cursor#73 print_char::ch#0 ] )
[68] call print_char param-assignment [ char_cursor#11 print_byte::b#7 ] ( main:2::sin8u_table:7::print_byte:19 [ sin8u_table::step#0 char_cursor#11 print_byte::b#7 ] main:2::sin8u_table:7::print_byte:23 [ sin8u_table::step#0 char_cursor#11 print_byte::b#7 ] main:2::sin8u_table:7::print_byte:27 [ sin8u_table::step#0 char_cursor#11 print_byte::b#7 ] main:2::sin8u_table:7::print_byte:31 [ sin8u_table::step#0 char_cursor#11 print_byte::b#7 ] main:2::sin8u_table:7::print_byte:53 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 line_cursor#1 char_cursor#11 print_byte::b#7 ] main:2::sin8u_table:7::print_word:15::print_byte:86 [ sin8u_table::step#0 print_word::w#2 char_cursor#11 print_byte::b#7 ] main:2::sin8u_table:7::print_word:49::print_byte:86 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 print_word::w#2 char_cursor#11 print_byte::b#7 ] main:2::sin8u_table:7::print_word:15::print_byte:88 [ sin8u_table::step#0 char_cursor#11 print_byte::b#7 ] main:2::sin8u_table:7::print_word:49::print_byte:88 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 char_cursor#11 print_byte::b#7 ] )
to:print_byte::@1
print_byte::@1: scope:[print_byte] from print_byte
[69] (byte~) print_byte::$2 ← (byte) print_byte::b#7 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ char_cursor#11 print_byte::$2 ] ( main:2::sin8u_table:7::print_byte:19 [ sin8u_table::step#0 char_cursor#11 print_byte::$2 ] main:2::sin8u_table:7::print_byte:23 [ sin8u_table::step#0 char_cursor#11 print_byte::$2 ] main:2::sin8u_table:7::print_byte:27 [ sin8u_table::step#0 char_cursor#11 print_byte::$2 ] main:2::sin8u_table:7::print_byte:31 [ sin8u_table::step#0 char_cursor#11 print_byte::$2 ] main:2::sin8u_table:7::print_byte:53 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 line_cursor#1 char_cursor#11 print_byte::$2 ] main:2::sin8u_table:7::print_word:15::print_byte:86 [ sin8u_table::step#0 print_word::w#2 char_cursor#11 print_byte::$2 ] main:2::sin8u_table:7::print_word:49::print_byte:86 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 print_word::w#2 char_cursor#11 print_byte::$2 ] main:2::sin8u_table:7::print_word:15::print_byte:88 [ sin8u_table::step#0 char_cursor#11 print_byte::$2 ] main:2::sin8u_table:7::print_word:49::print_byte:88 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 char_cursor#11 print_byte::$2 ] )
[70] (byte) print_char::ch#1 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ char_cursor#11 print_char::ch#1 ] ( main:2::sin8u_table:7::print_byte:19 [ sin8u_table::step#0 char_cursor#11 print_char::ch#1 ] main:2::sin8u_table:7::print_byte:23 [ sin8u_table::step#0 char_cursor#11 print_char::ch#1 ] main:2::sin8u_table:7::print_byte:27 [ sin8u_table::step#0 char_cursor#11 print_char::ch#1 ] main:2::sin8u_table:7::print_byte:31 [ sin8u_table::step#0 char_cursor#11 print_char::ch#1 ] main:2::sin8u_table:7::print_byte:53 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 line_cursor#1 char_cursor#11 print_char::ch#1 ] main:2::sin8u_table:7::print_word:15::print_byte:86 [ sin8u_table::step#0 print_word::w#2 char_cursor#11 print_char::ch#1 ] main:2::sin8u_table:7::print_word:49::print_byte:86 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 print_word::w#2 char_cursor#11 print_char::ch#1 ] main:2::sin8u_table:7::print_word:15::print_byte:88 [ sin8u_table::step#0 char_cursor#11 print_char::ch#1 ] main:2::sin8u_table:7::print_word:49::print_byte:88 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 char_cursor#11 print_char::ch#1 ] )
[71] call print_char param-assignment [ char_cursor#11 ] ( main:2::sin8u_table:7::print_byte:19 [ sin8u_table::step#0 char_cursor#11 ] main:2::sin8u_table:7::print_byte:23 [ sin8u_table::step#0 char_cursor#11 ] main:2::sin8u_table:7::print_byte:27 [ sin8u_table::step#0 char_cursor#11 ] main:2::sin8u_table:7::print_byte:31 [ sin8u_table::step#0 char_cursor#11 ] main:2::sin8u_table:7::print_byte:53 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 line_cursor#1 char_cursor#11 ] main:2::sin8u_table:7::print_word:15::print_byte:86 [ sin8u_table::step#0 print_word::w#2 char_cursor#11 ] main:2::sin8u_table:7::print_word:49::print_byte:86 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 print_word::w#2 char_cursor#11 ] main:2::sin8u_table:7::print_word:15::print_byte:88 [ sin8u_table::step#0 char_cursor#11 ] main:2::sin8u_table:7::print_word:49::print_byte:88 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 char_cursor#11 ] )
to:print_byte::@return
print_byte::@return: scope:[print_byte] from print_byte::@1
[72] return [ char_cursor#11 ] ( main:2::sin8u_table:7::print_byte:19 [ sin8u_table::step#0 char_cursor#11 ] main:2::sin8u_table:7::print_byte:23 [ sin8u_table::step#0 char_cursor#11 ] main:2::sin8u_table:7::print_byte:27 [ sin8u_table::step#0 char_cursor#11 ] main:2::sin8u_table:7::print_byte:31 [ sin8u_table::step#0 char_cursor#11 ] main:2::sin8u_table:7::print_byte:53 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 line_cursor#1 char_cursor#11 ] main:2::sin8u_table:7::print_word:15::print_byte:86 [ sin8u_table::step#0 print_word::w#2 char_cursor#11 ] main:2::sin8u_table:7::print_word:49::print_byte:86 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 print_word::w#2 char_cursor#11 ] main:2::sin8u_table:7::print_word:15::print_byte:88 [ sin8u_table::step#0 char_cursor#11 ] main:2::sin8u_table:7::print_word:49::print_byte:88 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 char_cursor#11 ] )
to:@return
print_char: scope:[print_char] from print_byte print_byte::@1
[73] (byte*) char_cursor#46 ← phi( print_byte/(byte*) char_cursor#73 print_byte::@1/(byte*) char_cursor#11 ) [ print_char::ch#2 char_cursor#46 ] ( main:2::sin8u_table:7::print_byte:19::print_char:68 [ sin8u_table::step#0 print_byte::b#7 print_char::ch#2 char_cursor#46 ] main:2::sin8u_table:7::print_byte:23::print_char:68 [ sin8u_table::step#0 print_byte::b#7 print_char::ch#2 char_cursor#46 ] main:2::sin8u_table:7::print_byte:27::print_char:68 [ sin8u_table::step#0 print_byte::b#7 print_char::ch#2 char_cursor#46 ] main:2::sin8u_table:7::print_byte:31::print_char:68 [ sin8u_table::step#0 print_byte::b#7 print_char::ch#2 char_cursor#46 ] main:2::sin8u_table:7::print_byte:53::print_char:68 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 line_cursor#1 print_byte::b#7 print_char::ch#2 char_cursor#46 ] main:2::sin8u_table:7::print_word:15::print_byte:86::print_char:68 [ sin8u_table::step#0 print_word::w#2 print_byte::b#7 print_char::ch#2 char_cursor#46 ] main:2::sin8u_table:7::print_word:49::print_byte:86::print_char:68 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 print_word::w#2 print_byte::b#7 print_char::ch#2 char_cursor#46 ] main:2::sin8u_table:7::print_word:15::print_byte:88::print_char:68 [ sin8u_table::step#0 print_byte::b#7 print_char::ch#2 char_cursor#46 ] main:2::sin8u_table:7::print_word:49::print_byte:88::print_char:68 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 print_byte::b#7 print_char::ch#2 char_cursor#46 ] main:2::sin8u_table:7::print_byte:19::print_char:71 [ sin8u_table::step#0 print_char::ch#2 char_cursor#46 ] main:2::sin8u_table:7::print_byte:23::print_char:71 [ sin8u_table::step#0 print_char::ch#2 char_cursor#46 ] main:2::sin8u_table:7::print_byte:27::print_char:71 [ sin8u_table::step#0 print_char::ch#2 char_cursor#46 ] main:2::sin8u_table:7::print_byte:31::print_char:71 [ sin8u_table::step#0 print_char::ch#2 char_cursor#46 ] main:2::sin8u_table:7::print_byte:53::print_char:71 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 line_cursor#1 print_char::ch#2 char_cursor#46 ] main:2::sin8u_table:7::print_word:15::print_byte:86::print_char:71 [ sin8u_table::step#0 print_word::w#2 print_char::ch#2 char_cursor#46 ] main:2::sin8u_table:7::print_word:49::print_byte:86::print_char:71 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 print_word::w#2 print_char::ch#2 char_cursor#46 ] main:2::sin8u_table:7::print_word:15::print_byte:88::print_char:71 [ sin8u_table::step#0 print_char::ch#2 char_cursor#46 ] main:2::sin8u_table:7::print_word:49::print_byte:88::print_char:71 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 print_char::ch#2 char_cursor#46 ] )
[73] (byte) print_char::ch#2 ← phi( print_byte/(byte) print_char::ch#0 print_byte::@1/(byte) print_char::ch#1 ) [ print_char::ch#2 char_cursor#46 ] ( main:2::sin8u_table:7::print_byte:19::print_char:68 [ sin8u_table::step#0 print_byte::b#7 print_char::ch#2 char_cursor#46 ] main:2::sin8u_table:7::print_byte:23::print_char:68 [ sin8u_table::step#0 print_byte::b#7 print_char::ch#2 char_cursor#46 ] main:2::sin8u_table:7::print_byte:27::print_char:68 [ sin8u_table::step#0 print_byte::b#7 print_char::ch#2 char_cursor#46 ] main:2::sin8u_table:7::print_byte:31::print_char:68 [ sin8u_table::step#0 print_byte::b#7 print_char::ch#2 char_cursor#46 ] main:2::sin8u_table:7::print_byte:53::print_char:68 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 line_cursor#1 print_byte::b#7 print_char::ch#2 char_cursor#46 ] main:2::sin8u_table:7::print_word:15::print_byte:86::print_char:68 [ sin8u_table::step#0 print_word::w#2 print_byte::b#7 print_char::ch#2 char_cursor#46 ] main:2::sin8u_table:7::print_word:49::print_byte:86::print_char:68 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 print_word::w#2 print_byte::b#7 print_char::ch#2 char_cursor#46 ] main:2::sin8u_table:7::print_word:15::print_byte:88::print_char:68 [ sin8u_table::step#0 print_byte::b#7 print_char::ch#2 char_cursor#46 ] main:2::sin8u_table:7::print_word:49::print_byte:88::print_char:68 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 print_byte::b#7 print_char::ch#2 char_cursor#46 ] main:2::sin8u_table:7::print_byte:19::print_char:71 [ sin8u_table::step#0 print_char::ch#2 char_cursor#46 ] main:2::sin8u_table:7::print_byte:23::print_char:71 [ sin8u_table::step#0 print_char::ch#2 char_cursor#46 ] main:2::sin8u_table:7::print_byte:27::print_char:71 [ sin8u_table::step#0 print_char::ch#2 char_cursor#46 ] main:2::sin8u_table:7::print_byte:31::print_char:71 [ sin8u_table::step#0 print_char::ch#2 char_cursor#46 ] main:2::sin8u_table:7::print_byte:53::print_char:71 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 line_cursor#1 print_char::ch#2 char_cursor#46 ] main:2::sin8u_table:7::print_word:15::print_byte:86::print_char:71 [ sin8u_table::step#0 print_word::w#2 print_char::ch#2 char_cursor#46 ] main:2::sin8u_table:7::print_word:49::print_byte:86::print_char:71 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 print_word::w#2 print_char::ch#2 char_cursor#46 ] main:2::sin8u_table:7::print_word:15::print_byte:88::print_char:71 [ sin8u_table::step#0 print_char::ch#2 char_cursor#46 ] main:2::sin8u_table:7::print_word:49::print_byte:88::print_char:71 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 print_char::ch#2 char_cursor#46 ] )
[74] *((byte*) char_cursor#46) ← (byte) print_char::ch#2 [ char_cursor#46 ] ( main:2::sin8u_table:7::print_byte:19::print_char:68 [ sin8u_table::step#0 print_byte::b#7 char_cursor#46 ] main:2::sin8u_table:7::print_byte:23::print_char:68 [ sin8u_table::step#0 print_byte::b#7 char_cursor#46 ] main:2::sin8u_table:7::print_byte:27::print_char:68 [ sin8u_table::step#0 print_byte::b#7 char_cursor#46 ] main:2::sin8u_table:7::print_byte:31::print_char:68 [ sin8u_table::step#0 print_byte::b#7 char_cursor#46 ] main:2::sin8u_table:7::print_byte:53::print_char:68 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 line_cursor#1 print_byte::b#7 char_cursor#46 ] main:2::sin8u_table:7::print_word:15::print_byte:86::print_char:68 [ sin8u_table::step#0 print_word::w#2 print_byte::b#7 char_cursor#46 ] main:2::sin8u_table:7::print_word:49::print_byte:86::print_char:68 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 print_word::w#2 print_byte::b#7 char_cursor#46 ] main:2::sin8u_table:7::print_word:15::print_byte:88::print_char:68 [ sin8u_table::step#0 print_byte::b#7 char_cursor#46 ] main:2::sin8u_table:7::print_word:49::print_byte:88::print_char:68 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 print_byte::b#7 char_cursor#46 ] main:2::sin8u_table:7::print_byte:19::print_char:71 [ sin8u_table::step#0 char_cursor#46 ] main:2::sin8u_table:7::print_byte:23::print_char:71 [ sin8u_table::step#0 char_cursor#46 ] main:2::sin8u_table:7::print_byte:27::print_char:71 [ sin8u_table::step#0 char_cursor#46 ] main:2::sin8u_table:7::print_byte:31::print_char:71 [ sin8u_table::step#0 char_cursor#46 ] main:2::sin8u_table:7::print_byte:53::print_char:71 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 line_cursor#1 char_cursor#46 ] main:2::sin8u_table:7::print_word:15::print_byte:86::print_char:71 [ sin8u_table::step#0 print_word::w#2 char_cursor#46 ] main:2::sin8u_table:7::print_word:49::print_byte:86::print_char:71 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 print_word::w#2 char_cursor#46 ] main:2::sin8u_table:7::print_word:15::print_byte:88::print_char:71 [ sin8u_table::step#0 char_cursor#46 ] main:2::sin8u_table:7::print_word:49::print_byte:88::print_char:71 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 char_cursor#46 ] )
[75] (byte*) char_cursor#11 ← ++ (byte*) char_cursor#46 [ char_cursor#11 ] ( main:2::sin8u_table:7::print_byte:19::print_char:68 [ sin8u_table::step#0 print_byte::b#7 char_cursor#11 ] main:2::sin8u_table:7::print_byte:23::print_char:68 [ sin8u_table::step#0 print_byte::b#7 char_cursor#11 ] main:2::sin8u_table:7::print_byte:27::print_char:68 [ sin8u_table::step#0 print_byte::b#7 char_cursor#11 ] main:2::sin8u_table:7::print_byte:31::print_char:68 [ sin8u_table::step#0 print_byte::b#7 char_cursor#11 ] main:2::sin8u_table:7::print_byte:53::print_char:68 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 line_cursor#1 print_byte::b#7 char_cursor#11 ] main:2::sin8u_table:7::print_word:15::print_byte:86::print_char:68 [ sin8u_table::step#0 print_word::w#2 print_byte::b#7 char_cursor#11 ] main:2::sin8u_table:7::print_word:49::print_byte:86::print_char:68 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 print_word::w#2 print_byte::b#7 char_cursor#11 ] main:2::sin8u_table:7::print_word:15::print_byte:88::print_char:68 [ sin8u_table::step#0 print_byte::b#7 char_cursor#11 ] main:2::sin8u_table:7::print_word:49::print_byte:88::print_char:68 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 print_byte::b#7 char_cursor#11 ] main:2::sin8u_table:7::print_byte:19::print_char:71 [ sin8u_table::step#0 char_cursor#11 ] main:2::sin8u_table:7::print_byte:23::print_char:71 [ sin8u_table::step#0 char_cursor#11 ] main:2::sin8u_table:7::print_byte:27::print_char:71 [ sin8u_table::step#0 char_cursor#11 ] main:2::sin8u_table:7::print_byte:31::print_char:71 [ sin8u_table::step#0 char_cursor#11 ] main:2::sin8u_table:7::print_byte:53::print_char:71 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 line_cursor#1 char_cursor#11 ] main:2::sin8u_table:7::print_word:15::print_byte:86::print_char:71 [ sin8u_table::step#0 print_word::w#2 char_cursor#11 ] main:2::sin8u_table:7::print_word:49::print_byte:86::print_char:71 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 print_word::w#2 char_cursor#11 ] main:2::sin8u_table:7::print_word:15::print_byte:88::print_char:71 [ sin8u_table::step#0 char_cursor#11 ] main:2::sin8u_table:7::print_word:49::print_byte:88::print_char:71 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 char_cursor#11 ] )
to:print_char::@return
print_char::@return: scope:[print_char] from print_char
[76] return [ char_cursor#11 ] ( main:2::sin8u_table:7::print_byte:19::print_char:68 [ sin8u_table::step#0 print_byte::b#7 char_cursor#11 ] main:2::sin8u_table:7::print_byte:23::print_char:68 [ sin8u_table::step#0 print_byte::b#7 char_cursor#11 ] main:2::sin8u_table:7::print_byte:27::print_char:68 [ sin8u_table::step#0 print_byte::b#7 char_cursor#11 ] main:2::sin8u_table:7::print_byte:31::print_char:68 [ sin8u_table::step#0 print_byte::b#7 char_cursor#11 ] main:2::sin8u_table:7::print_byte:53::print_char:68 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 line_cursor#1 print_byte::b#7 char_cursor#11 ] main:2::sin8u_table:7::print_word:15::print_byte:86::print_char:68 [ sin8u_table::step#0 print_word::w#2 print_byte::b#7 char_cursor#11 ] main:2::sin8u_table:7::print_word:49::print_byte:86::print_char:68 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 print_word::w#2 print_byte::b#7 char_cursor#11 ] main:2::sin8u_table:7::print_word:15::print_byte:88::print_char:68 [ sin8u_table::step#0 print_byte::b#7 char_cursor#11 ] main:2::sin8u_table:7::print_word:49::print_byte:88::print_char:68 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 print_byte::b#7 char_cursor#11 ] main:2::sin8u_table:7::print_byte:19::print_char:71 [ sin8u_table::step#0 char_cursor#11 ] main:2::sin8u_table:7::print_byte:23::print_char:71 [ sin8u_table::step#0 char_cursor#11 ] main:2::sin8u_table:7::print_byte:27::print_char:71 [ sin8u_table::step#0 char_cursor#11 ] main:2::sin8u_table:7::print_byte:31::print_char:71 [ sin8u_table::step#0 char_cursor#11 ] main:2::sin8u_table:7::print_byte:53::print_char:71 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 line_cursor#1 char_cursor#11 ] main:2::sin8u_table:7::print_word:15::print_byte:86::print_char:71 [ sin8u_table::step#0 print_word::w#2 char_cursor#11 ] main:2::sin8u_table:7::print_word:49::print_byte:86::print_char:71 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 print_word::w#2 char_cursor#11 ] main:2::sin8u_table:7::print_word:15::print_byte:88::print_char:71 [ sin8u_table::step#0 char_cursor#11 ] main:2::sin8u_table:7::print_word:49::print_byte:88::print_char:71 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 char_cursor#11 ] )
to:@return
print_str: scope:[print_str] from sin8u_table::@11 sin8u_table::@16 sin8u_table::@18 sin8u_table::@3 sin8u_table::@5 sin8u_table::@7 sin8u_table::@9
[77] (byte*) char_cursor#78 ← phi( sin8u_table::@11/(byte*) char_cursor#11 sin8u_table::@16/(byte*~) char_cursor#92 sin8u_table::@18/(byte*) char_cursor#11 sin8u_table::@3/(const byte*) SCREEN#0 sin8u_table::@5/(byte*) char_cursor#11 sin8u_table::@7/(byte*) char_cursor#11 sin8u_table::@9/(byte*) char_cursor#11 ) [ print_str::str#10 char_cursor#78 ] ( main:2::sin8u_table:7::print_str:13 [ sin8u_table::step#0 print_str::str#10 char_cursor#78 ] main:2::sin8u_table:7::print_str:17 [ sin8u_table::step#0 print_str::str#10 char_cursor#78 ] main:2::sin8u_table:7::print_str:21 [ sin8u_table::step#0 print_str::str#10 char_cursor#78 ] main:2::sin8u_table:7::print_str:25 [ sin8u_table::step#0 print_str::str#10 char_cursor#78 ] main:2::sin8u_table:7::print_str:29 [ sin8u_table::step#0 print_str::str#10 char_cursor#78 ] main:2::sin8u_table:7::print_str:47 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 print_str::str#10 char_cursor#78 ] main:2::sin8u_table:7::print_str:51 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 print_str::str#10 char_cursor#78 ] )
[77] (byte*) print_str::str#10 ← phi( sin8u_table::@11/(const string) sin8u_table::str4 sin8u_table::@16/(const string) sin8u_table::str5 sin8u_table::@18/(const string) sin8u_table::str6 sin8u_table::@3/(const string) sin8u_table::str sin8u_table::@5/(const string) sin8u_table::str1 sin8u_table::@7/(const string) sin8u_table::str2 sin8u_table::@9/(const string) sin8u_table::str3 ) [ print_str::str#10 char_cursor#78 ] ( main:2::sin8u_table:7::print_str:13 [ sin8u_table::step#0 print_str::str#10 char_cursor#78 ] main:2::sin8u_table:7::print_str:17 [ sin8u_table::step#0 print_str::str#10 char_cursor#78 ] main:2::sin8u_table:7::print_str:21 [ sin8u_table::step#0 print_str::str#10 char_cursor#78 ] main:2::sin8u_table:7::print_str:25 [ sin8u_table::step#0 print_str::str#10 char_cursor#78 ] main:2::sin8u_table:7::print_str:29 [ sin8u_table::step#0 print_str::str#10 char_cursor#78 ] main:2::sin8u_table:7::print_str:47 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 print_str::str#10 char_cursor#78 ] main:2::sin8u_table:7::print_str:51 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 print_str::str#10 char_cursor#78 ] )
to:print_str::@1
print_str::@1: scope:[print_str] from print_str print_str::@2
[78] (byte*) char_cursor#2 ← phi( print_str/(byte*) char_cursor#78 print_str::@2/(byte*) char_cursor#1 ) [ char_cursor#2 print_str::str#8 ] ( main:2::sin8u_table:7::print_str:13 [ sin8u_table::step#0 char_cursor#2 print_str::str#8 ] main:2::sin8u_table:7::print_str:17 [ sin8u_table::step#0 char_cursor#2 print_str::str#8 ] main:2::sin8u_table:7::print_str:21 [ sin8u_table::step#0 char_cursor#2 print_str::str#8 ] main:2::sin8u_table:7::print_str:25 [ sin8u_table::step#0 char_cursor#2 print_str::str#8 ] main:2::sin8u_table:7::print_str:29 [ sin8u_table::step#0 char_cursor#2 print_str::str#8 ] main:2::sin8u_table:7::print_str:47 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 char_cursor#2 print_str::str#8 ] main:2::sin8u_table:7::print_str:51 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 char_cursor#2 print_str::str#8 ] )
[78] (byte*) print_str::str#8 ← phi( print_str/(byte*) print_str::str#10 print_str::@2/(byte*) print_str::str#0 ) [ char_cursor#2 print_str::str#8 ] ( main:2::sin8u_table:7::print_str:13 [ sin8u_table::step#0 char_cursor#2 print_str::str#8 ] main:2::sin8u_table:7::print_str:17 [ sin8u_table::step#0 char_cursor#2 print_str::str#8 ] main:2::sin8u_table:7::print_str:21 [ sin8u_table::step#0 char_cursor#2 print_str::str#8 ] main:2::sin8u_table:7::print_str:25 [ sin8u_table::step#0 char_cursor#2 print_str::str#8 ] main:2::sin8u_table:7::print_str:29 [ sin8u_table::step#0 char_cursor#2 print_str::str#8 ] main:2::sin8u_table:7::print_str:47 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 char_cursor#2 print_str::str#8 ] main:2::sin8u_table:7::print_str:51 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 char_cursor#2 print_str::str#8 ] )
[79] if(*((byte*) print_str::str#8)!=(byte) '@') goto print_str::@2 [ char_cursor#2 print_str::str#8 ] ( main:2::sin8u_table:7::print_str:13 [ sin8u_table::step#0 char_cursor#2 print_str::str#8 ] main:2::sin8u_table:7::print_str:17 [ sin8u_table::step#0 char_cursor#2 print_str::str#8 ] main:2::sin8u_table:7::print_str:21 [ sin8u_table::step#0 char_cursor#2 print_str::str#8 ] main:2::sin8u_table:7::print_str:25 [ sin8u_table::step#0 char_cursor#2 print_str::str#8 ] main:2::sin8u_table:7::print_str:29 [ sin8u_table::step#0 char_cursor#2 print_str::str#8 ] main:2::sin8u_table:7::print_str:47 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 char_cursor#2 print_str::str#8 ] main:2::sin8u_table:7::print_str:51 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 char_cursor#2 print_str::str#8 ] )
to:print_str::@return
print_str::@return: scope:[print_str] from print_str::@1
[80] return [ char_cursor#2 ] ( main:2::sin8u_table:7::print_str:13 [ sin8u_table::step#0 char_cursor#2 ] main:2::sin8u_table:7::print_str:17 [ sin8u_table::step#0 char_cursor#2 ] main:2::sin8u_table:7::print_str:21 [ sin8u_table::step#0 char_cursor#2 ] main:2::sin8u_table:7::print_str:25 [ sin8u_table::step#0 char_cursor#2 ] main:2::sin8u_table:7::print_str:29 [ sin8u_table::step#0 char_cursor#2 ] main:2::sin8u_table:7::print_str:47 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 char_cursor#2 ] main:2::sin8u_table:7::print_str:51 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 char_cursor#2 ] )
to:@return
print_str::@2: scope:[print_str] from print_str::@1
[81] *((byte*) char_cursor#2) ← *((byte*) print_str::str#8) [ char_cursor#2 print_str::str#8 ] ( main:2::sin8u_table:7::print_str:13 [ sin8u_table::step#0 char_cursor#2 print_str::str#8 ] main:2::sin8u_table:7::print_str:17 [ sin8u_table::step#0 char_cursor#2 print_str::str#8 ] main:2::sin8u_table:7::print_str:21 [ sin8u_table::step#0 char_cursor#2 print_str::str#8 ] main:2::sin8u_table:7::print_str:25 [ sin8u_table::step#0 char_cursor#2 print_str::str#8 ] main:2::sin8u_table:7::print_str:29 [ sin8u_table::step#0 char_cursor#2 print_str::str#8 ] main:2::sin8u_table:7::print_str:47 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 char_cursor#2 print_str::str#8 ] main:2::sin8u_table:7::print_str:51 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 char_cursor#2 print_str::str#8 ] )
[82] (byte*) char_cursor#1 ← ++ (byte*) char_cursor#2 [ print_str::str#8 char_cursor#1 ] ( main:2::sin8u_table:7::print_str:13 [ sin8u_table::step#0 print_str::str#8 char_cursor#1 ] main:2::sin8u_table:7::print_str:17 [ sin8u_table::step#0 print_str::str#8 char_cursor#1 ] main:2::sin8u_table:7::print_str:21 [ sin8u_table::step#0 print_str::str#8 char_cursor#1 ] main:2::sin8u_table:7::print_str:25 [ sin8u_table::step#0 print_str::str#8 char_cursor#1 ] main:2::sin8u_table:7::print_str:29 [ sin8u_table::step#0 print_str::str#8 char_cursor#1 ] main:2::sin8u_table:7::print_str:47 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 print_str::str#8 char_cursor#1 ] main:2::sin8u_table:7::print_str:51 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 print_str::str#8 char_cursor#1 ] )
[83] (byte*) print_str::str#0 ← ++ (byte*) print_str::str#8 [ print_str::str#0 char_cursor#1 ] ( main:2::sin8u_table:7::print_str:13 [ sin8u_table::step#0 print_str::str#0 char_cursor#1 ] main:2::sin8u_table:7::print_str:17 [ sin8u_table::step#0 print_str::str#0 char_cursor#1 ] main:2::sin8u_table:7::print_str:21 [ sin8u_table::step#0 print_str::str#0 char_cursor#1 ] main:2::sin8u_table:7::print_str:25 [ sin8u_table::step#0 print_str::str#0 char_cursor#1 ] main:2::sin8u_table:7::print_str:29 [ sin8u_table::step#0 print_str::str#0 char_cursor#1 ] main:2::sin8u_table:7::print_str:47 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 print_str::str#0 char_cursor#1 ] main:2::sin8u_table:7::print_str:51 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 print_str::str#0 char_cursor#1 ] )
to:print_str::@1
print_word: scope:[print_word] from sin8u_table::@17 sin8u_table::@4
[84] (word) print_word::w#2 ← phi( sin8u_table::@17/(word) print_word::w#1 sin8u_table::@4/(word) print_word::w#0 ) [ char_cursor#2 print_word::w#2 ] ( main:2::sin8u_table:7::print_word:15 [ sin8u_table::step#0 char_cursor#2 print_word::w#2 ] main:2::sin8u_table:7::print_word:49 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 char_cursor#2 print_word::w#2 ] )
[85] (byte) print_byte::b#0 ← > (word) print_word::w#2 [ char_cursor#2 print_byte::b#0 print_word::w#2 ] ( main:2::sin8u_table:7::print_word:15 [ sin8u_table::step#0 char_cursor#2 print_byte::b#0 print_word::w#2 ] main:2::sin8u_table:7::print_word:49 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 char_cursor#2 print_byte::b#0 print_word::w#2 ] )
[86] call print_byte param-assignment [ char_cursor#11 print_word::w#2 ] ( main:2::sin8u_table:7::print_word:15 [ sin8u_table::step#0 char_cursor#11 print_word::w#2 ] main:2::sin8u_table:7::print_word:49 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 char_cursor#11 print_word::w#2 ] )
to:print_word::@1
print_word::@1: scope:[print_word] from print_word
[87] (byte) print_byte::b#1 ← < (word) print_word::w#2 [ char_cursor#11 print_byte::b#1 ] ( main:2::sin8u_table:7::print_word:15 [ sin8u_table::step#0 char_cursor#11 print_byte::b#1 ] main:2::sin8u_table:7::print_word:49 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 char_cursor#11 print_byte::b#1 ] )
[88] call print_byte param-assignment [ char_cursor#11 ] ( main:2::sin8u_table:7::print_word:15 [ sin8u_table::step#0 char_cursor#11 ] main:2::sin8u_table:7::print_word:49 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 char_cursor#11 ] )
to:print_word::@return
print_word::@return: scope:[print_word] from print_word::@1
[89] return [ char_cursor#11 ] ( main:2::sin8u_table:7::print_word:15 [ sin8u_table::step#0 char_cursor#11 ] main:2::sin8u_table:7::print_word:49 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::i#2 sin8u_table::sintab#1 sin8u_table::sinval#0 line_cursor#1 char_cursor#11 ] )
to:@return
mul8su: scope:[mul8su] from sin8u_table::@15
[90] (byte~) mul8u::a#8 ← (byte)(signed byte) mul8su::a#0 [ mul8su::a#0 mul8u::a#8 ] ( main:2::sin8u_table:7::mul8su:39 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 mul8su::a#0 mul8u::a#8 ] )
[91] call mul8u param-assignment [ mul8su::a#0 mul8u::res#2 ] ( main:2::sin8u_table:7::mul8su:39 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 mul8su::a#0 mul8u::res#2 ] )
[92] (word) mul8u::return#2 ← (word) mul8u::res#2 [ mul8su::a#0 mul8u::return#2 ] ( main:2::sin8u_table:7::mul8su:39 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 mul8su::a#0 mul8u::return#2 ] )
to:mul8su::@4
mul8su::@4: scope:[mul8su] from mul8su
[93] (word) mul8su::m#0 ← (word) mul8u::return#2 [ mul8su::a#0 mul8su::m#0 ] ( main:2::sin8u_table:7::mul8su:39 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 mul8su::a#0 mul8su::m#0 ] )
[94] if((signed byte) mul8su::a#0>=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul8su::@1 [ mul8su::m#0 ] ( main:2::sin8u_table:7::mul8su:39 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 mul8su::m#0 ] )
to:mul8su::@2
mul8su::@2: scope:[mul8su] from mul8su::@4
[95] (byte~) mul8su::$6 ← > (word) mul8su::m#0 [ mul8su::m#0 mul8su::$6 ] ( main:2::sin8u_table:7::mul8su:39 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 mul8su::m#0 mul8su::$6 ] )
[96] (byte/signed byte/word/signed word/dword/signed dword~) mul8su::$10 ← (byte~) mul8su::$6 - ((byte))(const byte) sin8u_table::amplitude#0 [ mul8su::m#0 mul8su::$10 ] ( main:2::sin8u_table:7::mul8su:39 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 mul8su::m#0 mul8su::$10 ] )
[97] (word) mul8su::m#1 ← (word) mul8su::m#0 hi= (byte/signed byte/word/signed word/dword/signed dword~) mul8su::$10 [ mul8su::m#1 ] ( main:2::sin8u_table:7::mul8su:39 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 mul8su::m#1 ] )
to:mul8su::@1
mul8su::@1: scope:[mul8su] from mul8su::@2 mul8su::@4
[98] (word) mul8su::m#2 ← phi( mul8su::@2/(word) mul8su::m#1 mul8su::@4/(word) mul8su::m#0 ) [ mul8su::m#2 ] ( main:2::sin8u_table:7::mul8su:39 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 mul8su::m#2 ] )
to:mul8su::@return
mul8su::@return: scope:[mul8su] from mul8su::@1
[99] return [ mul8su::m#2 ] ( main:2::sin8u_table:7::mul8su:39 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 mul8su::m#2 ] )
to:@return
mul8u: scope:[mul8u] from mul8su mulu8_sel
[100] (byte) mul8u::a#6 ← phi( mul8su/(byte~) mul8u::a#8 mulu8_sel/(byte) mul8u::a#2 ) [ mul8u::b#2 mul8u::a#6 ] ( main:2::sin8u_table:7::mul8su:39::mul8u:91 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 mul8su::a#0 mul8u::b#2 mul8u::a#6 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:121::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::b#2 mul8u::a#6 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:126::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::b#2 mul8u::a#6 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:130::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mul8u::b#2 mul8u::a#6 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:136::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mul8u::b#2 mul8u::a#6 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:141::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::select#5 mul8u::b#2 mul8u::a#6 ] )
[100] (byte) mul8u::b#2 ← phi( mul8su/((byte))(const byte) sin8u_table::amplitude#0 mulu8_sel/(byte) mul8u::b#1 ) [ mul8u::b#2 mul8u::a#6 ] ( main:2::sin8u_table:7::mul8su:39::mul8u:91 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 mul8su::a#0 mul8u::b#2 mul8u::a#6 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:121::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::b#2 mul8u::a#6 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:126::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::b#2 mul8u::a#6 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:130::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mul8u::b#2 mul8u::a#6 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:136::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mul8u::b#2 mul8u::a#6 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:141::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::select#5 mul8u::b#2 mul8u::a#6 ] )
[101] (word) mul8u::mb#0 ← ((word)) (byte) mul8u::b#2 [ mul8u::a#6 mul8u::mb#0 ] ( main:2::sin8u_table:7::mul8su:39::mul8u:91 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 mul8su::a#0 mul8u::a#6 mul8u::mb#0 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:121::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::a#6 mul8u::mb#0 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:126::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::a#6 mul8u::mb#0 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:130::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mul8u::a#6 mul8u::mb#0 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:136::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mul8u::a#6 mul8u::mb#0 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:141::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::select#5 mul8u::a#6 mul8u::mb#0 ] )
to:mul8u::@1
mul8u::@1: scope:[mul8u] from mul8u mul8u::@4
[102] (word) mul8u::mb#2 ← phi( mul8u/(word) mul8u::mb#0 mul8u::@4/(word) mul8u::mb#1 ) [ mul8u::res#2 mul8u::a#3 mul8u::mb#2 ] ( main:2::sin8u_table:7::mul8su:39::mul8u:91 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 mul8su::a#0 mul8u::res#2 mul8u::a#3 mul8u::mb#2 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:121::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#3 mul8u::mb#2 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:126::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#3 mul8u::mb#2 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:130::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#3 mul8u::mb#2 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:136::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#3 mul8u::mb#2 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:141::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#3 mul8u::mb#2 ] )
[102] (word) mul8u::res#2 ← phi( mul8u/(byte/signed byte/word/signed word/dword/signed dword) 0 mul8u::@4/(word) mul8u::res#6 ) [ mul8u::res#2 mul8u::a#3 mul8u::mb#2 ] ( main:2::sin8u_table:7::mul8su:39::mul8u:91 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 mul8su::a#0 mul8u::res#2 mul8u::a#3 mul8u::mb#2 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:121::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#3 mul8u::mb#2 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:126::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#3 mul8u::mb#2 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:130::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#3 mul8u::mb#2 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:136::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#3 mul8u::mb#2 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:141::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#3 mul8u::mb#2 ] )
[102] (byte) mul8u::a#3 ← phi( mul8u/(byte) mul8u::a#6 mul8u::@4/(byte) mul8u::a#0 ) [ mul8u::res#2 mul8u::a#3 mul8u::mb#2 ] ( main:2::sin8u_table:7::mul8su:39::mul8u:91 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 mul8su::a#0 mul8u::res#2 mul8u::a#3 mul8u::mb#2 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:121::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#3 mul8u::mb#2 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:126::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#3 mul8u::mb#2 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:130::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#3 mul8u::mb#2 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:136::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#3 mul8u::mb#2 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:141::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#3 mul8u::mb#2 ] )
[103] if((byte) mul8u::a#3!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul8u::@2 [ mul8u::res#2 mul8u::a#3 mul8u::mb#2 ] ( main:2::sin8u_table:7::mul8su:39::mul8u:91 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 mul8su::a#0 mul8u::res#2 mul8u::a#3 mul8u::mb#2 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:121::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#3 mul8u::mb#2 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:126::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#3 mul8u::mb#2 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:130::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#3 mul8u::mb#2 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:136::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#3 mul8u::mb#2 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:141::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#3 mul8u::mb#2 ] )
to:mul8u::@return
mul8u::@return: scope:[mul8u] from mul8u::@1
[104] return [ mul8u::res#2 ] ( main:2::sin8u_table:7::mul8su:39::mul8u:91 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 mul8su::a#0 mul8u::res#2 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:121::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::res#2 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:126::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::res#2 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:130::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mul8u::res#2 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:136::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mul8u::res#2 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:141::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::select#5 mul8u::res#2 ] )
to:@return
mul8u::@2: scope:[mul8u] from mul8u::@1
[105] (byte~) mul8u::$1 ← (byte) mul8u::a#3 & (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul8u::res#2 mul8u::a#3 mul8u::mb#2 mul8u::$1 ] ( main:2::sin8u_table:7::mul8su:39::mul8u:91 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 mul8su::a#0 mul8u::res#2 mul8u::a#3 mul8u::mb#2 mul8u::$1 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:121::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#3 mul8u::mb#2 mul8u::$1 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:126::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#3 mul8u::mb#2 mul8u::$1 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:130::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#3 mul8u::mb#2 mul8u::$1 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:136::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#3 mul8u::mb#2 mul8u::$1 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:141::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#3 mul8u::mb#2 mul8u::$1 ] )
[106] if((byte~) mul8u::$1==(byte/signed byte/word/signed word/dword/signed dword) 0) goto mul8u::@4 [ mul8u::res#2 mul8u::a#3 mul8u::mb#2 ] ( main:2::sin8u_table:7::mul8su:39::mul8u:91 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 mul8su::a#0 mul8u::res#2 mul8u::a#3 mul8u::mb#2 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:121::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#3 mul8u::mb#2 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:126::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#3 mul8u::mb#2 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:130::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#3 mul8u::mb#2 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:136::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#3 mul8u::mb#2 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:141::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::select#5 mul8u::res#2 mul8u::a#3 mul8u::mb#2 ] )
to:mul8u::@7
mul8u::@7: scope:[mul8u] from mul8u::@2
[107] (word) mul8u::res#1 ← (word) mul8u::res#2 + (word) mul8u::mb#2 [ mul8u::a#3 mul8u::mb#2 mul8u::res#1 ] ( main:2::sin8u_table:7::mul8su:39::mul8u:91 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 mul8su::a#0 mul8u::a#3 mul8u::mb#2 mul8u::res#1 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:121::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::a#3 mul8u::mb#2 mul8u::res#1 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:126::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::a#3 mul8u::mb#2 mul8u::res#1 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:130::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mul8u::a#3 mul8u::mb#2 mul8u::res#1 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:136::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mul8u::a#3 mul8u::mb#2 mul8u::res#1 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:141::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::select#5 mul8u::a#3 mul8u::mb#2 mul8u::res#1 ] )
to:mul8u::@4
mul8u::@4: scope:[mul8u] from mul8u::@2 mul8u::@7
[108] (word) mul8u::res#6 ← phi( mul8u::@2/(word) mul8u::res#2 mul8u::@7/(word) mul8u::res#1 ) [ mul8u::a#3 mul8u::mb#2 mul8u::res#6 ] ( main:2::sin8u_table:7::mul8su:39::mul8u:91 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 mul8su::a#0 mul8u::a#3 mul8u::mb#2 mul8u::res#6 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:121::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::a#3 mul8u::mb#2 mul8u::res#6 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:126::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::a#3 mul8u::mb#2 mul8u::res#6 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:130::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mul8u::a#3 mul8u::mb#2 mul8u::res#6 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:136::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mul8u::a#3 mul8u::mb#2 mul8u::res#6 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:141::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::select#5 mul8u::a#3 mul8u::mb#2 mul8u::res#6 ] )
[109] (byte) mul8u::a#0 ← (byte) mul8u::a#3 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul8u::mb#2 mul8u::a#0 mul8u::res#6 ] ( main:2::sin8u_table:7::mul8su:39::mul8u:91 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 mul8su::a#0 mul8u::mb#2 mul8u::a#0 mul8u::res#6 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:121::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::mb#2 mul8u::a#0 mul8u::res#6 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:126::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::mb#2 mul8u::a#0 mul8u::res#6 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:130::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mul8u::mb#2 mul8u::a#0 mul8u::res#6 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:136::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mul8u::mb#2 mul8u::a#0 mul8u::res#6 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:141::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::select#5 mul8u::mb#2 mul8u::a#0 mul8u::res#6 ] )
[110] (word) mul8u::mb#1 ← (word) mul8u::mb#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ mul8u::a#0 mul8u::res#6 mul8u::mb#1 ] ( main:2::sin8u_table:7::mul8su:39::mul8u:91 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 mul8su::a#0 mul8u::a#0 mul8u::res#6 mul8u::mb#1 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:121::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::a#0 mul8u::res#6 mul8u::mb#1 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:126::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::a#0 mul8u::res#6 mul8u::mb#1 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:130::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mul8u::a#0 mul8u::res#6 mul8u::mb#1 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:136::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mul8u::a#0 mul8u::res#6 mul8u::mb#1 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:141::mul8u:157 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::select#5 mul8u::a#0 mul8u::res#6 mul8u::mb#1 ] )
to:mul8u::@1
sin8s: scope:[sin8s] from sin8u_table::@1
[111] if((word) sin8s::x#2<(const word) PI_u4f12#0) goto sin8s::@1 [ sin8s::x#2 ] ( main:2::sin8u_table:7::sin8s:36 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::x#2 ] )
to:sin8s::@5
sin8s::@5: scope:[sin8s] from sin8s
[112] (word) sin8s::x#0 ← (word) sin8s::x#2 - (const word) PI_u4f12#0 [ sin8s::x#0 ] ( main:2::sin8u_table:7::sin8s:36 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::x#0 ] )
to:sin8s::@1
sin8s::@1: scope:[sin8s] from sin8s sin8s::@5
[113] (byte) sin8s::isUpper#10 ← phi( sin8s/(byte/signed byte/word/signed word/dword/signed dword) 0 sin8s::@5/(byte/signed byte/word/signed word/dword/signed dword) 1 ) [ sin8s::x#4 sin8s::isUpper#10 ] ( main:2::sin8u_table:7::sin8s:36 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::x#4 sin8s::isUpper#10 ] )
[113] (word) sin8s::x#4 ← phi( sin8s/(word) sin8s::x#2 sin8s::@5/(word) sin8s::x#0 ) [ sin8s::x#4 sin8s::isUpper#10 ] ( main:2::sin8u_table:7::sin8s:36 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::x#4 sin8s::isUpper#10 ] )
[114] if((word) sin8s::x#4<(const word) PI_HALF_u4f12#0) goto sin8s::@2 [ sin8s::x#4 sin8s::isUpper#10 ] ( main:2::sin8u_table:7::sin8s:36 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::x#4 sin8s::isUpper#10 ] )
to:sin8s::@6
sin8s::@6: scope:[sin8s] from sin8s::@1
[115] (word) sin8s::x#1 ← (const word) PI_u4f12#0 - (word) sin8s::x#4 [ sin8s::isUpper#10 sin8s::x#1 ] ( main:2::sin8u_table:7::sin8s:36 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x#1 ] )
to:sin8s::@2
sin8s::@2: scope:[sin8s] from sin8s::@1 sin8s::@6
[116] (word) sin8s::x#6 ← phi( sin8s::@1/(word) sin8s::x#4 sin8s::@6/(word) sin8s::x#1 ) [ sin8s::isUpper#10 sin8s::x#6 ] ( main:2::sin8u_table:7::sin8s:36 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x#6 ] )
[117] (word~) sin8s::$6 ← (word) sin8s::x#6 << (byte/signed byte/word/signed word/dword/signed dword) 3 [ sin8s::isUpper#10 sin8s::$6 ] ( main:2::sin8u_table:7::sin8s:36 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::$6 ] )
[118] (byte) sin8s::x1#0 ← > (word~) sin8s::$6 [ sin8s::isUpper#10 sin8s::x1#0 ] ( main:2::sin8u_table:7::sin8s:36 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 ] )
[119] (byte) mulu8_sel::v1#0 ← (byte) sin8s::x1#0 [ sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::v1#0 ] ( main:2::sin8u_table:7::sin8s:36 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::v1#0 ] )
[120] (byte) mulu8_sel::v2#0 ← (byte) sin8s::x1#0 [ sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::v1#0 mulu8_sel::v2#0 ] ( main:2::sin8u_table:7::sin8s:36 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::v1#0 mulu8_sel::v2#0 ] )
[121] call mulu8_sel param-assignment [ sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::return#12 ] ( main:2::sin8u_table:7::sin8s:36 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::return#12 ] )
[122] (byte) mulu8_sel::return#0 ← (byte) mulu8_sel::return#12 [ sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::return#0 ] ( main:2::sin8u_table:7::sin8s:36 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::return#0 ] )
to:sin8s::@10
sin8s::@10: scope:[sin8s] from sin8s::@2
[123] (byte) sin8s::x2#0 ← (byte) mulu8_sel::return#0 [ sin8s::isUpper#10 sin8s::x1#0 sin8s::x2#0 ] ( main:2::sin8u_table:7::sin8s:36 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::x2#0 ] )
[124] (byte) mulu8_sel::v1#1 ← (byte) sin8s::x2#0 [ sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::v1#1 ] ( main:2::sin8u_table:7::sin8s:36 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::v1#1 ] )
[125] (byte) mulu8_sel::v2#1 ← (byte) sin8s::x1#0 [ sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::v1#1 mulu8_sel::v2#1 ] ( main:2::sin8u_table:7::sin8s:36 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::v1#1 mulu8_sel::v2#1 ] )
[126] call mulu8_sel param-assignment [ sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::return#12 ] ( main:2::sin8u_table:7::sin8s:36 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::return#12 ] )
[127] (byte) mulu8_sel::return#1 ← (byte) mulu8_sel::return#12 [ sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::return#1 ] ( main:2::sin8u_table:7::sin8s:36 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::return#1 ] )
to:sin8s::@11
sin8s::@11: scope:[sin8s] from sin8s::@10
[128] (byte) sin8s::x3#0 ← (byte) mulu8_sel::return#1 [ sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 ] ( main:2::sin8u_table:7::sin8s:36 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 ] )
[129] (byte) mulu8_sel::v1#2 ← (byte) sin8s::x3#0 [ sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::v1#2 ] ( main:2::sin8u_table:7::sin8s:36 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::v1#2 ] )
[130] call mulu8_sel param-assignment [ sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::return#12 sin8s::x3#0 ] ( main:2::sin8u_table:7::sin8s:36 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::return#12 sin8s::x3#0 ] )
[131] (byte) mulu8_sel::return#2 ← (byte) mulu8_sel::return#12 [ sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::return#2 ] ( main:2::sin8u_table:7::sin8s:36 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::return#2 ] )
to:sin8s::@12
sin8s::@12: scope:[sin8s] from sin8s::@11
[132] (byte) sin8s::x3_6#0 ← (byte) mulu8_sel::return#2 [ sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 sin8s::x3_6#0 ] ( main:2::sin8u_table:7::sin8s:36 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 sin8s::x3_6#0 ] )
[133] (byte) sin8s::usinx#0 ← (byte) sin8s::x1#0 - (byte) sin8s::x3_6#0 [ sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 sin8s::usinx#0 ] ( main:2::sin8u_table:7::sin8s:36 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 sin8s::usinx#0 ] )
[134] (byte) mulu8_sel::v1#3 ← (byte) sin8s::x3#0 [ sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::v1#3 ] ( main:2::sin8u_table:7::sin8s:36 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::v1#3 ] )
[135] (byte) mulu8_sel::v2#3 ← (byte) sin8s::x1#0 [ sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::v1#3 mulu8_sel::v2#3 ] ( main:2::sin8u_table:7::sin8s:36 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::v1#3 mulu8_sel::v2#3 ] )
[136] call mulu8_sel param-assignment [ sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::return#12 sin8s::usinx#0 ] ( main:2::sin8u_table:7::sin8s:36 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::return#12 sin8s::usinx#0 ] )
[137] (byte) mulu8_sel::return#10 ← (byte) mulu8_sel::return#12 [ sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::return#10 ] ( main:2::sin8u_table:7::sin8s:36 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::return#10 ] )
to:sin8s::@13
sin8s::@13: scope:[sin8s] from sin8s::@12
[138] (byte) sin8s::x4#0 ← (byte) mulu8_sel::return#10 [ sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 sin8s::x4#0 ] ( main:2::sin8u_table:7::sin8s:36 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 sin8s::x4#0 ] )
[139] (byte) mulu8_sel::v1#4 ← (byte) sin8s::x4#0 [ sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::v1#4 ] ( main:2::sin8u_table:7::sin8s:36 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::v1#4 ] )
[140] (byte) mulu8_sel::v2#4 ← (byte) sin8s::x1#0 [ sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::v1#4 mulu8_sel::v2#4 ] ( main:2::sin8u_table:7::sin8s:36 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::v1#4 mulu8_sel::v2#4 ] )
[141] call mulu8_sel param-assignment [ sin8s::isUpper#10 mulu8_sel::return#12 sin8s::usinx#0 ] ( main:2::sin8u_table:7::sin8s:36 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 mulu8_sel::return#12 sin8s::usinx#0 ] )
[142] (byte) mulu8_sel::return#11 ← (byte) mulu8_sel::return#12 [ sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::return#11 ] ( main:2::sin8u_table:7::sin8s:36 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::return#11 ] )
to:sin8s::@14
sin8s::@14: scope:[sin8s] from sin8s::@13
[143] (byte) sin8s::x5#0 ← (byte) mulu8_sel::return#11 [ sin8s::isUpper#10 sin8s::usinx#0 sin8s::x5#0 ] ( main:2::sin8u_table:7::sin8s:36 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::usinx#0 sin8s::x5#0 ] )
[144] (byte) sin8s::x5_128#0 ← (byte) sin8s::x5#0 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ sin8s::isUpper#10 sin8s::usinx#0 sin8s::x5_128#0 ] ( main:2::sin8u_table:7::sin8s:36 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::usinx#0 sin8s::x5_128#0 ] )
[145] (byte) sin8s::usinx#1 ← (byte) sin8s::usinx#0 + (byte) sin8s::x5_128#0 [ sin8s::isUpper#10 sin8s::usinx#1 ] ( main:2::sin8u_table:7::sin8s:36 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::usinx#1 ] )
[146] if((byte) sin8s::usinx#1<(byte/word/signed word/dword/signed dword) 128) goto sin8s::@3 [ sin8s::isUpper#10 sin8s::usinx#1 ] ( main:2::sin8u_table:7::sin8s:36 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::usinx#1 ] )
to:sin8s::@7
sin8s::@7: scope:[sin8s] from sin8s::@14
[147] (byte) sin8s::usinx#2 ← -- (byte) sin8s::usinx#1 [ sin8s::isUpper#10 sin8s::usinx#2 ] ( main:2::sin8u_table:7::sin8s:36 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::usinx#2 ] )
to:sin8s::@3
sin8s::@3: scope:[sin8s] from sin8s::@14 sin8s::@7
[148] (byte) sin8s::usinx#4 ← phi( sin8s::@14/(byte) sin8s::usinx#1 sin8s::@7/(byte) sin8s::usinx#2 ) [ sin8s::isUpper#10 sin8s::usinx#4 ] ( main:2::sin8u_table:7::sin8s:36 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::usinx#4 ] )
[149] if((byte) sin8s::isUpper#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto sin8s::@18 [ sin8s::usinx#4 ] ( main:2::sin8u_table:7::sin8s:36 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::usinx#4 ] )
to:sin8s::@8
sin8s::@8: scope:[sin8s] from sin8s::@3
[150] (signed byte) sin8s::sinx#1 ← - (signed byte)(byte) sin8s::usinx#4 [ sin8s::sinx#1 ] ( main:2::sin8u_table:7::sin8s:36 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::sinx#1 ] )
to:sin8s::@4
sin8s::@4: scope:[sin8s] from sin8s::@18 sin8s::@8
[151] (signed byte) sin8s::return#0 ← phi( sin8s::@18/(signed byte~) sin8s::return#5 sin8s::@8/(signed byte) sin8s::sinx#1 ) [ sin8s::return#0 ] ( main:2::sin8u_table:7::sin8s:36 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::return#0 ] )
to:sin8s::@return
sin8s::@return: scope:[sin8s] from sin8s::@4
[152] return [ sin8s::return#0 ] ( main:2::sin8u_table:7::sin8s:36 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::return#0 ] )
to:@return
sin8s::@18: scope:[sin8s] from sin8s::@3
[153] (signed byte~) sin8s::return#5 ← (signed byte)(byte) sin8s::usinx#4 [ sin8s::return#5 ] ( main:2::sin8u_table:7::sin8s:36 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::return#5 ] )
to:sin8s::@4
mulu8_sel: scope:[mulu8_sel] from sin8s::@10 sin8s::@11 sin8s::@12 sin8s::@13 sin8s::@2
[154] (byte) mulu8_sel::select#5 ← phi( sin8s::@10/(byte/signed byte/word/signed word/dword/signed dword) 1 sin8s::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 sin8s::@12/(byte/signed byte/word/signed word/dword/signed dword) 0 sin8s::@13/(byte/signed byte/word/signed word/dword/signed dword) 0 sin8s::@2/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] ( main:2::sin8u_table:7::sin8s:36::mulu8_sel:121 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:126 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:130 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:136 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:141 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] )
[154] (byte) mulu8_sel::v2#5 ← phi( sin8s::@10/(byte) mulu8_sel::v2#1 sin8s::@11/(const byte) sin8s::DIV_6#0 sin8s::@12/(byte) mulu8_sel::v2#3 sin8s::@13/(byte) mulu8_sel::v2#4 sin8s::@2/(byte) mulu8_sel::v2#0 ) [ mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] ( main:2::sin8u_table:7::sin8s:36::mulu8_sel:121 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:126 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:130 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:136 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:141 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] )
[154] (byte) mulu8_sel::v1#5 ← phi( sin8s::@10/(byte) mulu8_sel::v1#1 sin8s::@11/(byte) mulu8_sel::v1#2 sin8s::@12/(byte) mulu8_sel::v1#3 sin8s::@13/(byte) mulu8_sel::v1#4 sin8s::@2/(byte) mulu8_sel::v1#0 ) [ mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] ( main:2::sin8u_table:7::sin8s:36::mulu8_sel:121 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:126 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:130 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:136 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:141 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::v1#5 mulu8_sel::v2#5 mulu8_sel::select#5 ] )
[155] (byte) mul8u::a#2 ← (byte) mulu8_sel::v1#5 [ mul8u::a#2 mulu8_sel::v2#5 mulu8_sel::select#5 ] ( main:2::sin8u_table:7::sin8s:36::mulu8_sel:121 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mul8u::a#2 mulu8_sel::v2#5 mulu8_sel::select#5 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:126 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mul8u::a#2 mulu8_sel::v2#5 mulu8_sel::select#5 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:130 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mul8u::a#2 mulu8_sel::v2#5 mulu8_sel::select#5 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:136 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mul8u::a#2 mulu8_sel::v2#5 mulu8_sel::select#5 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:141 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::usinx#0 mul8u::a#2 mulu8_sel::v2#5 mulu8_sel::select#5 ] )
[156] (byte) mul8u::b#1 ← (byte) mulu8_sel::v2#5 [ mul8u::b#1 mul8u::a#2 mulu8_sel::select#5 ] ( main:2::sin8u_table:7::sin8s:36::mulu8_sel:121 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mul8u::b#1 mul8u::a#2 mulu8_sel::select#5 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:126 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mul8u::b#1 mul8u::a#2 mulu8_sel::select#5 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:130 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mul8u::b#1 mul8u::a#2 mulu8_sel::select#5 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:136 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mul8u::b#1 mul8u::a#2 mulu8_sel::select#5 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:141 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::usinx#0 mul8u::b#1 mul8u::a#2 mulu8_sel::select#5 ] )
[157] call mul8u param-assignment [ mul8u::res#2 mulu8_sel::select#5 ] ( main:2::sin8u_table:7::sin8s:36::mulu8_sel:121 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mul8u::res#2 mulu8_sel::select#5 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:126 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mul8u::res#2 mulu8_sel::select#5 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:130 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mul8u::res#2 mulu8_sel::select#5 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:136 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mul8u::res#2 mulu8_sel::select#5 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:141 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::usinx#0 mul8u::res#2 mulu8_sel::select#5 ] )
[158] (word) mul8u::return#3 ← (word) mul8u::res#2 [ mulu8_sel::select#5 mul8u::return#3 ] ( main:2::sin8u_table:7::sin8s:36::mulu8_sel:121 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::return#3 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:126 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mul8u::return#3 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:130 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mul8u::return#3 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:136 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mul8u::return#3 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:141 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::select#5 mul8u::return#3 ] )
to:mulu8_sel::@2
mulu8_sel::@2: scope:[mulu8_sel] from mulu8_sel
[159] (word~) mulu8_sel::$0 ← (word) mul8u::return#3 [ mulu8_sel::select#5 mulu8_sel::$0 ] ( main:2::sin8u_table:7::sin8s:36::mulu8_sel:121 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mulu8_sel::$0 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:126 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::select#5 mulu8_sel::$0 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:130 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::select#5 mulu8_sel::$0 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:136 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::select#5 mulu8_sel::$0 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:141 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::select#5 mulu8_sel::$0 ] )
[160] (word~) mulu8_sel::$1 ← (word~) mulu8_sel::$0 << (byte) mulu8_sel::select#5 [ mulu8_sel::$1 ] ( main:2::sin8u_table:7::sin8s:36::mulu8_sel:121 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::$1 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:126 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::$1 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:130 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::$1 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:136 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::$1 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:141 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::$1 ] )
[161] (byte) mulu8_sel::return#12 ← > (word~) mulu8_sel::$1 [ mulu8_sel::return#12 ] ( main:2::sin8u_table:7::sin8s:36::mulu8_sel:121 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::return#12 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:126 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::return#12 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:130 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::return#12 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:136 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::return#12 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:141 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::return#12 ] )
to:mulu8_sel::@return
mulu8_sel::@return: scope:[mulu8_sel] from mulu8_sel::@2
[162] return [ mulu8_sel::return#12 ] ( main:2::sin8u_table:7::sin8s:36::mulu8_sel:121 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::return#12 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:126 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 mulu8_sel::return#12 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:130 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::x3#0 mulu8_sel::return#12 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:136 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::x1#0 sin8s::usinx#0 mulu8_sel::return#12 ] main:2::sin8u_table:7::sin8s:36::mulu8_sel:141 [ sin8u_table::step#0 sin8u_table::x#2 sin8u_table::sintab#2 sin8u_table::i#2 line_cursor#1 sin8s::isUpper#10 sin8s::usinx#0 mulu8_sel::return#12 ] )
to:@return
div16u: scope:[div16u] from sin8u_table
[163] phi() [ ] ( main:2::sin8u_table:7::div16u:10 [ ] )
[164] call divr16u param-assignment [ divr16u::return#0 ] ( main:2::sin8u_table:7::div16u:10 [ divr16u::return#0 ] )
[165] (word) divr16u::return#2 ← (word) divr16u::return#0 [ divr16u::return#2 ] ( main:2::sin8u_table:7::div16u:10 [ divr16u::return#2 ] )
to:div16u::@2
div16u::@2: scope:[div16u] from div16u
[166] (word) div16u::return#0 ← (word) divr16u::return#2 [ div16u::return#0 ] ( main:2::sin8u_table:7::div16u:10 [ div16u::return#0 ] )
to:div16u::@return
div16u::@return: scope:[div16u] from div16u::@2
[167] return [ div16u::return#0 ] ( main:2::sin8u_table:7::div16u:10 [ div16u::return#0 ] )
to:@return
divr16u: scope:[divr16u] from div16u
[168] phi() [ ] ( main:2::sin8u_table:7::div16u:10::divr16u:164 [ ] )
to:divr16u::@1
divr16u::@1: scope:[divr16u] from divr16u divr16u::@3
[169] (byte) divr16u::i#2 ← phi( divr16u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr16u::@3/(byte) divr16u::i#1 ) [ divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] ( main:2::sin8u_table:7::div16u:10::divr16u:164 [ divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] )
[169] (word) divr16u::quotient#3 ← phi( divr16u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr16u::@3/(word) divr16u::return#0 ) [ divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] ( main:2::sin8u_table:7::div16u:10::divr16u:164 [ divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] )
[169] (word) divr16u::dividend#2 ← phi( divr16u/(const word) PI2_u4f12#0 divr16u::@3/(word) divr16u::dividend#0 ) [ divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] ( main:2::sin8u_table:7::div16u:10::divr16u:164 [ divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] )
[169] (word) divr16u::rem#4 ← phi( divr16u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr16u::@3/(word) divr16u::rem#10 ) [ divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] ( main:2::sin8u_table:7::div16u:10::divr16u:164 [ divr16u::rem#4 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 ] )
[170] (word) divr16u::rem#0 ← (word) divr16u::rem#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::sin8u_table:7::div16u:10::divr16u:164 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] )
[171] (byte~) divr16u::$1 ← > (word) divr16u::dividend#2 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::sin8u_table:7::div16u:10::divr16u:164 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] )
[172] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::sin8u_table:7::div16u:10::divr16u:164 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] )
[173] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::sin8u_table:7::div16u:10::divr16u:164 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] )
to:divr16u::@4
divr16u::@4: scope:[divr16u] from divr16u::@1
[174] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::sin8u_table:7::div16u:10::divr16u:164 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] )
to:divr16u::@2
divr16u::@2: scope:[divr16u] from divr16u::@1 divr16u::@4
[175] (word) divr16u::rem#5 ← phi( divr16u::@1/(word) divr16u::rem#0 divr16u::@4/(word) divr16u::rem#1 ) [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#5 ] ( main:2::sin8u_table:7::div16u:10::divr16u:164 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#5 ] )
[176] (word) divr16u::dividend#0 ← (word) divr16u::dividend#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 ] ( main:2::sin8u_table:7::div16u:10::divr16u:164 [ divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 ] )
[177] (word) divr16u::quotient#1 ← (word) divr16u::quotient#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#1 ] ( main:2::sin8u_table:7::div16u:10::divr16u:164 [ divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#1 ] )
[178] if((word) divr16u::rem#5<(const word) main::tabsize#0) goto divr16u::@3 [ divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#1 ] ( main:2::sin8u_table:7::div16u:10::divr16u:164 [ divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#1 ] )
to:divr16u::@5
divr16u::@5: scope:[divr16u] from divr16u::@2
[179] (word) divr16u::quotient#2 ← ++ (word) divr16u::quotient#1 [ divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#2 ] ( main:2::sin8u_table:7::div16u:10::divr16u:164 [ divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#2 ] )
[180] (word) divr16u::rem#2 ← (word) divr16u::rem#5 - (const word) main::tabsize#0 [ divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::sin8u_table:7::div16u:10::divr16u:164 [ divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] )
to:divr16u::@3
divr16u::@3: scope:[divr16u] from divr16u::@2 divr16u::@5
[181] (word) divr16u::return#0 ← phi( divr16u::@2/(word) divr16u::quotient#1 divr16u::@5/(word) divr16u::quotient#2 ) [ divr16u::return#0 divr16u::i#2 divr16u::rem#10 divr16u::dividend#0 ] ( main:2::sin8u_table:7::div16u:10::divr16u:164 [ divr16u::return#0 divr16u::i#2 divr16u::rem#10 divr16u::dividend#0 ] )
[181] (word) divr16u::rem#10 ← phi( divr16u::@2/(word) divr16u::rem#5 divr16u::@5/(word) divr16u::rem#2 ) [ divr16u::return#0 divr16u::i#2 divr16u::rem#10 divr16u::dividend#0 ] ( main:2::sin8u_table:7::div16u:10::divr16u:164 [ divr16u::return#0 divr16u::i#2 divr16u::rem#10 divr16u::dividend#0 ] )
[182] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 [ divr16u::return#0 divr16u::rem#10 divr16u::dividend#0 divr16u::i#1 ] ( main:2::sin8u_table:7::div16u:10::divr16u:164 [ divr16u::return#0 divr16u::rem#10 divr16u::dividend#0 divr16u::i#1 ] )
[183] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 [ divr16u::return#0 divr16u::rem#10 divr16u::dividend#0 divr16u::i#1 ] ( main:2::sin8u_table:7::div16u:10::divr16u:164 [ divr16u::return#0 divr16u::rem#10 divr16u::dividend#0 divr16u::i#1 ] )
to:divr16u::@return
divr16u::@return: scope:[divr16u] from divr16u::@3
[184] return [ divr16u::return#0 ] ( main:2::sin8u_table:7::div16u:10::divr16u:164 [ divr16u::return#0 ] )
to:@return
print_cls: scope:[print_cls] from main
[185] phi() [ ] ( main:2::print_cls:5 [ ] )
to:print_cls::@1
print_cls::@1: scope:[print_cls] from print_cls print_cls::@1
[186] (byte*) print_cls::sc#2 ← phi( print_cls/(const byte*) SCREEN#0 print_cls::@1/(byte*) print_cls::sc#1 ) [ print_cls::sc#2 ] ( main:2::print_cls:5 [ print_cls::sc#2 ] )
[187] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::print_cls:5 [ print_cls::sc#2 ] )
[188] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] )
[189] if((byte*) print_cls::sc#1!=(const byte*) SCREEN#0+(word/signed word/dword/signed dword) 1000) goto print_cls::@1 [ print_cls::sc#1 ] ( main:2::print_cls:5 [ print_cls::sc#1 ] )
to:print_cls::@return
print_cls::@return: scope:[print_cls] from print_cls::@1
[190] return [ ] ( main:2::print_cls:5 [ ] )
to:@return

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,330 @@
(label) @30
(label) @begin
(label) @end
(word) PI2_u4f12
(const word) PI2_u4f12#0 PI2_u4f12 = (word/signed word/dword/signed dword) 25736
(word) PI_HALF_u4f12
(const word) PI_HALF_u4f12#0 PI_HALF_u4f12 = (word/signed word/dword/signed dword) 6434
(word) PI_u4f12
(const word) PI_u4f12#0 PI_u4f12 = (word/signed word/dword/signed dword) 12868
(byte*) SCREEN
(const byte*) SCREEN#0 SCREEN = ((byte*))(word/signed word/dword/signed dword) 1024
(byte*) char_cursor
(byte*) char_cursor#1 char_cursor zp ZP_WORD:11 101.0
(byte*) char_cursor#11 char_cursor zp ZP_WORD:11 4.344827586206896
(byte*) char_cursor#2 char_cursor zp ZP_WORD:11 16.3
(byte*) char_cursor#46 char_cursor zp ZP_WORD:11 4.0
(byte*) char_cursor#73 char_cursor zp ZP_WORD:11 8.333333333333334
(byte*) char_cursor#78 char_cursor zp ZP_WORD:11 32.0
(byte*~) char_cursor#92 char_cursor zp ZP_WORD:11 22.0
(word()) div16u((word) div16u::dividend , (word) div16u::divisor)
(label) div16u::@2
(label) div16u::@return
(word) div16u::dividend
(word) div16u::divisor
(word) div16u::return
(word) div16u::return#0 return zp ZP_WORD:16 1.3333333333333333
(word) div16u::return#2 return zp ZP_WORD:16 4.0
(word()) divr16u((word) divr16u::dividend , (word) divr16u::divisor , (word) divr16u::rem)
(byte~) divr16u::$1 reg byte a 22.0
(byte~) divr16u::$2 reg byte a 22.0
(label) divr16u::@1
(label) divr16u::@2
(label) divr16u::@3
(label) divr16u::@4
(label) divr16u::@5
(label) divr16u::@return
(word) divr16u::dividend
(word) divr16u::dividend#0 dividend zp ZP_WORD:4 2.75
(word) divr16u::dividend#2 dividend zp ZP_WORD:4 4.714285714285714
(word) divr16u::divisor
(byte) divr16u::i
(byte) divr16u::i#1 reg byte x 16.5
(byte) divr16u::i#2 reg byte x 1.6923076923076923
(word) divr16u::quotient
(word) divr16u::quotient#1 quotient zp ZP_WORD:16 16.5
(word) divr16u::quotient#2 quotient zp ZP_WORD:16 11.0
(word) divr16u::quotient#3 quotient zp ZP_WORD:16 2.75
(word) divr16u::rem
(word) divr16u::rem#0 rem zp ZP_WORD:2 8.25
(word) divr16u::rem#1 rem zp ZP_WORD:2 22.0
(word) divr16u::rem#10 rem zp ZP_WORD:2 11.0
(word) divr16u::rem#2 rem zp ZP_WORD:2 22.0
(word) divr16u::rem#4 rem zp ZP_WORD:2 22.0
(word) divr16u::rem#5 rem zp ZP_WORD:2 11.0
(word) divr16u::return
(word) divr16u::return#0 return zp ZP_WORD:16 7.000000000000001
(word) divr16u::return#2 return zp ZP_WORD:16 4.0
(byte*) line_cursor
(byte*) line_cursor#1 line_cursor zp ZP_WORD:8 11.206896551724137
(byte*) line_cursor#12 line_cursor zp ZP_WORD:8 204.0
(byte*) line_cursor#23 line_cursor zp ZP_WORD:8 13.0
(void()) main()
(label) main::@1
(label) main::@return
(byte[20]) main::sintab
(const byte[20]) main::sintab#0 sintab = { fill( 20, 0) }
(word) main::tabsize
(const word) main::tabsize#0 tabsize = (byte/signed byte/word/signed word/dword/signed dword) 20
(signed word()) mul8su((signed byte) mul8su::a , (byte) mul8su::b)
(byte/signed byte/word/signed word/dword/signed dword~) mul8su::$10 reg byte a 4.0
(byte~) mul8su::$6 reg byte a 4.0
(label) mul8su::@1
(label) mul8su::@2
(label) mul8su::@4
(label) mul8su::@return
(signed byte) mul8su::a
(signed byte) mul8su::a#0 reg byte y 2.6
(byte) mul8su::b
(word) mul8su::m
(word) mul8su::m#0 m zp ZP_WORD:11 2.0
(word) mul8su::m#1 m zp ZP_WORD:11 4.0
(word) mul8su::m#2 m zp ZP_WORD:11 1.3333333333333333
(signed word) mul8su::return
(signed word) mul8su::return#2 return zp ZP_WORD:11 22.0
(word()) mul8u((byte) mul8u::a , (byte) mul8u::b)
(byte~) mul8u::$1 reg byte a 202.0
(label) mul8u::@1
(label) mul8u::@2
(label) mul8u::@4
(label) mul8u::@7
(label) mul8u::@return
(byte) mul8u::a
(byte) mul8u::a#0 reg byte x 101.0
(byte) mul8u::a#2 reg byte x 2.0
(byte) mul8u::a#3 reg byte x 67.66666666666666
(byte) mul8u::a#6 reg byte x 3.0
(byte~) mul8u::a#8 reg byte x 4.0
(byte) mul8u::b
(byte) mul8u::b#1 reg byte a 4.0
(byte) mul8u::b#2 reg byte a 4.0
(word) mul8u::mb
(word) mul8u::mb#0 mb zp ZP_WORD:13 4.0
(word) mul8u::mb#1 mb zp ZP_WORD:13 202.0
(word) mul8u::mb#2 mb zp ZP_WORD:13 43.57142857142858
(word) mul8u::res
(word) mul8u::res#1 res zp ZP_WORD:11 202.0
(word) mul8u::res#2 res zp ZP_WORD:11 43.85714285714286
(word) mul8u::res#6 res zp ZP_WORD:11 101.0
(word) mul8u::return
(word) mul8u::return#2 return zp ZP_WORD:11 4.0
(word) mul8u::return#3 return zp ZP_WORD:11 4.0
(byte()) mulu8_sel((byte) mulu8_sel::v1 , (byte) mulu8_sel::v2 , (byte) mulu8_sel::select)
(word~) mulu8_sel::$0 $0 zp ZP_WORD:11 4.0
(word~) mulu8_sel::$1 $1 zp ZP_WORD:11 4.0
(label) mulu8_sel::@2
(label) mulu8_sel::@return
(byte) mulu8_sel::return
(byte) mulu8_sel::return#0 reg byte a 4.0
(byte) mulu8_sel::return#1 reg byte a 4.0
(byte) mulu8_sel::return#10 reg byte a 4.0
(byte) mulu8_sel::return#11 reg byte a 4.0
(byte) mulu8_sel::return#12 reg byte a 1.714285714285714
(byte) mulu8_sel::return#2 reg byte a 4.0
(byte) mulu8_sel::select
(byte) mulu8_sel::select#5 select zp ZP_BYTE:15 0.3333333333333333
(byte) mulu8_sel::v1
(byte) mulu8_sel::v1#0 reg byte x 2.0
(byte) mulu8_sel::v1#1 reg byte x 2.0
(byte) mulu8_sel::v1#2 reg byte x 4.0
(byte) mulu8_sel::v1#3 reg byte x 2.0
(byte) mulu8_sel::v1#4 reg byte x 2.0
(byte) mulu8_sel::v1#5 reg byte x 12.0
(byte) mulu8_sel::v2
(byte) mulu8_sel::v2#0 reg byte y 4.0
(byte) mulu8_sel::v2#1 reg byte y 4.0
(byte) mulu8_sel::v2#3 reg byte y 4.0
(byte) mulu8_sel::v2#4 reg byte y 4.0
(byte) mulu8_sel::v2#5 reg byte y 5.0
(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
(label) print_byte::@1
(label) print_byte::@return
(byte) print_byte::b
(byte) print_byte::b#0 b zp ZP_BYTE:10 4.0
(byte) print_byte::b#1 b zp ZP_BYTE:10 4.0
(byte) print_byte::b#6 b zp ZP_BYTE:10 22.0
(byte) print_byte::b#7 b zp ZP_BYTE:10 4.75
(byte[]) print_byte::hextab
(const string) print_byte::hextab#0 hextab = (string) "0123456789abcdef"
(void()) print_char((byte) print_char::ch)
(label) print_char::@return
(byte) print_char::ch
(byte) print_char::ch#0 reg byte a 4.0
(byte) print_char::ch#1 reg byte a 4.0
(byte) print_char::ch#2 reg byte a 6.0
(void()) print_cls()
(label) print_cls::@1
(label) print_cls::@return
(byte*) print_cls::sc
(byte*) print_cls::sc#1 sc zp ZP_WORD:2 16.5
(byte*) print_cls::sc#2 sc zp ZP_WORD:2 16.5
(void()) print_ln()
(label) print_ln::@1
(label) print_ln::@return
(void()) print_str((byte*) print_str::str)
(label) print_str::@1
(label) print_str::@2
(label) print_str::@return
(byte*) print_str::str
(byte*) print_str::str#0 str zp ZP_WORD:13 202.0
(byte*) print_str::str#10 str zp ZP_WORD:13 2.0
(byte*) print_str::str#8 str zp ZP_WORD:13 101.5
(void()) print_word((word) print_word::w)
(label) print_word::@1
(label) print_word::@return
(word) print_word::w
(word) print_word::w#0 w zp ZP_WORD:2 4.0
(word) print_word::w#1 w zp ZP_WORD:2 22.0
(word) print_word::w#2 w zp ZP_WORD:2 5.666666666666667
(word) rem16u
(signed byte()) sin8s((word) sin8s::x)
(word~) sin8s::$6 $6 zp ZP_WORD:11 4.0
(label) sin8s::@1
(label) sin8s::@10
(label) sin8s::@11
(label) sin8s::@12
(label) sin8s::@13
(label) sin8s::@14
(label) sin8s::@18
(label) sin8s::@2
(label) sin8s::@3
(label) sin8s::@4
(label) sin8s::@5
(label) sin8s::@6
(label) sin8s::@7
(label) sin8s::@8
(label) sin8s::@return
(byte) sin8s::DIV_6
(const byte) sin8s::DIV_6#0 DIV_6 = (byte/signed byte/word/signed word/dword/signed dword) 43
(byte) sin8s::isUpper
(byte) sin8s::isUpper#10 isUpper zp ZP_BYTE:10 0.05555555555555555
(signed byte) sin8s::return
(signed byte) sin8s::return#0 reg byte a 5.0
(signed byte) sin8s::return#2 reg byte a 22.0
(signed byte~) sin8s::return#5 reg byte a 4.0
(signed byte) sin8s::sinx
(signed byte) sin8s::sinx#1 reg byte a 4.0
(byte) sin8s::usinx
(byte) sin8s::usinx#0 usinx zp ZP_BYTE:20 0.3333333333333333
(byte) sin8s::usinx#1 reg byte x 4.0
(byte) sin8s::usinx#2 reg byte x 4.0
(byte) sin8s::usinx#4 reg byte x 2.0
(word) sin8s::x
(word) sin8s::x#0 x zp ZP_WORD:11 4.0
(word) sin8s::x#1 x zp ZP_WORD:11 4.0
(word) sin8s::x#2 x zp ZP_WORD:11 8.5
(word) sin8s::x#4 x zp ZP_WORD:11 5.0
(word) sin8s::x#6 x zp ZP_WORD:11 6.0
(byte) sin8s::x1
(byte) sin8s::x1#0 x1 zp ZP_BYTE:18 0.6363636363636365
(byte) sin8s::x2
(byte) sin8s::x2#0 reg byte a 4.0
(byte) sin8s::x3
(byte) sin8s::x3#0 x3 zp ZP_BYTE:19 1.0
(byte) sin8s::x3_6
(byte) sin8s::x3_6#0 reg byte a 4.0
(byte) sin8s::x4
(byte) sin8s::x4#0 reg byte a 4.0
(byte) sin8s::x5
(byte) sin8s::x5#0 reg byte a 4.0
(byte) sin8s::x5_128
(byte) sin8s::x5_128#0 reg byte a 4.0
(void()) sin8u_table((byte*) sin8u_table::sintab , (word) sin8u_table::tabsize , (byte) sin8u_table::min , (byte) sin8u_table::max)
(signed word~) sin8u_table::$17 $17 zp ZP_WORD:11 22.0
(byte~) sin8u_table::$18 reg byte a 22.0
(label) sin8u_table::@1
(label) sin8u_table::@10
(label) sin8u_table::@11
(label) sin8u_table::@12
(label) sin8u_table::@13
(label) sin8u_table::@15
(label) sin8u_table::@16
(label) sin8u_table::@17
(label) sin8u_table::@18
(label) sin8u_table::@19
(label) sin8u_table::@20
(label) sin8u_table::@21
(label) sin8u_table::@3
(label) sin8u_table::@4
(label) sin8u_table::@5
(label) sin8u_table::@6
(label) sin8u_table::@7
(label) sin8u_table::@8
(label) sin8u_table::@9
(label) sin8u_table::@return
(byte) sin8u_table::amplitude
(const byte) sin8u_table::amplitude#0 amplitude = (const byte) sin8u_table::max#0-(const byte) sin8u_table::min#0
(word) sin8u_table::i
(word) sin8u_table::i#1 i zp ZP_WORD:6 16.5
(word) sin8u_table::i#2 i zp ZP_WORD:6 0.9565217391304348
(byte) sin8u_table::max
(const byte) sin8u_table::max#0 max = (byte/word/signed word/dword/signed dword) 255
(byte) sin8u_table::mid
(const byte) sin8u_table::mid#0 mid = ((byte))(const word) sin8u_table::sum#0>>(byte/signed byte/word/signed word/dword/signed dword) 1
(byte) sin8u_table::min
(const byte) sin8u_table::min#0 min = (byte/signed byte/word/signed word/dword/signed dword) 10
(byte*) sin8u_table::sintab
(byte*) sin8u_table::sintab#1 sintab zp ZP_WORD:4 1.5714285714285714
(byte*) sin8u_table::sintab#2 sintab zp ZP_WORD:4 3.0
(byte) sin8u_table::sinval
(byte) sin8u_table::sinval#0 reg byte x 3.666666666666667
(word) sin8u_table::step
(word) sin8u_table::step#0 step zp ZP_WORD:16 0.3191489361702128
(const string) sin8u_table::str str = (string) "step:@"
(const string) sin8u_table::str1 str1 = (string) " min:@"
(const string) sin8u_table::str2 str2 = (string) " max:@"
(const string) sin8u_table::str3 str3 = (string) " ampl:@"
(const string) sin8u_table::str4 str4 = (string) " mid:@"
(const string) sin8u_table::str5 str5 = (string) "x: @"
(const string) sin8u_table::str6 str6 = (string) " sin: @"
(word) sin8u_table::sum
(const word) sin8u_table::sum#0 sum = (const byte) sin8u_table::min#0+(const byte) sin8u_table::max#0
(word) sin8u_table::tabsize
(word) sin8u_table::x
(word) sin8u_table::x#1 x zp ZP_WORD:2 7.333333333333333
(word) sin8u_table::x#2 x zp ZP_WORD:2 2.0
zp ZP_WORD:2 [ sin8u_table::x#2 sin8u_table::x#1 print_word::w#2 print_word::w#1 print_word::w#0 divr16u::rem#4 divr16u::rem#10 divr16u::rem#5 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 print_cls::sc#2 print_cls::sc#1 ]
zp ZP_WORD:4 [ sin8u_table::sintab#2 sin8u_table::sintab#1 divr16u::dividend#2 divr16u::dividend#0 ]
zp ZP_WORD:6 [ sin8u_table::i#2 sin8u_table::i#1 ]
zp ZP_WORD:8 [ line_cursor#12 line_cursor#23 line_cursor#1 ]
zp ZP_BYTE:10 [ print_byte::b#7 print_byte::b#0 print_byte::b#1 print_byte::b#6 sin8s::isUpper#10 ]
reg byte a [ print_char::ch#2 print_char::ch#0 print_char::ch#1 ]
zp ZP_WORD:11 [ char_cursor#78 char_cursor#46 char_cursor#73 char_cursor#2 char_cursor#11 char_cursor#92 char_cursor#1 mul8su::m#2 mul8su::m#1 mul8su::m#0 mul8su::return#2 mul8u::return#2 mul8u::res#2 mul8u::res#6 mul8u::res#1 mul8u::return#3 sin8u_table::$17 mulu8_sel::$0 mulu8_sel::$1 sin8s::x#6 sin8s::x#4 sin8s::x#2 sin8s::x#0 sin8s::x#1 sin8s::$6 ]
zp ZP_WORD:13 [ print_str::str#8 print_str::str#10 print_str::str#0 mul8u::mb#2 mul8u::mb#0 mul8u::mb#1 ]
reg byte a [ mul8u::b#2 mul8u::b#1 ]
reg byte x [ mul8u::a#3 mul8u::a#6 mul8u::a#8 mul8u::a#2 mul8u::a#0 ]
reg byte x [ sin8s::usinx#4 sin8s::usinx#1 sin8s::usinx#2 ]
reg byte a [ sin8s::return#0 sin8s::return#5 sin8s::sinx#1 ]
reg byte x [ mulu8_sel::v1#5 mulu8_sel::v1#1 mulu8_sel::v1#2 mulu8_sel::v1#3 mulu8_sel::v1#4 mulu8_sel::v1#0 ]
reg byte y [ mulu8_sel::v2#5 mulu8_sel::v2#1 mulu8_sel::v2#3 mulu8_sel::v2#4 mulu8_sel::v2#0 ]
zp ZP_BYTE:15 [ mulu8_sel::select#5 ]
zp ZP_WORD:16 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#2 div16u::return#2 sin8u_table::step#0 div16u::return#0 ]
reg byte x [ divr16u::i#2 divr16u::i#1 ]
reg byte a [ sin8s::return#2 ]
reg byte y [ mul8su::a#0 ]
reg byte a [ sin8u_table::$18 ]
reg byte x [ sin8u_table::sinval#0 ]
reg byte a [ print_byte::$0 ]
reg byte a [ print_byte::$2 ]
reg byte a [ mul8su::$6 ]
reg byte a [ mul8su::$10 ]
reg byte a [ mul8u::$1 ]
zp ZP_BYTE:18 [ sin8s::x1#0 ]
reg byte a [ mulu8_sel::return#0 ]
reg byte a [ sin8s::x2#0 ]
reg byte a [ mulu8_sel::return#1 ]
zp ZP_BYTE:19 [ sin8s::x3#0 ]
reg byte a [ mulu8_sel::return#2 ]
reg byte a [ sin8s::x3_6#0 ]
zp ZP_BYTE:20 [ sin8s::usinx#0 ]
reg byte a [ mulu8_sel::return#10 ]
reg byte a [ sin8s::x4#0 ]
reg byte a [ mulu8_sel::return#11 ]
reg byte a [ sin8s::x5#0 ]
reg byte a [ sin8s::x5_128#0 ]
reg byte a [ mulu8_sel::return#12 ]
reg byte a [ divr16u::$1 ]
reg byte a [ divr16u::$2 ]

View File

@ -1,13 +1,13 @@
@begin: scope:[] from
[0] phi() [ ] ( )
to:@24
@24: scope:[] from @begin
to:@25
@25: scope:[] from @begin
[1] phi() [ ] ( )
[2] call main param-assignment [ ] ( )
to:@end
@end: scope:[] from @24
@end: scope:[] from @25
[3] phi() [ ] ( )
main: scope:[main] from @24
main: scope:[main] from @25
[4] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 5 [ ] ( main:2 [ ] )
[5] call print_cls param-assignment [ ] ( main:2 [ ] )
to:main::@1

View File

@ -237,6 +237,16 @@ signed word mul8s(signed byte a, signed byte b) {
return (signed word)m;
}
// Multiply a signed byte and an unsigned byte (into a signed word)
// Fixes offsets introduced by using unsigned multiplication
signed word mul8su(signed byte a, byte b) {
word m = mul8u((byte)a, (byte) b);
if(a<0) {
>m = (>m)-(byte)b;
}
return (signed word)m;
}
// Perform binary multiplication of two unsigned 16-bit words into a 32-bit unsigned double word
dword mul16u(word a, word b) {
dword res = 0;
@ -535,6 +545,27 @@ mul8s::@return:
(signed word) mul8s::return ← (signed word) mul8s::return
return (signed word) mul8s::return
endproc // mul8s()
proc (signed word()) mul8su((signed byte) mul8su::a , (byte) mul8su::b)
(byte~) mul8su::$0 ← ((byte)) (signed byte) mul8su::a
(byte~) mul8su::$1 ← ((byte)) (byte) mul8su::b
(word~) mul8su::$2 ← call mul8u (byte~) mul8su::$0 (byte~) mul8su::$1
(word) mul8su::m ← (word~) mul8su::$2
(boolean~) mul8su::$3 ← (signed byte) mul8su::a < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) mul8su::$4 ← ! (boolean~) mul8su::$3
if((boolean~) mul8su::$4) goto mul8su::@1
(byte~) mul8su::$5 ← > (word) mul8su::m
(byte~) mul8su::$6 ← > (word) mul8su::m
(byte~) mul8su::$7 ← ((byte)) (byte) mul8su::b
(byte/signed byte/word/signed word/dword/signed dword~) mul8su::$8 ← (byte~) mul8su::$6 - (byte~) mul8su::$7
lval((byte~) mul8su::$5) ← (byte/signed byte/word/signed word/dword/signed dword~) mul8su::$8
mul8su::@1:
(signed word~) mul8su::$9 ← ((signed word)) (word) mul8su::m
(signed word) mul8su::return ← (signed word~) mul8su::$9
goto mul8su::@return
mul8su::@return:
(signed word) mul8su::return ← (signed word) mul8su::return
return (signed word) mul8su::return
endproc // mul8su()
proc (dword()) mul16u((word) mul16u::a , (word) mul16u::b)
(dword) mul16u::res ← (byte/signed byte/word/signed word/dword/signed dword) 0
(dword) mul16u::mb ← (word) mul16u::b
@ -1026,6 +1057,23 @@ SYMBOLS
(signed byte) mul8s::b
(word) mul8s::m
(signed word) mul8s::return
(signed word()) mul8su((signed byte) mul8su::a , (byte) mul8su::b)
(byte~) mul8su::$0
(byte~) mul8su::$1
(word~) mul8su::$2
(boolean~) mul8su::$3
(boolean~) mul8su::$4
(byte~) mul8su::$5
(byte~) mul8su::$6
(byte~) mul8su::$7
(byte/signed byte/word/signed word/dword/signed dword~) mul8su::$8
(signed word~) mul8su::$9
(label) mul8su::@1
(label) mul8su::@return
(signed byte) mul8su::a
(byte) mul8su::b
(word) mul8su::m
(signed word) mul8su::return
(word()) mul8u((byte) mul8u::a , (byte) mul8u::b)
(boolean~) mul8u::$0
(byte~) mul8u::$1
@ -1225,6 +1273,7 @@ SYMBOLS
Fixing lo/hi-lvalue with new tmpVar mul8s::$16 mul8s::$16 ← mul8s::$8
Fixing lo/hi-lvalue with new tmpVar mul8s::$17 mul8s::$17 ← mul8s::$14
Fixing lo/hi-lvalue with new tmpVar mul8su::$10 mul8su::$10 ← mul8su::$8
Fixing lo/hi-lvalue with new tmpVar mul16s::$16 mul16s::$16 ← mul16s::$8
Fixing lo/hi-lvalue with new tmpVar mul16s::$17 mul16s::$17 ← mul16s::$14
Fixing lo/hi-lvalue with new tmpVar mulf8s::$16 mulf8s::$16 ← mulf8s::$8
@ -1483,6 +1532,35 @@ mul8s::@5: scope:[mul8s] from
to:mul8s::@return
@12: scope:[] from @11
to:@13
mul8su: scope:[mul8su] from
(byte~) mul8su::$0 ← ((byte)) (signed byte) mul8su::a
(byte~) mul8su::$1 ← ((byte)) (byte) mul8su::b
(word~) mul8su::$2 ← call mul8u (byte~) mul8su::$0 (byte~) mul8su::$1
(word) mul8su::m ← (word~) mul8su::$2
(boolean~) mul8su::$3 ← (signed byte) mul8su::a < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) mul8su::$4 ← ! (boolean~) mul8su::$3
if((boolean~) mul8su::$4) goto mul8su::@1
to:mul8su::@2
mul8su::@1: scope:[mul8su] from mul8su mul8su::@2
(signed word~) mul8su::$9 ← ((signed word)) (word) mul8su::m
(signed word) mul8su::return ← (signed word~) mul8su::$9
to:mul8su::@return
mul8su::@2: scope:[mul8su] from mul8su
(byte~) mul8su::$5 ← > (word) mul8su::m
(byte~) mul8su::$6 ← > (word) mul8su::m
(byte~) mul8su::$7 ← ((byte)) (byte) mul8su::b
(byte/signed byte/word/signed word/dword/signed dword~) mul8su::$8 ← (byte~) mul8su::$6 - (byte~) mul8su::$7
(byte/signed byte/word/signed word/dword/signed dword~) mul8su::$10 ← (byte/signed byte/word/signed word/dword/signed dword~) mul8su::$8
(word) mul8su::m ← (word) mul8su::m hi= (byte/signed byte/word/signed word/dword/signed dword~) mul8su::$10
to:mul8su::@1
mul8su::@return: scope:[mul8su] from mul8su::@1 mul8su::@3
(signed word) mul8su::return ← (signed word) mul8su::return
return (signed word) mul8su::return
to:@return
mul8su::@3: scope:[mul8su] from
to:mul8su::@return
@13: scope:[] from @12
to:@14
mul16u: scope:[mul16u] from
(dword) mul16u::res ← (byte/signed byte/word/signed word/dword/signed dword) 0
(dword) mul16u::mb ← ((dword)) (word) mul16u::b
@ -1522,8 +1600,8 @@ mul16u::@return: scope:[mul16u] from mul16u::@3 mul16u::@9
to:@return
mul16u::@9: scope:[mul16u] from
to:mul16u::@return
@13: scope:[] from @12
to:@14
@14: scope:[] from @13
to:@15
mul16s: scope:[mul16s] from
(word~) mul16s::$0 ← ((word)) (signed word) mul16s::a
(word~) mul16s::$1 ← ((word)) (signed word) mul16s::b
@ -1564,12 +1642,12 @@ mul16s::@return: scope:[mul16s] from mul16s::@2 mul16s::@5
to:@return
mul16s::@5: scope:[mul16s] from
to:mul16s::@return
@14: scope:[] from @13
@15: scope:[] from @14
(byte[512]) mulf_sqr1_lo ← { fill( 512, 0) }
(byte[512]) mulf_sqr1_hi ← { fill( 512, 0) }
(byte[512]) mulf_sqr2_lo ← { fill( 512, 0) }
(byte[512]) mulf_sqr2_hi ← { fill( 512, 0) }
to:@15
to:@16
mulf_init: scope:[mulf_init] from
(word) mulf_init::sqr ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) mulf_init::x_2 ← (byte/signed byte/word/signed word/dword/signed dword) 0
@ -1641,8 +1719,8 @@ mulf_init::@8: scope:[mulf_init] from mulf_init::@4
mulf_init::@return: scope:[mulf_init] from mulf_init::@8
return
to:@return
@15: scope:[] from @14
to:@16
@16: scope:[] from @15
to:@17
mulf8u: scope:[mulf8u] from
(byte*) mulf8u::memA ← ((byte*)) (byte/word/signed word/dword/signed dword) 254
(byte*) mulf8u::memB ← ((byte*)) (byte/word/signed word/dword/signed dword) 255
@ -1657,8 +1735,8 @@ mulf8u::@return: scope:[mulf8u] from mulf8u mulf8u::@1
to:@return
mulf8u::@1: scope:[mulf8u] from
to:mulf8u::@return
@16: scope:[] from @15
to:@17
@17: scope:[] from @16
to:@18
mulf8s: scope:[mulf8s] from
(byte~) mulf8s::$0 ← ((byte)) (signed byte) mulf8s::a
(byte~) mulf8s::$1 ← ((byte)) (signed byte) mulf8s::b
@ -1699,9 +1777,9 @@ mulf8s::@return: scope:[mulf8s] from mulf8s::@2 mulf8s::@5
to:@return
mulf8s::@5: scope:[mulf8s] from
to:mulf8s::@return
@17: scope:[] from @16
@18: scope:[] from @17
(byte*) BGCOL ← ((byte*)) (word/dword/signed dword) 53281
to:@18
to:@19
main: scope:[main] from
*((byte*) BGCOL) ← (byte/signed byte/word/signed word/dword/signed dword) 5
(void~) main::$0 ← call print_cls
@ -1712,8 +1790,8 @@ main: scope:[main] from
main::@return: scope:[main] from main
return
to:@return
@18: scope:[] from @17
to:@19
@19: scope:[] from @18
to:@20
muls16u: scope:[muls16u] from
(dword) muls16u::m ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) muls16u::$0 ← (word) muls16u::a != (byte/signed byte/word/signed word/dword/signed dword) 0
@ -1741,8 +1819,8 @@ muls16u::@return: scope:[muls16u] from muls16u::@1 muls16u::@5
to:@return
muls16u::@5: scope:[muls16u] from
to:muls16u::@return
@19: scope:[] from @18
to:@20
@20: scope:[] from @19
to:@21
muls16s: scope:[muls16s] from
(signed dword) muls16s::m ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) muls16s::$0 ← (signed word) muls16s::a < (byte/signed byte/word/signed word/dword/signed dword) 0
@ -1791,8 +1869,8 @@ muls16s::@return: scope:[muls16s] from muls16s::@11 muls16s::@3
to:@return
muls16s::@11: scope:[muls16s] from
to:muls16s::@return
@20: scope:[] from @19
to:@21
@21: scope:[] from @20
to:@22
mul16u_compare: scope:[mul16u_compare] from
(word) mul16u_compare::a ← (byte/signed byte/word/signed word/dword/signed dword) 0
(word) mul16u_compare::b ← (byte/signed byte/word/signed word/dword/signed dword) 0
@ -1846,8 +1924,8 @@ mul16u_compare::@9: scope:[mul16u_compare] from mul16u_compare::@8
(void~) mul16u_compare::$11 ← call print_str (string) "word multiply results match!@"
(void~) mul16u_compare::$12 ← call print_ln
to:mul16u_compare::@return
@21: scope:[] from @20
to:@22
@22: scope:[] from @21
to:@23
mul16u_error: scope:[mul16u_error] from
(void~) mul16u_error::$0 ← call print_str (string) "word multiply mismatch @"
(void~) mul16u_error::$1 ← call print_word (word) mul16u_error::a
@ -1862,8 +1940,8 @@ mul16u_error: scope:[mul16u_error] from
mul16u_error::@return: scope:[mul16u_error] from mul16u_error
return
to:@return
@22: scope:[] from @21
to:@23
@23: scope:[] from @22
to:@24
mul16s_compare: scope:[mul16s_compare] from
(signed word/signed dword~) mul16s_compare::$0 ← - (word/signed word/dword/signed dword) 32767
(signed word) mul16s_compare::a ← (signed word/signed dword~) mul16s_compare::$0
@ -1919,8 +1997,8 @@ mul16s_compare::@9: scope:[mul16s_compare] from mul16s_compare::@8
(void~) mul16s_compare::$13 ← call print_str (string) "signed word multiply results match!@"
(void~) mul16s_compare::$14 ← call print_ln
to:mul16s_compare::@return
@23: scope:[] from @22
to:@24
@24: scope:[] from @23
to:@25
mul16s_error: scope:[mul16s_error] from
(void~) mul16s_error::$0 ← call print_str (string) "signed word multiply mismatch @"
(void~) mul16s_error::$1 ← call print_sword (signed word) mul16s_error::a
@ -1935,13 +2013,14 @@ mul16s_error: scope:[mul16s_error] from
mul16s_error::@return: scope:[mul16s_error] from mul16s_error
return
to:@return
@24: scope:[] from @23
@25: scope:[] from @24
call main
to:@end
@end: scope:[] from @24
@end: scope:[] from @25
Removing unused procedure print_sbyte
Removing unused procedure mul8s
Removing unused procedure mul8su
Removing unused procedure mulf8s
Removing unused procedure mul8u
Removing unused procedure mulf8u
@ -2012,28 +2091,29 @@ Removing empty block @9
Removing empty block @10
Removing empty block @11
Removing empty block @12
Removing empty block @13
Removing empty block mul16u::@5
Removing empty block mul16u::@6
Removing empty block mul16u::@8
Removing empty block mul16u::@9
Removing empty block @13
Removing empty block @14
Removing empty block mul16s::@5
Removing empty block @15
Removing empty block @16
Removing empty block @18
Removing empty block @17
Removing empty block @19
Removing empty block muls16u::@4
Removing empty block muls16u::@5
Removing empty block @19
Removing empty block @20
Removing empty block muls16s::@7
Removing empty block muls16s::@8
Removing empty block muls16s::@10
Removing empty block muls16s::@11
Removing empty block @20
Removing empty block mul16u_compare::@7
Removing empty block @21
Removing empty block mul16u_compare::@7
Removing empty block @22
Removing empty block mul16s_compare::@7
Removing empty block @23
Removing empty block mul16s_compare::@7
Removing empty block @24
PROCEDURE MODIFY VARIABLE ANALYSIS
print_str modifies char_cursor
print_ln modifies line_cursor
@ -2073,7 +2153,7 @@ CONTROL FLOW GRAPH SSA WITH ASSIGNMENT CALL & RETURN
(byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024
(byte*) line_cursor#0 ← (byte*) SCREEN#0
(byte*) char_cursor#0 ← (byte*) line_cursor#0
to:@14
to:@15
print_str: scope:[print_str] from mul16s_compare::@9 mul16s_error mul16s_error::@2 mul16s_error::@4 mul16s_error::@6 mul16u_compare::@9 mul16u_error mul16u_error::@2 mul16u_error::@4 mul16u_error::@6
(byte*) char_cursor#130 ← phi( mul16s_compare::@9/(byte*) char_cursor#127 mul16s_error/(byte*) char_cursor#128 mul16s_error::@2/(byte*) char_cursor#47 mul16s_error::@4/(byte*) char_cursor#49 mul16s_error::@6/(byte*) char_cursor#51 mul16u_compare::@9/(byte*) char_cursor#124 mul16u_error/(byte*) char_cursor#125 mul16u_error::@2/(byte*) char_cursor#33 mul16u_error::@4/(byte*) char_cursor#35 mul16u_error::@6/(byte*) char_cursor#37 )
(byte*) print_str::str#13 ← phi( mul16s_compare::@9/(byte*) print_str::str#6 mul16s_error/(byte*) print_str::str#7 mul16s_error::@2/(byte*) print_str::str#8 mul16s_error::@4/(byte*) print_str::str#9 mul16s_error::@6/(byte*) print_str::str#10 mul16u_compare::@9/(byte*) print_str::str#1 mul16u_error/(byte*) print_str::str#2 mul16u_error::@2/(byte*) print_str::str#3 mul16u_error::@4/(byte*) print_str::str#4 mul16u_error::@6/(byte*) print_str::str#5 )
@ -2401,14 +2481,14 @@ mul16s::@return: scope:[mul16s] from mul16s::@2
(signed dword) mul16s::return#1 ← (signed dword) mul16s::return#3
return
to:@return
@14: scope:[] from @begin
@15: scope:[] from @begin
(byte*) char_cursor#138 ← phi( @begin/(byte*) char_cursor#0 )
(byte*) line_cursor#56 ← phi( @begin/(byte*) line_cursor#0 )
(byte[512]) mulf_sqr1_lo#0 ← { fill( 512, 0) }
(byte[512]) mulf_sqr1_hi#0 ← { fill( 512, 0) }
(byte[512]) mulf_sqr2_lo#0 ← { fill( 512, 0) }
(byte[512]) mulf_sqr2_hi#0 ← { fill( 512, 0) }
to:@17
to:@18
mulf_init: scope:[mulf_init] from main::@1
(word) mulf_init::sqr#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) mulf_init::x_2#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
@ -2506,15 +2586,15 @@ mulf_init::@8: scope:[mulf_init] from mulf_init::@4
mulf_init::@return: scope:[mulf_init] from mulf_init::@8
return
to:@return
@17: scope:[] from @14
(byte*) char_cursor#137 ← phi( @14/(byte*) char_cursor#138 )
(byte*) line_cursor#55 ← phi( @14/(byte*) line_cursor#56 )
@18: scope:[] from @15
(byte*) char_cursor#137 ← phi( @15/(byte*) char_cursor#138 )
(byte*) line_cursor#55 ← phi( @15/(byte*) line_cursor#56 )
(byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281
to:@24
main: scope:[main] from @24
(byte*) char_cursor#121 ← phi( @24/(byte*) char_cursor#129 )
(byte*) line_cursor#40 ← phi( @24/(byte*) line_cursor#48 )
(byte*) BGCOL#1 ← phi( @24/(byte*) BGCOL#4 )
to:@25
main: scope:[main] from @25
(byte*) char_cursor#121 ← phi( @25/(byte*) char_cursor#129 )
(byte*) line_cursor#40 ← phi( @25/(byte*) line_cursor#48 )
(byte*) BGCOL#1 ← phi( @25/(byte*) BGCOL#4 )
*((byte*) BGCOL#1) ← (byte/signed byte/word/signed word/dword/signed dword) 5
call print_cls param-assignment
to:main::@1
@ -3165,25 +3245,25 @@ mul16s_error::@return: scope:[mul16s_error] from mul16s_error::@9
(byte*) line_cursor#18 ← (byte*) line_cursor#37
return
to:@return
@24: scope:[] from @17
(byte*) char_cursor#129 ← phi( @17/(byte*) char_cursor#137 )
(byte*) line_cursor#48 ← phi( @17/(byte*) line_cursor#55 )
(byte*) BGCOL#4 ← phi( @17/(byte*) BGCOL#0 )
@25: scope:[] from @18
(byte*) char_cursor#129 ← phi( @18/(byte*) char_cursor#137 )
(byte*) line_cursor#48 ← phi( @18/(byte*) line_cursor#55 )
(byte*) BGCOL#4 ← phi( @18/(byte*) BGCOL#0 )
call main param-assignment
to:@25
@25: scope:[] from @24
(byte*) char_cursor#111 ← phi( @24/(byte*) char_cursor#27 )
(byte*) line_cursor#38 ← phi( @24/(byte*) line_cursor#8 )
to:@26
@26: scope:[] from @25
(byte*) char_cursor#111 ← phi( @25/(byte*) char_cursor#27 )
(byte*) line_cursor#38 ← phi( @25/(byte*) line_cursor#8 )
(byte*) line_cursor#19 ← (byte*) line_cursor#38
(byte*) char_cursor#56 ← (byte*) char_cursor#111
to:@end
@end: scope:[] from @25
@end: scope:[] from @26
SYMBOL TABLE SSA
(label) @14
(label) @17
(label) @24
(label) @15
(label) @18
(label) @25
(label) @26
(label) @begin
(label) @end
(byte*) BGCOL
@ -4967,10 +5047,10 @@ Culled Empty Block (label) print_sdword::@3
Culled Empty Block (label) print_byte::@2
Culled Empty Block (label) print_cls::@2
Culled Empty Block (label) mul16u::@3
Culled Empty Block (label) @14
Culled Empty Block (label) @15
Culled Empty Block (label) mulf_init::@6
Not culling empty block because it shares successor with its predecessor. (label) mulf_init::@7
Culled Empty Block (label) @17
Culled Empty Block (label) @18
Culled Empty Block (label) main::@4
Culled Empty Block (label) muls16u::@3
Culled Empty Block (label) muls16s::@6
@ -4984,7 +5064,7 @@ Not culling empty block because it shares successor with its predecessor. (label
Culled Empty Block (label) mul16s_compare::@12
Culled Empty Block (label) mul16s_compare::@14
Culled Empty Block (label) mul16s_error::@9
Culled Empty Block (label) @25
Culled Empty Block (label) @26
Succesful SSA optimization Pass2CullEmptyBlocks
Not culling empty block because it shares successor with its predecessor. (label) mulf_init::@7
Not culling empty block because it shares successor with its predecessor. (label) mul16u_compare::@5
@ -5269,7 +5349,7 @@ Constant inlined print_char::ch#1 = (byte) '-'
Constant inlined print_char::ch#0 = (byte) '-'
Constant inlined print_byte::$4 = (const string) print_byte::hextab#0
Succesful SSA optimization Pass2ConstantInlining
Block Sequence Planned @begin @24 @end main main::@1 main::@2 main::@3 main::@return mul16s_compare mul16s_compare::@1 mul16s_compare::@2 mul16s_compare::@10 mul16s_compare::@11 mul16s_compare::@5 mul16s_compare::@3 mul16s_compare::@6 mul16s_compare::@return mul16s_compare::@4 mul16s_compare::@8 mul16s_compare::@9 mul16s_compare::@13 print_ln print_ln::@1 print_ln::@return print_str print_str::@1 print_str::@return print_str::@2 mul16s_error mul16s_error::@1 mul16s_error::@2 mul16s_error::@3 mul16s_error::@4 mul16s_error::@5 mul16s_error::@6 mul16s_error::@7 mul16s_error::@8 mul16s_error::@return print_sdword print_sdword::@2 print_sdword::@4 print_sdword::@1 print_sdword::@return print_dword print_dword::@1 print_dword::@return print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_sword print_sword::@2 print_sword::@4 print_sword::@1 print_sword::@return mul16s mul16s::@6 mul16s::@3 mul16s::@1 mul16s::@4 mul16s::@2 mul16s::@return mul16u mul16u::@1 mul16u::@return mul16u::@2 mul16u::@7 mul16u::@4 muls16s muls16s::@2 muls16s::@3 muls16s::@return muls16s::@1 muls16s::@5 mul16u_compare mul16u_compare::@1 mul16u_compare::@2 mul16u_compare::@10 mul16u_compare::@11 mul16u_compare::@5 mul16u_compare::@3 mul16u_compare::@6 mul16u_compare::@return mul16u_compare::@4 mul16u_compare::@8 mul16u_compare::@9 mul16u_compare::@13 mul16u_error mul16u_error::@1 mul16u_error::@2 mul16u_error::@3 mul16u_error::@4 mul16u_error::@5 mul16u_error::@6 mul16u_error::@7 mul16u_error::@8 mul16u_error::@return muls16u muls16u::@2 muls16u::@1 muls16u::@return mulf_init mulf_init::@1 mulf_init::@5 mulf_init::@2 mulf_init::@3 mulf_init::@7 mulf_init::@4 mulf_init::@8 mulf_init::@return print_cls print_cls::@1 print_cls::@return
Block Sequence Planned @begin @25 @end main main::@1 main::@2 main::@3 main::@return mul16s_compare mul16s_compare::@1 mul16s_compare::@2 mul16s_compare::@10 mul16s_compare::@11 mul16s_compare::@5 mul16s_compare::@3 mul16s_compare::@6 mul16s_compare::@return mul16s_compare::@4 mul16s_compare::@8 mul16s_compare::@9 mul16s_compare::@13 print_ln print_ln::@1 print_ln::@return print_str print_str::@1 print_str::@return print_str::@2 mul16s_error mul16s_error::@1 mul16s_error::@2 mul16s_error::@3 mul16s_error::@4 mul16s_error::@5 mul16s_error::@6 mul16s_error::@7 mul16s_error::@8 mul16s_error::@return print_sdword print_sdword::@2 print_sdword::@4 print_sdword::@1 print_sdword::@return print_dword print_dword::@1 print_dword::@return print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_sword print_sword::@2 print_sword::@4 print_sword::@1 print_sword::@return mul16s mul16s::@6 mul16s::@3 mul16s::@1 mul16s::@4 mul16s::@2 mul16s::@return mul16u mul16u::@1 mul16u::@return mul16u::@2 mul16u::@7 mul16u::@4 muls16s muls16s::@2 muls16s::@3 muls16s::@return muls16s::@1 muls16s::@5 mul16u_compare mul16u_compare::@1 mul16u_compare::@2 mul16u_compare::@10 mul16u_compare::@11 mul16u_compare::@5 mul16u_compare::@3 mul16u_compare::@6 mul16u_compare::@return mul16u_compare::@4 mul16u_compare::@8 mul16u_compare::@9 mul16u_compare::@13 mul16u_error mul16u_error::@1 mul16u_error::@2 mul16u_error::@3 mul16u_error::@4 mul16u_error::@5 mul16u_error::@6 mul16u_error::@7 mul16u_error::@8 mul16u_error::@return muls16u muls16u::@2 muls16u::@1 muls16u::@return mulf_init mulf_init::@1 mulf_init::@5 mulf_init::@2 mulf_init::@3 mulf_init::@7 mulf_init::@4 mulf_init::@8 mulf_init::@return print_cls print_cls::@1 print_cls::@return
Added new block during phi lifting mul16s_compare::@15(between mul16s_compare::@8 and mul16s_compare::@1)
Added new block during phi lifting mul16s_compare::@16(between mul16s_compare::@4 and mul16s_compare::@2)
Added new block during phi lifting print_ln::@3(between print_ln::@1 and print_ln::@1)
@ -5291,9 +5371,9 @@ Added new block during phi lifting mulf_init::@10(between mulf_init::@1 and mulf
Added new block during phi lifting mulf_init::@11(between mulf_init::@4 and mulf_init::@3)
Added new block during phi lifting mulf_init::@12(between mulf_init::@3 and mulf_init::@4)
Added new block during phi lifting print_cls::@3(between print_cls::@1 and print_cls::@1)
Block Sequence Planned @begin @24 @end main main::@1 main::@2 main::@3 main::@return mul16s_compare mul16s_compare::@1 mul16s_compare::@2 mul16s_compare::@10 mul16s_compare::@11 mul16s_compare::@5 mul16s_compare::@3 mul16s_compare::@6 mul16s_compare::@return mul16s_compare::@4 mul16s_compare::@8 mul16s_compare::@9 mul16s_compare::@13 mul16s_compare::@15 mul16s_compare::@16 print_ln print_ln::@1 print_ln::@return print_ln::@3 print_str print_str::@1 print_str::@return print_str::@2 mul16s_error mul16s_error::@1 mul16s_error::@2 mul16s_error::@3 mul16s_error::@4 mul16s_error::@5 mul16s_error::@6 mul16s_error::@7 mul16s_error::@8 mul16s_error::@return print_sdword print_sdword::@2 print_sdword::@4 print_sdword::@1 print_sdword::@return print_sdword::@5 print_dword print_dword::@1 print_dword::@return print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_sword print_sword::@2 print_sword::@4 print_sword::@1 print_sword::@return print_sword::@5 mul16s mul16s::@6 mul16s::@3 mul16s::@1 mul16s::@4 mul16s::@2 mul16s::@return mul16s::@8 mul16s::@7 mul16u mul16u::@1 mul16u::@return mul16u::@2 mul16u::@7 mul16u::@4 mul16u::@10 muls16s muls16s::@2 muls16s::@13 muls16s::@3 muls16s::@return muls16s::@12 muls16s::@1 muls16s::@5 muls16s::@14 muls16s::@15 mul16u_compare mul16u_compare::@1 mul16u_compare::@2 mul16u_compare::@10 mul16u_compare::@11 mul16u_compare::@5 mul16u_compare::@3 mul16u_compare::@6 mul16u_compare::@return mul16u_compare::@4 mul16u_compare::@8 mul16u_compare::@9 mul16u_compare::@13 mul16u_compare::@15 mul16u_compare::@16 mul16u_error mul16u_error::@1 mul16u_error::@2 mul16u_error::@3 mul16u_error::@4 mul16u_error::@5 mul16u_error::@6 mul16u_error::@7 mul16u_error::@8 mul16u_error::@return muls16u muls16u::@2 muls16u::@7 muls16u::@1 muls16u::@return muls16u::@6 mulf_init mulf_init::@1 mulf_init::@5 mulf_init::@2 mulf_init::@3 mulf_init::@7 mulf_init::@4 mulf_init::@8 mulf_init::@return mulf_init::@11 mulf_init::@12 mulf_init::@9 mulf_init::@10 print_cls print_cls::@1 print_cls::@return print_cls::@3
Block Sequence Planned @begin @25 @end main main::@1 main::@2 main::@3 main::@return mul16s_compare mul16s_compare::@1 mul16s_compare::@2 mul16s_compare::@10 mul16s_compare::@11 mul16s_compare::@5 mul16s_compare::@3 mul16s_compare::@6 mul16s_compare::@return mul16s_compare::@4 mul16s_compare::@8 mul16s_compare::@9 mul16s_compare::@13 mul16s_compare::@15 mul16s_compare::@16 print_ln print_ln::@1 print_ln::@return print_ln::@3 print_str print_str::@1 print_str::@return print_str::@2 mul16s_error mul16s_error::@1 mul16s_error::@2 mul16s_error::@3 mul16s_error::@4 mul16s_error::@5 mul16s_error::@6 mul16s_error::@7 mul16s_error::@8 mul16s_error::@return print_sdword print_sdword::@2 print_sdword::@4 print_sdword::@1 print_sdword::@return print_sdword::@5 print_dword print_dword::@1 print_dword::@return print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_sword print_sword::@2 print_sword::@4 print_sword::@1 print_sword::@return print_sword::@5 mul16s mul16s::@6 mul16s::@3 mul16s::@1 mul16s::@4 mul16s::@2 mul16s::@return mul16s::@8 mul16s::@7 mul16u mul16u::@1 mul16u::@return mul16u::@2 mul16u::@7 mul16u::@4 mul16u::@10 muls16s muls16s::@2 muls16s::@13 muls16s::@3 muls16s::@return muls16s::@12 muls16s::@1 muls16s::@5 muls16s::@14 muls16s::@15 mul16u_compare mul16u_compare::@1 mul16u_compare::@2 mul16u_compare::@10 mul16u_compare::@11 mul16u_compare::@5 mul16u_compare::@3 mul16u_compare::@6 mul16u_compare::@return mul16u_compare::@4 mul16u_compare::@8 mul16u_compare::@9 mul16u_compare::@13 mul16u_compare::@15 mul16u_compare::@16 mul16u_error mul16u_error::@1 mul16u_error::@2 mul16u_error::@3 mul16u_error::@4 mul16u_error::@5 mul16u_error::@6 mul16u_error::@7 mul16u_error::@8 mul16u_error::@return muls16u muls16u::@2 muls16u::@7 muls16u::@1 muls16u::@return muls16u::@6 mulf_init mulf_init::@1 mulf_init::@5 mulf_init::@2 mulf_init::@3 mulf_init::@7 mulf_init::@4 mulf_init::@8 mulf_init::@return mulf_init::@11 mulf_init::@12 mulf_init::@9 mulf_init::@10 print_cls print_cls::@1 print_cls::@return print_cls::@3
Adding NOP phi() at start of @begin
Adding NOP phi() at start of @24
Adding NOP phi() at start of @25
Adding NOP phi() at start of @end
Adding NOP phi() at start of main::@1
Adding NOP phi() at start of main::@2
@ -5486,9 +5566,9 @@ Not culling empty block because it shares successor with its predecessor. (label
Culled Empty Block (label) mulf_init::@9
Culled Empty Block (label) mulf_init::@10
Culled Empty Block (label) print_cls::@3
Block Sequence Planned @begin @24 @end main main::@1 main::@2 main::@3 main::@return mul16s_compare mul16s_compare::@1 mul16s_compare::@2 mul16s_compare::@10 mul16s_compare::@11 mul16s_compare::@5 mul16s_compare::@3 mul16s_compare::@6 mul16s_compare::@return mul16s_compare::@4 mul16s_compare::@8 mul16s_compare::@9 mul16s_compare::@13 print_ln print_ln::@1 print_ln::@return print_str print_str::@1 print_str::@return print_str::@2 mul16s_error mul16s_error::@1 mul16s_error::@2 mul16s_error::@3 mul16s_error::@4 mul16s_error::@5 mul16s_error::@6 mul16s_error::@7 mul16s_error::@8 mul16s_error::@return print_sdword print_sdword::@2 print_sdword::@4 print_sdword::@1 print_sdword::@return print_dword print_dword::@1 print_dword::@return print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_sword print_sword::@2 print_sword::@4 print_sword::@1 print_sword::@return mul16s mul16s::@6 mul16s::@3 mul16s::@1 mul16s::@4 mul16s::@2 mul16s::@return mul16u mul16u::@1 mul16u::@return mul16u::@2 mul16u::@7 mul16u::@4 muls16s muls16s::@2 muls16s::@3 muls16s::@return muls16s::@1 muls16s::@5 mul16u_compare mul16u_compare::@1 mul16u_compare::@2 mul16u_compare::@10 mul16u_compare::@11 mul16u_compare::@5 mul16u_compare::@3 mul16u_compare::@6 mul16u_compare::@return mul16u_compare::@4 mul16u_compare::@8 mul16u_compare::@9 mul16u_compare::@13 mul16u_error mul16u_error::@1 mul16u_error::@2 mul16u_error::@3 mul16u_error::@4 mul16u_error::@5 mul16u_error::@6 mul16u_error::@7 mul16u_error::@8 mul16u_error::@return muls16u muls16u::@2 muls16u::@1 muls16u::@return mulf_init mulf_init::@1 mulf_init::@5 mulf_init::@2 mulf_init::@3 mulf_init::@4 mulf_init::@8 mulf_init::@return mulf_init::@12 print_cls print_cls::@1 print_cls::@return
Block Sequence Planned @begin @25 @end main main::@1 main::@2 main::@3 main::@return mul16s_compare mul16s_compare::@1 mul16s_compare::@2 mul16s_compare::@10 mul16s_compare::@11 mul16s_compare::@5 mul16s_compare::@3 mul16s_compare::@6 mul16s_compare::@return mul16s_compare::@4 mul16s_compare::@8 mul16s_compare::@9 mul16s_compare::@13 print_ln print_ln::@1 print_ln::@return print_str print_str::@1 print_str::@return print_str::@2 mul16s_error mul16s_error::@1 mul16s_error::@2 mul16s_error::@3 mul16s_error::@4 mul16s_error::@5 mul16s_error::@6 mul16s_error::@7 mul16s_error::@8 mul16s_error::@return print_sdword print_sdword::@2 print_sdword::@4 print_sdword::@1 print_sdword::@return print_dword print_dword::@1 print_dword::@return print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_sword print_sword::@2 print_sword::@4 print_sword::@1 print_sword::@return mul16s mul16s::@6 mul16s::@3 mul16s::@1 mul16s::@4 mul16s::@2 mul16s::@return mul16u mul16u::@1 mul16u::@return mul16u::@2 mul16u::@7 mul16u::@4 muls16s muls16s::@2 muls16s::@3 muls16s::@return muls16s::@1 muls16s::@5 mul16u_compare mul16u_compare::@1 mul16u_compare::@2 mul16u_compare::@10 mul16u_compare::@11 mul16u_compare::@5 mul16u_compare::@3 mul16u_compare::@6 mul16u_compare::@return mul16u_compare::@4 mul16u_compare::@8 mul16u_compare::@9 mul16u_compare::@13 mul16u_error mul16u_error::@1 mul16u_error::@2 mul16u_error::@3 mul16u_error::@4 mul16u_error::@5 mul16u_error::@6 mul16u_error::@7 mul16u_error::@8 mul16u_error::@return muls16u muls16u::@2 muls16u::@1 muls16u::@return mulf_init mulf_init::@1 mulf_init::@5 mulf_init::@2 mulf_init::@3 mulf_init::@4 mulf_init::@8 mulf_init::@return mulf_init::@12 print_cls print_cls::@1 print_cls::@return
Adding NOP phi() at start of @begin
Adding NOP phi() at start of @24
Adding NOP phi() at start of @25
Adding NOP phi() at start of @end
Adding NOP phi() at start of main::@1
Adding NOP phi() at start of main::@2
@ -5545,14 +5625,14 @@ Propagating live ranges...
FINAL CONTROL FLOW GRAPH
@begin: scope:[] from
[0] phi() [ ] ( )
to:@24
@24: scope:[] from @begin
to:@25
@25: scope:[] from @begin
[1] phi() [ ] ( )
[2] call main param-assignment [ ] ( )
to:@end
@end: scope:[] from @24
@end: scope:[] from @25
[3] phi() [ ] ( )
main: scope:[main] from @24
main: scope:[main] from @25
[4] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 5 [ ] ( main:2 [ ] )
[5] call print_cls param-assignment [ ] ( main:2 [ ] )
to:main::@1
@ -6065,122 +6145,122 @@ print_cls::@return: scope:[print_cls] from print_cls::@1
DOMINATORS
@begin dominated by @begin
@24 dominated by @24 @begin
@end dominated by @24 @end @begin
main dominated by @24 main @begin
main::@1 dominated by main::@1 @24 main @begin
main::@2 dominated by main::@1 main::@2 @24 main @begin
main::@3 dominated by main::@1 main::@2 main::@3 @24 main @begin
main::@return dominated by main::@1 main::@2 main::@3 main::@return @24 main @begin
mul16s_compare dominated by main::@1 main::@2 main::@3 mul16s_compare @24 main @begin
mul16s_compare::@1 dominated by main::@1 main::@2 main::@3 mul16s_compare @24 main @begin mul16s_compare::@1
mul16s_compare::@2 dominated by main::@1 main::@2 main::@3 mul16s_compare @24 main @begin mul16s_compare::@1 mul16s_compare::@2
mul16s_compare::@10 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare @24 main @begin mul16s_compare::@1 mul16s_compare::@2
mul16s_compare::@11 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 @24 main @begin mul16s_compare::@1 mul16s_compare::@2
mul16s_compare::@5 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 @24 main @begin mul16s_compare::@1 mul16s_compare::@2 mul16s_compare::@5
mul16s_compare::@3 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 @24 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2
mul16s_compare::@6 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 @24 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6
mul16s_compare::@return dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 @24 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@return
mul16s_compare::@4 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 @24 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@4
mul16s_compare::@8 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 @24 main @begin mul16s_compare::@8 mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@4
mul16s_compare::@9 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 @24 main @begin mul16s_compare::@9 mul16s_compare::@8 mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@4
mul16s_compare::@13 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@13 mul16s_compare::@11 @24 main @begin mul16s_compare::@9 mul16s_compare::@8 mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@4
print_ln dominated by main::@1 main::@2 print_ln @24 main @begin
print_ln::@1 dominated by main::@1 main::@2 print_ln print_ln::@1 @24 main @begin
print_ln::@return dominated by print_ln::@return main::@1 main::@2 print_ln print_ln::@1 @24 main @begin
print_str dominated by main::@1 main::@2 print_str @24 main @begin
print_str::@1 dominated by main::@1 main::@2 print_str::@1 print_str @24 main @begin
print_str::@return dominated by main::@1 main::@2 print_str::@return print_str::@1 print_str @24 main @begin
print_str::@2 dominated by main::@1 main::@2 print_str::@1 print_str::@2 print_str @24 main @begin
mul16s_error dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error @24 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6
mul16s_error::@1 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error @24 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@1
mul16s_error::@2 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error @24 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@1 mul16s_error::@2
mul16s_error::@3 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error @24 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@3 mul16s_error::@1 mul16s_error::@2
mul16s_error::@4 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error @24 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@3 mul16s_error::@4 mul16s_error::@1 mul16s_error::@2
mul16s_error::@5 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error @24 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@3 mul16s_error::@4 mul16s_error::@1 mul16s_error::@2 mul16s_error::@5
mul16s_error::@6 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error @24 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@3 mul16s_error::@4 mul16s_error::@1 mul16s_error::@2 mul16s_error::@5 mul16s_error::@6
mul16s_error::@7 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error @24 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@3 mul16s_error::@4 mul16s_error::@1 mul16s_error::@2 mul16s_error::@7 mul16s_error::@5 mul16s_error::@6
mul16s_error::@8 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error @24 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@3 mul16s_error::@4 mul16s_error::@1 mul16s_error::@2 mul16s_error::@7 mul16s_error::@8 mul16s_error::@5 mul16s_error::@6
mul16s_error::@return dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error @24 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@return mul16s_error::@3 mul16s_error::@4 mul16s_error::@1 mul16s_error::@2 mul16s_error::@7 mul16s_error::@8 mul16s_error::@5 mul16s_error::@6
print_sdword dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 print_sdword mul16s_compare mul16s_compare::@11 mul16s_error @24 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@3 mul16s_error::@4 mul16s_error::@1 mul16s_error::@2 mul16s_error::@5
print_sdword::@2 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 print_sdword mul16s_compare mul16s_compare::@11 mul16s_error @24 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 print_sdword::@2 mul16s_error::@3 mul16s_error::@4 mul16s_error::@1 mul16s_error::@2 mul16s_error::@5
print_sdword::@4 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 print_sdword mul16s_compare mul16s_compare::@11 mul16s_error @24 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 print_sdword::@2 print_sdword::@4 mul16s_error::@3 mul16s_error::@4 mul16s_error::@1 mul16s_error::@2 mul16s_error::@5
print_sdword::@1 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 print_sdword mul16s_compare mul16s_compare::@11 mul16s_error @24 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 print_sdword::@1 mul16s_error::@3 mul16s_error::@4 mul16s_error::@1 mul16s_error::@2 mul16s_error::@5
print_sdword::@return dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 print_sdword mul16s_compare mul16s_compare::@11 mul16s_error @24 main print_sdword::@return @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 print_sdword::@1 mul16s_error::@3 mul16s_error::@4 mul16s_error::@1 mul16s_error::@2 mul16s_error::@5
print_dword dominated by main::@1 main::@2 @24 main @begin print_dword
print_dword::@1 dominated by main::@1 main::@2 @24 main print_dword::@1 @begin print_dword
print_dword::@return dominated by main::@1 main::@2 @24 main print_dword::@1 @begin print_dword::@return print_dword
print_word dominated by print_word main::@1 main::@2 @24 main @begin
print_word::@1 dominated by print_word main::@1 main::@2 print_word::@1 @24 main @begin
print_word::@return dominated by print_word main::@1 main::@2 print_word::@return print_word::@1 @24 main @begin
print_byte dominated by print_word main::@1 main::@2 print_byte @24 main @begin
print_byte::@1 dominated by print_word main::@1 main::@2 print_byte::@1 print_byte @24 main @begin
print_byte::@return dominated by print_word main::@1 main::@2 print_byte::@1 print_byte @24 main @begin print_byte::@return
print_char dominated by main::@1 main::@2 @24 main print_char @begin
print_char::@return dominated by main::@1 main::@2 @24 main print_char print_char::@return @begin
print_sword dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error print_sword @24 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@1
print_sword::@2 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error print_sword @24 print_sword::@2 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@1
print_sword::@4 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error print_sword @24 print_sword::@2 print_sword::@4 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@1
print_sword::@1 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error print_sword @24 print_sword::@1 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@1
print_sword::@return dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error print_sword @24 print_sword::@1 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 print_sword::@return mul16s_error::@1
mul16s dominated by mul16s main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare @24 main @begin mul16s_compare::@1 mul16s_compare::@2
mul16s::@6 dominated by mul16s main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare @24 main @begin mul16s_compare::@1 mul16s_compare::@2 mul16s::@6
mul16s::@3 dominated by mul16s main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare @24 main @begin mul16s_compare::@1 mul16s_compare::@2 mul16s::@6 mul16s::@3
mul16s::@1 dominated by mul16s main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare @24 main @begin mul16s_compare::@1 mul16s_compare::@2 mul16s::@6 mul16s::@1
mul16s::@4 dominated by mul16s main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare @24 main @begin mul16s_compare::@1 mul16s_compare::@2 mul16s::@6 mul16s::@1 mul16s::@4
mul16s::@2 dominated by mul16s main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare @24 main @begin mul16s_compare::@1 mul16s_compare::@2 mul16s::@6 mul16s::@1 mul16s::@2
mul16s::@return dominated by mul16s main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s::@return @24 main @begin mul16s_compare::@1 mul16s_compare::@2 mul16s::@6 mul16s::@1 mul16s::@2
mul16u dominated by mul16u main::@1 main::@2 @24 main @begin
mul16u::@1 dominated by mul16u main::@1 main::@2 @24 main mul16u::@1 @begin
mul16u::@return dominated by mul16u main::@1 main::@2 mul16u::@return @24 main mul16u::@1 @begin
mul16u::@2 dominated by mul16u main::@1 main::@2 @24 main mul16u::@1 mul16u::@2 @begin
mul16u::@7 dominated by mul16u main::@1 main::@2 @24 main mul16u::@1 mul16u::@2 @begin mul16u::@7
mul16u::@4 dominated by mul16u main::@1 main::@2 @24 main mul16u::@1 mul16u::@2 @begin mul16u::@4
muls16s dominated by main::@1 main::@2 main::@3 mul16s_compare @24 main muls16s @begin mul16s_compare::@1 mul16s_compare::@2
muls16s::@2 dominated by main::@1 main::@2 main::@3 mul16s_compare @24 main muls16s muls16s::@2 @begin mul16s_compare::@1 mul16s_compare::@2
muls16s::@3 dominated by main::@1 main::@2 main::@3 mul16s_compare @24 main muls16s muls16s::@3 @begin mul16s_compare::@1 mul16s_compare::@2
muls16s::@return dominated by main::@1 main::@2 main::@3 mul16s_compare @24 main muls16s muls16s::@3 @begin mul16s_compare::@1 mul16s_compare::@2 muls16s::@return
muls16s::@1 dominated by main::@1 main::@2 main::@3 mul16s_compare @24 main muls16s muls16s::@1 @begin mul16s_compare::@1 mul16s_compare::@2
muls16s::@5 dominated by main::@1 main::@2 main::@3 mul16s_compare @24 muls16s::@5 main muls16s muls16s::@1 @begin mul16s_compare::@1 mul16s_compare::@2
mul16u_compare dominated by main::@1 main::@2 mul16u_compare @24 main @begin
mul16u_compare::@1 dominated by main::@1 main::@2 mul16u_compare @24 main @begin mul16u_compare::@1
mul16u_compare::@2 dominated by main::@1 main::@2 mul16u_compare @24 main @begin mul16u_compare::@2 mul16u_compare::@1
mul16u_compare::@10 dominated by main::@1 main::@2 mul16u_compare @24 main @begin mul16u_compare::@10 mul16u_compare::@2 mul16u_compare::@1
mul16u_compare::@11 dominated by main::@1 main::@2 mul16u_compare @24 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_compare::@2 mul16u_compare::@1
mul16u_compare::@5 dominated by main::@1 main::@2 mul16u_compare @24 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_compare::@5 mul16u_compare::@2 mul16u_compare::@1
mul16u_compare::@3 dominated by main::@1 main::@2 mul16u_compare @24 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
mul16u_compare::@6 dominated by main::@1 main::@2 mul16u_compare @24 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_compare::@6 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
mul16u_compare::@return dominated by main::@1 main::@2 mul16u_compare::@return mul16u_compare @24 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
mul16u_compare::@4 dominated by main::@1 main::@2 mul16u_compare @24 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_compare::@4 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
mul16u_compare::@8 dominated by main::@1 main::@2 mul16u_compare @24 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_compare::@8 mul16u_compare::@4 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
mul16u_compare::@9 dominated by main::@1 main::@2 mul16u_compare @24 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_compare::@9 mul16u_compare::@8 mul16u_compare::@4 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
mul16u_compare::@13 dominated by main::@1 main::@2 mul16u_compare @24 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_compare::@13 mul16u_compare::@9 mul16u_compare::@8 mul16u_compare::@4 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
mul16u_error dominated by main::@1 main::@2 mul16u_compare mul16u_error @24 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_compare::@6 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
mul16u_error::@1 dominated by main::@1 main::@2 mul16u_compare mul16u_error @24 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_compare::@6 mul16u_error::@1 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
mul16u_error::@2 dominated by main::@1 main::@2 mul16u_compare mul16u_error @24 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_compare::@6 mul16u_error::@2 mul16u_error::@1 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
mul16u_error::@3 dominated by main::@1 main::@2 mul16u_compare mul16u_error @24 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_compare::@6 mul16u_error::@3 mul16u_error::@2 mul16u_error::@1 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
mul16u_error::@4 dominated by main::@1 main::@2 mul16u_compare mul16u_error @24 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_error::@4 mul16u_compare::@6 mul16u_error::@3 mul16u_error::@2 mul16u_error::@1 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
mul16u_error::@5 dominated by main::@1 main::@2 mul16u_compare mul16u_error @24 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_error::@5 mul16u_error::@4 mul16u_compare::@6 mul16u_error::@3 mul16u_error::@2 mul16u_error::@1 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
mul16u_error::@6 dominated by main::@1 main::@2 mul16u_compare mul16u_error @24 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_error::@6 mul16u_error::@5 mul16u_error::@4 mul16u_compare::@6 mul16u_error::@3 mul16u_error::@2 mul16u_error::@1 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
mul16u_error::@7 dominated by main::@1 main::@2 mul16u_compare mul16u_error @24 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_error::@7 mul16u_error::@6 mul16u_error::@5 mul16u_error::@4 mul16u_compare::@6 mul16u_error::@3 mul16u_error::@2 mul16u_error::@1 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
mul16u_error::@8 dominated by main::@1 main::@2 mul16u_compare mul16u_error @24 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_error::@8 mul16u_error::@7 mul16u_error::@6 mul16u_error::@5 mul16u_error::@4 mul16u_compare::@6 mul16u_error::@3 mul16u_error::@2 mul16u_error::@1 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
mul16u_error::@return dominated by main::@1 main::@2 mul16u_error::@return mul16u_compare mul16u_error @24 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_error::@8 mul16u_error::@7 mul16u_error::@6 mul16u_error::@5 mul16u_error::@4 mul16u_compare::@6 mul16u_error::@3 mul16u_error::@2 mul16u_error::@1 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
muls16u dominated by main::@1 main::@2 mul16u_compare @24 main @begin muls16u mul16u_compare::@2 mul16u_compare::@1
muls16u::@2 dominated by main::@1 main::@2 mul16u_compare @24 main @begin muls16u::@2 muls16u mul16u_compare::@2 mul16u_compare::@1
muls16u::@1 dominated by main::@1 main::@2 mul16u_compare @24 main @begin muls16u::@1 muls16u mul16u_compare::@2 mul16u_compare::@1
muls16u::@return dominated by main::@1 main::@2 mul16u_compare @24 main @begin muls16u::@1 muls16u mul16u_compare::@2 mul16u_compare::@1 muls16u::@return
mulf_init dominated by main::@1 @24 main @begin mulf_init
mulf_init::@1 dominated by main::@1 @24 main @begin mulf_init mulf_init::@1
mulf_init::@5 dominated by main::@1 @24 main @begin mulf_init mulf_init::@1 mulf_init::@5
mulf_init::@2 dominated by main::@1 @24 main @begin mulf_init mulf_init::@2 mulf_init::@1
mulf_init::@3 dominated by main::@1 @24 main @begin mulf_init mulf_init::@2 mulf_init::@1 mulf_init::@3
mulf_init::@4 dominated by main::@1 @24 main @begin mulf_init mulf_init::@2 mulf_init::@1 mulf_init::@4 mulf_init::@3
mulf_init::@8 dominated by main::@1 @24 main @begin mulf_init mulf_init::@2 mulf_init::@1 mulf_init::@4 mulf_init::@3 mulf_init::@8
mulf_init::@return dominated by main::@1 mulf_init::@return @24 main @begin mulf_init mulf_init::@2 mulf_init::@1 mulf_init::@4 mulf_init::@3 mulf_init::@8
mulf_init::@12 dominated by mulf_init::@12 main::@1 @24 main @begin mulf_init mulf_init::@2 mulf_init::@1 mulf_init::@3
print_cls dominated by print_cls @24 main @begin
print_cls::@1 dominated by print_cls @24 main @begin print_cls::@1
print_cls::@return dominated by print_cls @24 main @begin print_cls::@return print_cls::@1
@25 dominated by @25 @begin
@end dominated by @25 @end @begin
main dominated by @25 main @begin
main::@1 dominated by main::@1 @25 main @begin
main::@2 dominated by main::@1 main::@2 @25 main @begin
main::@3 dominated by main::@1 main::@2 main::@3 @25 main @begin
main::@return dominated by main::@1 main::@2 main::@3 main::@return @25 main @begin
mul16s_compare dominated by main::@1 main::@2 main::@3 mul16s_compare @25 main @begin
mul16s_compare::@1 dominated by main::@1 main::@2 main::@3 mul16s_compare @25 main @begin mul16s_compare::@1
mul16s_compare::@2 dominated by main::@1 main::@2 main::@3 mul16s_compare @25 main @begin mul16s_compare::@1 mul16s_compare::@2
mul16s_compare::@10 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare @25 main @begin mul16s_compare::@1 mul16s_compare::@2
mul16s_compare::@11 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 @25 main @begin mul16s_compare::@1 mul16s_compare::@2
mul16s_compare::@5 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 @25 main @begin mul16s_compare::@1 mul16s_compare::@2 mul16s_compare::@5
mul16s_compare::@3 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 @25 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2
mul16s_compare::@6 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 @25 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6
mul16s_compare::@return dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 @25 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@return
mul16s_compare::@4 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 @25 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@4
mul16s_compare::@8 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 @25 main @begin mul16s_compare::@8 mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@4
mul16s_compare::@9 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 @25 main @begin mul16s_compare::@9 mul16s_compare::@8 mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@4
mul16s_compare::@13 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@13 mul16s_compare::@11 @25 main @begin mul16s_compare::@9 mul16s_compare::@8 mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@4
print_ln dominated by main::@1 main::@2 print_ln @25 main @begin
print_ln::@1 dominated by main::@1 main::@2 print_ln print_ln::@1 @25 main @begin
print_ln::@return dominated by print_ln::@return main::@1 main::@2 print_ln print_ln::@1 @25 main @begin
print_str dominated by main::@1 main::@2 print_str @25 main @begin
print_str::@1 dominated by main::@1 main::@2 print_str::@1 print_str @25 main @begin
print_str::@return dominated by main::@1 main::@2 print_str::@return print_str::@1 print_str @25 main @begin
print_str::@2 dominated by main::@1 main::@2 print_str::@1 print_str::@2 print_str @25 main @begin
mul16s_error dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error @25 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6
mul16s_error::@1 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error @25 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@1
mul16s_error::@2 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error @25 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@1 mul16s_error::@2
mul16s_error::@3 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error @25 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@3 mul16s_error::@1 mul16s_error::@2
mul16s_error::@4 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error @25 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@3 mul16s_error::@4 mul16s_error::@1 mul16s_error::@2
mul16s_error::@5 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error @25 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@3 mul16s_error::@4 mul16s_error::@1 mul16s_error::@2 mul16s_error::@5
mul16s_error::@6 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error @25 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@3 mul16s_error::@4 mul16s_error::@1 mul16s_error::@2 mul16s_error::@5 mul16s_error::@6
mul16s_error::@7 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error @25 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@3 mul16s_error::@4 mul16s_error::@1 mul16s_error::@2 mul16s_error::@7 mul16s_error::@5 mul16s_error::@6
mul16s_error::@8 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error @25 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@3 mul16s_error::@4 mul16s_error::@1 mul16s_error::@2 mul16s_error::@7 mul16s_error::@8 mul16s_error::@5 mul16s_error::@6
mul16s_error::@return dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error @25 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@return mul16s_error::@3 mul16s_error::@4 mul16s_error::@1 mul16s_error::@2 mul16s_error::@7 mul16s_error::@8 mul16s_error::@5 mul16s_error::@6
print_sdword dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 print_sdword mul16s_compare mul16s_compare::@11 mul16s_error @25 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@3 mul16s_error::@4 mul16s_error::@1 mul16s_error::@2 mul16s_error::@5
print_sdword::@2 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 print_sdword mul16s_compare mul16s_compare::@11 mul16s_error @25 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 print_sdword::@2 mul16s_error::@3 mul16s_error::@4 mul16s_error::@1 mul16s_error::@2 mul16s_error::@5
print_sdword::@4 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 print_sdword mul16s_compare mul16s_compare::@11 mul16s_error @25 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 print_sdword::@2 print_sdword::@4 mul16s_error::@3 mul16s_error::@4 mul16s_error::@1 mul16s_error::@2 mul16s_error::@5
print_sdword::@1 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 print_sdword mul16s_compare mul16s_compare::@11 mul16s_error @25 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 print_sdword::@1 mul16s_error::@3 mul16s_error::@4 mul16s_error::@1 mul16s_error::@2 mul16s_error::@5
print_sdword::@return dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 print_sdword mul16s_compare mul16s_compare::@11 mul16s_error @25 main print_sdword::@return @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 print_sdword::@1 mul16s_error::@3 mul16s_error::@4 mul16s_error::@1 mul16s_error::@2 mul16s_error::@5
print_dword dominated by main::@1 main::@2 @25 main @begin print_dword
print_dword::@1 dominated by main::@1 main::@2 @25 main print_dword::@1 @begin print_dword
print_dword::@return dominated by main::@1 main::@2 @25 main print_dword::@1 @begin print_dword::@return print_dword
print_word dominated by print_word main::@1 main::@2 @25 main @begin
print_word::@1 dominated by print_word main::@1 main::@2 print_word::@1 @25 main @begin
print_word::@return dominated by print_word main::@1 main::@2 print_word::@return print_word::@1 @25 main @begin
print_byte dominated by print_word main::@1 main::@2 print_byte @25 main @begin
print_byte::@1 dominated by print_word main::@1 main::@2 print_byte::@1 print_byte @25 main @begin
print_byte::@return dominated by print_word main::@1 main::@2 print_byte::@1 print_byte @25 main @begin print_byte::@return
print_char dominated by main::@1 main::@2 @25 main print_char @begin
print_char::@return dominated by main::@1 main::@2 @25 main print_char print_char::@return @begin
print_sword dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error print_sword @25 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@1
print_sword::@2 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error print_sword @25 print_sword::@2 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@1
print_sword::@4 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error print_sword @25 print_sword::@2 print_sword::@4 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@1
print_sword::@1 dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error print_sword @25 print_sword::@1 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 mul16s_error::@1
print_sword::@return dominated by main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s_compare::@11 mul16s_error print_sword @25 print_sword::@1 main @begin mul16s_compare::@1 mul16s_compare::@3 mul16s_compare::@2 mul16s_compare::@6 print_sword::@return mul16s_error::@1
mul16s dominated by mul16s main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare @25 main @begin mul16s_compare::@1 mul16s_compare::@2
mul16s::@6 dominated by mul16s main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare @25 main @begin mul16s_compare::@1 mul16s_compare::@2 mul16s::@6
mul16s::@3 dominated by mul16s main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare @25 main @begin mul16s_compare::@1 mul16s_compare::@2 mul16s::@6 mul16s::@3
mul16s::@1 dominated by mul16s main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare @25 main @begin mul16s_compare::@1 mul16s_compare::@2 mul16s::@6 mul16s::@1
mul16s::@4 dominated by mul16s main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare @25 main @begin mul16s_compare::@1 mul16s_compare::@2 mul16s::@6 mul16s::@1 mul16s::@4
mul16s::@2 dominated by mul16s main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare @25 main @begin mul16s_compare::@1 mul16s_compare::@2 mul16s::@6 mul16s::@1 mul16s::@2
mul16s::@return dominated by mul16s main::@1 main::@2 main::@3 mul16s_compare::@10 mul16s_compare mul16s::@return @25 main @begin mul16s_compare::@1 mul16s_compare::@2 mul16s::@6 mul16s::@1 mul16s::@2
mul16u dominated by mul16u main::@1 main::@2 @25 main @begin
mul16u::@1 dominated by mul16u main::@1 main::@2 @25 main mul16u::@1 @begin
mul16u::@return dominated by mul16u main::@1 main::@2 mul16u::@return @25 main mul16u::@1 @begin
mul16u::@2 dominated by mul16u main::@1 main::@2 @25 main mul16u::@1 mul16u::@2 @begin
mul16u::@7 dominated by mul16u main::@1 main::@2 @25 main mul16u::@1 mul16u::@2 @begin mul16u::@7
mul16u::@4 dominated by mul16u main::@1 main::@2 @25 main mul16u::@1 mul16u::@2 @begin mul16u::@4
muls16s dominated by main::@1 main::@2 main::@3 mul16s_compare @25 main muls16s @begin mul16s_compare::@1 mul16s_compare::@2
muls16s::@2 dominated by main::@1 main::@2 main::@3 mul16s_compare @25 main muls16s muls16s::@2 @begin mul16s_compare::@1 mul16s_compare::@2
muls16s::@3 dominated by main::@1 main::@2 main::@3 mul16s_compare @25 main muls16s muls16s::@3 @begin mul16s_compare::@1 mul16s_compare::@2
muls16s::@return dominated by main::@1 main::@2 main::@3 mul16s_compare @25 main muls16s muls16s::@3 @begin mul16s_compare::@1 mul16s_compare::@2 muls16s::@return
muls16s::@1 dominated by main::@1 main::@2 main::@3 mul16s_compare @25 main muls16s muls16s::@1 @begin mul16s_compare::@1 mul16s_compare::@2
muls16s::@5 dominated by main::@1 main::@2 main::@3 mul16s_compare @25 muls16s::@5 main muls16s muls16s::@1 @begin mul16s_compare::@1 mul16s_compare::@2
mul16u_compare dominated by main::@1 main::@2 mul16u_compare @25 main @begin
mul16u_compare::@1 dominated by main::@1 main::@2 mul16u_compare @25 main @begin mul16u_compare::@1
mul16u_compare::@2 dominated by main::@1 main::@2 mul16u_compare @25 main @begin mul16u_compare::@2 mul16u_compare::@1
mul16u_compare::@10 dominated by main::@1 main::@2 mul16u_compare @25 main @begin mul16u_compare::@10 mul16u_compare::@2 mul16u_compare::@1
mul16u_compare::@11 dominated by main::@1 main::@2 mul16u_compare @25 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_compare::@2 mul16u_compare::@1
mul16u_compare::@5 dominated by main::@1 main::@2 mul16u_compare @25 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_compare::@5 mul16u_compare::@2 mul16u_compare::@1
mul16u_compare::@3 dominated by main::@1 main::@2 mul16u_compare @25 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
mul16u_compare::@6 dominated by main::@1 main::@2 mul16u_compare @25 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_compare::@6 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
mul16u_compare::@return dominated by main::@1 main::@2 mul16u_compare::@return mul16u_compare @25 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
mul16u_compare::@4 dominated by main::@1 main::@2 mul16u_compare @25 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_compare::@4 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
mul16u_compare::@8 dominated by main::@1 main::@2 mul16u_compare @25 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_compare::@8 mul16u_compare::@4 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
mul16u_compare::@9 dominated by main::@1 main::@2 mul16u_compare @25 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_compare::@9 mul16u_compare::@8 mul16u_compare::@4 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
mul16u_compare::@13 dominated by main::@1 main::@2 mul16u_compare @25 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_compare::@13 mul16u_compare::@9 mul16u_compare::@8 mul16u_compare::@4 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
mul16u_error dominated by main::@1 main::@2 mul16u_compare mul16u_error @25 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_compare::@6 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
mul16u_error::@1 dominated by main::@1 main::@2 mul16u_compare mul16u_error @25 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_compare::@6 mul16u_error::@1 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
mul16u_error::@2 dominated by main::@1 main::@2 mul16u_compare mul16u_error @25 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_compare::@6 mul16u_error::@2 mul16u_error::@1 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
mul16u_error::@3 dominated by main::@1 main::@2 mul16u_compare mul16u_error @25 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_compare::@6 mul16u_error::@3 mul16u_error::@2 mul16u_error::@1 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
mul16u_error::@4 dominated by main::@1 main::@2 mul16u_compare mul16u_error @25 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_error::@4 mul16u_compare::@6 mul16u_error::@3 mul16u_error::@2 mul16u_error::@1 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
mul16u_error::@5 dominated by main::@1 main::@2 mul16u_compare mul16u_error @25 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_error::@5 mul16u_error::@4 mul16u_compare::@6 mul16u_error::@3 mul16u_error::@2 mul16u_error::@1 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
mul16u_error::@6 dominated by main::@1 main::@2 mul16u_compare mul16u_error @25 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_error::@6 mul16u_error::@5 mul16u_error::@4 mul16u_compare::@6 mul16u_error::@3 mul16u_error::@2 mul16u_error::@1 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
mul16u_error::@7 dominated by main::@1 main::@2 mul16u_compare mul16u_error @25 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_error::@7 mul16u_error::@6 mul16u_error::@5 mul16u_error::@4 mul16u_compare::@6 mul16u_error::@3 mul16u_error::@2 mul16u_error::@1 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
mul16u_error::@8 dominated by main::@1 main::@2 mul16u_compare mul16u_error @25 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_error::@8 mul16u_error::@7 mul16u_error::@6 mul16u_error::@5 mul16u_error::@4 mul16u_compare::@6 mul16u_error::@3 mul16u_error::@2 mul16u_error::@1 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
mul16u_error::@return dominated by main::@1 main::@2 mul16u_error::@return mul16u_compare mul16u_error @25 main @begin mul16u_compare::@11 mul16u_compare::@10 mul16u_error::@8 mul16u_error::@7 mul16u_error::@6 mul16u_error::@5 mul16u_error::@4 mul16u_compare::@6 mul16u_error::@3 mul16u_error::@2 mul16u_error::@1 mul16u_compare::@3 mul16u_compare::@2 mul16u_compare::@1
muls16u dominated by main::@1 main::@2 mul16u_compare @25 main @begin muls16u mul16u_compare::@2 mul16u_compare::@1
muls16u::@2 dominated by main::@1 main::@2 mul16u_compare @25 main @begin muls16u::@2 muls16u mul16u_compare::@2 mul16u_compare::@1
muls16u::@1 dominated by main::@1 main::@2 mul16u_compare @25 main @begin muls16u::@1 muls16u mul16u_compare::@2 mul16u_compare::@1
muls16u::@return dominated by main::@1 main::@2 mul16u_compare @25 main @begin muls16u::@1 muls16u mul16u_compare::@2 mul16u_compare::@1 muls16u::@return
mulf_init dominated by main::@1 @25 main @begin mulf_init
mulf_init::@1 dominated by main::@1 @25 main @begin mulf_init mulf_init::@1
mulf_init::@5 dominated by main::@1 @25 main @begin mulf_init mulf_init::@1 mulf_init::@5
mulf_init::@2 dominated by main::@1 @25 main @begin mulf_init mulf_init::@2 mulf_init::@1
mulf_init::@3 dominated by main::@1 @25 main @begin mulf_init mulf_init::@2 mulf_init::@1 mulf_init::@3
mulf_init::@4 dominated by main::@1 @25 main @begin mulf_init mulf_init::@2 mulf_init::@1 mulf_init::@4 mulf_init::@3
mulf_init::@8 dominated by main::@1 @25 main @begin mulf_init mulf_init::@2 mulf_init::@1 mulf_init::@4 mulf_init::@3 mulf_init::@8
mulf_init::@return dominated by main::@1 mulf_init::@return @25 main @begin mulf_init mulf_init::@2 mulf_init::@1 mulf_init::@4 mulf_init::@3 mulf_init::@8
mulf_init::@12 dominated by mulf_init::@12 main::@1 @25 main @begin mulf_init mulf_init::@2 mulf_init::@1 mulf_init::@3
print_cls dominated by print_cls @25 main @begin
print_cls::@1 dominated by print_cls @25 main @begin print_cls::@1
print_cls::@return dominated by print_cls @25 main @begin print_cls::@return print_cls::@1
NATURAL LOOPS
Found back edge: Loop head: mul16s_compare::@2 tails: mul16s_compare::@4 blocks: null
@ -6752,15 +6832,15 @@ INITIAL ASM
.label line_cursor = 9
//SEG2 @begin
bbegin:
//SEG3 [1] phi from @begin to @24 [phi:@begin->@24]
b24_from_bbegin:
jmp b24
//SEG4 @24
b24:
//SEG3 [1] phi from @begin to @25 [phi:@begin->@25]
b25_from_bbegin:
jmp b25
//SEG4 @25
b25:
//SEG5 [2] call main param-assignment [ ] ( )
jsr main
//SEG6 [3] phi from @24 to @end [phi:@24->@end]
bend_from_b24:
//SEG6 [3] phi from @25 to @end [phi:@25->@end]
bend_from_b25:
jmp bend
//SEG7 @end
bend:
@ -9080,15 +9160,15 @@ ASSEMBLER BEFORE OPTIMIZATION
.label line_cursor = 6
//SEG2 @begin
bbegin:
//SEG3 [1] phi from @begin to @24 [phi:@begin->@24]
b24_from_bbegin:
jmp b24
//SEG4 @24
b24:
//SEG3 [1] phi from @begin to @25 [phi:@begin->@25]
b25_from_bbegin:
jmp b25
//SEG4 @25
b25:
//SEG5 [2] call main param-assignment [ ] ( )
jsr main
//SEG6 [3] phi from @24 to @end [phi:@24->@end]
bend_from_b24:
//SEG6 [3] phi from @25 to @end [phi:@25->@end]
bend_from_b25:
jmp bend
//SEG7 @end
bend:
@ -10784,7 +10864,7 @@ print_cls: {
mulf_sqr2_hi: .fill $200, 0
ASSEMBLER OPTIMIZATIONS
Removing instruction jmp b24
Removing instruction jmp b25
Removing instruction jmp bend
Removing instruction jmp b1
Removing instruction jmp b2
@ -10926,8 +11006,8 @@ Replacing label b3_from_b4 with b3
Replacing label b1_from_b1 with b1
Replacing label b1_from_b1 with b1
Removing instruction bbegin:
Removing instruction b24_from_bbegin:
Removing instruction bend_from_b24:
Removing instruction b25_from_bbegin:
Removing instruction bend_from_b25:
Removing instruction b1_from_main:
Removing instruction mulf_init_from_b1:
Removing instruction b2_from_b1:
@ -11000,7 +11080,7 @@ Removing instruction b12_from_b3:
Removing instruction b4_from_b12:
Removing instruction b1_from_b1:
Succesful ASM optimization Pass5RedundantLabelElimination
Removing instruction b24:
Removing instruction b25:
Removing instruction bend:
Removing instruction print_cls_from_main:
Removing instruction b1:
@ -11126,7 +11206,7 @@ Removing unreachable instruction jmp b4
Succesful ASM optimization Pass5UnreachableCodeElimination
FINAL SYMBOL TABLE
(label) @24
(label) @25
(label) @begin
(label) @end
(byte*) BGCOL
@ -11527,11 +11607,11 @@ Score: 431398
.label char_cursor = $e
.label line_cursor = 6
//SEG2 @begin
//SEG3 [1] phi from @begin to @24 [phi:@begin->@24]
//SEG4 @24
//SEG3 [1] phi from @begin to @25 [phi:@begin->@25]
//SEG4 @25
//SEG5 [2] call main param-assignment [ ] ( )
jsr main
//SEG6 [3] phi from @24 to @end [phi:@24->@end]
//SEG6 [3] phi from @25 to @end [phi:@25->@end]
//SEG7 @end
//SEG8 main
main: {

View File

@ -1,4 +1,4 @@
(label) @24
(label) @25
(label) @begin
(label) @end
(byte*) BGCOL

View File

@ -1,13 +1,13 @@
@begin: scope:[] from
[0] phi() [ ] ( )
to:@26
@26: scope:[] from @begin
to:@27
@27: scope:[] from @begin
[1] phi() [ ] ( )
[2] call main param-assignment [ ] ( )
to:@end
@end: scope:[] from @26
@end: scope:[] from @27
[3] phi() [ ] ( )
main: scope:[main] from @26
main: scope:[main] from @27
[4] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 5 [ ] ( main:2 [ ] )
[5] call print_cls param-assignment [ ] ( main:2 [ ] )
to:main::@1

View File

@ -323,6 +323,16 @@ signed word mul8s(signed byte a, signed byte b) {
return (signed word)m;
}
// Multiply a signed byte and an unsigned byte (into a signed word)
// Fixes offsets introduced by using unsigned multiplication
signed word mul8su(signed byte a, byte b) {
word m = mul8u((byte)a, (byte) b);
if(a<0) {
>m = (>m)-(byte)b;
}
return (signed word)m;
}
// Perform binary multiplication of two unsigned 16-bit words into a 32-bit unsigned double word
dword mul16u(word a, word b) {
dword res = 0;
@ -625,6 +635,27 @@ mul8s::@return:
(signed word) mul8s::return ← (signed word) mul8s::return
return (signed word) mul8s::return
endproc // mul8s()
proc (signed word()) mul8su((signed byte) mul8su::a , (byte) mul8su::b)
(byte~) mul8su::$0 ← ((byte)) (signed byte) mul8su::a
(byte~) mul8su::$1 ← ((byte)) (byte) mul8su::b
(word~) mul8su::$2 ← call mul8u (byte~) mul8su::$0 (byte~) mul8su::$1
(word) mul8su::m ← (word~) mul8su::$2
(boolean~) mul8su::$3 ← (signed byte) mul8su::a < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) mul8su::$4 ← ! (boolean~) mul8su::$3
if((boolean~) mul8su::$4) goto mul8su::@1
(byte~) mul8su::$5 ← > (word) mul8su::m
(byte~) mul8su::$6 ← > (word) mul8su::m
(byte~) mul8su::$7 ← ((byte)) (byte) mul8su::b
(byte/signed byte/word/signed word/dword/signed dword~) mul8su::$8 ← (byte~) mul8su::$6 - (byte~) mul8su::$7
lval((byte~) mul8su::$5) ← (byte/signed byte/word/signed word/dword/signed dword~) mul8su::$8
mul8su::@1:
(signed word~) mul8su::$9 ← ((signed word)) (word) mul8su::m
(signed word) mul8su::return ← (signed word~) mul8su::$9
goto mul8su::@return
mul8su::@return:
(signed word) mul8su::return ← (signed word) mul8su::return
return (signed word) mul8su::return
endproc // mul8su()
proc (dword()) mul16u((word) mul16u::a , (word) mul16u::b)
(dword) mul16u::res ← (byte/signed byte/word/signed word/dword/signed dword) 0
(dword) mul16u::mb ← (word) mul16u::b
@ -1134,6 +1165,23 @@ SYMBOLS
(signed word) mul8s_error::mf
(signed word) mul8s_error::mn
(signed word) mul8s_error::ms
(signed word()) mul8su((signed byte) mul8su::a , (byte) mul8su::b)
(byte~) mul8su::$0
(byte~) mul8su::$1
(word~) mul8su::$2
(boolean~) mul8su::$3
(boolean~) mul8su::$4
(byte~) mul8su::$5
(byte~) mul8su::$6
(byte~) mul8su::$7
(byte/signed byte/word/signed word/dword/signed dword~) mul8su::$8
(signed word~) mul8su::$9
(label) mul8su::@1
(label) mul8su::@return
(signed byte) mul8su::a
(byte) mul8su::b
(word) mul8su::m
(signed word) mul8su::return
(word()) mul8u((byte) mul8u::a , (byte) mul8u::b)
(boolean~) mul8u::$0
(byte~) mul8u::$1
@ -1404,6 +1452,7 @@ SYMBOLS
Fixing lo/hi-lvalue with new tmpVar mul8s::$16 mul8s::$16 ← mul8s::$8
Fixing lo/hi-lvalue with new tmpVar mul8s::$17 mul8s::$17 ← mul8s::$14
Fixing lo/hi-lvalue with new tmpVar mul8su::$10 mul8su::$10 ← mul8su::$8
Fixing lo/hi-lvalue with new tmpVar mul16s::$16 mul16s::$16 ← mul16s::$8
Fixing lo/hi-lvalue with new tmpVar mul16s::$17 mul16s::$17 ← mul16s::$14
Fixing lo/hi-lvalue with new tmpVar mulf8s::$16 mulf8s::$16 ← mulf8s::$8
@ -1663,6 +1712,35 @@ mul8s::@5: scope:[mul8s] from
to:mul8s::@return
@12: scope:[] from @11
to:@13
mul8su: scope:[mul8su] from
(byte~) mul8su::$0 ← ((byte)) (signed byte) mul8su::a
(byte~) mul8su::$1 ← ((byte)) (byte) mul8su::b
(word~) mul8su::$2 ← call mul8u (byte~) mul8su::$0 (byte~) mul8su::$1
(word) mul8su::m ← (word~) mul8su::$2
(boolean~) mul8su::$3 ← (signed byte) mul8su::a < (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) mul8su::$4 ← ! (boolean~) mul8su::$3
if((boolean~) mul8su::$4) goto mul8su::@1
to:mul8su::@2
mul8su::@1: scope:[mul8su] from mul8su mul8su::@2
(signed word~) mul8su::$9 ← ((signed word)) (word) mul8su::m
(signed word) mul8su::return ← (signed word~) mul8su::$9
to:mul8su::@return
mul8su::@2: scope:[mul8su] from mul8su
(byte~) mul8su::$5 ← > (word) mul8su::m
(byte~) mul8su::$6 ← > (word) mul8su::m
(byte~) mul8su::$7 ← ((byte)) (byte) mul8su::b
(byte/signed byte/word/signed word/dword/signed dword~) mul8su::$8 ← (byte~) mul8su::$6 - (byte~) mul8su::$7
(byte/signed byte/word/signed word/dword/signed dword~) mul8su::$10 ← (byte/signed byte/word/signed word/dword/signed dword~) mul8su::$8
(word) mul8su::m ← (word) mul8su::m hi= (byte/signed byte/word/signed word/dword/signed dword~) mul8su::$10
to:mul8su::@1
mul8su::@return: scope:[mul8su] from mul8su::@1 mul8su::@3
(signed word) mul8su::return ← (signed word) mul8su::return
return (signed word) mul8su::return
to:@return
mul8su::@3: scope:[mul8su] from
to:mul8su::@return
@13: scope:[] from @12
to:@14
mul16u: scope:[mul16u] from
(dword) mul16u::res ← (byte/signed byte/word/signed word/dword/signed dword) 0
(dword) mul16u::mb ← ((dword)) (word) mul16u::b
@ -1702,8 +1780,8 @@ mul16u::@return: scope:[mul16u] from mul16u::@3 mul16u::@9
to:@return
mul16u::@9: scope:[mul16u] from
to:mul16u::@return
@13: scope:[] from @12
to:@14
@14: scope:[] from @13
to:@15
mul16s: scope:[mul16s] from
(word~) mul16s::$0 ← ((word)) (signed word) mul16s::a
(word~) mul16s::$1 ← ((word)) (signed word) mul16s::b
@ -1744,12 +1822,12 @@ mul16s::@return: scope:[mul16s] from mul16s::@2 mul16s::@5
to:@return
mul16s::@5: scope:[mul16s] from
to:mul16s::@return
@14: scope:[] from @13
@15: scope:[] from @14
(byte[512]) mulf_sqr1_lo ← { fill( 512, 0) }
(byte[512]) mulf_sqr1_hi ← { fill( 512, 0) }
(byte[512]) mulf_sqr2_lo ← { fill( 512, 0) }
(byte[512]) mulf_sqr2_hi ← { fill( 512, 0) }
to:@15
to:@16
mulf_init: scope:[mulf_init] from
(word) mulf_init::sqr ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) mulf_init::x_2 ← (byte/signed byte/word/signed word/dword/signed dword) 0
@ -1821,8 +1899,8 @@ mulf_init::@8: scope:[mulf_init] from mulf_init::@4
mulf_init::@return: scope:[mulf_init] from mulf_init::@8
return
to:@return
@15: scope:[] from @14
to:@16
@16: scope:[] from @15
to:@17
mulf8u: scope:[mulf8u] from
(byte*) mulf8u::memA ← ((byte*)) (byte/word/signed word/dword/signed dword) 254
(byte*) mulf8u::memB ← ((byte*)) (byte/word/signed word/dword/signed dword) 255
@ -1837,8 +1915,8 @@ mulf8u::@return: scope:[mulf8u] from mulf8u mulf8u::@1
to:@return
mulf8u::@1: scope:[mulf8u] from
to:mulf8u::@return
@16: scope:[] from @15
to:@17
@17: scope:[] from @16
to:@18
mulf8s: scope:[mulf8s] from
(byte~) mulf8s::$0 ← ((byte)) (signed byte) mulf8s::a
(byte~) mulf8s::$1 ← ((byte)) (signed byte) mulf8s::b
@ -1879,9 +1957,9 @@ mulf8s::@return: scope:[mulf8s] from mulf8s::@2 mulf8s::@5
to:@return
mulf8s::@5: scope:[mulf8s] from
to:mulf8s::@return
@17: scope:[] from @16
@18: scope:[] from @17
(byte*) BGCOL ← ((byte*)) (word/dword/signed dword) 53281
to:@18
to:@19
main: scope:[main] from
*((byte*) BGCOL) ← (byte/signed byte/word/signed word/dword/signed dword) 5
(void~) main::$0 ← call print_cls
@ -1894,8 +1972,8 @@ main: scope:[main] from
main::@return: scope:[main] from main
return
to:@return
@18: scope:[] from @17
to:@19
@19: scope:[] from @18
to:@20
muls8u: scope:[muls8u] from
(word) muls8u::m ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) muls8u::$0 ← (byte) muls8u::a != (byte/signed byte/word/signed word/dword/signed dword) 0
@ -1923,8 +2001,8 @@ muls8u::@return: scope:[muls8u] from muls8u::@1 muls8u::@5
to:@return
muls8u::@5: scope:[muls8u] from
to:muls8u::@return
@19: scope:[] from @18
to:@20
@20: scope:[] from @19
to:@21
muls8s: scope:[muls8s] from
(signed word) muls8s::m ← (byte/signed byte/word/signed word/dword/signed dword) 0
(boolean~) muls8s::$0 ← (signed byte) muls8s::a < (byte/signed byte/word/signed word/dword/signed dword) 0
@ -1973,12 +2051,12 @@ muls8s::@return: scope:[muls8s] from muls8s::@11 muls8s::@3
to:@return
muls8s::@11: scope:[muls8s] from
to:muls8s::@return
@20: scope:[] from @19
@21: scope:[] from @20
(byte[512]) mula_sqr1_lo ← { fill( 512, 0) }
(byte[512]) mula_sqr1_hi ← { fill( 512, 0) }
(byte[512]) mula_sqr2_lo ← { fill( 512, 0) }
(byte[512]) mula_sqr2_hi ← { fill( 512, 0) }
to:@21
to:@22
mulf_init_asm: scope:[mulf_init_asm] from
asm { ldx#$00 txa .byte$c9 lb1: tya adc#$00 ml1: stamula_sqr1_hi,x tay cmp#$40 txa ror ml9: adc#$00 staml9+1 inx ml0: stamula_sqr1_lo,x bnelb1 incml0+2 incml1+2 clc iny bnelb1 ldx#$00 ldy#$ff !: ldamula_sqr1_hi+1,x stamula_sqr2_hi+$100,x ldamula_sqr1_hi,x stamula_sqr2_hi,y ldamula_sqr1_lo+1,x stamula_sqr2_lo+$100,x ldamula_sqr1_lo,x stamula_sqr2_lo,y dey inx bne!- }
(byte*) mulf_init_asm::mem ← ((byte*)) (byte/word/signed word/dword/signed dword) 255
@ -1990,8 +2068,8 @@ mulf_init_asm: scope:[mulf_init_asm] from
mulf_init_asm::@return: scope:[mulf_init_asm] from mulf_init_asm
return
to:@return
@21: scope:[] from @20
to:@22
@22: scope:[] from @21
to:@23
mulf_tables_cmp: scope:[mulf_tables_cmp] from
(byte*) mulf_tables_cmp::asm_sqr ← (byte[512]) mula_sqr1_lo
(byte*) mulf_tables_cmp::kc_sqr ← (byte[512]) mulf_sqr1_lo
@ -2027,8 +2105,8 @@ mulf_tables_cmp::@5: scope:[mulf_tables_cmp] from mulf_tables_cmp::@2
(void~) mulf_tables_cmp::$11 ← call print_str (string) "multiply tables match!@"
(void~) mulf_tables_cmp::$12 ← call print_ln
to:mulf_tables_cmp::@return
@22: scope:[] from @21
to:@23
@23: scope:[] from @22
to:@24
mul8u_compare: scope:[mul8u_compare] from
(byte) mul8u_compare::a ← (byte/signed byte/word/signed word/dword/signed dword) 0
to:mul8u_compare::@1
@ -2086,8 +2164,8 @@ mul8u_compare::@11: scope:[mul8u_compare] from mul8u_compare::@10
(void~) mul8u_compare::$12 ← call print_str (string) "multiply results match!@"
(void~) mul8u_compare::$13 ← call print_ln
to:mul8u_compare::@return
@23: scope:[] from @22
to:@24
@24: scope:[] from @23
to:@25
mul8u_error: scope:[mul8u_error] from
(void~) mul8u_error::$0 ← call print_str (string) "multiply mismatch @"
(void~) mul8u_error::$1 ← call print_byte (byte) mul8u_error::a
@ -2104,8 +2182,8 @@ mul8u_error: scope:[mul8u_error] from
mul8u_error::@return: scope:[mul8u_error] from mul8u_error
return
to:@return
@24: scope:[] from @23
to:@25
@25: scope:[] from @24
to:@26
mul8s_compare: scope:[mul8s_compare] from
(signed byte/signed word/signed dword~) mul8s_compare::$0 ← - (byte/word/signed word/dword/signed dword) 128
(signed byte) mul8s_compare::a ← (signed byte/signed word/signed dword~) mul8s_compare::$0
@ -2167,8 +2245,8 @@ mul8s_compare::@11: scope:[mul8s_compare] from mul8s_compare::@10
(void~) mul8s_compare::$16 ← call print_str (string) "signed multiply results match!@"
(void~) mul8s_compare::$17 ← call print_ln
to:mul8s_compare::@return
@25: scope:[] from @24
to:@26
@26: scope:[] from @25
to:@27
mul8s_error: scope:[mul8s_error] from
(void~) mul8s_error::$0 ← call print_str (string) "signed multiply mismatch @"
(void~) mul8s_error::$1 ← call print_sbyte (signed byte) mul8s_error::a
@ -2185,12 +2263,13 @@ mul8s_error: scope:[mul8s_error] from
mul8s_error::@return: scope:[mul8s_error] from mul8s_error
return
to:@return
@26: scope:[] from @25
@27: scope:[] from @26
call main
to:@end
@end: scope:[] from @26
@end: scope:[] from @27
Removing unused procedure print_sdword
Removing unused procedure mul8su
Removing unused procedure mul16s
Removing unused procedure print_dword
Removing unused procedure mul16u
@ -2284,26 +2363,27 @@ Removing empty block @11
Removing empty block mul8s::@5
Removing empty block @12
Removing empty block @13
Removing empty block @15
Removing empty block mulf8u::@1
Removing empty block @14
Removing empty block @16
Removing empty block mulf8u::@1
Removing empty block @17
Removing empty block mulf8s::@5
Removing empty block @18
Removing empty block @19
Removing empty block muls8u::@4
Removing empty block muls8u::@5
Removing empty block @19
Removing empty block @20
Removing empty block muls8s::@7
Removing empty block muls8s::@8
Removing empty block muls8s::@10
Removing empty block muls8s::@11
Removing empty block @21
Removing empty block mulf_tables_cmp::@4
Removing empty block @22
Removing empty block mul8u_compare::@9
Removing empty block mulf_tables_cmp::@4
Removing empty block @23
Removing empty block mul8u_compare::@9
Removing empty block @24
Removing empty block mul8s_compare::@9
Removing empty block @25
Removing empty block mul8s_compare::@9
Removing empty block @26
PROCEDURE MODIFY VARIABLE ANALYSIS
print_str modifies char_cursor
print_ln modifies line_cursor
@ -2346,7 +2426,7 @@ CONTROL FLOW GRAPH SSA WITH ASSIGNMENT CALL & RETURN
(byte*) SCREEN#0 ← ((byte*)) (word/signed word/dword/signed dword) 1024
(byte*) line_cursor#0 ← (byte*) SCREEN#0
(byte*) char_cursor#0 ← (byte*) line_cursor#0
to:@14
to:@15
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
(byte*) char_cursor#149 ← phi( mul8s_compare::@11/(byte*) char_cursor#146 mul8s_error/(byte*) char_cursor#147 mul8s_error::@2/(byte*) char_cursor#54 mul8s_error::@4/(byte*) char_cursor#56 mul8s_error::@6/(byte*) char_cursor#58 mul8s_error::@8/(byte*) char_cursor#60 mul8u_compare::@11/(byte*) char_cursor#143 mul8u_error/(byte*) char_cursor#144 mul8u_error::@2/(byte*) char_cursor#38 mul8u_error::@4/(byte*) char_cursor#40 mul8u_error::@6/(byte*) char_cursor#42 mul8u_error::@8/(byte*) char_cursor#44 mulf_tables_cmp::@3/(byte*) char_cursor#140 mulf_tables_cmp::@5/(byte*) char_cursor#141 mulf_tables_cmp::@7/(byte*) char_cursor#27 )
(byte*) print_str::str#18 ← phi( mul8s_compare::@11/(byte*) print_str::str#10 mul8s_error/(byte*) print_str::str#11 mul8s_error::@2/(byte*) print_str::str#12 mul8s_error::@4/(byte*) print_str::str#13 mul8s_error::@6/(byte*) print_str::str#14 mul8s_error::@8/(byte*) print_str::str#15 mul8u_compare::@11/(byte*) print_str::str#4 mul8u_error/(byte*) print_str::str#5 mul8u_error::@2/(byte*) print_str::str#6 mul8u_error::@4/(byte*) print_str::str#7 mul8u_error::@6/(byte*) print_str::str#8 mul8u_error::@8/(byte*) print_str::str#9 mulf_tables_cmp::@3/(byte*) print_str::str#1 mulf_tables_cmp::@5/(byte*) print_str::str#3 mulf_tables_cmp::@7/(byte*) print_str::str#2 )
@ -2650,14 +2730,14 @@ mul8s::@return: scope:[mul8s] from mul8s::@2
(signed word) mul8s::return#1 ← (signed word) mul8s::return#3
return
to:@return
@14: scope:[] from @begin
@15: scope:[] from @begin
(byte*) char_cursor#168 ← phi( @begin/(byte*) char_cursor#0 )
(byte*) line_cursor#78 ← phi( @begin/(byte*) line_cursor#0 )
(byte[512]) mulf_sqr1_lo#0 ← { fill( 512, 0) }
(byte[512]) mulf_sqr1_hi#0 ← { fill( 512, 0) }
(byte[512]) mulf_sqr2_lo#0 ← { fill( 512, 0) }
(byte[512]) mulf_sqr2_hi#0 ← { fill( 512, 0) }
to:@17
to:@18
mulf_init: scope:[mulf_init] from main::@1
(word) mulf_init::sqr#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
(byte) mulf_init::x_2#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
@ -2827,15 +2907,15 @@ mulf8s::@return: scope:[mulf8s] from mulf8s::@2
(signed word) mulf8s::return#1 ← (signed word) mulf8s::return#3
return
to:@return
@17: scope:[] from @14
(byte*) char_cursor#160 ← phi( @14/(byte*) char_cursor#168 )
(byte*) line_cursor#67 ← phi( @14/(byte*) line_cursor#78 )
@18: scope:[] from @15
(byte*) char_cursor#160 ← phi( @15/(byte*) char_cursor#168 )
(byte*) line_cursor#67 ← phi( @15/(byte*) line_cursor#78 )
(byte*) BGCOL#0 ← ((byte*)) (word/dword/signed dword) 53281
to:@20
main: scope:[main] from @26
(byte*) char_cursor#138 ← phi( @26/(byte*) char_cursor#148 )
(byte*) line_cursor#46 ← phi( @26/(byte*) line_cursor#56 )
(byte*) BGCOL#1 ← phi( @26/(byte*) BGCOL#5 )
to:@21
main: scope:[main] from @27
(byte*) char_cursor#138 ← phi( @27/(byte*) char_cursor#148 )
(byte*) line_cursor#46 ← phi( @27/(byte*) line_cursor#56 )
(byte*) BGCOL#1 ← phi( @27/(byte*) BGCOL#5 )
*((byte*) BGCOL#1) ← (byte/signed byte/word/signed word/dword/signed dword) 5
call print_cls param-assignment
to:main::@1
@ -2984,15 +3064,15 @@ muls8s::@return: scope:[muls8s] from muls8s::@3
(signed word) muls8s::return#1 ← (signed word) muls8s::return#3
return
to:@return
@20: scope:[] from @17
(byte*) char_cursor#159 ← phi( @17/(byte*) char_cursor#160 )
(byte*) line_cursor#66 ← phi( @17/(byte*) line_cursor#67 )
(byte*) BGCOL#15 ← phi( @17/(byte*) BGCOL#0 )
@21: scope:[] from @18
(byte*) char_cursor#159 ← phi( @18/(byte*) char_cursor#160 )
(byte*) line_cursor#66 ← phi( @18/(byte*) line_cursor#67 )
(byte*) BGCOL#15 ← phi( @18/(byte*) BGCOL#0 )
(byte[512]) mula_sqr1_lo#0 ← { fill( 512, 0) }
(byte[512]) mula_sqr1_hi#0 ← { fill( 512, 0) }
(byte[512]) mula_sqr2_lo#0 ← { fill( 512, 0) }
(byte[512]) mula_sqr2_hi#0 ← { fill( 512, 0) }
to:@26
to:@27
mulf_init_asm: scope:[mulf_init_asm] from main::@2
asm { ldx#$00 txa .byte$c9 lb1: tya adc#$00 ml1: stamula_sqr1_hi,x tay cmp#$40 txa ror ml9: adc#$00 staml9+1 inx ml0: stamula_sqr1_lo,x bnelb1 incml0+2 incml1+2 clc iny bnelb1 ldx#$00 ldy#$ff !: ldamula_sqr1_hi+1,x stamula_sqr2_hi+$100,x ldamula_sqr1_hi,x stamula_sqr2_hi,y ldamula_sqr1_lo+1,x stamula_sqr2_lo+$100,x ldamula_sqr1_lo,x stamula_sqr2_lo,y dey inx bne!- }
(byte*) mulf_init_asm::mem#0 ← ((byte*)) (byte/word/signed word/dword/signed dword) 255
@ -3713,26 +3793,26 @@ mul8s_error::@return: scope:[mul8s_error] from mul8s_error::@11
(byte*) line_cursor#21 ← (byte*) line_cursor#43
return
to:@return
@26: scope:[] from @20
(byte*) char_cursor#148 ← phi( @20/(byte*) char_cursor#159 )
(byte*) line_cursor#56 ← phi( @20/(byte*) line_cursor#66 )
(byte*) BGCOL#5 ← phi( @20/(byte*) BGCOL#15 )
@27: scope:[] from @21
(byte*) char_cursor#148 ← phi( @21/(byte*) char_cursor#159 )
(byte*) line_cursor#56 ← phi( @21/(byte*) line_cursor#66 )
(byte*) BGCOL#5 ← phi( @21/(byte*) BGCOL#15 )
call main param-assignment
to:@27
@27: scope:[] from @26
(byte*) char_cursor#129 ← phi( @26/(byte*) char_cursor#25 )
(byte*) line_cursor#44 ← phi( @26/(byte*) line_cursor#9 )
to:@28
@28: scope:[] from @27
(byte*) char_cursor#129 ← phi( @27/(byte*) char_cursor#25 )
(byte*) line_cursor#44 ← phi( @27/(byte*) line_cursor#9 )
(byte*) line_cursor#22 ← (byte*) line_cursor#44
(byte*) char_cursor#65 ← (byte*) char_cursor#129
to:@end
@end: scope:[] from @27
@end: scope:[] from @28
SYMBOL TABLE SSA
(label) @14
(label) @17
(label) @20
(label) @26
(label) @15
(label) @18
(label) @21
(label) @27
(label) @28
(label) @begin
(label) @end
(byte*) BGCOL
@ -5955,16 +6035,16 @@ Culled Empty Block (label) print_word::@2
Culled Empty Block (label) print_byte::@2
Culled Empty Block (label) print_cls::@2
Culled Empty Block (label) mul8u::@3
Culled Empty Block (label) @14
Culled Empty Block (label) @15
Culled Empty Block (label) mulf_init::@6
Not culling empty block because it shares successor with its predecessor. (label) mulf_init::@7
Culled Empty Block (label) @17
Culled Empty Block (label) @18
Culled Empty Block (label) main::@6
Culled Empty Block (label) muls8u::@3
Culled Empty Block (label) muls8s::@6
Culled Empty Block (label) muls8s::@4
Culled Empty Block (label) muls8s::@9
Culled Empty Block (label) @20
Culled Empty Block (label) @21
Culled Empty Block (label) mulf_tables_cmp::@9
Culled Empty Block (label) mulf_tables_cmp::@11
Not culling empty block because it shares successor with its predecessor. (label) mul8u_compare::@6
@ -5977,7 +6057,7 @@ Not culling empty block because it shares successor with its predecessor. (label
Culled Empty Block (label) mul8s_compare::@15
Culled Empty Block (label) mul8s_compare::@17
Culled Empty Block (label) mul8s_error::@11
Culled Empty Block (label) @27
Culled Empty Block (label) @28
Succesful SSA optimization Pass2CullEmptyBlocks
Not culling empty block because it shares successor with its predecessor. (label) mulf_init::@7
Not culling empty block because it shares successor with its predecessor. (label) mul8u_compare::@6
@ -6394,7 +6474,7 @@ Constant inlined print_char::ch#1 = (byte) '-'
Constant inlined print_char::ch#0 = (byte) '-'
Constant inlined print_byte::$4 = (const string) print_byte::hextab#0
Succesful SSA optimization Pass2ConstantInlining
Block Sequence Planned @begin @26 @end main main::@1 main::@2 main::@3 main::@4 main::@5 main::@return mul8s_compare mul8s_compare::@1 mul8s_compare::@2 mul8s_compare::@12 mul8s_compare::@13 mul8s_compare::@14 mul8s_compare::@6 mul8s_compare::@3 mul8s_compare::@7 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@return mul8s_compare::@5 mul8s_compare::@10 mul8s_compare::@11 mul8s_compare::@16 print_ln print_ln::@1 print_ln::@return print_str print_str::@1 print_str::@return print_str::@2 mul8s_error mul8s_error::@1 mul8s_error::@2 mul8s_error::@3 mul8s_error::@4 mul8s_error::@5 mul8s_error::@6 mul8s_error::@7 mul8s_error::@8 mul8s_error::@9 mul8s_error::@10 mul8s_error::@return print_sword print_sword::@2 print_sword::@4 print_sword::@1 print_sword::@return print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_sbyte print_sbyte::@2 print_sbyte::@4 print_sbyte::@1 print_sbyte::@return mul8s mul8s::@6 mul8s::@3 mul8s::@1 mul8s::@4 mul8s::@2 mul8s::@return mul8u mul8u::@1 mul8u::@return mul8u::@2 mul8u::@7 mul8u::@4 mulf8s mulf8s::@6 mulf8s::@3 mulf8s::@1 mulf8s::@4 mulf8s::@2 mulf8s::@return mulf8u mulf8u::@return muls8s muls8s::@2 muls8s::@3 muls8s::@return muls8s::@1 muls8s::@5 mul8u_compare mul8u_compare::@1 mul8u_compare::@2 mul8u_compare::@12 mul8u_compare::@13 mul8u_compare::@14 mul8u_compare::@6 mul8u_compare::@3 mul8u_compare::@7 mul8u_compare::@4 mul8u_compare::@8 mul8u_compare::@return mul8u_compare::@5 mul8u_compare::@10 mul8u_compare::@11 mul8u_compare::@16 mul8u_error mul8u_error::@1 mul8u_error::@2 mul8u_error::@3 mul8u_error::@4 mul8u_error::@5 mul8u_error::@6 mul8u_error::@7 mul8u_error::@8 mul8u_error::@9 mul8u_error::@10 mul8u_error::@return muls8u muls8u::@2 muls8u::@1 muls8u::@return mulf_tables_cmp mulf_tables_cmp::@1 mulf_tables_cmp::@3 mulf_tables_cmp::@6 mulf_tables_cmp::@7 mulf_tables_cmp::@8 mulf_tables_cmp::@return mulf_tables_cmp::@2 mulf_tables_cmp::@5 mulf_tables_cmp::@10 mulf_init_asm mulf_init_asm::@return mulf_init mulf_init::@1 mulf_init::@5 mulf_init::@2 mulf_init::@3 mulf_init::@7 mulf_init::@4 mulf_init::@8 mulf_init::@return print_cls print_cls::@1 print_cls::@return
Block Sequence Planned @begin @27 @end main main::@1 main::@2 main::@3 main::@4 main::@5 main::@return mul8s_compare mul8s_compare::@1 mul8s_compare::@2 mul8s_compare::@12 mul8s_compare::@13 mul8s_compare::@14 mul8s_compare::@6 mul8s_compare::@3 mul8s_compare::@7 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@return mul8s_compare::@5 mul8s_compare::@10 mul8s_compare::@11 mul8s_compare::@16 print_ln print_ln::@1 print_ln::@return print_str print_str::@1 print_str::@return print_str::@2 mul8s_error mul8s_error::@1 mul8s_error::@2 mul8s_error::@3 mul8s_error::@4 mul8s_error::@5 mul8s_error::@6 mul8s_error::@7 mul8s_error::@8 mul8s_error::@9 mul8s_error::@10 mul8s_error::@return print_sword print_sword::@2 print_sword::@4 print_sword::@1 print_sword::@return print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_sbyte print_sbyte::@2 print_sbyte::@4 print_sbyte::@1 print_sbyte::@return mul8s mul8s::@6 mul8s::@3 mul8s::@1 mul8s::@4 mul8s::@2 mul8s::@return mul8u mul8u::@1 mul8u::@return mul8u::@2 mul8u::@7 mul8u::@4 mulf8s mulf8s::@6 mulf8s::@3 mulf8s::@1 mulf8s::@4 mulf8s::@2 mulf8s::@return mulf8u mulf8u::@return muls8s muls8s::@2 muls8s::@3 muls8s::@return muls8s::@1 muls8s::@5 mul8u_compare mul8u_compare::@1 mul8u_compare::@2 mul8u_compare::@12 mul8u_compare::@13 mul8u_compare::@14 mul8u_compare::@6 mul8u_compare::@3 mul8u_compare::@7 mul8u_compare::@4 mul8u_compare::@8 mul8u_compare::@return mul8u_compare::@5 mul8u_compare::@10 mul8u_compare::@11 mul8u_compare::@16 mul8u_error mul8u_error::@1 mul8u_error::@2 mul8u_error::@3 mul8u_error::@4 mul8u_error::@5 mul8u_error::@6 mul8u_error::@7 mul8u_error::@8 mul8u_error::@9 mul8u_error::@10 mul8u_error::@return muls8u muls8u::@2 muls8u::@1 muls8u::@return mulf_tables_cmp mulf_tables_cmp::@1 mulf_tables_cmp::@3 mulf_tables_cmp::@6 mulf_tables_cmp::@7 mulf_tables_cmp::@8 mulf_tables_cmp::@return mulf_tables_cmp::@2 mulf_tables_cmp::@5 mulf_tables_cmp::@10 mulf_init_asm mulf_init_asm::@return mulf_init mulf_init::@1 mulf_init::@5 mulf_init::@2 mulf_init::@3 mulf_init::@7 mulf_init::@4 mulf_init::@8 mulf_init::@return print_cls print_cls::@1 print_cls::@return
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)
Added new block during phi lifting mul8s_compare::@20(between mul8s_compare::@3 and mul8s_compare::@4)
@ -6421,9 +6501,9 @@ Added new block during phi lifting mulf_init::@10(between mulf_init::@1 and mulf
Added new block during phi lifting mulf_init::@11(between mulf_init::@4 and mulf_init::@3)
Added new block during phi lifting mulf_init::@12(between mulf_init::@3 and mulf_init::@4)
Added new block during phi lifting print_cls::@3(between print_cls::@1 and print_cls::@1)
Block Sequence Planned @begin @26 @end main main::@1 main::@2 main::@3 main::@4 main::@5 main::@return mul8s_compare mul8s_compare::@1 mul8s_compare::@2 mul8s_compare::@12 mul8s_compare::@13 mul8s_compare::@14 mul8s_compare::@6 mul8s_compare::@3 mul8s_compare::@7 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@return mul8s_compare::@5 mul8s_compare::@10 mul8s_compare::@11 mul8s_compare::@16 mul8s_compare::@18 mul8s_compare::@19 mul8s_compare::@20 print_ln print_ln::@1 print_ln::@return print_ln::@3 print_str print_str::@1 print_str::@return print_str::@2 mul8s_error mul8s_error::@1 mul8s_error::@2 mul8s_error::@3 mul8s_error::@4 mul8s_error::@5 mul8s_error::@6 mul8s_error::@7 mul8s_error::@8 mul8s_error::@9 mul8s_error::@10 mul8s_error::@return print_sword print_sword::@2 print_sword::@4 print_sword::@1 print_sword::@return print_sword::@5 print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_sbyte print_sbyte::@2 print_sbyte::@4 print_sbyte::@1 print_sbyte::@return print_sbyte::@5 mul8s mul8s::@6 mul8s::@3 mul8s::@1 mul8s::@4 mul8s::@2 mul8s::@return mul8s::@8 mul8s::@7 mul8u mul8u::@1 mul8u::@return mul8u::@2 mul8u::@7 mul8u::@4 mul8u::@10 mulf8s mulf8s::@6 mulf8s::@3 mulf8s::@1 mulf8s::@4 mulf8s::@2 mulf8s::@return mulf8s::@8 mulf8s::@7 mulf8u mulf8u::@return muls8s muls8s::@2 muls8s::@13 muls8s::@3 muls8s::@return muls8s::@12 muls8s::@1 muls8s::@5 muls8s::@14 muls8s::@15 mul8u_compare mul8u_compare::@1 mul8u_compare::@2 mul8u_compare::@12 mul8u_compare::@13 mul8u_compare::@14 mul8u_compare::@6 mul8u_compare::@3 mul8u_compare::@7 mul8u_compare::@4 mul8u_compare::@8 mul8u_compare::@return mul8u_compare::@5 mul8u_compare::@10 mul8u_compare::@11 mul8u_compare::@16 mul8u_compare::@18 mul8u_compare::@19 mul8u_compare::@20 mul8u_error mul8u_error::@1 mul8u_error::@2 mul8u_error::@3 mul8u_error::@4 mul8u_error::@5 mul8u_error::@6 mul8u_error::@7 mul8u_error::@8 mul8u_error::@9 mul8u_error::@10 mul8u_error::@return muls8u muls8u::@2 muls8u::@7 muls8u::@1 muls8u::@return muls8u::@6 mulf_tables_cmp mulf_tables_cmp::@1 mulf_tables_cmp::@3 mulf_tables_cmp::@6 mulf_tables_cmp::@7 mulf_tables_cmp::@8 mulf_tables_cmp::@return mulf_tables_cmp::@2 mulf_tables_cmp::@5 mulf_tables_cmp::@10 mulf_tables_cmp::@12 mulf_init_asm mulf_init_asm::@return mulf_init mulf_init::@1 mulf_init::@5 mulf_init::@2 mulf_init::@3 mulf_init::@7 mulf_init::@4 mulf_init::@8 mulf_init::@return mulf_init::@11 mulf_init::@12 mulf_init::@9 mulf_init::@10 print_cls print_cls::@1 print_cls::@return print_cls::@3
Block Sequence Planned @begin @27 @end main main::@1 main::@2 main::@3 main::@4 main::@5 main::@return mul8s_compare mul8s_compare::@1 mul8s_compare::@2 mul8s_compare::@12 mul8s_compare::@13 mul8s_compare::@14 mul8s_compare::@6 mul8s_compare::@3 mul8s_compare::@7 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@return mul8s_compare::@5 mul8s_compare::@10 mul8s_compare::@11 mul8s_compare::@16 mul8s_compare::@18 mul8s_compare::@19 mul8s_compare::@20 print_ln print_ln::@1 print_ln::@return print_ln::@3 print_str print_str::@1 print_str::@return print_str::@2 mul8s_error mul8s_error::@1 mul8s_error::@2 mul8s_error::@3 mul8s_error::@4 mul8s_error::@5 mul8s_error::@6 mul8s_error::@7 mul8s_error::@8 mul8s_error::@9 mul8s_error::@10 mul8s_error::@return print_sword print_sword::@2 print_sword::@4 print_sword::@1 print_sword::@return print_sword::@5 print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_sbyte print_sbyte::@2 print_sbyte::@4 print_sbyte::@1 print_sbyte::@return print_sbyte::@5 mul8s mul8s::@6 mul8s::@3 mul8s::@1 mul8s::@4 mul8s::@2 mul8s::@return mul8s::@8 mul8s::@7 mul8u mul8u::@1 mul8u::@return mul8u::@2 mul8u::@7 mul8u::@4 mul8u::@10 mulf8s mulf8s::@6 mulf8s::@3 mulf8s::@1 mulf8s::@4 mulf8s::@2 mulf8s::@return mulf8s::@8 mulf8s::@7 mulf8u mulf8u::@return muls8s muls8s::@2 muls8s::@13 muls8s::@3 muls8s::@return muls8s::@12 muls8s::@1 muls8s::@5 muls8s::@14 muls8s::@15 mul8u_compare mul8u_compare::@1 mul8u_compare::@2 mul8u_compare::@12 mul8u_compare::@13 mul8u_compare::@14 mul8u_compare::@6 mul8u_compare::@3 mul8u_compare::@7 mul8u_compare::@4 mul8u_compare::@8 mul8u_compare::@return mul8u_compare::@5 mul8u_compare::@10 mul8u_compare::@11 mul8u_compare::@16 mul8u_compare::@18 mul8u_compare::@19 mul8u_compare::@20 mul8u_error mul8u_error::@1 mul8u_error::@2 mul8u_error::@3 mul8u_error::@4 mul8u_error::@5 mul8u_error::@6 mul8u_error::@7 mul8u_error::@8 mul8u_error::@9 mul8u_error::@10 mul8u_error::@return muls8u muls8u::@2 muls8u::@7 muls8u::@1 muls8u::@return muls8u::@6 mulf_tables_cmp mulf_tables_cmp::@1 mulf_tables_cmp::@3 mulf_tables_cmp::@6 mulf_tables_cmp::@7 mulf_tables_cmp::@8 mulf_tables_cmp::@return mulf_tables_cmp::@2 mulf_tables_cmp::@5 mulf_tables_cmp::@10 mulf_tables_cmp::@12 mulf_init_asm mulf_init_asm::@return mulf_init mulf_init::@1 mulf_init::@5 mulf_init::@2 mulf_init::@3 mulf_init::@7 mulf_init::@4 mulf_init::@8 mulf_init::@return mulf_init::@11 mulf_init::@12 mulf_init::@9 mulf_init::@10 print_cls print_cls::@1 print_cls::@return print_cls::@3
Adding NOP phi() at start of @begin
Adding NOP phi() at start of @26
Adding NOP phi() at start of @27
Adding NOP phi() at start of @end
Adding NOP phi() at start of main::@1
Adding NOP phi() at start of main::@2
@ -6645,9 +6725,9 @@ Not culling empty block because it shares successor with its predecessor. (label
Culled Empty Block (label) mulf_init::@9
Culled Empty Block (label) mulf_init::@10
Culled Empty Block (label) print_cls::@3
Block Sequence Planned @begin @26 @end main main::@1 main::@2 main::@3 main::@4 main::@5 main::@return mul8s_compare mul8s_compare::@1 mul8s_compare::@2 mul8s_compare::@12 mul8s_compare::@13 mul8s_compare::@14 mul8s_compare::@6 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@return mul8s_compare::@5 mul8s_compare::@10 mul8s_compare::@11 mul8s_compare::@16 mul8s_compare::@20 print_ln print_ln::@1 print_ln::@return print_str print_str::@1 print_str::@return print_str::@2 mul8s_error mul8s_error::@1 mul8s_error::@2 mul8s_error::@3 mul8s_error::@4 mul8s_error::@5 mul8s_error::@6 mul8s_error::@7 mul8s_error::@8 mul8s_error::@9 mul8s_error::@10 mul8s_error::@return print_sword print_sword::@2 print_sword::@4 print_sword::@1 print_sword::@return print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_sbyte print_sbyte::@2 print_sbyte::@4 print_sbyte::@1 print_sbyte::@return mul8s mul8s::@6 mul8s::@3 mul8s::@1 mul8s::@4 mul8s::@2 mul8s::@return mul8u mul8u::@1 mul8u::@return mul8u::@2 mul8u::@7 mul8u::@4 mulf8s mulf8s::@6 mulf8s::@3 mulf8s::@1 mulf8s::@4 mulf8s::@2 mulf8s::@return mulf8u mulf8u::@return muls8s muls8s::@2 muls8s::@3 muls8s::@return muls8s::@1 muls8s::@5 mul8u_compare mul8u_compare::@1 mul8u_compare::@2 mul8u_compare::@12 mul8u_compare::@13 mul8u_compare::@14 mul8u_compare::@6 mul8u_compare::@3 mul8u_compare::@4 mul8u_compare::@8 mul8u_compare::@return mul8u_compare::@5 mul8u_compare::@10 mul8u_compare::@11 mul8u_compare::@16 mul8u_compare::@20 mul8u_error mul8u_error::@1 mul8u_error::@2 mul8u_error::@3 mul8u_error::@4 mul8u_error::@5 mul8u_error::@6 mul8u_error::@7 mul8u_error::@8 mul8u_error::@9 mul8u_error::@10 mul8u_error::@return muls8u muls8u::@2 muls8u::@1 muls8u::@return mulf_tables_cmp mulf_tables_cmp::@1 mulf_tables_cmp::@3 mulf_tables_cmp::@6 mulf_tables_cmp::@7 mulf_tables_cmp::@8 mulf_tables_cmp::@return mulf_tables_cmp::@2 mulf_tables_cmp::@5 mulf_tables_cmp::@10 mulf_init_asm mulf_init_asm::@return mulf_init mulf_init::@1 mulf_init::@5 mulf_init::@2 mulf_init::@3 mulf_init::@4 mulf_init::@8 mulf_init::@return mulf_init::@12 print_cls print_cls::@1 print_cls::@return
Block Sequence Planned @begin @27 @end main main::@1 main::@2 main::@3 main::@4 main::@5 main::@return mul8s_compare mul8s_compare::@1 mul8s_compare::@2 mul8s_compare::@12 mul8s_compare::@13 mul8s_compare::@14 mul8s_compare::@6 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@return mul8s_compare::@5 mul8s_compare::@10 mul8s_compare::@11 mul8s_compare::@16 mul8s_compare::@20 print_ln print_ln::@1 print_ln::@return print_str print_str::@1 print_str::@return print_str::@2 mul8s_error mul8s_error::@1 mul8s_error::@2 mul8s_error::@3 mul8s_error::@4 mul8s_error::@5 mul8s_error::@6 mul8s_error::@7 mul8s_error::@8 mul8s_error::@9 mul8s_error::@10 mul8s_error::@return print_sword print_sword::@2 print_sword::@4 print_sword::@1 print_sword::@return print_word print_word::@1 print_word::@return print_byte print_byte::@1 print_byte::@return print_char print_char::@return print_sbyte print_sbyte::@2 print_sbyte::@4 print_sbyte::@1 print_sbyte::@return mul8s mul8s::@6 mul8s::@3 mul8s::@1 mul8s::@4 mul8s::@2 mul8s::@return mul8u mul8u::@1 mul8u::@return mul8u::@2 mul8u::@7 mul8u::@4 mulf8s mulf8s::@6 mulf8s::@3 mulf8s::@1 mulf8s::@4 mulf8s::@2 mulf8s::@return mulf8u mulf8u::@return muls8s muls8s::@2 muls8s::@3 muls8s::@return muls8s::@1 muls8s::@5 mul8u_compare mul8u_compare::@1 mul8u_compare::@2 mul8u_compare::@12 mul8u_compare::@13 mul8u_compare::@14 mul8u_compare::@6 mul8u_compare::@3 mul8u_compare::@4 mul8u_compare::@8 mul8u_compare::@return mul8u_compare::@5 mul8u_compare::@10 mul8u_compare::@11 mul8u_compare::@16 mul8u_compare::@20 mul8u_error mul8u_error::@1 mul8u_error::@2 mul8u_error::@3 mul8u_error::@4 mul8u_error::@5 mul8u_error::@6 mul8u_error::@7 mul8u_error::@8 mul8u_error::@9 mul8u_error::@10 mul8u_error::@return muls8u muls8u::@2 muls8u::@1 muls8u::@return mulf_tables_cmp mulf_tables_cmp::@1 mulf_tables_cmp::@3 mulf_tables_cmp::@6 mulf_tables_cmp::@7 mulf_tables_cmp::@8 mulf_tables_cmp::@return mulf_tables_cmp::@2 mulf_tables_cmp::@5 mulf_tables_cmp::@10 mulf_init_asm mulf_init_asm::@return mulf_init mulf_init::@1 mulf_init::@5 mulf_init::@2 mulf_init::@3 mulf_init::@4 mulf_init::@8 mulf_init::@return mulf_init::@12 print_cls print_cls::@1 print_cls::@return
Adding NOP phi() at start of @begin
Adding NOP phi() at start of @26
Adding NOP phi() at start of @27
Adding NOP phi() at start of @end
Adding NOP phi() at start of main::@1
Adding NOP phi() at start of main::@2
@ -6720,14 +6800,14 @@ Propagating live ranges...
FINAL CONTROL FLOW GRAPH
@begin: scope:[] from
[0] phi() [ ] ( )
to:@26
@26: scope:[] from @begin
to:@27
@27: scope:[] from @begin
[1] phi() [ ] ( )
[2] call main param-assignment [ ] ( )
to:@end
@end: scope:[] from @26
@end: scope:[] from @27
[3] phi() [ ] ( )
main: scope:[main] from @26
main: scope:[main] from @27
[4] *((const byte*) BGCOL#0) ← (byte/signed byte/word/signed word/dword/signed dword) 5 [ ] ( main:2 [ ] )
[5] call print_cls param-assignment [ ] ( main:2 [ ] )
to:main::@1
@ -7362,152 +7442,152 @@ print_cls::@return: scope:[print_cls] from print_cls::@1
DOMINATORS
@begin dominated by @begin
@26 dominated by @26 @begin
@end dominated by @26 @end @begin
main dominated by @26 main @begin
main::@1 dominated by main::@1 @26 main @begin
main::@2 dominated by main::@1 main::@2 @26 main @begin
main::@3 dominated by main::@1 main::@2 main::@3 @26 main @begin
main::@4 dominated by main::@1 main::@2 main::@3 main::@4 @26 main @begin
main::@5 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 @26 main @begin
main::@return dominated by main::@1 main::@2 main::@5 main::@3 main::@4 main::@return @26 main @begin
mul8s_compare dominated by main::@1 main::@2 main::@5 main::@3 main::@4 @26 main @begin mul8s_compare
mul8s_compare::@1 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@1 @26 main @begin mul8s_compare
mul8s_compare::@2 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@1 mul8s_compare::@2 @26 main @begin mul8s_compare
mul8s_compare::@12 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@1 mul8s_compare::@2 @26 mul8s_compare::@12 main @begin mul8s_compare
mul8s_compare::@13 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@1 mul8s_compare::@2 @26 mul8s_compare::@12 mul8s_compare::@13 main @begin mul8s_compare
mul8s_compare::@14 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@1 mul8s_compare::@2 @26 mul8s_compare::@14 mul8s_compare::@12 mul8s_compare::@13 main @begin mul8s_compare
mul8s_compare::@6 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@6 mul8s_compare::@1 mul8s_compare::@2 @26 mul8s_compare::@14 mul8s_compare::@12 mul8s_compare::@13 main @begin mul8s_compare
mul8s_compare::@3 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@1 mul8s_compare::@2 @26 mul8s_compare::@14 mul8s_compare::@12 mul8s_compare::@13 main @begin mul8s_compare
mul8s_compare::@4 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@1 mul8s_compare::@2 @26 mul8s_compare::@14 mul8s_compare::@12 mul8s_compare::@13 main @begin mul8s_compare
mul8s_compare::@8 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@1 mul8s_compare::@2 @26 mul8s_compare::@14 mul8s_compare::@12 mul8s_compare::@13 main @begin mul8s_compare
mul8s_compare::@return dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@1 mul8s_compare::@2 @26 mul8s_compare::@14 mul8s_compare::@12 mul8s_compare::@13 main @begin mul8s_compare mul8s_compare::@return
mul8s_compare::@5 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@5 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@1 mul8s_compare::@2 @26 mul8s_compare::@14 mul8s_compare::@12 mul8s_compare::@13 main @begin mul8s_compare
mul8s_compare::@10 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@5 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@1 mul8s_compare::@2 mul8s_compare::@10 @26 mul8s_compare::@14 mul8s_compare::@12 mul8s_compare::@13 main @begin mul8s_compare
mul8s_compare::@11 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@5 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@1 mul8s_compare::@2 mul8s_compare::@10 mul8s_compare::@11 @26 mul8s_compare::@14 mul8s_compare::@12 mul8s_compare::@13 main @begin mul8s_compare
mul8s_compare::@16 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@5 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@1 mul8s_compare::@2 mul8s_compare::@10 mul8s_compare::@11 @26 mul8s_compare::@14 mul8s_compare::@12 mul8s_compare::@13 main @begin mul8s_compare::@16 mul8s_compare
mul8s_compare::@20 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@1 mul8s_compare::@2 @26 mul8s_compare::@14 mul8s_compare::@12 mul8s_compare::@13 main @begin mul8s_compare::@20 mul8s_compare
print_ln dominated by main::@1 main::@2 main::@3 print_ln @26 main @begin
print_ln::@1 dominated by main::@1 main::@2 main::@3 print_ln print_ln::@1 @26 main @begin
print_ln::@return dominated by print_ln::@return main::@1 main::@2 main::@3 print_ln print_ln::@1 @26 main @begin
print_str dominated by main::@1 main::@2 main::@3 print_str @26 main @begin
print_str::@1 dominated by main::@1 main::@2 main::@3 print_str::@1 print_str @26 main @begin
print_str::@return dominated by main::@1 main::@2 main::@3 print_str::@return print_str::@1 print_str @26 main @begin
print_str::@2 dominated by main::@1 main::@2 main::@3 print_str::@1 print_str::@2 print_str @26 main @begin
mul8s_error dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@1 mul8s_compare::@2 @26 mul8s_compare::@14 mul8s_compare::@12 mul8s_compare::@13 main mul8s_error @begin mul8s_compare
mul8s_error::@1 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@1 mul8s_compare::@2 mul8s_error::@1 @26 mul8s_compare::@14 mul8s_compare::@12 mul8s_compare::@13 main mul8s_error @begin mul8s_compare
mul8s_error::@2 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@1 mul8s_compare::@2 mul8s_error::@1 mul8s_error::@2 @26 mul8s_compare::@14 mul8s_compare::@12 mul8s_compare::@13 main mul8s_error @begin mul8s_compare
mul8s_error::@3 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@1 mul8s_compare::@2 mul8s_error::@1 mul8s_error::@3 mul8s_error::@2 @26 mul8s_compare::@14 mul8s_compare::@12 mul8s_compare::@13 main mul8s_error @begin mul8s_compare
mul8s_error::@4 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@1 mul8s_compare::@2 mul8s_error::@1 mul8s_error::@3 mul8s_error::@2 mul8s_error::@4 @26 mul8s_compare::@14 mul8s_compare::@12 mul8s_compare::@13 main mul8s_error @begin mul8s_compare
mul8s_error::@5 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@1 mul8s_compare::@2 mul8s_error::@1 mul8s_error::@3 mul8s_error::@2 mul8s_error::@5 mul8s_error::@4 @26 mul8s_compare::@14 mul8s_compare::@12 mul8s_compare::@13 main mul8s_error @begin mul8s_compare
mul8s_error::@6 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@1 mul8s_compare::@2 mul8s_error::@1 mul8s_error::@3 mul8s_error::@2 mul8s_error::@5 mul8s_error::@4 mul8s_error::@6 @26 mul8s_compare::@14 mul8s_compare::@12 mul8s_compare::@13 main mul8s_error @begin mul8s_compare
mul8s_error::@7 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@1 mul8s_compare::@2 mul8s_error::@1 mul8s_error::@3 mul8s_error::@2 mul8s_error::@5 mul8s_error::@4 mul8s_error::@7 mul8s_error::@6 @26 mul8s_compare::@14 mul8s_compare::@12 mul8s_compare::@13 main mul8s_error @begin mul8s_compare
mul8s_error::@8 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@1 mul8s_compare::@2 mul8s_error::@1 mul8s_error::@3 mul8s_error::@2 mul8s_error::@5 mul8s_error::@4 mul8s_error::@7 mul8s_error::@6 mul8s_error::@8 @26 mul8s_compare::@14 mul8s_compare::@12 mul8s_compare::@13 main mul8s_error @begin mul8s_compare
mul8s_error::@9 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@1 mul8s_compare::@2 mul8s_error::@1 mul8s_error::@3 mul8s_error::@2 mul8s_error::@5 mul8s_error::@4 mul8s_error::@7 mul8s_error::@6 mul8s_error::@9 mul8s_error::@8 @26 mul8s_compare::@14 mul8s_compare::@12 mul8s_compare::@13 main mul8s_error @begin mul8s_compare
mul8s_error::@10 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@1 mul8s_compare::@2 mul8s_error::@1 mul8s_error::@3 mul8s_error::@2 mul8s_error::@5 mul8s_error::@4 mul8s_error::@7 mul8s_error::@6 mul8s_error::@9 mul8s_error::@8 @26 mul8s_compare::@14 mul8s_compare::@12 mul8s_compare::@13 main mul8s_error @begin mul8s_compare mul8s_error::@10
mul8s_error::@return dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@1 mul8s_compare::@2 mul8s_error::@1 mul8s_error::@3 mul8s_error::@2 mul8s_error::@5 mul8s_error::@4 mul8s_error::@7 mul8s_error::@6 mul8s_error::@9 mul8s_error::@8 @26 mul8s_compare::@14 mul8s_compare::@12 mul8s_compare::@13 main mul8s_error @begin mul8s_error::@return mul8s_compare mul8s_error::@10
print_sword dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@1 mul8s_compare::@2 mul8s_error::@1 mul8s_error::@3 mul8s_error::@2 print_sword mul8s_error::@5 mul8s_error::@4 @26 mul8s_compare::@14 mul8s_compare::@12 mul8s_compare::@13 main mul8s_error @begin mul8s_compare
print_sword::@2 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@1 mul8s_compare::@2 mul8s_error::@1 mul8s_error::@3 mul8s_error::@2 print_sword mul8s_error::@5 mul8s_error::@4 @26 mul8s_compare::@14 print_sword::@2 mul8s_compare::@12 mul8s_compare::@13 main mul8s_error @begin mul8s_compare
print_sword::@4 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@1 mul8s_compare::@2 mul8s_error::@1 mul8s_error::@3 mul8s_error::@2 print_sword mul8s_error::@5 mul8s_error::@4 @26 mul8s_compare::@14 print_sword::@2 mul8s_compare::@12 print_sword::@4 mul8s_compare::@13 main mul8s_error @begin mul8s_compare
print_sword::@1 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@1 mul8s_compare::@2 mul8s_error::@1 mul8s_error::@3 mul8s_error::@2 print_sword mul8s_error::@5 mul8s_error::@4 @26 mul8s_compare::@14 print_sword::@1 mul8s_compare::@12 mul8s_compare::@13 main mul8s_error @begin mul8s_compare
print_sword::@return dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@1 mul8s_compare::@2 mul8s_error::@1 mul8s_error::@3 mul8s_error::@2 print_sword mul8s_error::@5 mul8s_error::@4 @26 mul8s_compare::@14 print_sword::@1 mul8s_compare::@12 mul8s_compare::@13 main mul8s_error @begin print_sword::@return mul8s_compare
print_word dominated by print_word main::@1 main::@2 main::@3 @26 main @begin
print_word::@1 dominated by print_word main::@1 main::@2 main::@3 print_word::@1 @26 main @begin
print_word::@return dominated by print_word main::@1 main::@2 main::@3 print_word::@return print_word::@1 @26 main @begin
print_byte dominated by main::@1 main::@2 main::@3 print_byte @26 main @begin
print_byte::@1 dominated by main::@1 main::@2 main::@3 print_byte::@1 print_byte @26 main @begin
print_byte::@return dominated by main::@1 main::@2 main::@3 print_byte::@1 print_byte @26 main @begin print_byte::@return
print_char dominated by main::@1 main::@2 main::@3 @26 main print_char @begin
print_char::@return dominated by main::@1 main::@2 main::@3 @26 main print_char print_char::@return @begin
print_sbyte dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@1 mul8s_compare::@2 print_sbyte mul8s_error::@1 @26 mul8s_compare::@14 mul8s_compare::@12 mul8s_compare::@13 main mul8s_error @begin mul8s_compare
print_sbyte::@2 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@1 mul8s_compare::@2 print_sbyte mul8s_error::@1 @26 mul8s_compare::@14 mul8s_compare::@12 mul8s_compare::@13 main print_sbyte::@2 mul8s_error @begin mul8s_compare
print_sbyte::@4 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@1 mul8s_compare::@2 print_sbyte mul8s_error::@1 @26 mul8s_compare::@14 mul8s_compare::@12 mul8s_compare::@13 main print_sbyte::@4 print_sbyte::@2 mul8s_error @begin mul8s_compare
print_sbyte::@1 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@1 mul8s_compare::@2 print_sbyte mul8s_error::@1 @26 mul8s_compare::@14 mul8s_compare::@12 mul8s_compare::@13 main print_sbyte::@1 mul8s_error @begin mul8s_compare
print_sbyte::@return dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@1 mul8s_compare::@2 print_sbyte mul8s_error::@1 @26 mul8s_compare::@14 mul8s_compare::@12 mul8s_compare::@13 main print_sbyte::@1 mul8s_error @begin print_sbyte::@return mul8s_compare
mul8s dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@1 mul8s_compare::@2 @26 mul8s_compare::@12 mul8s_compare::@13 main @begin mul8s mul8s_compare
mul8s::@6 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@1 mul8s_compare::@2 @26 mul8s_compare::@12 mul8s_compare::@13 main mul8s::@6 @begin mul8s mul8s_compare
mul8s::@3 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@1 mul8s_compare::@2 @26 mul8s_compare::@12 mul8s_compare::@13 main mul8s::@6 mul8s::@3 @begin mul8s mul8s_compare
mul8s::@1 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@1 mul8s_compare::@2 @26 mul8s_compare::@12 mul8s_compare::@13 main mul8s::@6 mul8s::@1 @begin mul8s mul8s_compare
mul8s::@4 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@1 mul8s_compare::@2 @26 mul8s_compare::@12 mul8s_compare::@13 main mul8s::@6 mul8s::@1 mul8s::@4 @begin mul8s mul8s_compare
mul8s::@2 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@1 mul8s_compare::@2 @26 mul8s_compare::@12 mul8s_compare::@13 main mul8s::@6 mul8s::@1 mul8s::@2 @begin mul8s mul8s_compare
mul8s::@return dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@1 mul8s_compare::@2 @26 mul8s_compare::@12 mul8s_compare::@13 main mul8s::@6 mul8s::@1 mul8s::@2 @begin mul8s::@return mul8s mul8s_compare
mul8u dominated by main::@1 main::@2 main::@3 main::@4 mul8u @26 main @begin
mul8u::@1 dominated by main::@1 main::@2 main::@3 main::@4 mul8u @26 main @begin mul8u::@1
mul8u::@return dominated by main::@1 main::@2 main::@3 main::@4 mul8u mul8u::@return @26 main @begin mul8u::@1
mul8u::@2 dominated by main::@1 main::@2 main::@3 main::@4 mul8u @26 main @begin mul8u::@2 mul8u::@1
mul8u::@7 dominated by main::@1 main::@2 main::@3 main::@4 mul8u @26 main @begin mul8u::@7 mul8u::@2 mul8u::@1
mul8u::@4 dominated by main::@1 main::@2 main::@3 main::@4 mul8u @26 main @begin mul8u::@2 mul8u::@1 mul8u::@4
mulf8s dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@1 mul8s_compare::@2 mulf8s @26 mul8s_compare::@12 main @begin mul8s_compare
mulf8s::@6 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@1 mul8s_compare::@2 mulf8s @26 mul8s_compare::@12 main @begin mulf8s::@6 mul8s_compare
mulf8s::@3 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@1 mul8s_compare::@2 mulf8s @26 mul8s_compare::@12 main @begin mulf8s::@3 mulf8s::@6 mul8s_compare
mulf8s::@1 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@1 mul8s_compare::@2 mulf8s @26 mul8s_compare::@12 main @begin mulf8s::@1 mulf8s::@6 mul8s_compare
mulf8s::@4 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@1 mul8s_compare::@2 mulf8s @26 mul8s_compare::@12 main @begin mulf8s::@1 mulf8s::@4 mulf8s::@6 mul8s_compare
mulf8s::@2 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@1 mul8s_compare::@2 mulf8s @26 mul8s_compare::@12 main @begin mulf8s::@2 mulf8s::@1 mulf8s::@6 mul8s_compare
mulf8s::@return dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@1 mul8s_compare::@2 mulf8s @26 mul8s_compare::@12 main @begin mulf8s::@2 mulf8s::@1 mulf8s::@return mulf8s::@6 mul8s_compare
mulf8u dominated by main::@1 main::@2 main::@3 main::@4 mulf8u @26 main @begin
mulf8u::@return dominated by main::@1 main::@2 main::@3 main::@4 mulf8u @26 main @begin mulf8u::@return
muls8s dominated by muls8s main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@1 mul8s_compare::@2 @26 main @begin mul8s_compare
muls8s::@2 dominated by muls8s main::@1 main::@2 main::@5 main::@3 main::@4 muls8s::@2 mul8s_compare::@1 mul8s_compare::@2 @26 main @begin mul8s_compare
muls8s::@3 dominated by muls8s main::@1 main::@2 main::@5 main::@3 main::@4 muls8s::@3 mul8s_compare::@1 mul8s_compare::@2 @26 main @begin mul8s_compare
muls8s::@return dominated by muls8s main::@1 main::@2 main::@5 main::@3 main::@4 muls8s::@3 mul8s_compare::@1 mul8s_compare::@2 muls8s::@return @26 main @begin mul8s_compare
muls8s::@1 dominated by muls8s main::@1 main::@2 main::@5 main::@3 main::@4 muls8s::@1 mul8s_compare::@1 mul8s_compare::@2 @26 main @begin mul8s_compare
muls8s::@5 dominated by muls8s main::@1 main::@2 main::@5 main::@3 main::@4 muls8s::@5 muls8s::@1 mul8s_compare::@1 mul8s_compare::@2 @26 main @begin mul8s_compare
mul8u_compare dominated by main::@1 main::@2 main::@3 main::@4 @26 main @begin mul8u_compare
mul8u_compare::@1 dominated by main::@1 mul8u_compare::@1 main::@2 main::@3 main::@4 @26 main @begin mul8u_compare
mul8u_compare::@2 dominated by main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 main::@3 main::@4 @26 main @begin mul8u_compare
mul8u_compare::@12 dominated by mul8u_compare::@12 main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 main::@3 main::@4 @26 main @begin mul8u_compare
mul8u_compare::@13 dominated by mul8u_compare::@13 mul8u_compare::@12 main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 main::@3 main::@4 @26 main @begin mul8u_compare
mul8u_compare::@14 dominated by mul8u_compare::@14 mul8u_compare::@13 mul8u_compare::@12 main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 main::@3 main::@4 @26 main @begin mul8u_compare
mul8u_compare::@6 dominated by mul8u_compare::@14 mul8u_compare::@13 mul8u_compare::@12 main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 mul8u_compare::@6 main::@3 main::@4 @26 main @begin mul8u_compare
mul8u_compare::@3 dominated by mul8u_compare::@14 mul8u_compare::@13 mul8u_compare::@12 main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 mul8u_compare::@3 main::@3 main::@4 @26 main @begin mul8u_compare
mul8u_compare::@4 dominated by mul8u_compare::@14 mul8u_compare::@13 mul8u_compare::@12 main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 mul8u_compare::@3 mul8u_compare::@4 main::@3 main::@4 @26 main @begin mul8u_compare
mul8u_compare::@8 dominated by mul8u_compare::@14 mul8u_compare::@13 mul8u_compare::@12 main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 mul8u_compare::@3 mul8u_compare::@4 main::@3 main::@4 mul8u_compare::@8 @26 main @begin mul8u_compare
mul8u_compare::@return dominated by mul8u_compare::@14 mul8u_compare::@13 mul8u_compare::@12 main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 mul8u_compare::@3 mul8u_compare::@4 main::@3 main::@4 mul8u_compare::@return @26 main @begin mul8u_compare
mul8u_compare::@5 dominated by mul8u_compare::@14 mul8u_compare::@13 mul8u_compare::@12 main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 mul8u_compare::@3 mul8u_compare::@4 mul8u_compare::@5 main::@3 main::@4 @26 main @begin mul8u_compare
mul8u_compare::@10 dominated by mul8u_compare::@14 mul8u_compare::@10 mul8u_compare::@13 mul8u_compare::@12 main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 mul8u_compare::@3 mul8u_compare::@4 mul8u_compare::@5 main::@3 main::@4 @26 main @begin mul8u_compare
mul8u_compare::@11 dominated by mul8u_compare::@14 mul8u_compare::@11 mul8u_compare::@10 mul8u_compare::@13 mul8u_compare::@12 main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 mul8u_compare::@3 mul8u_compare::@4 mul8u_compare::@5 main::@3 main::@4 @26 main @begin mul8u_compare
mul8u_compare::@16 dominated by mul8u_compare::@14 mul8u_compare::@16 mul8u_compare::@11 mul8u_compare::@10 mul8u_compare::@13 mul8u_compare::@12 main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 mul8u_compare::@3 mul8u_compare::@4 mul8u_compare::@5 main::@3 main::@4 @26 main @begin mul8u_compare
mul8u_compare::@20 dominated by mul8u_compare::@14 mul8u_compare::@13 mul8u_compare::@12 main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 mul8u_compare::@3 main::@3 main::@4 mul8u_compare::@20 @26 main @begin mul8u_compare
mul8u_error dominated by mul8u_compare::@14 mul8u_compare::@13 mul8u_compare::@12 main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 mul8u_compare::@3 mul8u_compare::@4 main::@3 main::@4 mul8u_compare::@8 mul8u_error @26 main @begin mul8u_compare
mul8u_error::@1 dominated by mul8u_compare::@14 mul8u_compare::@13 mul8u_compare::@12 main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 mul8u_compare::@3 mul8u_compare::@4 main::@3 main::@4 mul8u_compare::@8 mul8u_error::@1 mul8u_error @26 main @begin mul8u_compare
mul8u_error::@2 dominated by mul8u_compare::@14 mul8u_compare::@13 mul8u_compare::@12 main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 mul8u_compare::@3 mul8u_compare::@4 main::@3 main::@4 mul8u_compare::@8 mul8u_error::@1 mul8u_error::@2 mul8u_error @26 main @begin mul8u_compare
mul8u_error::@3 dominated by mul8u_compare::@14 mul8u_compare::@13 mul8u_compare::@12 main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 mul8u_compare::@3 mul8u_compare::@4 main::@3 main::@4 mul8u_compare::@8 mul8u_error::@1 mul8u_error::@2 mul8u_error::@3 mul8u_error @26 main @begin mul8u_compare
mul8u_error::@4 dominated by mul8u_compare::@14 mul8u_compare::@13 mul8u_compare::@12 main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 mul8u_compare::@3 mul8u_compare::@4 main::@3 main::@4 mul8u_compare::@8 mul8u_error::@1 mul8u_error::@4 mul8u_error::@2 mul8u_error::@3 mul8u_error @26 main @begin mul8u_compare
mul8u_error::@5 dominated by mul8u_compare::@14 mul8u_compare::@13 mul8u_compare::@12 main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 mul8u_compare::@3 mul8u_compare::@4 main::@3 main::@4 mul8u_compare::@8 mul8u_error::@1 mul8u_error::@4 mul8u_error::@5 mul8u_error::@2 mul8u_error::@3 mul8u_error @26 main @begin mul8u_compare
mul8u_error::@6 dominated by mul8u_compare::@14 mul8u_compare::@13 mul8u_compare::@12 main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 mul8u_compare::@3 mul8u_compare::@4 main::@3 main::@4 mul8u_compare::@8 mul8u_error::@1 mul8u_error::@4 mul8u_error::@5 mul8u_error::@2 mul8u_error::@3 mul8u_error @26 main @begin mul8u_compare mul8u_error::@6
mul8u_error::@7 dominated by mul8u_compare::@14 mul8u_compare::@13 mul8u_compare::@12 main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 mul8u_compare::@3 mul8u_compare::@4 main::@3 main::@4 mul8u_compare::@8 mul8u_error::@1 mul8u_error::@4 mul8u_error::@5 mul8u_error::@2 mul8u_error::@3 mul8u_error @26 main @begin mul8u_compare mul8u_error::@6 mul8u_error::@7
mul8u_error::@8 dominated by mul8u_compare::@14 mul8u_compare::@13 mul8u_compare::@12 main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 mul8u_compare::@3 mul8u_compare::@4 main::@3 main::@4 mul8u_compare::@8 mul8u_error::@1 mul8u_error::@4 mul8u_error::@5 mul8u_error::@2 mul8u_error::@3 mul8u_error @26 main @begin mul8u_compare mul8u_error::@8 mul8u_error::@6 mul8u_error::@7
mul8u_error::@9 dominated by mul8u_compare::@14 mul8u_compare::@13 mul8u_compare::@12 main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 mul8u_compare::@3 mul8u_compare::@4 main::@3 main::@4 mul8u_compare::@8 mul8u_error::@1 mul8u_error::@4 mul8u_error::@5 mul8u_error::@2 mul8u_error::@3 mul8u_error @26 main @begin mul8u_compare mul8u_error::@8 mul8u_error::@9 mul8u_error::@6 mul8u_error::@7
mul8u_error::@10 dominated by mul8u_compare::@14 mul8u_compare::@13 mul8u_compare::@12 main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 mul8u_compare::@3 mul8u_compare::@4 mul8u_error::@10 main::@3 main::@4 mul8u_compare::@8 mul8u_error::@1 mul8u_error::@4 mul8u_error::@5 mul8u_error::@2 mul8u_error::@3 mul8u_error @26 main @begin mul8u_compare mul8u_error::@8 mul8u_error::@9 mul8u_error::@6 mul8u_error::@7
mul8u_error::@return dominated by mul8u_compare::@14 mul8u_compare::@13 mul8u_compare::@12 main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 mul8u_compare::@3 mul8u_compare::@4 mul8u_error::@10 main::@3 main::@4 mul8u_compare::@8 mul8u_error::@1 mul8u_error::@4 mul8u_error::@5 mul8u_error::@2 mul8u_error::@3 mul8u_error @26 main @begin mul8u_compare mul8u_error::@8 mul8u_error::@9 mul8u_error::@6 mul8u_error::@7 mul8u_error::@return
muls8u dominated by muls8u main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 main::@3 main::@4 @26 main @begin mul8u_compare
muls8u::@2 dominated by muls8u main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 main::@3 main::@4 @26 main @begin mul8u_compare muls8u::@2
muls8u::@1 dominated by muls8u main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 main::@3 main::@4 @26 main @begin mul8u_compare muls8u::@1
muls8u::@return dominated by muls8u main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 main::@3 main::@4 @26 main @begin mul8u_compare muls8u::@1 muls8u::@return
mulf_tables_cmp dominated by main::@1 main::@2 main::@3 @26 main @begin mulf_tables_cmp
mulf_tables_cmp::@1 dominated by main::@1 main::@2 main::@3 @26 main @begin mulf_tables_cmp mulf_tables_cmp::@1
mulf_tables_cmp::@3 dominated by main::@1 main::@2 main::@3 @26 main @begin mulf_tables_cmp mulf_tables_cmp::@1 mulf_tables_cmp::@3
mulf_tables_cmp::@6 dominated by main::@1 main::@2 main::@3 @26 main @begin mulf_tables_cmp mulf_tables_cmp::@1 mulf_tables_cmp::@6 mulf_tables_cmp::@3
mulf_tables_cmp::@7 dominated by main::@1 main::@2 main::@3 @26 main @begin mulf_tables_cmp mulf_tables_cmp::@7 mulf_tables_cmp::@1 mulf_tables_cmp::@6 mulf_tables_cmp::@3
mulf_tables_cmp::@8 dominated by main::@1 main::@2 main::@3 @26 main @begin mulf_tables_cmp mulf_tables_cmp::@8 mulf_tables_cmp::@7 mulf_tables_cmp::@1 mulf_tables_cmp::@6 mulf_tables_cmp::@3
mulf_tables_cmp::@return dominated by main::@1 main::@2 main::@3 @26 main mulf_tables_cmp::@return @begin mulf_tables_cmp mulf_tables_cmp::@1
mulf_tables_cmp::@2 dominated by main::@1 main::@2 main::@3 @26 main @begin mulf_tables_cmp mulf_tables_cmp::@2 mulf_tables_cmp::@1
mulf_tables_cmp::@5 dominated by main::@1 main::@2 main::@3 @26 main @begin mulf_tables_cmp mulf_tables_cmp::@2 mulf_tables_cmp::@1 mulf_tables_cmp::@5
mulf_tables_cmp::@10 dominated by main::@1 main::@2 main::@3 @26 main @begin mulf_tables_cmp mulf_tables_cmp::@10 mulf_tables_cmp::@2 mulf_tables_cmp::@1 mulf_tables_cmp::@5
mulf_init_asm dominated by main::@1 main::@2 mulf_init_asm @26 main @begin
mulf_init_asm::@return dominated by main::@1 main::@2 mulf_init_asm::@return mulf_init_asm @26 main @begin
mulf_init dominated by main::@1 @26 main @begin mulf_init
mulf_init::@1 dominated by main::@1 @26 main @begin mulf_init mulf_init::@1
mulf_init::@5 dominated by main::@1 @26 main @begin mulf_init mulf_init::@1 mulf_init::@5
mulf_init::@2 dominated by main::@1 @26 main @begin mulf_init mulf_init::@2 mulf_init::@1
mulf_init::@3 dominated by main::@1 @26 main @begin mulf_init mulf_init::@2 mulf_init::@1 mulf_init::@3
mulf_init::@4 dominated by main::@1 @26 main @begin mulf_init mulf_init::@2 mulf_init::@1 mulf_init::@4 mulf_init::@3
mulf_init::@8 dominated by main::@1 @26 main @begin mulf_init mulf_init::@2 mulf_init::@1 mulf_init::@4 mulf_init::@3 mulf_init::@8
mulf_init::@return dominated by main::@1 mulf_init::@return @26 main @begin mulf_init mulf_init::@2 mulf_init::@1 mulf_init::@4 mulf_init::@3 mulf_init::@8
mulf_init::@12 dominated by mulf_init::@12 main::@1 @26 main @begin mulf_init mulf_init::@2 mulf_init::@1 mulf_init::@3
print_cls dominated by print_cls @26 main @begin
print_cls::@1 dominated by print_cls @26 main @begin print_cls::@1
print_cls::@return dominated by print_cls @26 main @begin print_cls::@return print_cls::@1
@27 dominated by @27 @begin
@end dominated by @27 @end @begin
main dominated by @27 main @begin
main::@1 dominated by main::@1 @27 main @begin
main::@2 dominated by main::@1 main::@2 @27 main @begin
main::@3 dominated by main::@1 main::@2 main::@3 @27 main @begin
main::@4 dominated by main::@1 main::@2 main::@3 main::@4 @27 main @begin
main::@5 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 @27 main @begin
main::@return dominated by main::@1 main::@2 main::@5 main::@3 main::@4 main::@return @27 main @begin
mul8s_compare dominated by main::@1 main::@2 main::@5 main::@3 main::@4 @27 main @begin mul8s_compare
mul8s_compare::@1 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@1 @27 main @begin mul8s_compare
mul8s_compare::@2 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@1 mul8s_compare::@2 @27 main @begin mul8s_compare
mul8s_compare::@12 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@1 mul8s_compare::@2 @27 mul8s_compare::@12 main @begin mul8s_compare
mul8s_compare::@13 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@1 mul8s_compare::@2 @27 mul8s_compare::@12 mul8s_compare::@13 main @begin mul8s_compare
mul8s_compare::@14 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@1 mul8s_compare::@2 mul8s_compare::@14 @27 mul8s_compare::@12 mul8s_compare::@13 main @begin mul8s_compare
mul8s_compare::@6 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@6 mul8s_compare::@1 mul8s_compare::@2 mul8s_compare::@14 @27 mul8s_compare::@12 mul8s_compare::@13 main @begin mul8s_compare
mul8s_compare::@3 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@1 mul8s_compare::@2 mul8s_compare::@14 @27 mul8s_compare::@12 mul8s_compare::@13 main @begin mul8s_compare
mul8s_compare::@4 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@1 mul8s_compare::@2 mul8s_compare::@14 @27 mul8s_compare::@12 mul8s_compare::@13 main @begin mul8s_compare
mul8s_compare::@8 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@1 mul8s_compare::@2 mul8s_compare::@14 @27 mul8s_compare::@12 mul8s_compare::@13 main @begin mul8s_compare
mul8s_compare::@return dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@1 mul8s_compare::@2 mul8s_compare::@14 @27 mul8s_compare::@12 mul8s_compare::@13 main @begin mul8s_compare mul8s_compare::@return
mul8s_compare::@5 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@5 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@1 mul8s_compare::@2 mul8s_compare::@14 @27 mul8s_compare::@12 mul8s_compare::@13 main @begin mul8s_compare
mul8s_compare::@10 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@5 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@1 mul8s_compare::@2 mul8s_compare::@10 mul8s_compare::@14 @27 mul8s_compare::@12 mul8s_compare::@13 main @begin mul8s_compare
mul8s_compare::@11 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@5 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@1 mul8s_compare::@2 mul8s_compare::@10 mul8s_compare::@11 mul8s_compare::@14 @27 mul8s_compare::@12 mul8s_compare::@13 main @begin mul8s_compare
mul8s_compare::@16 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@5 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@1 mul8s_compare::@2 mul8s_compare::@10 mul8s_compare::@11 mul8s_compare::@14 @27 mul8s_compare::@12 mul8s_compare::@13 main @begin mul8s_compare::@16 mul8s_compare
mul8s_compare::@20 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@1 mul8s_compare::@2 mul8s_compare::@14 @27 mul8s_compare::@12 mul8s_compare::@13 main @begin mul8s_compare::@20 mul8s_compare
print_ln dominated by main::@1 main::@2 main::@3 print_ln @27 main @begin
print_ln::@1 dominated by main::@1 main::@2 main::@3 print_ln print_ln::@1 @27 main @begin
print_ln::@return dominated by print_ln::@return main::@1 main::@2 main::@3 print_ln print_ln::@1 @27 main @begin
print_str dominated by main::@1 main::@2 main::@3 print_str @27 main @begin
print_str::@1 dominated by main::@1 main::@2 main::@3 print_str::@1 print_str @27 main @begin
print_str::@return dominated by main::@1 main::@2 main::@3 print_str::@return print_str::@1 print_str @27 main @begin
print_str::@2 dominated by main::@1 main::@2 main::@3 print_str::@1 print_str::@2 print_str @27 main @begin
mul8s_error dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@1 mul8s_compare::@2 mul8s_compare::@14 @27 mul8s_compare::@12 mul8s_compare::@13 main mul8s_error @begin mul8s_compare
mul8s_error::@1 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@1 mul8s_compare::@2 mul8s_error::@1 mul8s_compare::@14 @27 mul8s_compare::@12 mul8s_compare::@13 main mul8s_error @begin mul8s_compare
mul8s_error::@2 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@1 mul8s_compare::@2 mul8s_error::@1 mul8s_error::@2 mul8s_compare::@14 @27 mul8s_compare::@12 mul8s_compare::@13 main mul8s_error @begin mul8s_compare
mul8s_error::@3 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@1 mul8s_compare::@2 mul8s_error::@1 mul8s_error::@3 mul8s_error::@2 mul8s_compare::@14 @27 mul8s_compare::@12 mul8s_compare::@13 main mul8s_error @begin mul8s_compare
mul8s_error::@4 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@1 mul8s_compare::@2 mul8s_error::@1 mul8s_error::@3 mul8s_error::@2 mul8s_error::@4 mul8s_compare::@14 @27 mul8s_compare::@12 mul8s_compare::@13 main mul8s_error @begin mul8s_compare
mul8s_error::@5 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@1 mul8s_compare::@2 mul8s_error::@1 mul8s_error::@3 mul8s_error::@2 mul8s_error::@5 mul8s_error::@4 mul8s_compare::@14 @27 mul8s_compare::@12 mul8s_compare::@13 main mul8s_error @begin mul8s_compare
mul8s_error::@6 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@1 mul8s_compare::@2 mul8s_error::@1 mul8s_error::@3 mul8s_error::@2 mul8s_error::@5 mul8s_error::@4 mul8s_error::@6 mul8s_compare::@14 @27 mul8s_compare::@12 mul8s_compare::@13 main mul8s_error @begin mul8s_compare
mul8s_error::@7 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@1 mul8s_compare::@2 mul8s_error::@1 mul8s_error::@3 mul8s_error::@2 mul8s_error::@5 mul8s_error::@4 mul8s_error::@7 mul8s_error::@6 mul8s_compare::@14 @27 mul8s_compare::@12 mul8s_compare::@13 main mul8s_error @begin mul8s_compare
mul8s_error::@8 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@1 mul8s_compare::@2 mul8s_error::@1 mul8s_error::@3 mul8s_error::@2 mul8s_error::@5 mul8s_error::@4 mul8s_error::@7 mul8s_error::@6 mul8s_error::@8 mul8s_compare::@14 @27 mul8s_compare::@12 mul8s_compare::@13 main mul8s_error @begin mul8s_compare
mul8s_error::@9 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@1 mul8s_compare::@2 mul8s_error::@1 mul8s_error::@3 mul8s_error::@2 mul8s_error::@5 mul8s_error::@4 mul8s_error::@7 mul8s_error::@6 mul8s_error::@9 mul8s_error::@8 mul8s_compare::@14 @27 mul8s_compare::@12 mul8s_compare::@13 main mul8s_error @begin mul8s_compare
mul8s_error::@10 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@1 mul8s_compare::@2 mul8s_error::@1 mul8s_error::@3 mul8s_error::@2 mul8s_error::@5 mul8s_error::@4 mul8s_error::@7 mul8s_error::@6 mul8s_error::@9 mul8s_error::@8 mul8s_compare::@14 @27 mul8s_compare::@12 mul8s_compare::@13 main mul8s_error @begin mul8s_compare mul8s_error::@10
mul8s_error::@return dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@1 mul8s_compare::@2 mul8s_error::@1 mul8s_error::@3 mul8s_error::@2 mul8s_error::@5 mul8s_error::@4 mul8s_error::@7 mul8s_error::@6 mul8s_error::@9 mul8s_error::@8 mul8s_compare::@14 @27 mul8s_compare::@12 mul8s_compare::@13 main mul8s_error @begin mul8s_error::@return mul8s_compare mul8s_error::@10
print_sword dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@1 mul8s_compare::@2 mul8s_error::@1 mul8s_error::@3 mul8s_error::@2 print_sword mul8s_error::@5 mul8s_error::@4 mul8s_compare::@14 @27 mul8s_compare::@12 mul8s_compare::@13 main mul8s_error @begin mul8s_compare
print_sword::@2 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@1 mul8s_compare::@2 mul8s_error::@1 mul8s_error::@3 mul8s_error::@2 print_sword mul8s_error::@5 mul8s_error::@4 mul8s_compare::@14 print_sword::@2 @27 mul8s_compare::@12 mul8s_compare::@13 main mul8s_error @begin mul8s_compare
print_sword::@4 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@1 mul8s_compare::@2 mul8s_error::@1 mul8s_error::@3 mul8s_error::@2 print_sword mul8s_error::@5 mul8s_error::@4 mul8s_compare::@14 print_sword::@2 @27 mul8s_compare::@12 print_sword::@4 mul8s_compare::@13 main mul8s_error @begin mul8s_compare
print_sword::@1 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@1 mul8s_compare::@2 mul8s_error::@1 mul8s_error::@3 mul8s_error::@2 print_sword mul8s_error::@5 mul8s_error::@4 mul8s_compare::@14 @27 print_sword::@1 mul8s_compare::@12 mul8s_compare::@13 main mul8s_error @begin mul8s_compare
print_sword::@return dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@1 mul8s_compare::@2 mul8s_error::@1 mul8s_error::@3 mul8s_error::@2 print_sword mul8s_error::@5 mul8s_error::@4 mul8s_compare::@14 @27 print_sword::@1 mul8s_compare::@12 mul8s_compare::@13 main mul8s_error @begin print_sword::@return mul8s_compare
print_word dominated by print_word main::@1 main::@2 main::@3 @27 main @begin
print_word::@1 dominated by print_word main::@1 main::@2 main::@3 print_word::@1 @27 main @begin
print_word::@return dominated by print_word main::@1 main::@2 main::@3 print_word::@return print_word::@1 @27 main @begin
print_byte dominated by main::@1 main::@2 main::@3 print_byte @27 main @begin
print_byte::@1 dominated by main::@1 main::@2 main::@3 print_byte::@1 print_byte @27 main @begin
print_byte::@return dominated by main::@1 main::@2 main::@3 print_byte::@1 print_byte @27 main @begin print_byte::@return
print_char dominated by main::@1 main::@2 main::@3 @27 main print_char @begin
print_char::@return dominated by main::@1 main::@2 main::@3 @27 main print_char print_char::@return @begin
print_sbyte dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@1 mul8s_compare::@2 print_sbyte mul8s_error::@1 mul8s_compare::@14 @27 mul8s_compare::@12 mul8s_compare::@13 main mul8s_error @begin mul8s_compare
print_sbyte::@2 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@1 mul8s_compare::@2 print_sbyte mul8s_error::@1 mul8s_compare::@14 @27 mul8s_compare::@12 mul8s_compare::@13 main print_sbyte::@2 mul8s_error @begin mul8s_compare
print_sbyte::@4 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@1 mul8s_compare::@2 print_sbyte mul8s_error::@1 mul8s_compare::@14 @27 mul8s_compare::@12 mul8s_compare::@13 main print_sbyte::@4 print_sbyte::@2 mul8s_error @begin mul8s_compare
print_sbyte::@1 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@1 mul8s_compare::@2 print_sbyte mul8s_error::@1 mul8s_compare::@14 @27 mul8s_compare::@12 mul8s_compare::@13 main print_sbyte::@1 mul8s_error @begin mul8s_compare
print_sbyte::@return dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@3 mul8s_compare::@4 mul8s_compare::@8 mul8s_compare::@1 mul8s_compare::@2 print_sbyte mul8s_error::@1 mul8s_compare::@14 @27 mul8s_compare::@12 mul8s_compare::@13 main print_sbyte::@1 mul8s_error @begin print_sbyte::@return mul8s_compare
mul8s dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@1 mul8s_compare::@2 @27 mul8s_compare::@12 mul8s_compare::@13 main @begin mul8s mul8s_compare
mul8s::@6 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@1 mul8s_compare::@2 @27 mul8s_compare::@12 mul8s_compare::@13 main mul8s::@6 @begin mul8s mul8s_compare
mul8s::@3 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@1 mul8s_compare::@2 @27 mul8s_compare::@12 mul8s_compare::@13 main mul8s::@6 mul8s::@3 @begin mul8s mul8s_compare
mul8s::@1 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@1 mul8s_compare::@2 @27 mul8s_compare::@12 mul8s_compare::@13 main mul8s::@6 mul8s::@1 @begin mul8s mul8s_compare
mul8s::@4 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@1 mul8s_compare::@2 @27 mul8s_compare::@12 mul8s_compare::@13 main mul8s::@6 mul8s::@1 mul8s::@4 @begin mul8s mul8s_compare
mul8s::@2 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@1 mul8s_compare::@2 @27 mul8s_compare::@12 mul8s_compare::@13 main mul8s::@6 mul8s::@1 mul8s::@2 @begin mul8s mul8s_compare
mul8s::@return dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@1 mul8s_compare::@2 @27 mul8s_compare::@12 mul8s_compare::@13 main mul8s::@6 mul8s::@1 mul8s::@2 @begin mul8s::@return mul8s mul8s_compare
mul8u dominated by main::@1 main::@2 main::@3 main::@4 mul8u @27 main @begin
mul8u::@1 dominated by main::@1 main::@2 main::@3 main::@4 mul8u @27 main @begin mul8u::@1
mul8u::@return dominated by main::@1 main::@2 main::@3 main::@4 mul8u mul8u::@return @27 main @begin mul8u::@1
mul8u::@2 dominated by main::@1 main::@2 main::@3 main::@4 mul8u @27 main @begin mul8u::@2 mul8u::@1
mul8u::@7 dominated by main::@1 main::@2 main::@3 main::@4 mul8u @27 main @begin mul8u::@7 mul8u::@2 mul8u::@1
mul8u::@4 dominated by main::@1 main::@2 main::@3 main::@4 mul8u @27 main @begin mul8u::@2 mul8u::@1 mul8u::@4
mulf8s dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@1 mul8s_compare::@2 mulf8s @27 mul8s_compare::@12 main @begin mul8s_compare
mulf8s::@6 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@1 mul8s_compare::@2 mulf8s @27 mul8s_compare::@12 main @begin mulf8s::@6 mul8s_compare
mulf8s::@3 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@1 mul8s_compare::@2 mulf8s @27 mul8s_compare::@12 main @begin mulf8s::@3 mulf8s::@6 mul8s_compare
mulf8s::@1 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@1 mul8s_compare::@2 mulf8s @27 mul8s_compare::@12 main @begin mulf8s::@1 mulf8s::@6 mul8s_compare
mulf8s::@4 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@1 mul8s_compare::@2 mulf8s @27 mul8s_compare::@12 main @begin mulf8s::@1 mulf8s::@4 mulf8s::@6 mul8s_compare
mulf8s::@2 dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@1 mul8s_compare::@2 mulf8s @27 mul8s_compare::@12 main @begin mulf8s::@2 mulf8s::@1 mulf8s::@6 mul8s_compare
mulf8s::@return dominated by main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@1 mul8s_compare::@2 mulf8s @27 mul8s_compare::@12 main @begin mulf8s::@2 mulf8s::@1 mulf8s::@return mulf8s::@6 mul8s_compare
mulf8u dominated by main::@1 main::@2 main::@3 main::@4 mulf8u @27 main @begin
mulf8u::@return dominated by main::@1 main::@2 main::@3 main::@4 mulf8u @27 main @begin mulf8u::@return
muls8s dominated by muls8s main::@1 main::@2 main::@5 main::@3 main::@4 mul8s_compare::@1 mul8s_compare::@2 @27 main @begin mul8s_compare
muls8s::@2 dominated by muls8s main::@1 main::@2 main::@5 main::@3 main::@4 muls8s::@2 mul8s_compare::@1 mul8s_compare::@2 @27 main @begin mul8s_compare
muls8s::@3 dominated by muls8s main::@1 main::@2 main::@5 main::@3 main::@4 muls8s::@3 mul8s_compare::@1 mul8s_compare::@2 @27 main @begin mul8s_compare
muls8s::@return dominated by muls8s main::@1 main::@2 main::@5 main::@3 main::@4 muls8s::@3 mul8s_compare::@1 mul8s_compare::@2 muls8s::@return @27 main @begin mul8s_compare
muls8s::@1 dominated by muls8s main::@1 main::@2 main::@5 main::@3 main::@4 muls8s::@1 mul8s_compare::@1 mul8s_compare::@2 @27 main @begin mul8s_compare
muls8s::@5 dominated by muls8s main::@1 main::@2 main::@5 main::@3 main::@4 muls8s::@5 muls8s::@1 mul8s_compare::@1 mul8s_compare::@2 @27 main @begin mul8s_compare
mul8u_compare dominated by main::@1 main::@2 main::@3 main::@4 @27 main @begin mul8u_compare
mul8u_compare::@1 dominated by main::@1 mul8u_compare::@1 main::@2 main::@3 main::@4 @27 main @begin mul8u_compare
mul8u_compare::@2 dominated by main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 main::@3 main::@4 @27 main @begin mul8u_compare
mul8u_compare::@12 dominated by mul8u_compare::@12 main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 main::@3 main::@4 @27 main @begin mul8u_compare
mul8u_compare::@13 dominated by mul8u_compare::@13 mul8u_compare::@12 main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 main::@3 main::@4 @27 main @begin mul8u_compare
mul8u_compare::@14 dominated by mul8u_compare::@14 mul8u_compare::@13 mul8u_compare::@12 main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 main::@3 main::@4 @27 main @begin mul8u_compare
mul8u_compare::@6 dominated by mul8u_compare::@14 mul8u_compare::@13 mul8u_compare::@12 main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 mul8u_compare::@6 main::@3 main::@4 @27 main @begin mul8u_compare
mul8u_compare::@3 dominated by mul8u_compare::@14 mul8u_compare::@13 mul8u_compare::@12 main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 mul8u_compare::@3 main::@3 main::@4 @27 main @begin mul8u_compare
mul8u_compare::@4 dominated by mul8u_compare::@14 mul8u_compare::@13 mul8u_compare::@12 main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 mul8u_compare::@3 mul8u_compare::@4 main::@3 main::@4 @27 main @begin mul8u_compare
mul8u_compare::@8 dominated by mul8u_compare::@14 mul8u_compare::@13 mul8u_compare::@12 main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 mul8u_compare::@3 mul8u_compare::@4 main::@3 main::@4 mul8u_compare::@8 @27 main @begin mul8u_compare
mul8u_compare::@return dominated by mul8u_compare::@14 mul8u_compare::@13 mul8u_compare::@12 main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 mul8u_compare::@3 mul8u_compare::@4 main::@3 main::@4 mul8u_compare::@return @27 main @begin mul8u_compare
mul8u_compare::@5 dominated by mul8u_compare::@14 mul8u_compare::@13 mul8u_compare::@12 main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 mul8u_compare::@3 mul8u_compare::@4 mul8u_compare::@5 main::@3 main::@4 @27 main @begin mul8u_compare
mul8u_compare::@10 dominated by mul8u_compare::@14 mul8u_compare::@10 mul8u_compare::@13 mul8u_compare::@12 main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 mul8u_compare::@3 mul8u_compare::@4 mul8u_compare::@5 main::@3 main::@4 @27 main @begin mul8u_compare
mul8u_compare::@11 dominated by mul8u_compare::@14 mul8u_compare::@11 mul8u_compare::@10 mul8u_compare::@13 mul8u_compare::@12 main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 mul8u_compare::@3 mul8u_compare::@4 mul8u_compare::@5 main::@3 main::@4 @27 main @begin mul8u_compare
mul8u_compare::@16 dominated by mul8u_compare::@14 mul8u_compare::@16 mul8u_compare::@11 mul8u_compare::@10 mul8u_compare::@13 mul8u_compare::@12 main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 mul8u_compare::@3 mul8u_compare::@4 mul8u_compare::@5 main::@3 main::@4 @27 main @begin mul8u_compare
mul8u_compare::@20 dominated by mul8u_compare::@14 mul8u_compare::@13 mul8u_compare::@12 main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 mul8u_compare::@3 main::@3 main::@4 mul8u_compare::@20 @27 main @begin mul8u_compare
mul8u_error dominated by mul8u_compare::@14 mul8u_compare::@13 mul8u_compare::@12 main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 mul8u_compare::@3 mul8u_compare::@4 main::@3 main::@4 mul8u_compare::@8 mul8u_error @27 main @begin mul8u_compare
mul8u_error::@1 dominated by mul8u_compare::@14 mul8u_compare::@13 mul8u_compare::@12 main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 mul8u_compare::@3 mul8u_compare::@4 main::@3 main::@4 mul8u_compare::@8 mul8u_error::@1 mul8u_error @27 main @begin mul8u_compare
mul8u_error::@2 dominated by mul8u_compare::@14 mul8u_compare::@13 mul8u_compare::@12 main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 mul8u_compare::@3 mul8u_compare::@4 main::@3 main::@4 mul8u_compare::@8 mul8u_error::@1 mul8u_error::@2 mul8u_error @27 main @begin mul8u_compare
mul8u_error::@3 dominated by mul8u_compare::@14 mul8u_compare::@13 mul8u_compare::@12 main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 mul8u_compare::@3 mul8u_compare::@4 main::@3 main::@4 mul8u_compare::@8 mul8u_error::@1 mul8u_error::@2 mul8u_error::@3 mul8u_error @27 main @begin mul8u_compare
mul8u_error::@4 dominated by mul8u_compare::@14 mul8u_compare::@13 mul8u_compare::@12 main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 mul8u_compare::@3 mul8u_compare::@4 main::@3 main::@4 mul8u_compare::@8 mul8u_error::@1 mul8u_error::@4 mul8u_error::@2 mul8u_error::@3 mul8u_error @27 main @begin mul8u_compare
mul8u_error::@5 dominated by mul8u_compare::@14 mul8u_compare::@13 mul8u_compare::@12 main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 mul8u_compare::@3 mul8u_compare::@4 main::@3 main::@4 mul8u_compare::@8 mul8u_error::@1 mul8u_error::@4 mul8u_error::@5 mul8u_error::@2 mul8u_error::@3 mul8u_error @27 main @begin mul8u_compare
mul8u_error::@6 dominated by mul8u_compare::@14 mul8u_compare::@13 mul8u_compare::@12 main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 mul8u_compare::@3 mul8u_compare::@4 main::@3 main::@4 mul8u_compare::@8 mul8u_error::@1 mul8u_error::@4 mul8u_error::@5 mul8u_error::@2 mul8u_error::@3 mul8u_error @27 main @begin mul8u_compare mul8u_error::@6
mul8u_error::@7 dominated by mul8u_compare::@14 mul8u_compare::@13 mul8u_compare::@12 main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 mul8u_compare::@3 mul8u_compare::@4 main::@3 main::@4 mul8u_compare::@8 mul8u_error::@1 mul8u_error::@4 mul8u_error::@5 mul8u_error::@2 mul8u_error::@3 mul8u_error @27 main @begin mul8u_compare mul8u_error::@6 mul8u_error::@7
mul8u_error::@8 dominated by mul8u_compare::@14 mul8u_compare::@13 mul8u_compare::@12 main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 mul8u_compare::@3 mul8u_compare::@4 main::@3 main::@4 mul8u_compare::@8 mul8u_error::@1 mul8u_error::@4 mul8u_error::@5 mul8u_error::@2 mul8u_error::@3 mul8u_error @27 main @begin mul8u_compare mul8u_error::@8 mul8u_error::@6 mul8u_error::@7
mul8u_error::@9 dominated by mul8u_compare::@14 mul8u_compare::@13 mul8u_compare::@12 main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 mul8u_compare::@3 mul8u_compare::@4 main::@3 main::@4 mul8u_compare::@8 mul8u_error::@1 mul8u_error::@4 mul8u_error::@5 mul8u_error::@2 mul8u_error::@3 mul8u_error @27 main @begin mul8u_compare mul8u_error::@8 mul8u_error::@9 mul8u_error::@6 mul8u_error::@7
mul8u_error::@10 dominated by mul8u_compare::@14 mul8u_compare::@13 mul8u_compare::@12 main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 mul8u_compare::@3 mul8u_compare::@4 mul8u_error::@10 main::@3 main::@4 mul8u_compare::@8 mul8u_error::@1 mul8u_error::@4 mul8u_error::@5 mul8u_error::@2 mul8u_error::@3 mul8u_error @27 main @begin mul8u_compare mul8u_error::@8 mul8u_error::@9 mul8u_error::@6 mul8u_error::@7
mul8u_error::@return dominated by mul8u_compare::@14 mul8u_compare::@13 mul8u_compare::@12 main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 mul8u_compare::@3 mul8u_compare::@4 mul8u_error::@10 main::@3 main::@4 mul8u_compare::@8 mul8u_error::@1 mul8u_error::@4 mul8u_error::@5 mul8u_error::@2 mul8u_error::@3 mul8u_error @27 main @begin mul8u_compare mul8u_error::@8 mul8u_error::@9 mul8u_error::@6 mul8u_error::@7 mul8u_error::@return
muls8u dominated by muls8u main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 main::@3 main::@4 @27 main @begin mul8u_compare
muls8u::@2 dominated by muls8u main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 main::@3 main::@4 @27 main @begin mul8u_compare muls8u::@2
muls8u::@1 dominated by muls8u main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 main::@3 main::@4 @27 main @begin mul8u_compare muls8u::@1
muls8u::@return dominated by muls8u main::@1 mul8u_compare::@1 main::@2 mul8u_compare::@2 main::@3 main::@4 @27 main @begin mul8u_compare muls8u::@1 muls8u::@return
mulf_tables_cmp dominated by main::@1 main::@2 main::@3 @27 main @begin mulf_tables_cmp
mulf_tables_cmp::@1 dominated by main::@1 main::@2 main::@3 @27 main @begin mulf_tables_cmp mulf_tables_cmp::@1
mulf_tables_cmp::@3 dominated by main::@1 main::@2 main::@3 @27 main @begin mulf_tables_cmp mulf_tables_cmp::@1 mulf_tables_cmp::@3
mulf_tables_cmp::@6 dominated by main::@1 main::@2 main::@3 @27 main @begin mulf_tables_cmp mulf_tables_cmp::@1 mulf_tables_cmp::@6 mulf_tables_cmp::@3
mulf_tables_cmp::@7 dominated by main::@1 main::@2 main::@3 @27 main @begin mulf_tables_cmp mulf_tables_cmp::@7 mulf_tables_cmp::@1 mulf_tables_cmp::@6 mulf_tables_cmp::@3
mulf_tables_cmp::@8 dominated by main::@1 main::@2 main::@3 @27 main @begin mulf_tables_cmp mulf_tables_cmp::@8 mulf_tables_cmp::@7 mulf_tables_cmp::@1 mulf_tables_cmp::@6 mulf_tables_cmp::@3
mulf_tables_cmp::@return dominated by main::@1 main::@2 main::@3 @27 main mulf_tables_cmp::@return @begin mulf_tables_cmp mulf_tables_cmp::@1
mulf_tables_cmp::@2 dominated by main::@1 main::@2 main::@3 @27 main @begin mulf_tables_cmp mulf_tables_cmp::@2 mulf_tables_cmp::@1
mulf_tables_cmp::@5 dominated by main::@1 main::@2 main::@3 @27 main @begin mulf_tables_cmp mulf_tables_cmp::@2 mulf_tables_cmp::@1 mulf_tables_cmp::@5
mulf_tables_cmp::@10 dominated by main::@1 main::@2 main::@3 @27 main @begin mulf_tables_cmp mulf_tables_cmp::@10 mulf_tables_cmp::@2 mulf_tables_cmp::@1 mulf_tables_cmp::@5
mulf_init_asm dominated by main::@1 main::@2 mulf_init_asm @27 main @begin
mulf_init_asm::@return dominated by main::@1 main::@2 mulf_init_asm::@return mulf_init_asm @27 main @begin
mulf_init dominated by main::@1 @27 main @begin mulf_init
mulf_init::@1 dominated by main::@1 @27 main @begin mulf_init mulf_init::@1
mulf_init::@5 dominated by main::@1 @27 main @begin mulf_init mulf_init::@1 mulf_init::@5
mulf_init::@2 dominated by main::@1 @27 main @begin mulf_init mulf_init::@2 mulf_init::@1
mulf_init::@3 dominated by main::@1 @27 main @begin mulf_init mulf_init::@2 mulf_init::@1 mulf_init::@3
mulf_init::@4 dominated by main::@1 @27 main @begin mulf_init mulf_init::@2 mulf_init::@1 mulf_init::@4 mulf_init::@3
mulf_init::@8 dominated by main::@1 @27 main @begin mulf_init mulf_init::@2 mulf_init::@1 mulf_init::@4 mulf_init::@3 mulf_init::@8
mulf_init::@return dominated by main::@1 mulf_init::@return @27 main @begin mulf_init mulf_init::@2 mulf_init::@1 mulf_init::@4 mulf_init::@3 mulf_init::@8
mulf_init::@12 dominated by mulf_init::@12 main::@1 @27 main @begin mulf_init mulf_init::@2 mulf_init::@1 mulf_init::@3
print_cls dominated by print_cls @27 main @begin
print_cls::@1 dominated by print_cls @27 main @begin print_cls::@1
print_cls::@return dominated by print_cls @27 main @begin print_cls::@return print_cls::@1
NATURAL LOOPS
Found back edge: Loop head: mul8s_compare::@2 tails: mul8s_compare::@5 blocks: null
@ -8165,15 +8245,15 @@ INITIAL ASM
.label line_cursor = 5
//SEG2 @begin
bbegin:
//SEG3 [1] phi from @begin to @26 [phi:@begin->@26]
b26_from_bbegin:
jmp b26
//SEG4 @26
b26:
//SEG3 [1] phi from @begin to @27 [phi:@begin->@27]
b27_from_bbegin:
jmp b27
//SEG4 @27
b27:
//SEG5 [2] call main param-assignment [ ] ( )
jsr main
//SEG6 [3] phi from @26 to @end [phi:@26->@end]
bend_from_b26:
//SEG6 [3] phi from @27 to @end [phi:@27->@end]
bend_from_b27:
jmp bend
//SEG7 @end
bend:
@ -10740,15 +10820,15 @@ ASSEMBLER BEFORE OPTIMIZATION
.label line_cursor = 4
//SEG2 @begin
bbegin:
//SEG3 [1] phi from @begin to @26 [phi:@begin->@26]
b26_from_bbegin:
jmp b26
//SEG4 @26
b26:
//SEG3 [1] phi from @begin to @27 [phi:@begin->@27]
b27_from_bbegin:
jmp b27
//SEG4 @27
b27:
//SEG5 [2] call main param-assignment [ ] ( )
jsr main
//SEG6 [3] phi from @26 to @end [phi:@26->@end]
bend_from_b26:
//SEG6 [3] phi from @27 to @end [phi:@27->@end]
bend_from_b27:
jmp bend
//SEG7 @end
bend:
@ -12682,7 +12762,7 @@ print_cls: {
mula_sqr2_hi: .fill $200, 0
ASSEMBLER OPTIMIZATIONS
Removing instruction jmp b26
Removing instruction jmp b27
Removing instruction jmp bend
Removing instruction jmp b1
Removing instruction jmp b2
@ -12849,8 +12929,8 @@ Replacing label b3_from_b4 with b3
Replacing label b1_from_b1 with b1
Replacing label b1_from_b1 with b1
Removing instruction bbegin:
Removing instruction b26_from_bbegin:
Removing instruction bend_from_b26:
Removing instruction b27_from_bbegin:
Removing instruction bend_from_b27:
Removing instruction b1_from_main:
Removing instruction mulf_init_from_b1:
Removing instruction b2_from_b1:
@ -12945,7 +13025,7 @@ Removing instruction b12_from_b3:
Removing instruction b4_from_b12:
Removing instruction b1_from_b1:
Succesful ASM optimization Pass5RedundantLabelElimination
Removing instruction b26:
Removing instruction b27:
Removing instruction bend:
Removing instruction print_cls_from_main:
Removing instruction b1:
@ -13106,7 +13186,7 @@ Removing unreachable instruction jmp b4
Succesful ASM optimization Pass5UnreachableCodeElimination
FINAL SYMBOL TABLE
(label) @26
(label) @27
(label) @begin
(label) @end
(byte*) BGCOL
@ -13601,11 +13681,11 @@ Score: 224327
.label char_cursor = $a
.label line_cursor = 4
//SEG2 @begin
//SEG3 [1] phi from @begin to @26 [phi:@begin->@26]
//SEG4 @26
//SEG3 [1] phi from @begin to @27 [phi:@begin->@27]
//SEG4 @27
//SEG5 [2] call main param-assignment [ ] ( )
jsr main
//SEG6 [3] phi from @26 to @end [phi:@26->@end]
//SEG6 [3] phi from @27 to @end [phi:@27->@end]
//SEG7 @end
//SEG8 main
main: {

View File

@ -1,4 +1,4 @@
(label) @26
(label) @27
(label) @begin
(label) @end
(byte*) BGCOL