1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-09-08 17:54:40 +00:00

Extended linear table gen with two tables.

This commit is contained in:
jespergravgaard 2018-02-18 20:41:36 +01:00
parent b5dfef7368
commit a695a94422
7 changed files with 3484 additions and 1947 deletions

View File

@ -0,0 +1,8 @@
lda #<{c1}
sta {z1}
lda #>{c1}
sta {z1}+1
lda {z2}
sta {z1}+2
lda {z2}+1
sta {z1}+3

View File

@ -0,0 +1,7 @@
lda {z2}
sec
sbc #1
sta {z1}
lda {z2}+1
sbc #0
sta {z1}+1

View File

@ -4,15 +4,29 @@ import "division.kc"
import "print.kc"
void main() {
word[20] lintab;
lin16u_gen(557, 29793, lintab, 20);
word[20] lintab1;
lin16u_gen(557, 29793, lintab1, 20);
word[20] lintab2;
lin16u_gen(31179, 63361, lintab2, 20);
print_cls();
print_str(" @");
print_word(557);
print_str(" @");
print_word(31179);
print_ln();
for(byte i=0; i<20*2; i=i+2) {
print_byte(i);
print_str(" @");
print_word(lintab[i]);
print_word(lintab1[i]);
print_str(" @");
print_word(lintab2[i]);
print_ln();
}
print_str(" @");
print_word(29793);
print_str(" @");
print_word(63361);
print_ln();
}
// Generate word linear table

View File

@ -2,32 +2,108 @@
:BasicUpstart(main)
.pc = $80d "Program"
.label SCREEN = $400
.label rem16u = 5
.label char_cursor = 5
.label char_cursor = 7
.label line_cursor = 3
.label rem16u = 3
jsr main
main: {
.label i = 2
lda #<lintab1
sta lin16u_gen.lintab
lda #>lintab1
sta lin16u_gen.lintab+1
lda #<0
sta rem16u
sta rem16u+1
lda #<$14
sta lin16u_gen.length
lda #>$14
sta lin16u_gen.length+1
lda #<$22d
sta lin16u_gen.min
lda #>$22d
sta lin16u_gen.min+1
lda #<$7461
sta lin16u_gen.max
lda #>$7461
sta lin16u_gen.max+1
jsr lin16u_gen
lda #<lintab2
sta lin16u_gen.lintab
lda #>lintab2
sta lin16u_gen.lintab+1
lda #<$14
sta lin16u_gen.length
lda #>$14
sta lin16u_gen.length+1
lda #<$79cb
sta lin16u_gen.min
lda #>$79cb
sta lin16u_gen.min+1
lda #<$f781
sta lin16u_gen.max
lda #>$f781
sta lin16u_gen.max+1
jsr lin16u_gen
jsr print_cls
lda #<SCREEN
sta line_cursor
lda #>SCREEN
sta line_cursor+1
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 #<$22d
sta print_word.w
lda #>$22d
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 #<$79cb
sta print_word.w
lda #>$79cb
sta print_word.w+1
jsr print_word
lda #<SCREEN
sta line_cursor
lda #>SCREEN
sta line_cursor+1
jsr print_ln
lda #0
sta i
b1:
ldx i
lda line_cursor
sta char_cursor
lda line_cursor+1
sta char_cursor+1
jsr print_byte
lda #<str2
sta print_str.str
lda #>str2
sta print_str.str+1
jsr print_str
ldy i
lda lintab,y
lda lintab1,y
sta print_word.w
lda lintab+1,y
lda lintab1+1,y
sta print_word.w+1
jsr print_word
lda #<str3
sta print_str.str
lda #>str3
sta print_str.str+1
jsr print_str
ldy i
lda lintab2,y
sta print_word.w
lda lintab2+1,y
sta print_word.w+1
jsr print_word
jsr print_ln
@ -36,16 +112,41 @@ main: {
adc i
sta i
cmp #$14*2
bcc b9
rts
b9:
bcc b1
lda line_cursor
sta char_cursor
lda line_cursor+1
sta char_cursor+1
jmp b1
str: .text " @"
lintab: .fill $28, 0
lda #<str4
sta print_str.str
lda #>str4
sta print_str.str+1
jsr print_str
lda #<$7461
sta print_word.w
lda #>$7461
sta print_word.w+1
jsr print_word
lda #<str5
sta print_str.str
lda #>str5
sta print_str.str+1
jsr print_str
lda #<$f781
sta print_word.w
lda #>$f781
sta print_word.w+1
jsr print_word
jsr print_ln
rts
str: .text " @"
str1: .text " @"
str2: .text " @"
str3: .text " @"
str4: .text " @"
str5: .text " @"
lintab1: .fill $28, 0
lintab2: .fill $28, 0
}
print_ln: {
b1:
@ -67,7 +168,7 @@ print_ln: {
rts
}
print_word: {
.label w = 7
.label w = 5
lda w+1
tax
jsr print_byte
@ -103,11 +204,7 @@ print_char: {
rts
}
print_str: {
.label str = 7
lda #<main.str
sta str
lda #>main.str
sta str+1
.label str = 5
b1:
ldy #0
lda (str),y
@ -151,24 +248,34 @@ print_cls: {
rts
}
lin16u_gen: {
.const min = $22d
.const max = $7461
.const length = $14
.const ampl = max-min
.label _5 = 7
.label stepi = $f
.label stepf = $d
.label step = $11
.label _5 = $f
.label ampl = 3
.label stepi = $15
.label stepf = $13
.label step = $17
.label val = 9
.label lintab = 3
.label lintab = $d
.label i = 5
lda #<length-1
.label max = 3
.label min = 5
.label length = 7
lda ampl
sec
sbc min
sta ampl
lda ampl+1
sbc min+1
sta ampl+1
lda length
sec
sbc #1
sta divr16u.divisor
lda #>length-1
lda length+1
sbc #0
sta divr16u.divisor+1
lda #<ampl
lda ampl
sta divr16u.dividend
lda #>ampl
lda ampl+1
sta divr16u.dividend+1
lda #<0
sta divr16u.rem
@ -178,9 +285,12 @@ lin16u_gen: {
sta stepi
lda divr16u.return+1
sta stepi+1
lda #<length-1
lda length
sec
sbc #1
sta divr16u.divisor
lda #>length-1
lda length+1
sbc #0
sta divr16u.divisor+1
lda #<0
sta divr16u.dividend
@ -195,20 +305,15 @@ lin16u_gen: {
lda stepf+1
sta step+1
lda #<0
sta val
sta val+1
lda min
sta val+2
lda min+1
sta val+3
lda #<0
sta i
sta i+1
lda #<main.lintab
sta lintab
lda #>main.lintab
sta lintab+1
lda #<min*$10000+0
sta val
lda #>min*$10000+0
sta val+1
lda #<min*$10000+0>>$10
sta val+2
lda #>min*$10000+0>>$10
sta val+3
b1:
lda val+2
sta _5
@ -245,21 +350,21 @@ lin16u_gen: {
inc i+1
!:
lda i+1
cmp #>length
cmp length+1
bcc b1
bne !+
lda i
cmp #<length
cmp length
bcc b1
!:
rts
}
divr16u: {
.label rem = 5
.label dividend = 7
.label quotient = $d
.label return = $d
.label divisor = 3
.label rem = 3
.label dividend = $11
.label quotient = $13
.label return = $13
.label divisor = $f
ldx #0
txa
sta quotient

View File

@ -9,181 +9,237 @@
[3] phi() [ ] ( )
main: scope:[main] from @18
[4] phi() [ ] ( main:2 [ ] )
[5] call lin16u_gen param-assignment [ ] ( main:2 [ ] )
[5] call lin16u_gen param-assignment [ divr16u::rem#11 ] ( main:2 [ divr16u::rem#11 ] )
to:main::@3
main::@3: scope:[main] from main
[6] phi() [ ] ( main:2 [ ] )
[7] call print_cls param-assignment [ ] ( main:2 [ ] )
to:main::@1
main::@1: scope:[main] from main::@3 main::@9
[8] (byte*) line_cursor#19 ← phi( main::@3/(const byte*) SCREEN#0 main::@9/(byte*) line_cursor#1 ) [ main::i#2 char_cursor#47 line_cursor#19 ] ( main:2 [ main::i#2 char_cursor#47 line_cursor#19 ] )
[8] (byte*) char_cursor#47 ← phi( main::@3/(const byte*) SCREEN#0 main::@9/(byte*~) char_cursor#51 ) [ main::i#2 char_cursor#47 line_cursor#19 ] ( main:2 [ main::i#2 char_cursor#47 line_cursor#19 ] )
[8] (byte) main::i#2 ← phi( main::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@9/(byte) main::i#1 ) [ main::i#2 char_cursor#47 line_cursor#19 ] ( main:2 [ main::i#2 char_cursor#47 line_cursor#19 ] )
[9] (byte) print_byte::b#2 ← (byte) main::i#2 [ main::i#2 char_cursor#47 line_cursor#19 print_byte::b#2 ] ( main:2 [ main::i#2 char_cursor#47 line_cursor#19 print_byte::b#2 ] )
[10] call print_byte param-assignment [ main::i#2 line_cursor#19 char_cursor#11 ] ( main:2 [ main::i#2 line_cursor#19 char_cursor#11 ] )
[6] phi() [ divr16u::rem#11 ] ( main:2 [ divr16u::rem#11 ] )
[7] call lin16u_gen param-assignment [ ] ( main:2 [ ] )
to:main::@4
main::@4: scope:[main] from main::@3
[8] phi() [ ] ( main:2 [ ] )
[9] call print_cls param-assignment [ ] ( main:2 [ ] )
to:main::@5
main::@5: scope:[main] from main::@1
[11] phi() [ main::i#2 line_cursor#19 char_cursor#11 ] ( main:2 [ main::i#2 line_cursor#19 char_cursor#11 ] )
[12] call print_str param-assignment [ main::i#2 line_cursor#19 char_cursor#2 ] ( main:2 [ main::i#2 line_cursor#19 char_cursor#2 ] )
main::@5: scope:[main] from main::@4
[10] phi() [ ] ( main:2 [ ] )
[11] call print_str param-assignment [ char_cursor#2 ] ( main:2 [ char_cursor#2 ] )
to:main::@6
main::@6: scope:[main] from main::@5
[13] (word) print_word::w#0 ← *((const word[20]) main::lintab#0 + (byte) main::i#2) [ main::i#2 line_cursor#19 print_word::w#0 char_cursor#2 ] ( main:2 [ main::i#2 line_cursor#19 print_word::w#0 char_cursor#2 ] )
[14] call print_word param-assignment [ main::i#2 line_cursor#19 char_cursor#11 ] ( main:2 [ main::i#2 line_cursor#19 char_cursor#11 ] )
[12] phi() [ char_cursor#2 ] ( main:2 [ char_cursor#2 ] )
[13] call print_word param-assignment [ char_cursor#11 ] ( main:2 [ char_cursor#11 ] )
to:main::@7
main::@7: scope:[main] from main::@6
[15] phi() [ main::i#2 line_cursor#19 char_cursor#11 ] ( main:2 [ main::i#2 line_cursor#19 char_cursor#11 ] )
[16] call print_ln param-assignment [ main::i#2 line_cursor#1 ] ( main:2 [ main::i#2 line_cursor#1 ] )
[14] phi() [ char_cursor#11 ] ( main:2 [ char_cursor#11 ] )
[15] call print_str param-assignment [ char_cursor#2 ] ( main:2 [ char_cursor#2 ] )
to:main::@8
main::@8: scope:[main] from main::@7
[17] (byte) main::i#1 ← (byte) main::i#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ main::i#1 line_cursor#1 ] ( main:2 [ main::i#1 line_cursor#1 ] )
[18] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) 20*(byte/signed byte/word/signed word/dword/signed dword) 2) goto main::@9 [ main::i#1 line_cursor#1 ] ( main:2 [ main::i#1 line_cursor#1 ] )
to:main::@return
main::@return: scope:[main] from main::@8
[19] return [ ] ( main:2 [ ] )
to:@return
[16] phi() [ char_cursor#2 ] ( main:2 [ char_cursor#2 ] )
[17] call print_word param-assignment [ char_cursor#11 ] ( main:2 [ char_cursor#11 ] )
to:main::@9
main::@9: scope:[main] from main::@8
[20] (byte*~) char_cursor#51 ← (byte*) line_cursor#1 [ main::i#1 char_cursor#51 line_cursor#1 ] ( main:2 [ main::i#1 char_cursor#51 line_cursor#1 ] )
[18] phi() [ char_cursor#11 ] ( main:2 [ char_cursor#11 ] )
[19] call print_ln param-assignment [ line_cursor#1 ] ( main:2 [ line_cursor#1 ] )
to:main::@1
print_ln: scope:[print_ln] from main::@7
[21] phi() [ line_cursor#19 char_cursor#11 ] ( main:2::print_ln:16 [ main::i#2 line_cursor#19 char_cursor#11 ] )
main::@1: scope:[main] from main::@16 main::@9
[20] (byte) main::i#2 ← phi( main::@9/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@16/(byte) main::i#1 ) [ main::i#2 line_cursor#1 ] ( main:2 [ main::i#2 line_cursor#1 ] )
[21] (byte) print_byte::b#2 ← (byte) main::i#2 [ main::i#2 print_byte::b#2 line_cursor#1 ] ( main:2 [ main::i#2 print_byte::b#2 line_cursor#1 ] )
[22] (byte*~) char_cursor#77 ← (byte*) line_cursor#1 [ main::i#2 print_byte::b#2 char_cursor#77 line_cursor#1 ] ( main:2 [ main::i#2 print_byte::b#2 char_cursor#77 line_cursor#1 ] )
[23] call print_byte param-assignment [ main::i#2 line_cursor#1 char_cursor#11 ] ( main:2 [ main::i#2 line_cursor#1 char_cursor#11 ] )
to:main::@11
main::@11: scope:[main] from main::@1
[24] phi() [ main::i#2 line_cursor#1 char_cursor#11 ] ( main:2 [ main::i#2 line_cursor#1 char_cursor#11 ] )
[25] call print_str param-assignment [ main::i#2 line_cursor#1 char_cursor#2 ] ( main:2 [ main::i#2 line_cursor#1 char_cursor#2 ] )
to:main::@12
main::@12: scope:[main] from main::@11
[26] (word) print_word::w#2 ← *((const word[20]) main::lintab1#0 + (byte) main::i#2) [ main::i#2 line_cursor#1 print_word::w#2 char_cursor#2 ] ( main:2 [ main::i#2 line_cursor#1 print_word::w#2 char_cursor#2 ] )
[27] call print_word param-assignment [ main::i#2 line_cursor#1 char_cursor#11 ] ( main:2 [ main::i#2 line_cursor#1 char_cursor#11 ] )
to:main::@13
main::@13: scope:[main] from main::@12
[28] phi() [ main::i#2 line_cursor#1 char_cursor#11 ] ( main:2 [ main::i#2 line_cursor#1 char_cursor#11 ] )
[29] call print_str param-assignment [ main::i#2 line_cursor#1 char_cursor#2 ] ( main:2 [ main::i#2 line_cursor#1 char_cursor#2 ] )
to:main::@14
main::@14: scope:[main] from main::@13
[30] (word) print_word::w#3 ← *((const word[20]) main::lintab2#0 + (byte) main::i#2) [ main::i#2 line_cursor#1 print_word::w#3 char_cursor#2 ] ( main:2 [ main::i#2 line_cursor#1 print_word::w#3 char_cursor#2 ] )
[31] call print_word param-assignment [ main::i#2 line_cursor#1 char_cursor#11 ] ( main:2 [ main::i#2 line_cursor#1 char_cursor#11 ] )
to:main::@15
main::@15: scope:[main] from main::@14
[32] phi() [ main::i#2 line_cursor#1 char_cursor#11 ] ( main:2 [ main::i#2 line_cursor#1 char_cursor#11 ] )
[33] call print_ln param-assignment [ main::i#2 line_cursor#1 ] ( main:2 [ main::i#2 line_cursor#1 ] )
to:main::@16
main::@16: scope:[main] from main::@15
[34] (byte) main::i#1 ← (byte) main::i#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ main::i#1 line_cursor#1 ] ( main:2 [ main::i#1 line_cursor#1 ] )
[35] if((byte) main::i#1<(byte/signed byte/word/signed word/dword/signed dword) 20*(byte/signed byte/word/signed word/dword/signed dword) 2) goto main::@1 [ main::i#1 line_cursor#1 ] ( main:2 [ main::i#1 line_cursor#1 ] )
to:main::@2
main::@2: scope:[main] from main::@16
[36] (byte*~) char_cursor#85 ← (byte*) line_cursor#1 [ line_cursor#1 char_cursor#85 ] ( main:2 [ line_cursor#1 char_cursor#85 ] )
[37] call print_str param-assignment [ line_cursor#1 char_cursor#2 ] ( main:2 [ line_cursor#1 char_cursor#2 ] )
to:main::@17
main::@17: scope:[main] from main::@2
[38] phi() [ line_cursor#1 char_cursor#2 ] ( main:2 [ line_cursor#1 char_cursor#2 ] )
[39] call print_word param-assignment [ line_cursor#1 char_cursor#11 ] ( main:2 [ line_cursor#1 char_cursor#11 ] )
to:main::@18
main::@18: scope:[main] from main::@17
[40] phi() [ line_cursor#1 char_cursor#11 ] ( main:2 [ line_cursor#1 char_cursor#11 ] )
[41] call print_str param-assignment [ line_cursor#1 char_cursor#2 ] ( main:2 [ line_cursor#1 char_cursor#2 ] )
to:main::@19
main::@19: scope:[main] from main::@18
[42] phi() [ line_cursor#1 char_cursor#2 ] ( main:2 [ line_cursor#1 char_cursor#2 ] )
[43] call print_word param-assignment [ line_cursor#1 char_cursor#11 ] ( main:2 [ line_cursor#1 char_cursor#11 ] )
to:main::@20
main::@20: scope:[main] from main::@19
[44] phi() [ line_cursor#1 char_cursor#11 ] ( main:2 [ line_cursor#1 char_cursor#11 ] )
[45] call print_ln param-assignment [ ] ( main:2 [ ] )
to:main::@return
main::@return: scope:[main] from main::@20
[46] return [ ] ( main:2 [ ] )
to:@return
print_ln: scope:[print_ln] from main::@15 main::@20 main::@9
[47] (byte*) line_cursor#21 ← phi( main::@15/(byte*) line_cursor#1 main::@20/(byte*) line_cursor#1 main::@9/(const byte*) SCREEN#0 ) [ line_cursor#21 char_cursor#11 ] ( main:2::print_ln:19 [ line_cursor#21 char_cursor#11 ] main:2::print_ln:33 [ main::i#2 line_cursor#21 char_cursor#11 ] main:2::print_ln:45 [ line_cursor#21 char_cursor#11 ] )
to:print_ln::@1
print_ln::@1: scope:[print_ln] from print_ln print_ln::@1
[22] (byte*) line_cursor#9 ← phi( print_ln/(byte*) line_cursor#19 print_ln::@1/(byte*) line_cursor#1 ) [ line_cursor#9 char_cursor#11 ] ( main:2::print_ln:16 [ main::i#2 line_cursor#9 char_cursor#11 ] )
[23] (byte*) line_cursor#1 ← (byte*) line_cursor#9 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ line_cursor#1 char_cursor#11 ] ( main:2::print_ln:16 [ main::i#2 line_cursor#1 char_cursor#11 ] )
[24] if((byte*) line_cursor#1<(byte*) char_cursor#11) goto print_ln::@1 [ line_cursor#1 char_cursor#11 ] ( main:2::print_ln:16 [ main::i#2 line_cursor#1 char_cursor#11 ] )
[48] (byte*) line_cursor#11 ← phi( print_ln/(byte*) line_cursor#21 print_ln::@1/(byte*) line_cursor#1 ) [ line_cursor#11 char_cursor#11 ] ( main:2::print_ln:19 [ line_cursor#11 char_cursor#11 ] main:2::print_ln:33 [ main::i#2 line_cursor#11 char_cursor#11 ] main:2::print_ln:45 [ line_cursor#11 char_cursor#11 ] )
[49] (byte*) line_cursor#1 ← (byte*) line_cursor#11 + (byte/signed byte/word/signed word/dword/signed dword) 40 [ line_cursor#1 char_cursor#11 ] ( main:2::print_ln:19 [ line_cursor#1 char_cursor#11 ] main:2::print_ln:33 [ main::i#2 line_cursor#1 char_cursor#11 ] main:2::print_ln:45 [ line_cursor#1 char_cursor#11 ] )
[50] if((byte*) line_cursor#1<(byte*) char_cursor#11) goto print_ln::@1 [ line_cursor#1 char_cursor#11 ] ( main:2::print_ln:19 [ line_cursor#1 char_cursor#11 ] main:2::print_ln:33 [ main::i#2 line_cursor#1 char_cursor#11 ] main:2::print_ln:45 [ line_cursor#1 char_cursor#11 ] )
to:print_ln::@return
print_ln::@return: scope:[print_ln] from print_ln::@1
[25] return [ line_cursor#1 ] ( main:2::print_ln:16 [ main::i#2 line_cursor#1 ] )
[51] return [ line_cursor#1 ] ( main:2::print_ln:19 [ line_cursor#1 ] main:2::print_ln:33 [ main::i#2 line_cursor#1 ] main:2::print_ln:45 [ line_cursor#1 ] )
to:@return
print_word: scope:[print_word] from main::@6
[26] (byte) print_byte::b#0 ← > (word) print_word::w#0 [ print_word::w#0 print_byte::b#0 char_cursor#2 ] ( main:2::print_word:14 [ main::i#2 line_cursor#19 print_word::w#0 print_byte::b#0 char_cursor#2 ] )
[27] call print_byte param-assignment [ print_word::w#0 char_cursor#11 ] ( main:2::print_word:14 [ main::i#2 line_cursor#19 print_word::w#0 char_cursor#11 ] )
print_word: scope:[print_word] from main::@12 main::@14 main::@17 main::@19 main::@6 main::@8
[52] (word) print_word::w#6 ← phi( main::@12/(word) print_word::w#2 main::@14/(word) print_word::w#3 main::@17/(word/signed word/dword/signed dword) 29793 main::@19/(word/dword/signed dword) 63361 main::@6/(word/signed word/dword/signed dword) 557 main::@8/(word/signed word/dword/signed dword) 31179 ) [ print_word::w#6 char_cursor#2 ] ( main:2::print_word:13 [ print_word::w#6 char_cursor#2 ] main:2::print_word:17 [ print_word::w#6 char_cursor#2 ] main:2::print_word:27 [ main::i#2 line_cursor#1 print_word::w#6 char_cursor#2 ] main:2::print_word:31 [ main::i#2 line_cursor#1 print_word::w#6 char_cursor#2 ] main:2::print_word:39 [ line_cursor#1 print_word::w#6 char_cursor#2 ] main:2::print_word:43 [ line_cursor#1 print_word::w#6 char_cursor#2 ] )
[53] (byte) print_byte::b#0 ← > (word) print_word::w#6 [ print_word::w#6 print_byte::b#0 char_cursor#2 ] ( main:2::print_word:13 [ print_word::w#6 print_byte::b#0 char_cursor#2 ] main:2::print_word:17 [ print_word::w#6 print_byte::b#0 char_cursor#2 ] main:2::print_word:27 [ main::i#2 line_cursor#1 print_word::w#6 print_byte::b#0 char_cursor#2 ] main:2::print_word:31 [ main::i#2 line_cursor#1 print_word::w#6 print_byte::b#0 char_cursor#2 ] main:2::print_word:39 [ line_cursor#1 print_word::w#6 print_byte::b#0 char_cursor#2 ] main:2::print_word:43 [ line_cursor#1 print_word::w#6 print_byte::b#0 char_cursor#2 ] )
[54] call print_byte param-assignment [ char_cursor#11 print_word::w#6 ] ( main:2::print_word:13 [ char_cursor#11 print_word::w#6 ] main:2::print_word:17 [ char_cursor#11 print_word::w#6 ] main:2::print_word:27 [ main::i#2 line_cursor#1 char_cursor#11 print_word::w#6 ] main:2::print_word:31 [ main::i#2 line_cursor#1 char_cursor#11 print_word::w#6 ] main:2::print_word:39 [ line_cursor#1 char_cursor#11 print_word::w#6 ] main:2::print_word:43 [ line_cursor#1 char_cursor#11 print_word::w#6 ] )
to:print_word::@1
print_word::@1: scope:[print_word] from print_word
[28] (byte) print_byte::b#1 ← < (word) print_word::w#0 [ char_cursor#11 print_byte::b#1 ] ( main:2::print_word:14 [ main::i#2 line_cursor#19 char_cursor#11 print_byte::b#1 ] )
[29] call print_byte param-assignment [ char_cursor#11 ] ( main:2::print_word:14 [ main::i#2 line_cursor#19 char_cursor#11 ] )
[55] (byte) print_byte::b#1 ← < (word) print_word::w#6 [ char_cursor#11 print_byte::b#1 ] ( main:2::print_word:13 [ char_cursor#11 print_byte::b#1 ] main:2::print_word:17 [ char_cursor#11 print_byte::b#1 ] main:2::print_word:27 [ main::i#2 line_cursor#1 char_cursor#11 print_byte::b#1 ] main:2::print_word:31 [ main::i#2 line_cursor#1 char_cursor#11 print_byte::b#1 ] main:2::print_word:39 [ line_cursor#1 char_cursor#11 print_byte::b#1 ] main:2::print_word:43 [ line_cursor#1 char_cursor#11 print_byte::b#1 ] )
[56] call print_byte param-assignment [ char_cursor#11 ] ( main:2::print_word:13 [ char_cursor#11 ] main:2::print_word:17 [ char_cursor#11 ] main:2::print_word:27 [ main::i#2 line_cursor#1 char_cursor#11 ] main:2::print_word:31 [ main::i#2 line_cursor#1 char_cursor#11 ] main:2::print_word:39 [ line_cursor#1 char_cursor#11 ] main:2::print_word:43 [ line_cursor#1 char_cursor#11 ] )
to:print_word::@return
print_word::@return: scope:[print_word] from print_word::@1
[30] return [ char_cursor#11 ] ( main:2::print_word:14 [ main::i#2 line_cursor#19 char_cursor#11 ] )
[57] return [ char_cursor#11 ] ( main:2::print_word:13 [ char_cursor#11 ] main:2::print_word:17 [ char_cursor#11 ] main:2::print_word:27 [ main::i#2 line_cursor#1 char_cursor#11 ] main:2::print_word:31 [ main::i#2 line_cursor#1 char_cursor#11 ] main:2::print_word:39 [ line_cursor#1 char_cursor#11 ] main:2::print_word:43 [ line_cursor#1 char_cursor#11 ] )
to:@return
print_byte: scope:[print_byte] from main::@1 print_word print_word::@1
[31] (byte*) char_cursor#45 ← phi( main::@1/(byte*) char_cursor#47 print_word/(byte*) char_cursor#2 print_word::@1/(byte*) char_cursor#11 ) [ print_byte::b#3 char_cursor#45 ] ( main:2::print_byte:10 [ main::i#2 line_cursor#19 print_byte::b#3 char_cursor#45 ] main:2::print_word:14::print_byte:27 [ main::i#2 line_cursor#19 print_word::w#0 print_byte::b#3 char_cursor#45 ] main:2::print_word:14::print_byte:29 [ main::i#2 line_cursor#19 print_byte::b#3 char_cursor#45 ] )
[31] (byte) print_byte::b#3 ← phi( main::@1/(byte) print_byte::b#2 print_word/(byte) print_byte::b#0 print_word::@1/(byte) print_byte::b#1 ) [ print_byte::b#3 char_cursor#45 ] ( main:2::print_byte:10 [ main::i#2 line_cursor#19 print_byte::b#3 char_cursor#45 ] main:2::print_word:14::print_byte:27 [ main::i#2 line_cursor#19 print_word::w#0 print_byte::b#3 char_cursor#45 ] main:2::print_word:14::print_byte:29 [ main::i#2 line_cursor#19 print_byte::b#3 char_cursor#45 ] )
[32] (byte~) print_byte::$0 ← (byte) print_byte::b#3 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_byte::b#3 char_cursor#45 print_byte::$0 ] ( main:2::print_byte:10 [ main::i#2 line_cursor#19 print_byte::b#3 char_cursor#45 print_byte::$0 ] main:2::print_word:14::print_byte:27 [ main::i#2 line_cursor#19 print_word::w#0 print_byte::b#3 char_cursor#45 print_byte::$0 ] main:2::print_word:14::print_byte:29 [ main::i#2 line_cursor#19 print_byte::b#3 char_cursor#45 print_byte::$0 ] )
[33] (byte) print_char::ch#0 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_byte::b#3 char_cursor#45 print_char::ch#0 ] ( main:2::print_byte:10 [ main::i#2 line_cursor#19 print_byte::b#3 char_cursor#45 print_char::ch#0 ] main:2::print_word:14::print_byte:27 [ main::i#2 line_cursor#19 print_word::w#0 print_byte::b#3 char_cursor#45 print_char::ch#0 ] main:2::print_word:14::print_byte:29 [ main::i#2 line_cursor#19 print_byte::b#3 char_cursor#45 print_char::ch#0 ] )
[34] call print_char param-assignment [ char_cursor#11 print_byte::b#3 ] ( main:2::print_byte:10 [ main::i#2 line_cursor#19 char_cursor#11 print_byte::b#3 ] main:2::print_word:14::print_byte:27 [ main::i#2 line_cursor#19 print_word::w#0 char_cursor#11 print_byte::b#3 ] main:2::print_word:14::print_byte:29 [ main::i#2 line_cursor#19 char_cursor#11 print_byte::b#3 ] )
[58] (byte*) char_cursor#69 ← phi( main::@1/(byte*~) char_cursor#77 print_word/(byte*) char_cursor#2 print_word::@1/(byte*) char_cursor#11 ) [ print_byte::b#3 char_cursor#69 ] ( main:2::print_byte:23 [ main::i#2 line_cursor#1 print_byte::b#3 char_cursor#69 ] main:2::print_word:13::print_byte:54 [ print_word::w#6 print_byte::b#3 char_cursor#69 ] main:2::print_word:17::print_byte:54 [ print_word::w#6 print_byte::b#3 char_cursor#69 ] main:2::print_word:27::print_byte:54 [ main::i#2 line_cursor#1 print_word::w#6 print_byte::b#3 char_cursor#69 ] main:2::print_word:31::print_byte:54 [ main::i#2 line_cursor#1 print_word::w#6 print_byte::b#3 char_cursor#69 ] main:2::print_word:39::print_byte:54 [ line_cursor#1 print_word::w#6 print_byte::b#3 char_cursor#69 ] main:2::print_word:43::print_byte:54 [ line_cursor#1 print_word::w#6 print_byte::b#3 char_cursor#69 ] main:2::print_word:13::print_byte:56 [ print_byte::b#3 char_cursor#69 ] main:2::print_word:17::print_byte:56 [ print_byte::b#3 char_cursor#69 ] main:2::print_word:27::print_byte:56 [ main::i#2 line_cursor#1 print_byte::b#3 char_cursor#69 ] main:2::print_word:31::print_byte:56 [ main::i#2 line_cursor#1 print_byte::b#3 char_cursor#69 ] main:2::print_word:39::print_byte:56 [ line_cursor#1 print_byte::b#3 char_cursor#69 ] main:2::print_word:43::print_byte:56 [ line_cursor#1 print_byte::b#3 char_cursor#69 ] )
[58] (byte) print_byte::b#3 ← phi( main::@1/(byte) print_byte::b#2 print_word/(byte) print_byte::b#0 print_word::@1/(byte) print_byte::b#1 ) [ print_byte::b#3 char_cursor#69 ] ( main:2::print_byte:23 [ main::i#2 line_cursor#1 print_byte::b#3 char_cursor#69 ] main:2::print_word:13::print_byte:54 [ print_word::w#6 print_byte::b#3 char_cursor#69 ] main:2::print_word:17::print_byte:54 [ print_word::w#6 print_byte::b#3 char_cursor#69 ] main:2::print_word:27::print_byte:54 [ main::i#2 line_cursor#1 print_word::w#6 print_byte::b#3 char_cursor#69 ] main:2::print_word:31::print_byte:54 [ main::i#2 line_cursor#1 print_word::w#6 print_byte::b#3 char_cursor#69 ] main:2::print_word:39::print_byte:54 [ line_cursor#1 print_word::w#6 print_byte::b#3 char_cursor#69 ] main:2::print_word:43::print_byte:54 [ line_cursor#1 print_word::w#6 print_byte::b#3 char_cursor#69 ] main:2::print_word:13::print_byte:56 [ print_byte::b#3 char_cursor#69 ] main:2::print_word:17::print_byte:56 [ print_byte::b#3 char_cursor#69 ] main:2::print_word:27::print_byte:56 [ main::i#2 line_cursor#1 print_byte::b#3 char_cursor#69 ] main:2::print_word:31::print_byte:56 [ main::i#2 line_cursor#1 print_byte::b#3 char_cursor#69 ] main:2::print_word:39::print_byte:56 [ line_cursor#1 print_byte::b#3 char_cursor#69 ] main:2::print_word:43::print_byte:56 [ line_cursor#1 print_byte::b#3 char_cursor#69 ] )
[59] (byte~) print_byte::$0 ← (byte) print_byte::b#3 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ print_byte::b#3 char_cursor#69 print_byte::$0 ] ( main:2::print_byte:23 [ main::i#2 line_cursor#1 print_byte::b#3 char_cursor#69 print_byte::$0 ] main:2::print_word:13::print_byte:54 [ print_word::w#6 print_byte::b#3 char_cursor#69 print_byte::$0 ] main:2::print_word:17::print_byte:54 [ print_word::w#6 print_byte::b#3 char_cursor#69 print_byte::$0 ] main:2::print_word:27::print_byte:54 [ main::i#2 line_cursor#1 print_word::w#6 print_byte::b#3 char_cursor#69 print_byte::$0 ] main:2::print_word:31::print_byte:54 [ main::i#2 line_cursor#1 print_word::w#6 print_byte::b#3 char_cursor#69 print_byte::$0 ] main:2::print_word:39::print_byte:54 [ line_cursor#1 print_word::w#6 print_byte::b#3 char_cursor#69 print_byte::$0 ] main:2::print_word:43::print_byte:54 [ line_cursor#1 print_word::w#6 print_byte::b#3 char_cursor#69 print_byte::$0 ] main:2::print_word:13::print_byte:56 [ print_byte::b#3 char_cursor#69 print_byte::$0 ] main:2::print_word:17::print_byte:56 [ print_byte::b#3 char_cursor#69 print_byte::$0 ] main:2::print_word:27::print_byte:56 [ main::i#2 line_cursor#1 print_byte::b#3 char_cursor#69 print_byte::$0 ] main:2::print_word:31::print_byte:56 [ main::i#2 line_cursor#1 print_byte::b#3 char_cursor#69 print_byte::$0 ] main:2::print_word:39::print_byte:56 [ line_cursor#1 print_byte::b#3 char_cursor#69 print_byte::$0 ] main:2::print_word:43::print_byte:56 [ line_cursor#1 print_byte::b#3 char_cursor#69 print_byte::$0 ] )
[60] (byte) print_char::ch#0 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$0) [ print_byte::b#3 char_cursor#69 print_char::ch#0 ] ( main:2::print_byte:23 [ main::i#2 line_cursor#1 print_byte::b#3 char_cursor#69 print_char::ch#0 ] main:2::print_word:13::print_byte:54 [ print_word::w#6 print_byte::b#3 char_cursor#69 print_char::ch#0 ] main:2::print_word:17::print_byte:54 [ print_word::w#6 print_byte::b#3 char_cursor#69 print_char::ch#0 ] main:2::print_word:27::print_byte:54 [ main::i#2 line_cursor#1 print_word::w#6 print_byte::b#3 char_cursor#69 print_char::ch#0 ] main:2::print_word:31::print_byte:54 [ main::i#2 line_cursor#1 print_word::w#6 print_byte::b#3 char_cursor#69 print_char::ch#0 ] main:2::print_word:39::print_byte:54 [ line_cursor#1 print_word::w#6 print_byte::b#3 char_cursor#69 print_char::ch#0 ] main:2::print_word:43::print_byte:54 [ line_cursor#1 print_word::w#6 print_byte::b#3 char_cursor#69 print_char::ch#0 ] main:2::print_word:13::print_byte:56 [ print_byte::b#3 char_cursor#69 print_char::ch#0 ] main:2::print_word:17::print_byte:56 [ print_byte::b#3 char_cursor#69 print_char::ch#0 ] main:2::print_word:27::print_byte:56 [ main::i#2 line_cursor#1 print_byte::b#3 char_cursor#69 print_char::ch#0 ] main:2::print_word:31::print_byte:56 [ main::i#2 line_cursor#1 print_byte::b#3 char_cursor#69 print_char::ch#0 ] main:2::print_word:39::print_byte:56 [ line_cursor#1 print_byte::b#3 char_cursor#69 print_char::ch#0 ] main:2::print_word:43::print_byte:56 [ line_cursor#1 print_byte::b#3 char_cursor#69 print_char::ch#0 ] )
[61] call print_char param-assignment [ char_cursor#11 print_byte::b#3 ] ( main:2::print_byte:23 [ main::i#2 line_cursor#1 char_cursor#11 print_byte::b#3 ] main:2::print_word:13::print_byte:54 [ print_word::w#6 char_cursor#11 print_byte::b#3 ] main:2::print_word:17::print_byte:54 [ print_word::w#6 char_cursor#11 print_byte::b#3 ] main:2::print_word:27::print_byte:54 [ main::i#2 line_cursor#1 print_word::w#6 char_cursor#11 print_byte::b#3 ] main:2::print_word:31::print_byte:54 [ main::i#2 line_cursor#1 print_word::w#6 char_cursor#11 print_byte::b#3 ] main:2::print_word:39::print_byte:54 [ line_cursor#1 print_word::w#6 char_cursor#11 print_byte::b#3 ] main:2::print_word:43::print_byte:54 [ line_cursor#1 print_word::w#6 char_cursor#11 print_byte::b#3 ] main:2::print_word:13::print_byte:56 [ char_cursor#11 print_byte::b#3 ] main:2::print_word:17::print_byte:56 [ char_cursor#11 print_byte::b#3 ] main:2::print_word:27::print_byte:56 [ main::i#2 line_cursor#1 char_cursor#11 print_byte::b#3 ] main:2::print_word:31::print_byte:56 [ main::i#2 line_cursor#1 char_cursor#11 print_byte::b#3 ] main:2::print_word:39::print_byte:56 [ line_cursor#1 char_cursor#11 print_byte::b#3 ] main:2::print_word:43::print_byte:56 [ line_cursor#1 char_cursor#11 print_byte::b#3 ] )
to:print_byte::@1
print_byte::@1: scope:[print_byte] from print_byte
[35] (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ char_cursor#11 print_byte::$2 ] ( main:2::print_byte:10 [ main::i#2 line_cursor#19 char_cursor#11 print_byte::$2 ] main:2::print_word:14::print_byte:27 [ main::i#2 line_cursor#19 print_word::w#0 char_cursor#11 print_byte::$2 ] main:2::print_word:14::print_byte:29 [ main::i#2 line_cursor#19 char_cursor#11 print_byte::$2 ] )
[36] (byte) print_char::ch#1 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ char_cursor#11 print_char::ch#1 ] ( main:2::print_byte:10 [ main::i#2 line_cursor#19 char_cursor#11 print_char::ch#1 ] main:2::print_word:14::print_byte:27 [ main::i#2 line_cursor#19 print_word::w#0 char_cursor#11 print_char::ch#1 ] main:2::print_word:14::print_byte:29 [ main::i#2 line_cursor#19 char_cursor#11 print_char::ch#1 ] )
[37] call print_char param-assignment [ char_cursor#11 ] ( main:2::print_byte:10 [ main::i#2 line_cursor#19 char_cursor#11 ] main:2::print_word:14::print_byte:27 [ main::i#2 line_cursor#19 print_word::w#0 char_cursor#11 ] main:2::print_word:14::print_byte:29 [ main::i#2 line_cursor#19 char_cursor#11 ] )
[62] (byte~) print_byte::$2 ← (byte) print_byte::b#3 & (byte/signed byte/word/signed word/dword/signed dword) 15 [ char_cursor#11 print_byte::$2 ] ( main:2::print_byte:23 [ main::i#2 line_cursor#1 char_cursor#11 print_byte::$2 ] main:2::print_word:13::print_byte:54 [ print_word::w#6 char_cursor#11 print_byte::$2 ] main:2::print_word:17::print_byte:54 [ print_word::w#6 char_cursor#11 print_byte::$2 ] main:2::print_word:27::print_byte:54 [ main::i#2 line_cursor#1 print_word::w#6 char_cursor#11 print_byte::$2 ] main:2::print_word:31::print_byte:54 [ main::i#2 line_cursor#1 print_word::w#6 char_cursor#11 print_byte::$2 ] main:2::print_word:39::print_byte:54 [ line_cursor#1 print_word::w#6 char_cursor#11 print_byte::$2 ] main:2::print_word:43::print_byte:54 [ line_cursor#1 print_word::w#6 char_cursor#11 print_byte::$2 ] main:2::print_word:13::print_byte:56 [ char_cursor#11 print_byte::$2 ] main:2::print_word:17::print_byte:56 [ char_cursor#11 print_byte::$2 ] main:2::print_word:27::print_byte:56 [ main::i#2 line_cursor#1 char_cursor#11 print_byte::$2 ] main:2::print_word:31::print_byte:56 [ main::i#2 line_cursor#1 char_cursor#11 print_byte::$2 ] main:2::print_word:39::print_byte:56 [ line_cursor#1 char_cursor#11 print_byte::$2 ] main:2::print_word:43::print_byte:56 [ line_cursor#1 char_cursor#11 print_byte::$2 ] )
[63] (byte) print_char::ch#1 ← *((const string) print_byte::hextab#0 + (byte~) print_byte::$2) [ char_cursor#11 print_char::ch#1 ] ( main:2::print_byte:23 [ main::i#2 line_cursor#1 char_cursor#11 print_char::ch#1 ] main:2::print_word:13::print_byte:54 [ print_word::w#6 char_cursor#11 print_char::ch#1 ] main:2::print_word:17::print_byte:54 [ print_word::w#6 char_cursor#11 print_char::ch#1 ] main:2::print_word:27::print_byte:54 [ main::i#2 line_cursor#1 print_word::w#6 char_cursor#11 print_char::ch#1 ] main:2::print_word:31::print_byte:54 [ main::i#2 line_cursor#1 print_word::w#6 char_cursor#11 print_char::ch#1 ] main:2::print_word:39::print_byte:54 [ line_cursor#1 print_word::w#6 char_cursor#11 print_char::ch#1 ] main:2::print_word:43::print_byte:54 [ line_cursor#1 print_word::w#6 char_cursor#11 print_char::ch#1 ] main:2::print_word:13::print_byte:56 [ char_cursor#11 print_char::ch#1 ] main:2::print_word:17::print_byte:56 [ char_cursor#11 print_char::ch#1 ] main:2::print_word:27::print_byte:56 [ main::i#2 line_cursor#1 char_cursor#11 print_char::ch#1 ] main:2::print_word:31::print_byte:56 [ main::i#2 line_cursor#1 char_cursor#11 print_char::ch#1 ] main:2::print_word:39::print_byte:56 [ line_cursor#1 char_cursor#11 print_char::ch#1 ] main:2::print_word:43::print_byte:56 [ line_cursor#1 char_cursor#11 print_char::ch#1 ] )
[64] call print_char param-assignment [ char_cursor#11 ] ( main:2::print_byte:23 [ main::i#2 line_cursor#1 char_cursor#11 ] main:2::print_word:13::print_byte:54 [ print_word::w#6 char_cursor#11 ] main:2::print_word:17::print_byte:54 [ print_word::w#6 char_cursor#11 ] main:2::print_word:27::print_byte:54 [ main::i#2 line_cursor#1 print_word::w#6 char_cursor#11 ] main:2::print_word:31::print_byte:54 [ main::i#2 line_cursor#1 print_word::w#6 char_cursor#11 ] main:2::print_word:39::print_byte:54 [ line_cursor#1 print_word::w#6 char_cursor#11 ] main:2::print_word:43::print_byte:54 [ line_cursor#1 print_word::w#6 char_cursor#11 ] main:2::print_word:13::print_byte:56 [ char_cursor#11 ] main:2::print_word:17::print_byte:56 [ char_cursor#11 ] main:2::print_word:27::print_byte:56 [ main::i#2 line_cursor#1 char_cursor#11 ] main:2::print_word:31::print_byte:56 [ main::i#2 line_cursor#1 char_cursor#11 ] main:2::print_word:39::print_byte:56 [ line_cursor#1 char_cursor#11 ] main:2::print_word:43::print_byte:56 [ line_cursor#1 char_cursor#11 ] )
to:print_byte::@return
print_byte::@return: scope:[print_byte] from print_byte::@1
[38] return [ char_cursor#11 ] ( main:2::print_byte:10 [ main::i#2 line_cursor#19 char_cursor#11 ] main:2::print_word:14::print_byte:27 [ main::i#2 line_cursor#19 print_word::w#0 char_cursor#11 ] main:2::print_word:14::print_byte:29 [ main::i#2 line_cursor#19 char_cursor#11 ] )
[65] return [ char_cursor#11 ] ( main:2::print_byte:23 [ main::i#2 line_cursor#1 char_cursor#11 ] main:2::print_word:13::print_byte:54 [ print_word::w#6 char_cursor#11 ] main:2::print_word:17::print_byte:54 [ print_word::w#6 char_cursor#11 ] main:2::print_word:27::print_byte:54 [ main::i#2 line_cursor#1 print_word::w#6 char_cursor#11 ] main:2::print_word:31::print_byte:54 [ main::i#2 line_cursor#1 print_word::w#6 char_cursor#11 ] main:2::print_word:39::print_byte:54 [ line_cursor#1 print_word::w#6 char_cursor#11 ] main:2::print_word:43::print_byte:54 [ line_cursor#1 print_word::w#6 char_cursor#11 ] main:2::print_word:13::print_byte:56 [ char_cursor#11 ] main:2::print_word:17::print_byte:56 [ char_cursor#11 ] main:2::print_word:27::print_byte:56 [ main::i#2 line_cursor#1 char_cursor#11 ] main:2::print_word:31::print_byte:56 [ main::i#2 line_cursor#1 char_cursor#11 ] main:2::print_word:39::print_byte:56 [ line_cursor#1 char_cursor#11 ] main:2::print_word:43::print_byte:56 [ line_cursor#1 char_cursor#11 ] )
to:@return
print_char: scope:[print_char] from print_byte print_byte::@1
[39] (byte*) char_cursor#32 ← phi( print_byte/(byte*) char_cursor#45 print_byte::@1/(byte*) char_cursor#11 ) [ print_char::ch#2 char_cursor#32 ] ( main:2::print_byte:10::print_char:34 [ main::i#2 line_cursor#19 print_byte::b#3 print_char::ch#2 char_cursor#32 ] main:2::print_word:14::print_byte:27::print_char:34 [ main::i#2 line_cursor#19 print_word::w#0 print_byte::b#3 print_char::ch#2 char_cursor#32 ] main:2::print_word:14::print_byte:29::print_char:34 [ main::i#2 line_cursor#19 print_byte::b#3 print_char::ch#2 char_cursor#32 ] main:2::print_byte:10::print_char:37 [ main::i#2 line_cursor#19 print_char::ch#2 char_cursor#32 ] main:2::print_word:14::print_byte:27::print_char:37 [ main::i#2 line_cursor#19 print_word::w#0 print_char::ch#2 char_cursor#32 ] main:2::print_word:14::print_byte:29::print_char:37 [ main::i#2 line_cursor#19 print_char::ch#2 char_cursor#32 ] )
[39] (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#32 ] ( main:2::print_byte:10::print_char:34 [ main::i#2 line_cursor#19 print_byte::b#3 print_char::ch#2 char_cursor#32 ] main:2::print_word:14::print_byte:27::print_char:34 [ main::i#2 line_cursor#19 print_word::w#0 print_byte::b#3 print_char::ch#2 char_cursor#32 ] main:2::print_word:14::print_byte:29::print_char:34 [ main::i#2 line_cursor#19 print_byte::b#3 print_char::ch#2 char_cursor#32 ] main:2::print_byte:10::print_char:37 [ main::i#2 line_cursor#19 print_char::ch#2 char_cursor#32 ] main:2::print_word:14::print_byte:27::print_char:37 [ main::i#2 line_cursor#19 print_word::w#0 print_char::ch#2 char_cursor#32 ] main:2::print_word:14::print_byte:29::print_char:37 [ main::i#2 line_cursor#19 print_char::ch#2 char_cursor#32 ] )
[40] *((byte*) char_cursor#32) ← (byte) print_char::ch#2 [ char_cursor#32 ] ( main:2::print_byte:10::print_char:34 [ main::i#2 line_cursor#19 print_byte::b#3 char_cursor#32 ] main:2::print_word:14::print_byte:27::print_char:34 [ main::i#2 line_cursor#19 print_word::w#0 print_byte::b#3 char_cursor#32 ] main:2::print_word:14::print_byte:29::print_char:34 [ main::i#2 line_cursor#19 print_byte::b#3 char_cursor#32 ] main:2::print_byte:10::print_char:37 [ main::i#2 line_cursor#19 char_cursor#32 ] main:2::print_word:14::print_byte:27::print_char:37 [ main::i#2 line_cursor#19 print_word::w#0 char_cursor#32 ] main:2::print_word:14::print_byte:29::print_char:37 [ main::i#2 line_cursor#19 char_cursor#32 ] )
[41] (byte*) char_cursor#11 ← ++ (byte*) char_cursor#32 [ char_cursor#11 ] ( main:2::print_byte:10::print_char:34 [ main::i#2 line_cursor#19 print_byte::b#3 char_cursor#11 ] main:2::print_word:14::print_byte:27::print_char:34 [ main::i#2 line_cursor#19 print_word::w#0 print_byte::b#3 char_cursor#11 ] main:2::print_word:14::print_byte:29::print_char:34 [ main::i#2 line_cursor#19 print_byte::b#3 char_cursor#11 ] main:2::print_byte:10::print_char:37 [ main::i#2 line_cursor#19 char_cursor#11 ] main:2::print_word:14::print_byte:27::print_char:37 [ main::i#2 line_cursor#19 print_word::w#0 char_cursor#11 ] main:2::print_word:14::print_byte:29::print_char:37 [ main::i#2 line_cursor#19 char_cursor#11 ] )
[66] (byte*) char_cursor#44 ← phi( print_byte/(byte*) char_cursor#69 print_byte::@1/(byte*) char_cursor#11 ) [ print_char::ch#2 char_cursor#44 ] ( main:2::print_byte:23::print_char:61 [ main::i#2 line_cursor#1 print_byte::b#3 print_char::ch#2 char_cursor#44 ] main:2::print_word:13::print_byte:54::print_char:61 [ print_word::w#6 print_byte::b#3 print_char::ch#2 char_cursor#44 ] main:2::print_word:17::print_byte:54::print_char:61 [ print_word::w#6 print_byte::b#3 print_char::ch#2 char_cursor#44 ] main:2::print_word:27::print_byte:54::print_char:61 [ main::i#2 line_cursor#1 print_word::w#6 print_byte::b#3 print_char::ch#2 char_cursor#44 ] main:2::print_word:31::print_byte:54::print_char:61 [ main::i#2 line_cursor#1 print_word::w#6 print_byte::b#3 print_char::ch#2 char_cursor#44 ] main:2::print_word:39::print_byte:54::print_char:61 [ line_cursor#1 print_word::w#6 print_byte::b#3 print_char::ch#2 char_cursor#44 ] main:2::print_word:43::print_byte:54::print_char:61 [ line_cursor#1 print_word::w#6 print_byte::b#3 print_char::ch#2 char_cursor#44 ] main:2::print_word:13::print_byte:56::print_char:61 [ print_byte::b#3 print_char::ch#2 char_cursor#44 ] main:2::print_word:17::print_byte:56::print_char:61 [ print_byte::b#3 print_char::ch#2 char_cursor#44 ] main:2::print_word:27::print_byte:56::print_char:61 [ main::i#2 line_cursor#1 print_byte::b#3 print_char::ch#2 char_cursor#44 ] main:2::print_word:31::print_byte:56::print_char:61 [ main::i#2 line_cursor#1 print_byte::b#3 print_char::ch#2 char_cursor#44 ] main:2::print_word:39::print_byte:56::print_char:61 [ line_cursor#1 print_byte::b#3 print_char::ch#2 char_cursor#44 ] main:2::print_word:43::print_byte:56::print_char:61 [ line_cursor#1 print_byte::b#3 print_char::ch#2 char_cursor#44 ] main:2::print_byte:23::print_char:64 [ main::i#2 line_cursor#1 print_char::ch#2 char_cursor#44 ] main:2::print_word:13::print_byte:54::print_char:64 [ print_word::w#6 print_char::ch#2 char_cursor#44 ] main:2::print_word:17::print_byte:54::print_char:64 [ print_word::w#6 print_char::ch#2 char_cursor#44 ] main:2::print_word:27::print_byte:54::print_char:64 [ main::i#2 line_cursor#1 print_word::w#6 print_char::ch#2 char_cursor#44 ] main:2::print_word:31::print_byte:54::print_char:64 [ main::i#2 line_cursor#1 print_word::w#6 print_char::ch#2 char_cursor#44 ] main:2::print_word:39::print_byte:54::print_char:64 [ line_cursor#1 print_word::w#6 print_char::ch#2 char_cursor#44 ] main:2::print_word:43::print_byte:54::print_char:64 [ line_cursor#1 print_word::w#6 print_char::ch#2 char_cursor#44 ] main:2::print_word:13::print_byte:56::print_char:64 [ print_char::ch#2 char_cursor#44 ] main:2::print_word:17::print_byte:56::print_char:64 [ print_char::ch#2 char_cursor#44 ] main:2::print_word:27::print_byte:56::print_char:64 [ main::i#2 line_cursor#1 print_char::ch#2 char_cursor#44 ] main:2::print_word:31::print_byte:56::print_char:64 [ main::i#2 line_cursor#1 print_char::ch#2 char_cursor#44 ] main:2::print_word:39::print_byte:56::print_char:64 [ line_cursor#1 print_char::ch#2 char_cursor#44 ] main:2::print_word:43::print_byte:56::print_char:64 [ line_cursor#1 print_char::ch#2 char_cursor#44 ] )
[66] (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#44 ] ( main:2::print_byte:23::print_char:61 [ main::i#2 line_cursor#1 print_byte::b#3 print_char::ch#2 char_cursor#44 ] main:2::print_word:13::print_byte:54::print_char:61 [ print_word::w#6 print_byte::b#3 print_char::ch#2 char_cursor#44 ] main:2::print_word:17::print_byte:54::print_char:61 [ print_word::w#6 print_byte::b#3 print_char::ch#2 char_cursor#44 ] main:2::print_word:27::print_byte:54::print_char:61 [ main::i#2 line_cursor#1 print_word::w#6 print_byte::b#3 print_char::ch#2 char_cursor#44 ] main:2::print_word:31::print_byte:54::print_char:61 [ main::i#2 line_cursor#1 print_word::w#6 print_byte::b#3 print_char::ch#2 char_cursor#44 ] main:2::print_word:39::print_byte:54::print_char:61 [ line_cursor#1 print_word::w#6 print_byte::b#3 print_char::ch#2 char_cursor#44 ] main:2::print_word:43::print_byte:54::print_char:61 [ line_cursor#1 print_word::w#6 print_byte::b#3 print_char::ch#2 char_cursor#44 ] main:2::print_word:13::print_byte:56::print_char:61 [ print_byte::b#3 print_char::ch#2 char_cursor#44 ] main:2::print_word:17::print_byte:56::print_char:61 [ print_byte::b#3 print_char::ch#2 char_cursor#44 ] main:2::print_word:27::print_byte:56::print_char:61 [ main::i#2 line_cursor#1 print_byte::b#3 print_char::ch#2 char_cursor#44 ] main:2::print_word:31::print_byte:56::print_char:61 [ main::i#2 line_cursor#1 print_byte::b#3 print_char::ch#2 char_cursor#44 ] main:2::print_word:39::print_byte:56::print_char:61 [ line_cursor#1 print_byte::b#3 print_char::ch#2 char_cursor#44 ] main:2::print_word:43::print_byte:56::print_char:61 [ line_cursor#1 print_byte::b#3 print_char::ch#2 char_cursor#44 ] main:2::print_byte:23::print_char:64 [ main::i#2 line_cursor#1 print_char::ch#2 char_cursor#44 ] main:2::print_word:13::print_byte:54::print_char:64 [ print_word::w#6 print_char::ch#2 char_cursor#44 ] main:2::print_word:17::print_byte:54::print_char:64 [ print_word::w#6 print_char::ch#2 char_cursor#44 ] main:2::print_word:27::print_byte:54::print_char:64 [ main::i#2 line_cursor#1 print_word::w#6 print_char::ch#2 char_cursor#44 ] main:2::print_word:31::print_byte:54::print_char:64 [ main::i#2 line_cursor#1 print_word::w#6 print_char::ch#2 char_cursor#44 ] main:2::print_word:39::print_byte:54::print_char:64 [ line_cursor#1 print_word::w#6 print_char::ch#2 char_cursor#44 ] main:2::print_word:43::print_byte:54::print_char:64 [ line_cursor#1 print_word::w#6 print_char::ch#2 char_cursor#44 ] main:2::print_word:13::print_byte:56::print_char:64 [ print_char::ch#2 char_cursor#44 ] main:2::print_word:17::print_byte:56::print_char:64 [ print_char::ch#2 char_cursor#44 ] main:2::print_word:27::print_byte:56::print_char:64 [ main::i#2 line_cursor#1 print_char::ch#2 char_cursor#44 ] main:2::print_word:31::print_byte:56::print_char:64 [ main::i#2 line_cursor#1 print_char::ch#2 char_cursor#44 ] main:2::print_word:39::print_byte:56::print_char:64 [ line_cursor#1 print_char::ch#2 char_cursor#44 ] main:2::print_word:43::print_byte:56::print_char:64 [ line_cursor#1 print_char::ch#2 char_cursor#44 ] )
[67] *((byte*) char_cursor#44) ← (byte) print_char::ch#2 [ char_cursor#44 ] ( main:2::print_byte:23::print_char:61 [ main::i#2 line_cursor#1 print_byte::b#3 char_cursor#44 ] main:2::print_word:13::print_byte:54::print_char:61 [ print_word::w#6 print_byte::b#3 char_cursor#44 ] main:2::print_word:17::print_byte:54::print_char:61 [ print_word::w#6 print_byte::b#3 char_cursor#44 ] main:2::print_word:27::print_byte:54::print_char:61 [ main::i#2 line_cursor#1 print_word::w#6 print_byte::b#3 char_cursor#44 ] main:2::print_word:31::print_byte:54::print_char:61 [ main::i#2 line_cursor#1 print_word::w#6 print_byte::b#3 char_cursor#44 ] main:2::print_word:39::print_byte:54::print_char:61 [ line_cursor#1 print_word::w#6 print_byte::b#3 char_cursor#44 ] main:2::print_word:43::print_byte:54::print_char:61 [ line_cursor#1 print_word::w#6 print_byte::b#3 char_cursor#44 ] main:2::print_word:13::print_byte:56::print_char:61 [ print_byte::b#3 char_cursor#44 ] main:2::print_word:17::print_byte:56::print_char:61 [ print_byte::b#3 char_cursor#44 ] main:2::print_word:27::print_byte:56::print_char:61 [ main::i#2 line_cursor#1 print_byte::b#3 char_cursor#44 ] main:2::print_word:31::print_byte:56::print_char:61 [ main::i#2 line_cursor#1 print_byte::b#3 char_cursor#44 ] main:2::print_word:39::print_byte:56::print_char:61 [ line_cursor#1 print_byte::b#3 char_cursor#44 ] main:2::print_word:43::print_byte:56::print_char:61 [ line_cursor#1 print_byte::b#3 char_cursor#44 ] main:2::print_byte:23::print_char:64 [ main::i#2 line_cursor#1 char_cursor#44 ] main:2::print_word:13::print_byte:54::print_char:64 [ print_word::w#6 char_cursor#44 ] main:2::print_word:17::print_byte:54::print_char:64 [ print_word::w#6 char_cursor#44 ] main:2::print_word:27::print_byte:54::print_char:64 [ main::i#2 line_cursor#1 print_word::w#6 char_cursor#44 ] main:2::print_word:31::print_byte:54::print_char:64 [ main::i#2 line_cursor#1 print_word::w#6 char_cursor#44 ] main:2::print_word:39::print_byte:54::print_char:64 [ line_cursor#1 print_word::w#6 char_cursor#44 ] main:2::print_word:43::print_byte:54::print_char:64 [ line_cursor#1 print_word::w#6 char_cursor#44 ] main:2::print_word:13::print_byte:56::print_char:64 [ char_cursor#44 ] main:2::print_word:17::print_byte:56::print_char:64 [ char_cursor#44 ] main:2::print_word:27::print_byte:56::print_char:64 [ main::i#2 line_cursor#1 char_cursor#44 ] main:2::print_word:31::print_byte:56::print_char:64 [ main::i#2 line_cursor#1 char_cursor#44 ] main:2::print_word:39::print_byte:56::print_char:64 [ line_cursor#1 char_cursor#44 ] main:2::print_word:43::print_byte:56::print_char:64 [ line_cursor#1 char_cursor#44 ] )
[68] (byte*) char_cursor#11 ← ++ (byte*) char_cursor#44 [ char_cursor#11 ] ( main:2::print_byte:23::print_char:61 [ main::i#2 line_cursor#1 print_byte::b#3 char_cursor#11 ] main:2::print_word:13::print_byte:54::print_char:61 [ print_word::w#6 print_byte::b#3 char_cursor#11 ] main:2::print_word:17::print_byte:54::print_char:61 [ print_word::w#6 print_byte::b#3 char_cursor#11 ] main:2::print_word:27::print_byte:54::print_char:61 [ main::i#2 line_cursor#1 print_word::w#6 print_byte::b#3 char_cursor#11 ] main:2::print_word:31::print_byte:54::print_char:61 [ main::i#2 line_cursor#1 print_word::w#6 print_byte::b#3 char_cursor#11 ] main:2::print_word:39::print_byte:54::print_char:61 [ line_cursor#1 print_word::w#6 print_byte::b#3 char_cursor#11 ] main:2::print_word:43::print_byte:54::print_char:61 [ line_cursor#1 print_word::w#6 print_byte::b#3 char_cursor#11 ] main:2::print_word:13::print_byte:56::print_char:61 [ print_byte::b#3 char_cursor#11 ] main:2::print_word:17::print_byte:56::print_char:61 [ print_byte::b#3 char_cursor#11 ] main:2::print_word:27::print_byte:56::print_char:61 [ main::i#2 line_cursor#1 print_byte::b#3 char_cursor#11 ] main:2::print_word:31::print_byte:56::print_char:61 [ main::i#2 line_cursor#1 print_byte::b#3 char_cursor#11 ] main:2::print_word:39::print_byte:56::print_char:61 [ line_cursor#1 print_byte::b#3 char_cursor#11 ] main:2::print_word:43::print_byte:56::print_char:61 [ line_cursor#1 print_byte::b#3 char_cursor#11 ] main:2::print_byte:23::print_char:64 [ main::i#2 line_cursor#1 char_cursor#11 ] main:2::print_word:13::print_byte:54::print_char:64 [ print_word::w#6 char_cursor#11 ] main:2::print_word:17::print_byte:54::print_char:64 [ print_word::w#6 char_cursor#11 ] main:2::print_word:27::print_byte:54::print_char:64 [ main::i#2 line_cursor#1 print_word::w#6 char_cursor#11 ] main:2::print_word:31::print_byte:54::print_char:64 [ main::i#2 line_cursor#1 print_word::w#6 char_cursor#11 ] main:2::print_word:39::print_byte:54::print_char:64 [ line_cursor#1 print_word::w#6 char_cursor#11 ] main:2::print_word:43::print_byte:54::print_char:64 [ line_cursor#1 print_word::w#6 char_cursor#11 ] main:2::print_word:13::print_byte:56::print_char:64 [ char_cursor#11 ] main:2::print_word:17::print_byte:56::print_char:64 [ char_cursor#11 ] main:2::print_word:27::print_byte:56::print_char:64 [ main::i#2 line_cursor#1 char_cursor#11 ] main:2::print_word:31::print_byte:56::print_char:64 [ main::i#2 line_cursor#1 char_cursor#11 ] main:2::print_word:39::print_byte:56::print_char:64 [ line_cursor#1 char_cursor#11 ] main:2::print_word:43::print_byte:56::print_char:64 [ line_cursor#1 char_cursor#11 ] )
to:print_char::@return
print_char::@return: scope:[print_char] from print_char
[42] return [ char_cursor#11 ] ( main:2::print_byte:10::print_char:34 [ main::i#2 line_cursor#19 print_byte::b#3 char_cursor#11 ] main:2::print_word:14::print_byte:27::print_char:34 [ main::i#2 line_cursor#19 print_word::w#0 print_byte::b#3 char_cursor#11 ] main:2::print_word:14::print_byte:29::print_char:34 [ main::i#2 line_cursor#19 print_byte::b#3 char_cursor#11 ] main:2::print_byte:10::print_char:37 [ main::i#2 line_cursor#19 char_cursor#11 ] main:2::print_word:14::print_byte:27::print_char:37 [ main::i#2 line_cursor#19 print_word::w#0 char_cursor#11 ] main:2::print_word:14::print_byte:29::print_char:37 [ main::i#2 line_cursor#19 char_cursor#11 ] )
[69] return [ char_cursor#11 ] ( main:2::print_byte:23::print_char:61 [ main::i#2 line_cursor#1 print_byte::b#3 char_cursor#11 ] main:2::print_word:13::print_byte:54::print_char:61 [ print_word::w#6 print_byte::b#3 char_cursor#11 ] main:2::print_word:17::print_byte:54::print_char:61 [ print_word::w#6 print_byte::b#3 char_cursor#11 ] main:2::print_word:27::print_byte:54::print_char:61 [ main::i#2 line_cursor#1 print_word::w#6 print_byte::b#3 char_cursor#11 ] main:2::print_word:31::print_byte:54::print_char:61 [ main::i#2 line_cursor#1 print_word::w#6 print_byte::b#3 char_cursor#11 ] main:2::print_word:39::print_byte:54::print_char:61 [ line_cursor#1 print_word::w#6 print_byte::b#3 char_cursor#11 ] main:2::print_word:43::print_byte:54::print_char:61 [ line_cursor#1 print_word::w#6 print_byte::b#3 char_cursor#11 ] main:2::print_word:13::print_byte:56::print_char:61 [ print_byte::b#3 char_cursor#11 ] main:2::print_word:17::print_byte:56::print_char:61 [ print_byte::b#3 char_cursor#11 ] main:2::print_word:27::print_byte:56::print_char:61 [ main::i#2 line_cursor#1 print_byte::b#3 char_cursor#11 ] main:2::print_word:31::print_byte:56::print_char:61 [ main::i#2 line_cursor#1 print_byte::b#3 char_cursor#11 ] main:2::print_word:39::print_byte:56::print_char:61 [ line_cursor#1 print_byte::b#3 char_cursor#11 ] main:2::print_word:43::print_byte:56::print_char:61 [ line_cursor#1 print_byte::b#3 char_cursor#11 ] main:2::print_byte:23::print_char:64 [ main::i#2 line_cursor#1 char_cursor#11 ] main:2::print_word:13::print_byte:54::print_char:64 [ print_word::w#6 char_cursor#11 ] main:2::print_word:17::print_byte:54::print_char:64 [ print_word::w#6 char_cursor#11 ] main:2::print_word:27::print_byte:54::print_char:64 [ main::i#2 line_cursor#1 print_word::w#6 char_cursor#11 ] main:2::print_word:31::print_byte:54::print_char:64 [ main::i#2 line_cursor#1 print_word::w#6 char_cursor#11 ] main:2::print_word:39::print_byte:54::print_char:64 [ line_cursor#1 print_word::w#6 char_cursor#11 ] main:2::print_word:43::print_byte:54::print_char:64 [ line_cursor#1 print_word::w#6 char_cursor#11 ] main:2::print_word:13::print_byte:56::print_char:64 [ char_cursor#11 ] main:2::print_word:17::print_byte:56::print_char:64 [ char_cursor#11 ] main:2::print_word:27::print_byte:56::print_char:64 [ main::i#2 line_cursor#1 char_cursor#11 ] main:2::print_word:31::print_byte:56::print_char:64 [ main::i#2 line_cursor#1 char_cursor#11 ] main:2::print_word:39::print_byte:56::print_char:64 [ line_cursor#1 char_cursor#11 ] main:2::print_word:43::print_byte:56::print_char:64 [ line_cursor#1 char_cursor#11 ] )
to:@return
print_str: scope:[print_str] from main::@5
[43] phi() [ char_cursor#11 ] ( main:2::print_str:12 [ main::i#2 line_cursor#19 char_cursor#11 ] )
print_str: scope:[print_str] from main::@11 main::@13 main::@18 main::@2 main::@5 main::@7
[70] (byte*) char_cursor#74 ← phi( main::@11/(byte*) char_cursor#11 main::@13/(byte*) char_cursor#11 main::@18/(byte*) char_cursor#11 main::@2/(byte*~) char_cursor#85 main::@5/(const byte*) SCREEN#0 main::@7/(byte*) char_cursor#11 ) [ print_str::str#9 char_cursor#74 ] ( main:2::print_str:11 [ print_str::str#9 char_cursor#74 ] main:2::print_str:15 [ print_str::str#9 char_cursor#74 ] main:2::print_str:25 [ main::i#2 line_cursor#1 print_str::str#9 char_cursor#74 ] main:2::print_str:29 [ main::i#2 line_cursor#1 print_str::str#9 char_cursor#74 ] main:2::print_str:37 [ line_cursor#1 print_str::str#9 char_cursor#74 ] main:2::print_str:41 [ line_cursor#1 print_str::str#9 char_cursor#74 ] )
[70] (byte*) print_str::str#9 ← phi( main::@11/(const string) main::str2 main::@13/(const string) main::str3 main::@18/(const string) main::str5 main::@2/(const string) main::str4 main::@5/(const string) main::str main::@7/(const string) main::str1 ) [ print_str::str#9 char_cursor#74 ] ( main:2::print_str:11 [ print_str::str#9 char_cursor#74 ] main:2::print_str:15 [ print_str::str#9 char_cursor#74 ] main:2::print_str:25 [ main::i#2 line_cursor#1 print_str::str#9 char_cursor#74 ] main:2::print_str:29 [ main::i#2 line_cursor#1 print_str::str#9 char_cursor#74 ] main:2::print_str:37 [ line_cursor#1 print_str::str#9 char_cursor#74 ] main:2::print_str:41 [ line_cursor#1 print_str::str#9 char_cursor#74 ] )
to:print_str::@1
print_str::@1: scope:[print_str] from print_str print_str::@2
[44] (byte*) char_cursor#2 ← phi( print_str/(byte*) char_cursor#11 print_str::@2/(byte*) char_cursor#1 ) [ char_cursor#2 print_str::str#2 ] ( main:2::print_str:12 [ main::i#2 line_cursor#19 char_cursor#2 print_str::str#2 ] )
[44] (byte*) print_str::str#2 ← phi( print_str/(const string) main::str print_str::@2/(byte*) print_str::str#0 ) [ char_cursor#2 print_str::str#2 ] ( main:2::print_str:12 [ main::i#2 line_cursor#19 char_cursor#2 print_str::str#2 ] )
[45] if(*((byte*) print_str::str#2)!=(byte) '@') goto print_str::@2 [ char_cursor#2 print_str::str#2 ] ( main:2::print_str:12 [ main::i#2 line_cursor#19 char_cursor#2 print_str::str#2 ] )
[71] (byte*) char_cursor#2 ← phi( print_str/(byte*) char_cursor#74 print_str::@2/(byte*) char_cursor#1 ) [ char_cursor#2 print_str::str#7 ] ( main:2::print_str:11 [ char_cursor#2 print_str::str#7 ] main:2::print_str:15 [ char_cursor#2 print_str::str#7 ] main:2::print_str:25 [ main::i#2 line_cursor#1 char_cursor#2 print_str::str#7 ] main:2::print_str:29 [ main::i#2 line_cursor#1 char_cursor#2 print_str::str#7 ] main:2::print_str:37 [ line_cursor#1 char_cursor#2 print_str::str#7 ] main:2::print_str:41 [ line_cursor#1 char_cursor#2 print_str::str#7 ] )
[71] (byte*) print_str::str#7 ← phi( print_str/(byte*) print_str::str#9 print_str::@2/(byte*) print_str::str#0 ) [ char_cursor#2 print_str::str#7 ] ( main:2::print_str:11 [ char_cursor#2 print_str::str#7 ] main:2::print_str:15 [ char_cursor#2 print_str::str#7 ] main:2::print_str:25 [ main::i#2 line_cursor#1 char_cursor#2 print_str::str#7 ] main:2::print_str:29 [ main::i#2 line_cursor#1 char_cursor#2 print_str::str#7 ] main:2::print_str:37 [ line_cursor#1 char_cursor#2 print_str::str#7 ] main:2::print_str:41 [ line_cursor#1 char_cursor#2 print_str::str#7 ] )
[72] if(*((byte*) print_str::str#7)!=(byte) '@') goto print_str::@2 [ char_cursor#2 print_str::str#7 ] ( main:2::print_str:11 [ char_cursor#2 print_str::str#7 ] main:2::print_str:15 [ char_cursor#2 print_str::str#7 ] main:2::print_str:25 [ main::i#2 line_cursor#1 char_cursor#2 print_str::str#7 ] main:2::print_str:29 [ main::i#2 line_cursor#1 char_cursor#2 print_str::str#7 ] main:2::print_str:37 [ line_cursor#1 char_cursor#2 print_str::str#7 ] main:2::print_str:41 [ line_cursor#1 char_cursor#2 print_str::str#7 ] )
to:print_str::@return
print_str::@return: scope:[print_str] from print_str::@1
[46] return [ char_cursor#2 ] ( main:2::print_str:12 [ main::i#2 line_cursor#19 char_cursor#2 ] )
[73] return [ char_cursor#2 ] ( main:2::print_str:11 [ char_cursor#2 ] main:2::print_str:15 [ char_cursor#2 ] main:2::print_str:25 [ main::i#2 line_cursor#1 char_cursor#2 ] main:2::print_str:29 [ main::i#2 line_cursor#1 char_cursor#2 ] main:2::print_str:37 [ line_cursor#1 char_cursor#2 ] main:2::print_str:41 [ line_cursor#1 char_cursor#2 ] )
to:@return
print_str::@2: scope:[print_str] from print_str::@1
[47] *((byte*) char_cursor#2) ← *((byte*) print_str::str#2) [ char_cursor#2 print_str::str#2 ] ( main:2::print_str:12 [ main::i#2 line_cursor#19 char_cursor#2 print_str::str#2 ] )
[48] (byte*) char_cursor#1 ← ++ (byte*) char_cursor#2 [ print_str::str#2 char_cursor#1 ] ( main:2::print_str:12 [ main::i#2 line_cursor#19 print_str::str#2 char_cursor#1 ] )
[49] (byte*) print_str::str#0 ← ++ (byte*) print_str::str#2 [ print_str::str#0 char_cursor#1 ] ( main:2::print_str:12 [ main::i#2 line_cursor#19 print_str::str#0 char_cursor#1 ] )
[74] *((byte*) char_cursor#2) ← *((byte*) print_str::str#7) [ char_cursor#2 print_str::str#7 ] ( main:2::print_str:11 [ char_cursor#2 print_str::str#7 ] main:2::print_str:15 [ char_cursor#2 print_str::str#7 ] main:2::print_str:25 [ main::i#2 line_cursor#1 char_cursor#2 print_str::str#7 ] main:2::print_str:29 [ main::i#2 line_cursor#1 char_cursor#2 print_str::str#7 ] main:2::print_str:37 [ line_cursor#1 char_cursor#2 print_str::str#7 ] main:2::print_str:41 [ line_cursor#1 char_cursor#2 print_str::str#7 ] )
[75] (byte*) char_cursor#1 ← ++ (byte*) char_cursor#2 [ print_str::str#7 char_cursor#1 ] ( main:2::print_str:11 [ print_str::str#7 char_cursor#1 ] main:2::print_str:15 [ print_str::str#7 char_cursor#1 ] main:2::print_str:25 [ main::i#2 line_cursor#1 print_str::str#7 char_cursor#1 ] main:2::print_str:29 [ main::i#2 line_cursor#1 print_str::str#7 char_cursor#1 ] main:2::print_str:37 [ line_cursor#1 print_str::str#7 char_cursor#1 ] main:2::print_str:41 [ line_cursor#1 print_str::str#7 char_cursor#1 ] )
[76] (byte*) print_str::str#0 ← ++ (byte*) print_str::str#7 [ print_str::str#0 char_cursor#1 ] ( main:2::print_str:11 [ print_str::str#0 char_cursor#1 ] main:2::print_str:15 [ print_str::str#0 char_cursor#1 ] main:2::print_str:25 [ main::i#2 line_cursor#1 print_str::str#0 char_cursor#1 ] main:2::print_str:29 [ main::i#2 line_cursor#1 print_str::str#0 char_cursor#1 ] main:2::print_str:37 [ line_cursor#1 print_str::str#0 char_cursor#1 ] main:2::print_str:41 [ line_cursor#1 print_str::str#0 char_cursor#1 ] )
to:print_str::@1
print_cls: scope:[print_cls] from main::@3
[50] phi() [ ] ( main:2::print_cls:7 [ ] )
print_cls: scope:[print_cls] from main::@4
[77] phi() [ ] ( main:2::print_cls:9 [ ] )
to:print_cls::@1
print_cls::@1: scope:[print_cls] from print_cls print_cls::@1
[51] (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:7 [ print_cls::sc#2 ] )
[52] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::print_cls:7 [ print_cls::sc#2 ] )
[53] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 [ print_cls::sc#1 ] ( main:2::print_cls:7 [ print_cls::sc#1 ] )
[54] 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:7 [ print_cls::sc#1 ] )
[78] (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:9 [ print_cls::sc#2 ] )
[79] *((byte*) print_cls::sc#2) ← (byte) ' ' [ print_cls::sc#2 ] ( main:2::print_cls:9 [ print_cls::sc#2 ] )
[80] (byte*) print_cls::sc#1 ← ++ (byte*) print_cls::sc#2 [ print_cls::sc#1 ] ( main:2::print_cls:9 [ print_cls::sc#1 ] )
[81] 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:9 [ print_cls::sc#1 ] )
to:print_cls::@return
print_cls::@return: scope:[print_cls] from print_cls::@1
[55] return [ ] ( main:2::print_cls:7 [ ] )
[82] return [ ] ( main:2::print_cls:9 [ ] )
to:@return
lin16u_gen: scope:[lin16u_gen] from main
[56] phi() [ ] ( main:2::lin16u_gen:5 [ ] )
[57] call divr16u param-assignment [ divr16u::return#0 rem16u#1 ] ( main:2::lin16u_gen:5 [ divr16u::return#0 rem16u#1 ] )
[58] (word) divr16u::return#2 ← (word) divr16u::return#0 [ divr16u::return#2 rem16u#1 ] ( main:2::lin16u_gen:5 [ divr16u::return#2 rem16u#1 ] )
lin16u_gen: scope:[lin16u_gen] from main main::@3
[83] (word*) lin16u_gen::lintab#4 ← phi( main/(const word[20]) main::lintab1#0 main::@3/(const word[20]) main::lintab2#0 ) [ lin16u_gen::max#2 lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 ] ( main:2::lin16u_gen:5 [ lin16u_gen::max#2 lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 ] main:2::lin16u_gen:7 [ lin16u_gen::max#2 lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 ] )
[83] (word) rem16u#20 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 0 main::@3/(word) divr16u::rem#11 ) [ lin16u_gen::max#2 lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 ] ( main:2::lin16u_gen:5 [ lin16u_gen::max#2 lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 ] main:2::lin16u_gen:7 [ lin16u_gen::max#2 lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 ] )
[83] (word) lin16u_gen::length#2 ← phi( main/(byte/signed byte/word/signed word/dword/signed dword) 20 main::@3/(byte/signed byte/word/signed word/dword/signed dword) 20 ) [ lin16u_gen::max#2 lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 ] ( main:2::lin16u_gen:5 [ lin16u_gen::max#2 lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 ] main:2::lin16u_gen:7 [ lin16u_gen::max#2 lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 ] )
[83] (word) lin16u_gen::min#2 ← phi( main/(word/signed word/dword/signed dword) 557 main::@3/(word/signed word/dword/signed dword) 31179 ) [ lin16u_gen::max#2 lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 ] ( main:2::lin16u_gen:5 [ lin16u_gen::max#2 lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 ] main:2::lin16u_gen:7 [ lin16u_gen::max#2 lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 ] )
[83] (word) lin16u_gen::max#2 ← phi( main/(word/signed word/dword/signed dword) 29793 main::@3/(word/dword/signed dword) 63361 ) [ lin16u_gen::max#2 lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 ] ( main:2::lin16u_gen:5 [ lin16u_gen::max#2 lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 ] main:2::lin16u_gen:7 [ lin16u_gen::max#2 lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 ] )
[84] (word) lin16u_gen::ampl#0 ← (word) lin16u_gen::max#2 - (word) lin16u_gen::min#2 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::ampl#0 ] ( main:2::lin16u_gen:5 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::ampl#0 ] main:2::lin16u_gen:7 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::ampl#0 ] )
[85] (word) divr16u::divisor#0 ← (word) lin16u_gen::length#2 - (byte/signed byte/word/signed word/dword/signed dword) 1 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::ampl#0 divr16u::divisor#0 ] ( main:2::lin16u_gen:5 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::ampl#0 divr16u::divisor#0 ] main:2::lin16u_gen:7 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::ampl#0 divr16u::divisor#0 ] )
[86] (word) divr16u::dividend#1 ← (word) lin16u_gen::ampl#0 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::divisor#0 divr16u::dividend#1 ] ( main:2::lin16u_gen:5 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::divisor#0 divr16u::dividend#1 ] main:2::lin16u_gen:7 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::divisor#0 divr16u::dividend#1 ] )
[87] call divr16u param-assignment [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::rem#11 divr16u::return#0 ] ( main:2::lin16u_gen:5 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::rem#11 divr16u::return#0 ] main:2::lin16u_gen:7 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::rem#11 divr16u::return#0 ] )
[88] (word) divr16u::return#2 ← (word) divr16u::return#0 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::rem#11 divr16u::return#2 ] ( main:2::lin16u_gen:5 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::rem#11 divr16u::return#2 ] main:2::lin16u_gen:7 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::rem#11 divr16u::return#2 ] )
to:lin16u_gen::@3
lin16u_gen::@3: scope:[lin16u_gen] from lin16u_gen
[59] (word) lin16u_gen::stepi#0 ← (word) divr16u::return#2 [ lin16u_gen::stepi#0 rem16u#1 ] ( main:2::lin16u_gen:5 [ lin16u_gen::stepi#0 rem16u#1 ] )
[60] (word) divr16u::rem#4 ← (word) rem16u#1 [ lin16u_gen::stepi#0 divr16u::rem#4 ] ( main:2::lin16u_gen:5 [ lin16u_gen::stepi#0 divr16u::rem#4 ] )
[61] call divr16u param-assignment [ divr16u::return#0 lin16u_gen::stepi#0 ] ( main:2::lin16u_gen:5 [ divr16u::return#0 lin16u_gen::stepi#0 ] )
[62] (word) divr16u::return#3 ← (word) divr16u::return#0 [ lin16u_gen::stepi#0 divr16u::return#3 ] ( main:2::lin16u_gen:5 [ lin16u_gen::stepi#0 divr16u::return#3 ] )
[89] (word) lin16u_gen::stepi#0 ← (word) divr16u::return#2 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::rem#11 lin16u_gen::stepi#0 ] ( main:2::lin16u_gen:5 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::rem#11 lin16u_gen::stepi#0 ] main:2::lin16u_gen:7 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::rem#11 lin16u_gen::stepi#0 ] )
[90] (word) divr16u::divisor#1 ← (word) lin16u_gen::length#2 - (byte/signed byte/word/signed word/dword/signed dword) 1 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::rem#11 lin16u_gen::stepi#0 divr16u::divisor#1 ] ( main:2::lin16u_gen:5 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::rem#11 lin16u_gen::stepi#0 divr16u::divisor#1 ] main:2::lin16u_gen:7 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::rem#11 lin16u_gen::stepi#0 divr16u::divisor#1 ] )
[91] (word) divr16u::rem#4 ← (word) divr16u::rem#11 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::stepi#0 divr16u::divisor#1 divr16u::rem#4 ] ( main:2::lin16u_gen:5 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::stepi#0 divr16u::divisor#1 divr16u::rem#4 ] main:2::lin16u_gen:7 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::stepi#0 divr16u::divisor#1 divr16u::rem#4 ] )
[92] call divr16u param-assignment [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::rem#11 divr16u::return#0 lin16u_gen::stepi#0 ] ( main:2::lin16u_gen:5 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::rem#11 divr16u::return#0 lin16u_gen::stepi#0 ] main:2::lin16u_gen:7 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::rem#11 divr16u::return#0 lin16u_gen::stepi#0 ] )
[93] (word) divr16u::return#3 ← (word) divr16u::return#0 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::rem#11 lin16u_gen::stepi#0 divr16u::return#3 ] ( main:2::lin16u_gen:5 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::rem#11 lin16u_gen::stepi#0 divr16u::return#3 ] main:2::lin16u_gen:7 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::rem#11 lin16u_gen::stepi#0 divr16u::return#3 ] )
to:lin16u_gen::@4
lin16u_gen::@4: scope:[lin16u_gen] from lin16u_gen::@3
[63] (word) lin16u_gen::stepf#0 ← (word) divr16u::return#3 [ lin16u_gen::stepi#0 lin16u_gen::stepf#0 ] ( main:2::lin16u_gen:5 [ lin16u_gen::stepi#0 lin16u_gen::stepf#0 ] )
[64] (dword) lin16u_gen::step#0 ← (word) lin16u_gen::stepi#0 dw= (word) lin16u_gen::stepf#0 [ lin16u_gen::step#0 ] ( main:2::lin16u_gen:5 [ lin16u_gen::step#0 ] )
[94] (word) lin16u_gen::stepf#0 ← (word) divr16u::return#3 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::rem#11 lin16u_gen::stepi#0 lin16u_gen::stepf#0 ] ( main:2::lin16u_gen:5 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::rem#11 lin16u_gen::stepi#0 lin16u_gen::stepf#0 ] main:2::lin16u_gen:7 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::rem#11 lin16u_gen::stepi#0 lin16u_gen::stepf#0 ] )
[95] (dword) lin16u_gen::step#0 ← (word) lin16u_gen::stepi#0 dw= (word) lin16u_gen::stepf#0 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::rem#11 lin16u_gen::step#0 ] ( main:2::lin16u_gen:5 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::rem#11 lin16u_gen::step#0 ] main:2::lin16u_gen:7 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::rem#11 lin16u_gen::step#0 ] )
[96] (dword) lin16u_gen::val#0 ← (word) lin16u_gen::min#2 dw= (byte/signed byte/word/signed word/dword/signed dword) 0 [ lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::rem#11 lin16u_gen::step#0 lin16u_gen::val#0 ] ( main:2::lin16u_gen:5 [ lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::rem#11 lin16u_gen::step#0 lin16u_gen::val#0 ] main:2::lin16u_gen:7 [ lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::rem#11 lin16u_gen::step#0 lin16u_gen::val#0 ] )
to:lin16u_gen::@1
lin16u_gen::@1: scope:[lin16u_gen] from lin16u_gen::@1 lin16u_gen::@4
[65] (word) lin16u_gen::i#2 ← phi( lin16u_gen::@1/(word) lin16u_gen::i#1 lin16u_gen::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ lin16u_gen::step#0 lin16u_gen::val#2 lin16u_gen::lintab#2 lin16u_gen::i#2 ] ( main:2::lin16u_gen:5 [ lin16u_gen::step#0 lin16u_gen::val#2 lin16u_gen::lintab#2 lin16u_gen::i#2 ] )
[65] (word*) lin16u_gen::lintab#2 ← phi( lin16u_gen::@1/(word*) lin16u_gen::lintab#1 lin16u_gen::@4/(const word[20]) main::lintab#0 ) [ lin16u_gen::step#0 lin16u_gen::val#2 lin16u_gen::lintab#2 lin16u_gen::i#2 ] ( main:2::lin16u_gen:5 [ lin16u_gen::step#0 lin16u_gen::val#2 lin16u_gen::lintab#2 lin16u_gen::i#2 ] )
[65] (dword) lin16u_gen::val#2 ← phi( lin16u_gen::@1/(dword) lin16u_gen::val#1 lin16u_gen::@4/(const word) lin16u_gen::min#0*(dword/signed dword) 65536+(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ lin16u_gen::step#0 lin16u_gen::val#2 lin16u_gen::lintab#2 lin16u_gen::i#2 ] ( main:2::lin16u_gen:5 [ lin16u_gen::step#0 lin16u_gen::val#2 lin16u_gen::lintab#2 lin16u_gen::i#2 ] )
[66] (word~) lin16u_gen::$5 ← > (dword) lin16u_gen::val#2 [ lin16u_gen::step#0 lin16u_gen::val#2 lin16u_gen::lintab#2 lin16u_gen::i#2 lin16u_gen::$5 ] ( main:2::lin16u_gen:5 [ lin16u_gen::step#0 lin16u_gen::val#2 lin16u_gen::lintab#2 lin16u_gen::i#2 lin16u_gen::$5 ] )
[67] *((word*) lin16u_gen::lintab#2) ← (word~) lin16u_gen::$5 [ lin16u_gen::step#0 lin16u_gen::val#2 lin16u_gen::lintab#2 lin16u_gen::i#2 ] ( main:2::lin16u_gen:5 [ lin16u_gen::step#0 lin16u_gen::val#2 lin16u_gen::lintab#2 lin16u_gen::i#2 ] )
[68] (dword) lin16u_gen::val#1 ← (dword) lin16u_gen::val#2 + (dword) lin16u_gen::step#0 [ lin16u_gen::step#0 lin16u_gen::lintab#2 lin16u_gen::i#2 lin16u_gen::val#1 ] ( main:2::lin16u_gen:5 [ lin16u_gen::step#0 lin16u_gen::lintab#2 lin16u_gen::i#2 lin16u_gen::val#1 ] )
[69] (word*) lin16u_gen::lintab#1 ← (word*) lin16u_gen::lintab#2 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::val#1 lin16u_gen::lintab#1 ] ( main:2::lin16u_gen:5 [ lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::val#1 lin16u_gen::lintab#1 ] )
[70] (word) lin16u_gen::i#1 ← ++ (word) lin16u_gen::i#2 [ lin16u_gen::step#0 lin16u_gen::val#1 lin16u_gen::lintab#1 lin16u_gen::i#1 ] ( main:2::lin16u_gen:5 [ lin16u_gen::step#0 lin16u_gen::val#1 lin16u_gen::lintab#1 lin16u_gen::i#1 ] )
[71] if((word) lin16u_gen::i#1<(const word) lin16u_gen::length#0) goto lin16u_gen::@1 [ lin16u_gen::step#0 lin16u_gen::val#1 lin16u_gen::lintab#1 lin16u_gen::i#1 ] ( main:2::lin16u_gen:5 [ lin16u_gen::step#0 lin16u_gen::val#1 lin16u_gen::lintab#1 lin16u_gen::i#1 ] )
[97] (word) lin16u_gen::i#2 ← phi( lin16u_gen::@1/(word) lin16u_gen::i#1 lin16u_gen::@4/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ lin16u_gen::length#2 divr16u::rem#11 lin16u_gen::step#0 lin16u_gen::val#2 lin16u_gen::lintab#3 lin16u_gen::i#2 ] ( main:2::lin16u_gen:5 [ lin16u_gen::length#2 divr16u::rem#11 lin16u_gen::step#0 lin16u_gen::val#2 lin16u_gen::lintab#3 lin16u_gen::i#2 ] main:2::lin16u_gen:7 [ lin16u_gen::length#2 divr16u::rem#11 lin16u_gen::step#0 lin16u_gen::val#2 lin16u_gen::lintab#3 lin16u_gen::i#2 ] )
[97] (word*) lin16u_gen::lintab#3 ← phi( lin16u_gen::@1/(word*) lin16u_gen::lintab#2 lin16u_gen::@4/(word*) lin16u_gen::lintab#4 ) [ lin16u_gen::length#2 divr16u::rem#11 lin16u_gen::step#0 lin16u_gen::val#2 lin16u_gen::lintab#3 lin16u_gen::i#2 ] ( main:2::lin16u_gen:5 [ lin16u_gen::length#2 divr16u::rem#11 lin16u_gen::step#0 lin16u_gen::val#2 lin16u_gen::lintab#3 lin16u_gen::i#2 ] main:2::lin16u_gen:7 [ lin16u_gen::length#2 divr16u::rem#11 lin16u_gen::step#0 lin16u_gen::val#2 lin16u_gen::lintab#3 lin16u_gen::i#2 ] )
[97] (dword) lin16u_gen::val#2 ← phi( lin16u_gen::@1/(dword) lin16u_gen::val#1 lin16u_gen::@4/(dword) lin16u_gen::val#0 ) [ lin16u_gen::length#2 divr16u::rem#11 lin16u_gen::step#0 lin16u_gen::val#2 lin16u_gen::lintab#3 lin16u_gen::i#2 ] ( main:2::lin16u_gen:5 [ lin16u_gen::length#2 divr16u::rem#11 lin16u_gen::step#0 lin16u_gen::val#2 lin16u_gen::lintab#3 lin16u_gen::i#2 ] main:2::lin16u_gen:7 [ lin16u_gen::length#2 divr16u::rem#11 lin16u_gen::step#0 lin16u_gen::val#2 lin16u_gen::lintab#3 lin16u_gen::i#2 ] )
[98] (word~) lin16u_gen::$5 ← > (dword) lin16u_gen::val#2 [ lin16u_gen::length#2 divr16u::rem#11 lin16u_gen::step#0 lin16u_gen::val#2 lin16u_gen::lintab#3 lin16u_gen::i#2 lin16u_gen::$5 ] ( main:2::lin16u_gen:5 [ lin16u_gen::length#2 divr16u::rem#11 lin16u_gen::step#0 lin16u_gen::val#2 lin16u_gen::lintab#3 lin16u_gen::i#2 lin16u_gen::$5 ] main:2::lin16u_gen:7 [ lin16u_gen::length#2 divr16u::rem#11 lin16u_gen::step#0 lin16u_gen::val#2 lin16u_gen::lintab#3 lin16u_gen::i#2 lin16u_gen::$5 ] )
[99] *((word*) lin16u_gen::lintab#3) ← (word~) lin16u_gen::$5 [ lin16u_gen::length#2 divr16u::rem#11 lin16u_gen::step#0 lin16u_gen::val#2 lin16u_gen::lintab#3 lin16u_gen::i#2 ] ( main:2::lin16u_gen:5 [ lin16u_gen::length#2 divr16u::rem#11 lin16u_gen::step#0 lin16u_gen::val#2 lin16u_gen::lintab#3 lin16u_gen::i#2 ] main:2::lin16u_gen:7 [ lin16u_gen::length#2 divr16u::rem#11 lin16u_gen::step#0 lin16u_gen::val#2 lin16u_gen::lintab#3 lin16u_gen::i#2 ] )
[100] (dword) lin16u_gen::val#1 ← (dword) lin16u_gen::val#2 + (dword) lin16u_gen::step#0 [ lin16u_gen::length#2 divr16u::rem#11 lin16u_gen::step#0 lin16u_gen::lintab#3 lin16u_gen::i#2 lin16u_gen::val#1 ] ( main:2::lin16u_gen:5 [ lin16u_gen::length#2 divr16u::rem#11 lin16u_gen::step#0 lin16u_gen::lintab#3 lin16u_gen::i#2 lin16u_gen::val#1 ] main:2::lin16u_gen:7 [ lin16u_gen::length#2 divr16u::rem#11 lin16u_gen::step#0 lin16u_gen::lintab#3 lin16u_gen::i#2 lin16u_gen::val#1 ] )
[101] (word*) lin16u_gen::lintab#2 ← (word*) lin16u_gen::lintab#3 + (byte/signed byte/word/signed word/dword/signed dword) 2 [ lin16u_gen::length#2 divr16u::rem#11 lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::val#1 lin16u_gen::lintab#2 ] ( main:2::lin16u_gen:5 [ lin16u_gen::length#2 divr16u::rem#11 lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::val#1 lin16u_gen::lintab#2 ] main:2::lin16u_gen:7 [ lin16u_gen::length#2 divr16u::rem#11 lin16u_gen::step#0 lin16u_gen::i#2 lin16u_gen::val#1 lin16u_gen::lintab#2 ] )
[102] (word) lin16u_gen::i#1 ← ++ (word) lin16u_gen::i#2 [ lin16u_gen::length#2 divr16u::rem#11 lin16u_gen::step#0 lin16u_gen::val#1 lin16u_gen::lintab#2 lin16u_gen::i#1 ] ( main:2::lin16u_gen:5 [ lin16u_gen::length#2 divr16u::rem#11 lin16u_gen::step#0 lin16u_gen::val#1 lin16u_gen::lintab#2 lin16u_gen::i#1 ] main:2::lin16u_gen:7 [ lin16u_gen::length#2 divr16u::rem#11 lin16u_gen::step#0 lin16u_gen::val#1 lin16u_gen::lintab#2 lin16u_gen::i#1 ] )
[103] if((word) lin16u_gen::i#1<(word) lin16u_gen::length#2) goto lin16u_gen::@1 [ lin16u_gen::length#2 divr16u::rem#11 lin16u_gen::step#0 lin16u_gen::val#1 lin16u_gen::lintab#2 lin16u_gen::i#1 ] ( main:2::lin16u_gen:5 [ lin16u_gen::length#2 divr16u::rem#11 lin16u_gen::step#0 lin16u_gen::val#1 lin16u_gen::lintab#2 lin16u_gen::i#1 ] main:2::lin16u_gen:7 [ lin16u_gen::length#2 divr16u::rem#11 lin16u_gen::step#0 lin16u_gen::val#1 lin16u_gen::lintab#2 lin16u_gen::i#1 ] )
to:lin16u_gen::@return
lin16u_gen::@return: scope:[lin16u_gen] from lin16u_gen::@1
[72] return [ ] ( main:2::lin16u_gen:5 [ ] )
[104] return [ divr16u::rem#11 ] ( main:2::lin16u_gen:5 [ divr16u::rem#11 ] main:2::lin16u_gen:7 [ divr16u::rem#11 ] )
to:@return
divr16u: scope:[divr16u] from lin16u_gen lin16u_gen::@3
[73] (word) divr16u::divisor#6 ← phi( lin16u_gen/(const word) lin16u_gen::length#0-(byte/signed byte/word/signed word/dword/signed dword) 1 lin16u_gen::@3/(const word) lin16u_gen::length#0-(byte/signed byte/word/signed word/dword/signed dword) 1 ) [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] ( main:2::lin16u_gen:5::divr16u:57 [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] main:2::lin16u_gen:5::divr16u:61 [ lin16u_gen::stepi#0 divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] )
[73] (word) divr16u::dividend#5 ← phi( lin16u_gen/(const word) lin16u_gen::ampl#0 lin16u_gen::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] ( main:2::lin16u_gen:5::divr16u:57 [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] main:2::lin16u_gen:5::divr16u:61 [ lin16u_gen::stepi#0 divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] )
[73] (word) divr16u::rem#10 ← phi( lin16u_gen/(byte/signed byte/word/signed word/dword/signed dword) 0 lin16u_gen::@3/(word) divr16u::rem#4 ) [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] ( main:2::lin16u_gen:5::divr16u:57 [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] main:2::lin16u_gen:5::divr16u:61 [ lin16u_gen::stepi#0 divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] )
[105] (word) divr16u::divisor#6 ← phi( lin16u_gen/(word) divr16u::divisor#0 lin16u_gen::@3/(word) divr16u::divisor#1 ) [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] ( main:2::lin16u_gen:5::divr16u:87 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] main:2::lin16u_gen:7::divr16u:87 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] main:2::lin16u_gen:5::divr16u:92 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::stepi#0 divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] main:2::lin16u_gen:7::divr16u:92 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::stepi#0 divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] )
[105] (word) divr16u::dividend#5 ← phi( lin16u_gen/(word) divr16u::dividend#1 lin16u_gen::@3/(byte/signed byte/word/signed word/dword/signed dword) 0 ) [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] ( main:2::lin16u_gen:5::divr16u:87 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] main:2::lin16u_gen:7::divr16u:87 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] main:2::lin16u_gen:5::divr16u:92 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::stepi#0 divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] main:2::lin16u_gen:7::divr16u:92 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::stepi#0 divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] )
[105] (word) divr16u::rem#10 ← phi( lin16u_gen/(byte/signed byte/word/signed word/dword/signed dword) 0 lin16u_gen::@3/(word) divr16u::rem#4 ) [ divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] ( main:2::lin16u_gen:5::divr16u:87 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] main:2::lin16u_gen:7::divr16u:87 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] main:2::lin16u_gen:5::divr16u:92 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::stepi#0 divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] main:2::lin16u_gen:7::divr16u:92 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::stepi#0 divr16u::rem#10 divr16u::dividend#5 divr16u::divisor#6 ] )
to:divr16u::@1
divr16u::@1: scope:[divr16u] from divr16u divr16u::@3
[74] (byte) divr16u::i#2 ← phi( divr16u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr16u::@3/(byte) divr16u::i#1 ) [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ( main:2::lin16u_gen:5::divr16u:57 [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::lin16u_gen:5::divr16u:61 [ lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] )
[74] (word) divr16u::quotient#3 ← phi( divr16u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr16u::@3/(word) divr16u::return#0 ) [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ( main:2::lin16u_gen:5::divr16u:57 [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::lin16u_gen:5::divr16u:61 [ lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] )
[74] (word) divr16u::dividend#3 ← phi( divr16u/(word) divr16u::dividend#5 divr16u::@3/(word) divr16u::dividend#0 ) [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ( main:2::lin16u_gen:5::divr16u:57 [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::lin16u_gen:5::divr16u:61 [ lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] )
[74] (word) divr16u::rem#5 ← phi( divr16u/(word) divr16u::rem#10 divr16u::@3/(word) divr16u::rem#11 ) [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ( main:2::lin16u_gen:5::divr16u:57 [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::lin16u_gen:5::divr16u:61 [ lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] )
[75] (word) divr16u::rem#0 ← (word) divr16u::rem#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::lin16u_gen:5::divr16u:57 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::lin16u_gen:5::divr16u:61 [ lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] )
[76] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::lin16u_gen:5::divr16u:57 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::lin16u_gen:5::divr16u:61 [ lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] )
[77] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::lin16u_gen:5::divr16u:57 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::lin16u_gen:5::divr16u:61 [ lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] )
[78] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::lin16u_gen:5::divr16u:57 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::lin16u_gen:5::divr16u:61 [ lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] )
[106] (byte) divr16u::i#2 ← phi( divr16u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr16u::@3/(byte) divr16u::i#1 ) [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ( main:2::lin16u_gen:5::divr16u:87 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::lin16u_gen:7::divr16u:87 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::lin16u_gen:5::divr16u:92 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::lin16u_gen:7::divr16u:92 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] )
[106] (word) divr16u::quotient#3 ← phi( divr16u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr16u::@3/(word) divr16u::return#0 ) [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ( main:2::lin16u_gen:5::divr16u:87 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::lin16u_gen:7::divr16u:87 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::lin16u_gen:5::divr16u:92 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::lin16u_gen:7::divr16u:92 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] )
[106] (word) divr16u::dividend#3 ← phi( divr16u/(word) divr16u::dividend#5 divr16u::@3/(word) divr16u::dividend#0 ) [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ( main:2::lin16u_gen:5::divr16u:87 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::lin16u_gen:7::divr16u:87 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::lin16u_gen:5::divr16u:92 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::lin16u_gen:7::divr16u:92 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] )
[106] (word) divr16u::rem#5 ← phi( divr16u/(word) divr16u::rem#10 divr16u::@3/(word) divr16u::rem#11 ) [ divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] ( main:2::lin16u_gen:5::divr16u:87 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::lin16u_gen:7::divr16u:87 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::lin16u_gen:5::divr16u:92 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] main:2::lin16u_gen:7::divr16u:92 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::rem#5 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 ] )
[107] (word) divr16u::rem#0 ← (word) divr16u::rem#5 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::lin16u_gen:5::divr16u:87 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::lin16u_gen:7::divr16u:87 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::lin16u_gen:5::divr16u:92 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::lin16u_gen:7::divr16u:92 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] )
[108] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::lin16u_gen:5::divr16u:87 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::lin16u_gen:7::divr16u:87 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::lin16u_gen:5::divr16u:92 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] main:2::lin16u_gen:7::divr16u:92 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] )
[109] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) 128 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] ( main:2::lin16u_gen:5::divr16u:87 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::lin16u_gen:7::divr16u:87 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::lin16u_gen:5::divr16u:92 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] main:2::lin16u_gen:7::divr16u:92 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$2 ] )
[110] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] ( main:2::lin16u_gen:5::divr16u:87 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::lin16u_gen:7::divr16u:87 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::lin16u_gen:5::divr16u:92 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] main:2::lin16u_gen:7::divr16u:92 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 ] )
to:divr16u::@4
divr16u::@4: scope:[divr16u] from divr16u::@1
[79] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::lin16u_gen:5::divr16u:57 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::lin16u_gen:5::divr16u:61 [ lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] )
[111] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::lin16u_gen:5::divr16u:87 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::lin16u_gen:7::divr16u:87 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::lin16u_gen:5::divr16u:92 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] main:2::lin16u_gen:7::divr16u:92 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] )
to:divr16u::@2
divr16u::@2: scope:[divr16u] from divr16u::@1 divr16u::@4
[80] (word) divr16u::rem#6 ← phi( divr16u::@1/(word) divr16u::rem#0 divr16u::@4/(word) divr16u::rem#1 ) [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#6 ] ( main:2::lin16u_gen:5::divr16u:57 [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#6 ] main:2::lin16u_gen:5::divr16u:61 [ lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#6 ] )
[81] (word) divr16u::dividend#0 ← (word) divr16u::dividend#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] ( main:2::lin16u_gen:5::divr16u:57 [ divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] main:2::lin16u_gen:5::divr16u:61 [ lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] )
[82] (word) divr16u::quotient#1 ← (word) divr16u::quotient#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::lin16u_gen:5::divr16u:57 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::lin16u_gen:5::divr16u:61 [ lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] )
[83] if((word) divr16u::rem#6<(word) divr16u::divisor#6) goto divr16u::@3 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::lin16u_gen:5::divr16u:57 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::lin16u_gen:5::divr16u:61 [ lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] )
[112] (word) divr16u::rem#6 ← phi( divr16u::@1/(word) divr16u::rem#0 divr16u::@4/(word) divr16u::rem#1 ) [ divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#6 ] ( main:2::lin16u_gen:5::divr16u:87 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#6 ] main:2::lin16u_gen:7::divr16u:87 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#6 ] main:2::lin16u_gen:5::divr16u:92 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#6 ] main:2::lin16u_gen:7::divr16u:92 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::dividend#3 divr16u::quotient#3 divr16u::i#2 divr16u::rem#6 ] )
[113] (word) divr16u::dividend#0 ← (word) divr16u::dividend#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] ( main:2::lin16u_gen:5::divr16u:87 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] main:2::lin16u_gen:7::divr16u:87 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] main:2::lin16u_gen:5::divr16u:92 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] main:2::lin16u_gen:7::divr16u:92 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::quotient#3 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 ] )
[114] (word) divr16u::quotient#1 ← (word) divr16u::quotient#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::lin16u_gen:5::divr16u:87 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::lin16u_gen:7::divr16u:87 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::lin16u_gen:5::divr16u:92 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::lin16u_gen:7::divr16u:92 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] )
[115] if((word) divr16u::rem#6<(word) divr16u::divisor#6) goto divr16u::@3 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] ( main:2::lin16u_gen:5::divr16u:87 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::lin16u_gen:7::divr16u:87 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::lin16u_gen:5::divr16u:92 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] main:2::lin16u_gen:7::divr16u:92 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#1 ] )
to:divr16u::@5
divr16u::@5: scope:[divr16u] from divr16u::@2
[84] (word) divr16u::quotient#2 ← ++ (word) divr16u::quotient#1 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] ( main:2::lin16u_gen:5::divr16u:57 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] main:2::lin16u_gen:5::divr16u:61 [ lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] )
[85] (word) divr16u::rem#2 ← (word) divr16u::rem#6 - (word) divr16u::divisor#6 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::lin16u_gen:5::divr16u:57 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::lin16u_gen:5::divr16u:61 [ lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] )
[116] (word) divr16u::quotient#2 ← ++ (word) divr16u::quotient#1 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] ( main:2::lin16u_gen:5::divr16u:87 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] main:2::lin16u_gen:7::divr16u:87 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] main:2::lin16u_gen:5::divr16u:92 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] main:2::lin16u_gen:7::divr16u:92 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::rem#6 divr16u::quotient#2 ] )
[117] (word) divr16u::rem#2 ← (word) divr16u::rem#6 - (word) divr16u::divisor#6 [ divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::lin16u_gen:5::divr16u:87 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::lin16u_gen:7::divr16u:87 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::lin16u_gen:5::divr16u:92 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] main:2::lin16u_gen:7::divr16u:92 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::stepi#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] )
to:divr16u::@3
divr16u::@3: scope:[divr16u] from divr16u::@2 divr16u::@5
[86] (word) divr16u::return#0 ← phi( divr16u::@2/(word) divr16u::quotient#1 divr16u::@5/(word) divr16u::quotient#2 ) [ divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] ( main:2::lin16u_gen:5::divr16u:57 [ divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] main:2::lin16u_gen:5::divr16u:61 [ lin16u_gen::stepi#0 divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] )
[86] (word) divr16u::rem#11 ← phi( divr16u::@2/(word) divr16u::rem#6 divr16u::@5/(word) divr16u::rem#2 ) [ divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] ( main:2::lin16u_gen:5::divr16u:57 [ divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] main:2::lin16u_gen:5::divr16u:61 [ lin16u_gen::stepi#0 divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::rem#11 divr16u::dividend#0 ] )
[87] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ( main:2::lin16u_gen:5::divr16u:57 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] main:2::lin16u_gen:5::divr16u:61 [ lin16u_gen::stepi#0 divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] )
[88] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] ( main:2::lin16u_gen:5::divr16u:57 [ divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] main:2::lin16u_gen:5::divr16u:61 [ lin16u_gen::stepi#0 divr16u::return#0 divr16u::divisor#6 divr16u::rem#11 divr16u::dividend#0 divr16u::i#1 ] )
to:divr16u::@6
divr16u::@6: scope:[divr16u] from divr16u::@3
[89] (word) rem16u#1 ← (word) divr16u::rem#11 [ divr16u::return#0 rem16u#1 ] ( main:2::lin16u_gen:5::divr16u:57 [ divr16u::return#0 rem16u#1 ] main:2::lin16u_gen:5::divr16u:61 [ lin16u_gen::stepi#0 divr16u::return#0 rem16u#1 ] )
[118] (word) divr16u::return#0 ← phi( divr16u::@2/(word) divr16u::quotient#1 divr16u::@5/(word) divr16u::quotient#2 ) [ divr16u::rem#11 divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 ] ( main:2::lin16u_gen:5::divr16u:87 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::rem#11 divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 ] main:2::lin16u_gen:7::divr16u:87 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::rem#11 divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 ] main:2::lin16u_gen:5::divr16u:92 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::stepi#0 divr16u::rem#11 divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 ] main:2::lin16u_gen:7::divr16u:92 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::stepi#0 divr16u::rem#11 divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 ] )
[118] (word) divr16u::rem#11 ← phi( divr16u::@2/(word) divr16u::rem#6 divr16u::@5/(word) divr16u::rem#2 ) [ divr16u::rem#11 divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 ] ( main:2::lin16u_gen:5::divr16u:87 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::rem#11 divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 ] main:2::lin16u_gen:7::divr16u:87 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::rem#11 divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 ] main:2::lin16u_gen:5::divr16u:92 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::stepi#0 divr16u::rem#11 divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 ] main:2::lin16u_gen:7::divr16u:92 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::stepi#0 divr16u::rem#11 divr16u::return#0 divr16u::divisor#6 divr16u::i#2 divr16u::dividend#0 ] )
[119] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 [ divr16u::rem#11 divr16u::return#0 divr16u::divisor#6 divr16u::dividend#0 divr16u::i#1 ] ( main:2::lin16u_gen:5::divr16u:87 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::rem#11 divr16u::return#0 divr16u::divisor#6 divr16u::dividend#0 divr16u::i#1 ] main:2::lin16u_gen:7::divr16u:87 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::rem#11 divr16u::return#0 divr16u::divisor#6 divr16u::dividend#0 divr16u::i#1 ] main:2::lin16u_gen:5::divr16u:92 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::stepi#0 divr16u::rem#11 divr16u::return#0 divr16u::divisor#6 divr16u::dividend#0 divr16u::i#1 ] main:2::lin16u_gen:7::divr16u:92 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::stepi#0 divr16u::rem#11 divr16u::return#0 divr16u::divisor#6 divr16u::dividend#0 divr16u::i#1 ] )
[120] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) 16) goto divr16u::@1 [ divr16u::rem#11 divr16u::return#0 divr16u::divisor#6 divr16u::dividend#0 divr16u::i#1 ] ( main:2::lin16u_gen:5::divr16u:87 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::rem#11 divr16u::return#0 divr16u::divisor#6 divr16u::dividend#0 divr16u::i#1 ] main:2::lin16u_gen:7::divr16u:87 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::rem#11 divr16u::return#0 divr16u::divisor#6 divr16u::dividend#0 divr16u::i#1 ] main:2::lin16u_gen:5::divr16u:92 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::stepi#0 divr16u::rem#11 divr16u::return#0 divr16u::divisor#6 divr16u::dividend#0 divr16u::i#1 ] main:2::lin16u_gen:7::divr16u:92 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::stepi#0 divr16u::rem#11 divr16u::return#0 divr16u::divisor#6 divr16u::dividend#0 divr16u::i#1 ] )
to:divr16u::@return
divr16u::@return: scope:[divr16u] from divr16u::@6
[90] return [ divr16u::return#0 rem16u#1 ] ( main:2::lin16u_gen:5::divr16u:57 [ divr16u::return#0 rem16u#1 ] main:2::lin16u_gen:5::divr16u:61 [ lin16u_gen::stepi#0 divr16u::return#0 rem16u#1 ] )
divr16u::@return: scope:[divr16u] from divr16u::@3
[121] return [ divr16u::rem#11 divr16u::return#0 ] ( main:2::lin16u_gen:5::divr16u:87 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::rem#11 divr16u::return#0 ] main:2::lin16u_gen:7::divr16u:87 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 divr16u::rem#11 divr16u::return#0 ] main:2::lin16u_gen:5::divr16u:92 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::stepi#0 divr16u::rem#11 divr16u::return#0 ] main:2::lin16u_gen:7::divr16u:92 [ lin16u_gen::min#2 lin16u_gen::length#2 lin16u_gen::lintab#4 lin16u_gen::stepi#0 divr16u::rem#11 divr16u::return#0 ] )
to:@return

File diff suppressed because it is too large Load Diff

View File

@ -4,13 +4,14 @@
(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:5 101.0
(byte*) char_cursor#11 char_cursor zp ZP_WORD:5 5.449999999999998
(byte*) char_cursor#2 char_cursor zp ZP_WORD:5 43.85714285714286
(byte*) char_cursor#32 char_cursor zp ZP_WORD:5 4.0
(byte*) char_cursor#45 char_cursor zp ZP_WORD:5 5.666666666666667
(byte*) char_cursor#47 char_cursor zp ZP_WORD:5 11.0
(byte*~) char_cursor#51 char_cursor zp ZP_WORD:5 22.0
(byte*) char_cursor#1 char_cursor zp ZP_WORD:7 101.0
(byte*) char_cursor#11 char_cursor zp ZP_WORD:7 4.586206896551724
(byte*) char_cursor#2 char_cursor zp ZP_WORD:7 17.055555555555554
(byte*) char_cursor#44 char_cursor zp ZP_WORD:7 4.0
(byte*) char_cursor#69 char_cursor zp ZP_WORD:7 5.666666666666667
(byte*) char_cursor#74 char_cursor zp ZP_WORD:7 30.0
(byte*~) char_cursor#77 char_cursor zp ZP_WORD:7 22.0
(byte*~) char_cursor#85 char_cursor zp ZP_WORD:7 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
@ -19,70 +20,86 @@
(label) divr16u::@3
(label) divr16u::@4
(label) divr16u::@5
(label) divr16u::@6
(label) divr16u::@return
(word) divr16u::dividend
(word) divr16u::dividend#0 dividend zp ZP_WORD:7 2.75
(word) divr16u::dividend#3 dividend zp ZP_WORD:7 5.0
(word) divr16u::dividend#5 dividend zp ZP_WORD:7 2.0
(word) divr16u::dividend#0 dividend zp ZP_WORD:17 2.75
(word) divr16u::dividend#1 dividend zp ZP_WORD:17 4.0
(word) divr16u::dividend#3 dividend zp ZP_WORD:17 5.0
(word) divr16u::dividend#5 dividend zp ZP_WORD:17 4.0
(word) divr16u::divisor
(word) divr16u::divisor#6 divisor zp ZP_WORD:3 1.375
(word) divr16u::divisor#0 divisor zp ZP_WORD:15 2.0
(word) divr16u::divisor#1 divisor zp ZP_WORD:15 2.0
(word) divr16u::divisor#6 divisor zp ZP_WORD:15 1.625
(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:13 16.5
(word) divr16u::quotient#2 quotient zp ZP_WORD:13 11.0
(word) divr16u::quotient#3 quotient zp ZP_WORD:13 2.75
(word) divr16u::quotient#1 quotient zp ZP_WORD:19 16.5
(word) divr16u::quotient#2 quotient zp ZP_WORD:19 11.0
(word) divr16u::quotient#3 quotient zp ZP_WORD:19 2.75
(word) divr16u::rem
(word) divr16u::rem#0 rem zp ZP_WORD:5 8.25
(word) divr16u::rem#1 rem zp ZP_WORD:5 22.0
(word) divr16u::rem#10 rem zp ZP_WORD:5 4.0
(word) divr16u::rem#11 rem zp ZP_WORD:5 11.666666666666666
(word) divr16u::rem#2 rem zp ZP_WORD:5 22.0
(word) divr16u::rem#4 rem zp ZP_WORD:5 4.0
(word) divr16u::rem#5 rem zp ZP_WORD:5 24.0
(word) divr16u::rem#6 rem zp ZP_WORD:5 11.0
(word) divr16u::rem#0 rem zp ZP_WORD:3 8.25
(word) divr16u::rem#1 rem zp ZP_WORD:3 22.0
(word) divr16u::rem#10 rem zp ZP_WORD:3 4.0
(word) divr16u::rem#11 rem zp ZP_WORD:3 1.608695652173913
(word) divr16u::rem#2 rem zp ZP_WORD:3 22.0
(word) divr16u::rem#4 rem zp ZP_WORD:3 4.0
(word) divr16u::rem#5 rem zp ZP_WORD:3 24.0
(word) divr16u::rem#6 rem zp ZP_WORD:3 11.0
(word) divr16u::return
(word) divr16u::return#0 return zp ZP_WORD:13 5.285714285714286
(word) divr16u::return#2 return zp ZP_WORD:13 4.0
(word) divr16u::return#3 return zp ZP_WORD:13 4.0
(word) divr16u::return#0 return zp ZP_WORD:19 6.166666666666666
(word) divr16u::return#2 return zp ZP_WORD:19 4.0
(word) divr16u::return#3 return zp ZP_WORD:19 4.0
(void()) lin16u_gen((word) lin16u_gen::min , (word) lin16u_gen::max , (word*) lin16u_gen::lintab , (word) lin16u_gen::length)
(word~) lin16u_gen::$5 $5 zp ZP_WORD:7 22.0
(word~) lin16u_gen::$5 $5 zp ZP_WORD:15 22.0
(label) lin16u_gen::@1
(label) lin16u_gen::@3
(label) lin16u_gen::@4
(label) lin16u_gen::@return
(word) lin16u_gen::ampl
(const word) lin16u_gen::ampl#0 ampl = (const word) lin16u_gen::max#0-(const word) lin16u_gen::min#0
(word) lin16u_gen::ampl#0 ampl zp ZP_WORD:3 2.0
(word) lin16u_gen::i
(word) lin16u_gen::i#1 i zp ZP_WORD:5 16.5
(word) lin16u_gen::i#2 i zp ZP_WORD:5 4.4
(word) lin16u_gen::length
(const word) lin16u_gen::length#0 length = (byte/signed byte/word/signed word/dword/signed dword) 20
(word) lin16u_gen::length#2 length zp ZP_WORD:7 0.7142857142857143
(word*) lin16u_gen::lintab
(word*) lin16u_gen::lintab#1 lintab zp ZP_WORD:3 7.333333333333333
(word*) lin16u_gen::lintab#2 lintab zp ZP_WORD:3 8.25
(word*) lin16u_gen::lintab#2 lintab zp ZP_WORD:13 7.333333333333333
(word*) lin16u_gen::lintab#3 lintab zp ZP_WORD:13 8.75
(word*) lin16u_gen::lintab#4 lintab zp ZP_WORD:13 0.14285714285714285
(word) lin16u_gen::max
(const word) lin16u_gen::max#0 max = (word/signed word/dword/signed dword) 29793
(word) lin16u_gen::max#2 max zp ZP_WORD:3 2.0
(word) lin16u_gen::min
(const word) lin16u_gen::min#0 min = (word/signed word/dword/signed dword) 557
(word) lin16u_gen::min#2 min zp ZP_WORD:5 0.3076923076923077
(dword) lin16u_gen::step
(dword) lin16u_gen::step#0 step zp ZP_DWORD:17 1.625
(dword) lin16u_gen::step#0 step zp ZP_DWORD:23 1.4444444444444446
(word) lin16u_gen::stepf
(word) lin16u_gen::stepf#0 stepf zp ZP_WORD:13 4.0
(word) lin16u_gen::stepf#0 stepf zp ZP_WORD:19 4.0
(word) lin16u_gen::stepi
(word) lin16u_gen::stepi#0 stepi zp ZP_WORD:15 0.8
(word) lin16u_gen::stepi#0 stepi zp ZP_WORD:21 0.6666666666666666
(dword) lin16u_gen::val
(dword) lin16u_gen::val#0 val zp ZP_DWORD:9 4.0
(dword) lin16u_gen::val#1 val zp ZP_DWORD:9 5.5
(dword) lin16u_gen::val#2 val zp ZP_DWORD:9 11.0
(dword) lin16u_gen::val#2 val zp ZP_DWORD:9 11.666666666666666
(byte*) line_cursor
(byte*) line_cursor#1 line_cursor zp ZP_WORD:3 46.42857142857143
(byte*) line_cursor#19 line_cursor zp ZP_WORD:3 1.4444444444444446
(byte*) line_cursor#9 line_cursor zp ZP_WORD:3 204.0
(byte*) line_cursor#1 line_cursor zp ZP_WORD:3 11.344827586206897
(byte*) line_cursor#11 line_cursor zp ZP_WORD:3 204.0
(byte*) line_cursor#21 line_cursor zp ZP_WORD:3 15.0
(void()) main()
(label) main::@1
(label) main::@11
(label) main::@12
(label) main::@13
(label) main::@14
(label) main::@15
(label) main::@16
(label) main::@17
(label) main::@18
(label) main::@19
(label) main::@2
(label) main::@20
(label) main::@3
(label) main::@4
(label) main::@5
(label) main::@6
(label) main::@7
@ -90,11 +107,18 @@
(label) main::@9
(label) main::@return
(byte) main::i
(byte) main::i#1 i zp ZP_BYTE:2 11.0
(byte) main::i#2 i zp ZP_BYTE:2 4.888888888888889
(word[20]) main::lintab
(const word[20]) main::lintab#0 lintab = { fill( 20, 0) }
(const string) main::str str = (string) " @"
(byte) main::i#1 i zp ZP_BYTE:2 16.5
(byte) main::i#2 i zp ZP_BYTE:2 3.9285714285714284
(word[20]) main::lintab1
(const word[20]) main::lintab1#0 lintab1 = { fill( 20, 0) }
(word[20]) main::lintab2
(const word[20]) main::lintab2#0 lintab2 = { fill( 20, 0) }
(const string) main::str str = (string) " @"
(const string) main::str1 str1 = (string) " @"
(const string) main::str2 str2 = (string) " @"
(const string) main::str3 str3 = (string) " @"
(const string) main::str4 str4 = (string) " @"
(const string) main::str5 str5 = (string) " @"
(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
@ -103,7 +127,7 @@
(byte) print_byte::b
(byte) print_byte::b#0 reg byte x 4.0
(byte) print_byte::b#1 reg byte x 4.0
(byte) print_byte::b#2 reg byte x 22.0
(byte) print_byte::b#2 reg byte x 11.0
(byte) print_byte::b#3 reg byte x 4.75
(byte[]) print_byte::hextab
(const string) print_byte::hextab#0 hextab = (string) "0123456789abcdef"
@ -127,28 +151,34 @@
(label) print_str::@2
(label) print_str::@return
(byte*) print_str::str
(byte*) print_str::str#0 str zp ZP_WORD:7 202.0
(byte*) print_str::str#2 str zp ZP_WORD:7 101.0
(byte*) print_str::str#0 str zp ZP_WORD:5 202.0
(byte*) print_str::str#7 str zp ZP_WORD:5 101.5
(byte*) print_str::str#9 str zp ZP_WORD:5 2.0
(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:7 5.0
(word) print_word::w#2 w zp ZP_WORD:5 22.0
(word) print_word::w#3 w zp ZP_WORD:5 22.0
(word) print_word::w#6 w zp ZP_WORD:5 8.666666666666666
(word) rem16u
(word) rem16u#1 rem16u zp ZP_WORD:5 0.8
(word) rem16u#20 rem16u zp ZP_WORD:3 20.0
zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
zp ZP_WORD:3 [ line_cursor#9 line_cursor#19 line_cursor#1 print_cls::sc#2 print_cls::sc#1 lin16u_gen::lintab#2 lin16u_gen::lintab#1 divr16u::divisor#6 ]
zp ZP_WORD:3 [ line_cursor#11 line_cursor#21 line_cursor#1 print_cls::sc#2 print_cls::sc#1 lin16u_gen::max#2 divr16u::rem#5 divr16u::rem#10 divr16u::rem#4 rem16u#20 divr16u::rem#11 divr16u::rem#6 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 lin16u_gen::ampl#0 ]
zp ZP_WORD:5 [ print_word::w#6 print_word::w#2 print_word::w#3 print_str::str#7 print_str::str#9 print_str::str#0 lin16u_gen::min#2 lin16u_gen::i#2 lin16u_gen::i#1 ]
reg byte x [ print_byte::b#3 print_byte::b#2 print_byte::b#0 print_byte::b#1 ]
reg byte a [ print_char::ch#2 print_char::ch#0 print_char::ch#1 ]
zp ZP_WORD:5 [ char_cursor#32 char_cursor#45 char_cursor#47 char_cursor#51 char_cursor#2 char_cursor#11 char_cursor#1 lin16u_gen::i#2 lin16u_gen::i#1 divr16u::rem#5 divr16u::rem#10 divr16u::rem#4 divr16u::rem#11 divr16u::rem#6 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 rem16u#1 ]
zp ZP_WORD:7 [ print_str::str#2 print_str::str#0 divr16u::dividend#3 divr16u::dividend#5 divr16u::dividend#0 print_word::w#0 lin16u_gen::$5 ]
zp ZP_DWORD:9 [ lin16u_gen::val#2 lin16u_gen::val#1 ]
zp ZP_WORD:13 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#2 divr16u::return#3 lin16u_gen::stepf#0 ]
zp ZP_WORD:7 [ char_cursor#74 char_cursor#44 char_cursor#69 char_cursor#77 char_cursor#2 char_cursor#11 char_cursor#85 char_cursor#1 lin16u_gen::length#2 ]
zp ZP_DWORD:9 [ lin16u_gen::val#2 lin16u_gen::val#1 lin16u_gen::val#0 ]
zp ZP_WORD:13 [ lin16u_gen::lintab#3 lin16u_gen::lintab#2 lin16u_gen::lintab#4 ]
zp ZP_WORD:15 [ divr16u::divisor#6 divr16u::divisor#0 divr16u::divisor#1 lin16u_gen::$5 ]
zp ZP_WORD:17 [ divr16u::dividend#3 divr16u::dividend#5 divr16u::dividend#1 divr16u::dividend#0 ]
zp ZP_WORD:19 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#2 divr16u::return#3 lin16u_gen::stepf#0 ]
reg byte x [ divr16u::i#2 divr16u::i#1 ]
reg byte a [ print_byte::$0 ]
reg byte a [ print_byte::$2 ]
zp ZP_WORD:15 [ lin16u_gen::stepi#0 ]
zp ZP_DWORD:17 [ lin16u_gen::step#0 ]
zp ZP_WORD:21 [ lin16u_gen::stepi#0 ]
zp ZP_DWORD:23 [ lin16u_gen::step#0 ]
reg byte a [ divr16u::$1 ]
reg byte a [ divr16u::$2 ]