1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-09-09 08:54:40 +00:00
kickc/src/test/ref/linegen.cfg
2020-04-28 21:21:32 +02:00

310 lines
14 KiB
INI

@begin: scope:[] from
[0] phi()
to:@1
@1: scope:[] from @begin
[1] phi()
[2] call main
to:@end
@end: scope:[] from @1
[3] phi()
(void()) main()
main: scope:[main] from @1
[4] phi()
[5] call lin16u_gen
to:main::@4
main::@4: scope:[main] from main
[6] phi()
[7] call lin16u_gen
to:main::@5
main::@5: scope:[main] from main::@4
[8] phi()
[9] call lin16u_gen
to:main::@6
main::@6: scope:[main] from main::@5
[10] phi()
[11] call print_cls
to:main::@7
main::@7: scope:[main] from main::@6
[12] phi()
[13] call print_str
to:main::@8
main::@8: scope:[main] from main::@7
[14] phi()
[15] call print_uint
to:main::@9
main::@9: scope:[main] from main::@8
[16] phi()
[17] call print_str
to:main::@10
main::@10: scope:[main] from main::@9
[18] phi()
[19] call print_uint
to:main::@11
main::@11: scope:[main] from main::@10
[20] phi()
[21] call print_str
to:main::@12
main::@12: scope:[main] from main::@11
[22] phi()
[23] call print_uint
to:main::@13
main::@13: scope:[main] from main::@12
[24] phi()
[25] call print_ln
to:main::@1
main::@1: scope:[main] from main::@13 main::@21
[26] (byte) main::i#10 ← phi( main::@13/(byte) 0 main::@21/(byte) main::i#1 )
[27] if((byte) main::i#10<(byte) $14) goto main::@2
to:main::@3
main::@3: scope:[main] from main::@1
[28] (byte*) print_char_cursor#98 ← (byte*) print_line_cursor#1
[29] call print_str
to:main::@22
main::@22: scope:[main] from main::@3
[30] phi()
[31] call print_uint
to:main::@23
main::@23: scope:[main] from main::@22
[32] phi()
[33] call print_str
to:main::@24
main::@24: scope:[main] from main::@23
[34] phi()
[35] call print_uint
to:main::@25
main::@25: scope:[main] from main::@24
[36] phi()
[37] call print_str
to:main::@26
main::@26: scope:[main] from main::@25
[38] phi()
[39] call print_uint
to:main::@27
main::@27: scope:[main] from main::@26
[40] phi()
[41] call print_ln
to:main::@return
main::@return: scope:[main] from main::@27
[42] return
to:@return
main::@2: scope:[main] from main::@1
[43] (byte) print_uchar::b#2 ← (byte) main::i#10
[44] (byte*) print_char_cursor#102 ← (byte*) print_line_cursor#1
[45] call print_uchar
to:main::@14
main::@14: scope:[main] from main::@2
[46] phi()
[47] call print_str
to:main::@15
main::@15: scope:[main] from main::@14
[48] (byte~) main::$27 ← (byte) main::i#10 << (byte) 1
[49] (word) print_uint::w#3 ← *((const word*) main::lintab1 + (byte~) main::$27)
[50] call print_uint
to:main::@16
main::@16: scope:[main] from main::@15
[51] phi()
[52] call print_str
to:main::@17
main::@17: scope:[main] from main::@16
[53] (byte~) main::$28 ← (byte) main::i#10 << (byte) 1
[54] (word) print_uint::w#4 ← *((const word*) main::lintab2 + (byte~) main::$28)
[55] call print_uint
to:main::@18
main::@18: scope:[main] from main::@17
[56] phi()
[57] call print_str
to:main::@19
main::@19: scope:[main] from main::@18
[58] (byte~) main::$29 ← (byte) main::i#10 << (byte) 1
[59] (word) print_uint::w#5 ← *((const word*) main::lintab3 + (byte~) main::$29)
[60] call print_uint
to:main::@20
main::@20: scope:[main] from main::@19
[61] phi()
[62] call print_ln
to:main::@21
main::@21: scope:[main] from main::@20
[63] (byte) main::i#1 ← ++ (byte) main::i#10
to:main::@1
(void()) print_ln()
print_ln: scope:[print_ln] from main::@13 main::@20 main::@27
[64] (byte*) print_line_cursor#21 ← phi( main::@13/(byte*) 1024 main::@20/(byte*) print_line_cursor#1 main::@27/(byte*) print_line_cursor#1 )
to:print_ln::@1
print_ln::@1: scope:[print_ln] from print_ln print_ln::@1
[65] (byte*) print_line_cursor#11 ← phi( print_ln/(byte*) print_line_cursor#21 print_ln::@1/(byte*) print_line_cursor#1 )
[66] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#11 + (byte) $28
[67] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#11) goto print_ln::@1
to:print_ln::@return
print_ln::@return: scope:[print_ln] from print_ln::@1
[68] return
to:@return
(void()) print_uint((word) print_uint::w)
print_uint: scope:[print_uint] from main::@10 main::@12 main::@15 main::@17 main::@19 main::@22 main::@24 main::@26 main::@8
[69] (word) print_uint::w#10 ← phi( main::@10/(word) $79cb main::@12/(byte) 0 main::@15/(word) print_uint::w#3 main::@17/(word) print_uint::w#4 main::@19/(word) print_uint::w#5 main::@22/(word) $7461 main::@24/(word) $f781 main::@26/(word) $6488 main::@8/(word) $22d )
[70] (byte) print_uchar::b#0 ← > (word) print_uint::w#10
[71] call print_uchar
to:print_uint::@1
print_uint::@1: scope:[print_uint] from print_uint
[72] (byte) print_uchar::b#1 ← < (word) print_uint::w#10
[73] call print_uchar
to:print_uint::@return
print_uint::@return: scope:[print_uint] from print_uint::@1
[74] return
to:@return
(void()) print_uchar((byte) print_uchar::b)
print_uchar: scope:[print_uchar] from main::@2 print_uint print_uint::@1
[75] (byte*) print_char_cursor#82 ← phi( main::@2/(byte*) print_char_cursor#102 print_uint/(byte*) print_char_cursor#2 print_uint::@1/(byte*) print_char_cursor#11 )
[75] (byte) print_uchar::b#3 ← phi( main::@2/(byte) print_uchar::b#2 print_uint/(byte) print_uchar::b#0 print_uint::@1/(byte) print_uchar::b#1 )
[76] (byte~) print_uchar::$0 ← (byte) print_uchar::b#3 >> (byte) 4
[77] (byte) print_char::ch#1 ← *((const to_nomodify byte*) print_hextab + (byte~) print_uchar::$0)
[78] call print_char
to:print_uchar::@1
print_uchar::@1: scope:[print_uchar] from print_uchar
[79] (byte~) print_uchar::$2 ← (byte) print_uchar::b#3 & (byte) $f
[80] (byte) print_char::ch#2 ← *((const to_nomodify byte*) print_hextab + (byte~) print_uchar::$2)
[81] call print_char
to:print_uchar::@return
print_uchar::@return: scope:[print_uchar] from print_uchar::@1
[82] return
to:@return
(void()) print_char((byte) print_char::ch)
print_char: scope:[print_char] from print_str::@2 print_uchar print_uchar::@1
[83] (byte*) print_char_cursor#50 ← phi( print_str::@2/(byte*) print_char_cursor#2 print_uchar/(byte*) print_char_cursor#82 print_uchar::@1/(byte*) print_char_cursor#11 )
[83] (byte) print_char::ch#3 ← phi( print_str::@2/(byte) print_char::ch#0 print_uchar/(byte) print_char::ch#1 print_uchar::@1/(byte) print_char::ch#2 )
[84] *((byte*) print_char_cursor#50) ← (byte) print_char::ch#3
[85] (byte*) print_char_cursor#11 ← ++ (byte*) print_char_cursor#50
to:print_char::@return
print_char::@return: scope:[print_char] from print_char
[86] return
to:@return
(void()) print_str((byte*) print_str::str)
print_str: scope:[print_str] from main::@11 main::@14 main::@16 main::@18 main::@23 main::@25 main::@3 main::@7 main::@9
[87] (byte*) print_char_cursor#87 ← phi( main::@11/(byte*) print_char_cursor#11 main::@14/(byte*) print_char_cursor#11 main::@16/(byte*) print_char_cursor#11 main::@18/(byte*) print_char_cursor#11 main::@23/(byte*) print_char_cursor#11 main::@25/(byte*) print_char_cursor#11 main::@3/(byte*) print_char_cursor#98 main::@7/(byte*) 1024 main::@9/(byte*) print_char_cursor#11 )
[87] (byte*) print_str::str#13 ← phi( main::@11/(const byte*) main::str1 main::@14/(const byte*) main::str1 main::@16/(const byte*) main::str1 main::@18/(const byte*) main::str1 main::@23/(const byte*) main::str1 main::@25/(const byte*) main::str1 main::@3/(const byte*) main::str main::@7/(const byte*) main::str main::@9/(const byte*) main::str1 )
to:print_str::@1
print_str::@1: scope:[print_str] from print_str print_str::@3
[88] (byte*) print_char_cursor#2 ← phi( print_str/(byte*) print_char_cursor#87 print_str::@3/(byte*) print_char_cursor#11 )
[88] (byte*) print_str::str#10 ← phi( print_str/(byte*) print_str::str#13 print_str::@3/(byte*) print_str::str#0 )
[89] if((byte) 0!=*((byte*) print_str::str#10)) goto print_str::@2
to:print_str::@return
print_str::@return: scope:[print_str] from print_str::@1
[90] return
to:@return
print_str::@2: scope:[print_str] from print_str::@1
[91] (byte) print_char::ch#0 ← *((byte*) print_str::str#10)
[92] call print_char
to:print_str::@3
print_str::@3: scope:[print_str] from print_str::@2
[93] (byte*) print_str::str#0 ← ++ (byte*) print_str::str#10
to:print_str::@1
(void()) print_cls()
print_cls: scope:[print_cls] from main::@6
[94] phi()
[95] call memset
to:print_cls::@return
print_cls::@return: scope:[print_cls] from print_cls
[96] return
to:@return
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
memset: scope:[memset] from print_cls
[97] phi()
to:memset::@1
memset::@1: scope:[memset] from memset memset::@2
[98] (byte*) memset::dst#2 ← phi( memset/(byte*)(const void*) memset::str#0 memset::@2/(byte*) memset::dst#1 )
[99] if((byte*) memset::dst#2!=(const byte*) memset::end#0) goto memset::@2
to:memset::@return
memset::@return: scope:[memset] from memset::@1
[100] return
to:@return
memset::@2: scope:[memset] from memset::@1
[101] *((byte*) memset::dst#2) ← (const byte) memset::c#0
[102] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2
to:memset::@1
(void()) lin16u_gen((word) lin16u_gen::min , (word) lin16u_gen::max , (word*) lin16u_gen::lintab , (word) lin16u_gen::length)
lin16u_gen: scope:[lin16u_gen] from main main::@4 main::@5
[103] (word*) lin16u_gen::lintab#6 ← phi( main/(const word*) main::lintab1 main::@4/(const word*) main::lintab2 main::@5/(const word*) main::lintab3 )
[103] (word) lin16u_gen::min#3 ← phi( main/(word) $22d main::@4/(word) $79cb main::@5/(byte) 0 )
[103] (word) lin16u_gen::max#3 ← phi( main/(word) $7461 main::@4/(word) $f781 main::@5/(word) $6488 )
[104] (word) lin16u_gen::ampl#0 ← (word) lin16u_gen::max#3 - (word) lin16u_gen::min#3
[105] (word) divr16u::dividend#1 ← (word) lin16u_gen::ampl#0
[106] call divr16u
[107] (word) divr16u::return#2 ← (word) divr16u::return#0
to:lin16u_gen::@3
lin16u_gen::@3: scope:[lin16u_gen] from lin16u_gen
[108] (word) lin16u_gen::stepi#0 ← (word) divr16u::return#2
[109] (word) divr16u::rem#4 ← (word) rem16u#1
[110] call divr16u
[111] (word) divr16u::return#3 ← (word) divr16u::return#0
to:lin16u_gen::@4
lin16u_gen::@4: scope:[lin16u_gen] from lin16u_gen::@3
[112] (word) lin16u_gen::stepf#0 ← (word) divr16u::return#3
[113] (dword) lin16u_gen::step#0 ← (word) lin16u_gen::stepi#0 dw= (word) lin16u_gen::stepf#0
[114] (dword) lin16u_gen::val#0 ← (word) lin16u_gen::min#3 dw= (word) 0
to:lin16u_gen::@1
lin16u_gen::@1: scope:[lin16u_gen] from lin16u_gen::@2 lin16u_gen::@4
[115] (word*) lin16u_gen::lintab#4 ← phi( lin16u_gen::@2/(word*) lin16u_gen::lintab#3 lin16u_gen::@4/(word*) lin16u_gen::lintab#6 )
[115] (dword) lin16u_gen::val#2 ← phi( lin16u_gen::@2/(dword) lin16u_gen::val#1 lin16u_gen::@4/(dword) lin16u_gen::val#0 )
[115] (word) lin16u_gen::i#2 ← phi( lin16u_gen::@2/(word) lin16u_gen::i#1 lin16u_gen::@4/(word) 0 )
[116] if((word) lin16u_gen::i#2<(byte) $14) goto lin16u_gen::@2
to:lin16u_gen::@return
lin16u_gen::@return: scope:[lin16u_gen] from lin16u_gen::@1
[117] return
to:@return
lin16u_gen::@2: scope:[lin16u_gen] from lin16u_gen::@1
[118] (word~) lin16u_gen::$6 ← > (dword) lin16u_gen::val#2
[119] *((word*) lin16u_gen::lintab#4) ← (word~) lin16u_gen::$6
[120] (dword) lin16u_gen::val#1 ← (dword) lin16u_gen::val#2 + (dword) lin16u_gen::step#0
[121] (word*) lin16u_gen::lintab#3 ← (word*) lin16u_gen::lintab#4 + (const byte) SIZEOF_WORD
[122] (word) lin16u_gen::i#1 ← ++ (word) lin16u_gen::i#2
to:lin16u_gen::@1
(word()) divr16u((word) divr16u::dividend , (word) divr16u::divisor , (word) divr16u::rem)
divr16u: scope:[divr16u] from lin16u_gen lin16u_gen::@3
[123] (word) divr16u::dividend#5 ← phi( lin16u_gen/(word) divr16u::dividend#1 lin16u_gen::@3/(byte) 0 )
[123] (word) divr16u::rem#10 ← phi( lin16u_gen/(byte) 0 lin16u_gen::@3/(word) divr16u::rem#4 )
to:divr16u::@1
divr16u::@1: scope:[divr16u] from divr16u divr16u::@3
[124] (byte) divr16u::i#2 ← phi( divr16u/(byte) 0 divr16u::@3/(byte) divr16u::i#1 )
[124] (word) divr16u::quotient#3 ← phi( divr16u/(word) 0 divr16u::@3/(word) divr16u::return#0 )
[124] (word) divr16u::dividend#3 ← phi( divr16u/(word) divr16u::dividend#5 divr16u::@3/(word) divr16u::dividend#0 )
[124] (word) divr16u::rem#5 ← phi( divr16u/(word) divr16u::rem#10 divr16u::@3/(word) divr16u::rem#11 )
[125] (word) divr16u::rem#0 ← (word) divr16u::rem#5 << (byte) 1
[126] (byte~) divr16u::$1 ← > (word) divr16u::dividend#3
[127] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte) $80
[128] if((byte~) divr16u::$2==(byte) 0) goto divr16u::@2
to:divr16u::@4
divr16u::@4: scope:[divr16u] from divr16u::@1
[129] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte) 1
to:divr16u::@2
divr16u::@2: scope:[divr16u] from divr16u::@1 divr16u::@4
[130] (word) divr16u::rem#6 ← phi( divr16u::@1/(word) divr16u::rem#0 divr16u::@4/(word) divr16u::rem#1 )
[131] (word) divr16u::dividend#0 ← (word) divr16u::dividend#3 << (byte) 1
[132] (word) divr16u::quotient#1 ← (word) divr16u::quotient#3 << (byte) 1
[133] if((word) divr16u::rem#6<(byte) $14-(byte) 1) goto divr16u::@3
to:divr16u::@5
divr16u::@5: scope:[divr16u] from divr16u::@2
[134] (word) divr16u::quotient#2 ← ++ (word) divr16u::quotient#1
[135] (word) divr16u::rem#2 ← (word) divr16u::rem#6 - (byte) $14-(byte) 1
to:divr16u::@3
divr16u::@3: scope:[divr16u] from divr16u::@2 divr16u::@5
[136] (word) divr16u::return#0 ← phi( divr16u::@2/(word) divr16u::quotient#1 divr16u::@5/(word) divr16u::quotient#2 )
[136] (word) divr16u::rem#11 ← phi( divr16u::@2/(word) divr16u::rem#6 divr16u::@5/(word) divr16u::rem#2 )
[137] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2
[138] if((byte) divr16u::i#1!=(byte) $10) goto divr16u::@1
to:divr16u::@6
divr16u::@6: scope:[divr16u] from divr16u::@3
[139] (word) rem16u#1 ← (word) divr16u::rem#11
to:divr16u::@return
divr16u::@return: scope:[divr16u] from divr16u::@6
[140] return
to:@return