1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-09-29 03:56:15 +00:00
kickc/src/test/ref/multiply-16bit-const.cfg

193 lines
8.4 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 print_cls
to:main::@1
main::@1: scope:[main] from main main::@4
[6] (byte*) print_char_cursor#14 ← phi( main/(byte*) 1024 main::@4/(byte*) print_line_cursor#1 )
[6] (byte*) print_line_cursor#15 ← phi( main/(byte*) 1024 main::@4/(byte*) print_line_cursor#25 )
[6] (dword) main::i#2 ← phi( main/(dword) 0 main::@4/(dword) main::i#1 )
[7] if((dword) main::i#2<(word) $d02) goto main::@2
to:main::@return
main::@return: scope:[main] from main::@1
[8] return
to:@return
main::@2: scope:[main] from main::@1
[9] (dword~) main::$5 ← (dword) main::i#2 << (byte) 4
[10] (dword~) main::$6 ← (dword~) main::$5 + (dword) main::i#2
[11] (dword~) main::$7 ← (dword~) main::$6 << (byte) 2
[12] (dword~) main::$8 ← (dword~) main::$7 + (dword) main::i#2
[13] (dword~) main::$9 ← (dword~) main::$8 << (byte) 2
[14] (dword~) main::$10 ← (dword~) main::$9 + (dword) main::i#2
[15] (dword~) main::$11 ← (dword~) main::$10 << (byte) 1
[16] (dword) print_ulong_decimal::w#0 ← (dword~) main::$11 + (dword) main::i#2
[17] call print_ulong_decimal
to:main::@3
main::@3: scope:[main] from main::@2
[18] phi()
[19] call print_ln
to:main::@4
main::@4: scope:[main] from main::@3
[20] (dword) main::i#1 ← (dword) main::i#2 + (word) $14d
[21] (byte*) print_line_cursor#25 ← (byte*) print_line_cursor#1
to:main::@1
(void()) print_ln()
print_ln: scope:[print_ln] from main::@3
[22] phi()
to:print_ln::@1
print_ln::@1: scope:[print_ln] from print_ln print_ln::@2
[23] (byte*) print_line_cursor#9 ← phi( print_ln/(byte*) print_line_cursor#15 print_ln::@2/(byte*) print_line_cursor#24 )
[24] (byte*) print_line_cursor#1 ← (byte*) print_line_cursor#9 + (byte) $28
[25] if((byte*) print_line_cursor#1<(byte*) print_char_cursor#17) goto print_ln::@2
to:print_ln::@return
print_ln::@return: scope:[print_ln] from print_ln::@1
[26] return
to:@return
print_ln::@2: scope:[print_ln] from print_ln::@1
[27] (byte*) print_line_cursor#24 ← (byte*) print_line_cursor#1
to:print_ln::@1
(void()) print_ulong_decimal((dword) print_ulong_decimal::w)
print_ulong_decimal: scope:[print_ulong_decimal] from main::@2
[28] (dword) ultoa::value#1 ← (dword) print_ulong_decimal::w#0
[29] call ultoa
to:print_ulong_decimal::@1
print_ulong_decimal::@1: scope:[print_ulong_decimal] from print_ulong_decimal
[30] phi()
[31] call print_str
to:print_ulong_decimal::@return
print_ulong_decimal::@return: scope:[print_ulong_decimal] from print_ulong_decimal::@1
[32] return
to:@return
(void()) print_str((byte*) print_str::str)
print_str: scope:[print_str] from print_ulong_decimal::@1
[33] (byte*) print_char_cursor#40 ← (byte*) print_char_cursor#14
to:print_str::@1
print_str::@1: scope:[print_str] from print_str print_str::@3
[34] (byte*) print_char_cursor#17 ← phi( print_str/(byte*) print_char_cursor#40 print_str::@3/(byte*) print_char_cursor#23 )
[34] (byte*) print_str::str#2 ← phi( print_str/(const byte*) decimal_digits_long print_str::@3/(byte*) print_str::str#0 )
[35] if((byte) 0!=*((byte*) print_str::str#2)) goto print_str::@2
to:print_str::@return
print_str::@return: scope:[print_str] from print_str::@1
[36] return
to:@return
print_str::@2: scope:[print_str] from print_str::@1
[37] (byte) print_char::ch#0 ← *((byte*) print_str::str#2)
[38] call print_char
to:print_str::@3
print_str::@3: scope:[print_str] from print_str::@2
[39] (byte*) print_str::str#0 ← ++ (byte*) print_str::str#2
to:print_str::@1
(void()) print_char((byte) print_char::ch)
print_char: scope:[print_char] from print_str::@2
[40] *((byte*) print_char_cursor#17) ← (byte) print_char::ch#0
[41] (byte*) print_char_cursor#23 ← ++ (byte*) print_char_cursor#17
to:print_char::@return
print_char::@return: scope:[print_char] from print_char
[42] return
to:@return
(void()) ultoa((dword) ultoa::value , (byte*) ultoa::buffer , (byte) ultoa::radix)
ultoa: scope:[ultoa] from print_ulong_decimal
[43] phi()
to:ultoa::@1
ultoa::@1: scope:[ultoa] from ultoa ultoa::@4
[44] (byte*) ultoa::buffer#11 ← phi( ultoa::@4/(byte*) ultoa::buffer#14 ultoa/(const byte*) decimal_digits_long )
[44] (byte) ultoa::started#2 ← phi( ultoa::@4/(byte) ultoa::started#4 ultoa/(byte) 0 )
[44] (dword) ultoa::value#2 ← phi( ultoa::@4/(dword) ultoa::value#6 ultoa/(dword) ultoa::value#1 )
[44] (byte) ultoa::digit#2 ← phi( ultoa::@4/(byte) ultoa::digit#1 ultoa/(byte) 0 )
[45] if((byte) ultoa::digit#2<(const byte) ultoa::max_digits#1-(byte) 1) goto ultoa::@2
to:ultoa::@3
ultoa::@3: scope:[ultoa] from ultoa::@1
[46] (byte~) ultoa::$11 ← (byte)(dword) ultoa::value#2
[47] *((byte*) ultoa::buffer#11) ← *((const byte*) DIGITS + (byte~) ultoa::$11)
[48] (byte*) ultoa::buffer#3 ← ++ (byte*) ultoa::buffer#11
[49] *((byte*) ultoa::buffer#3) ← (byte) 0
to:ultoa::@return
ultoa::@return: scope:[ultoa] from ultoa::@3
[50] return
to:@return
ultoa::@2: scope:[ultoa] from ultoa::@1
[51] (byte~) ultoa::$10 ← (byte) ultoa::digit#2 << (byte) 2
[52] (dword) ultoa::digit_value#0 ← *((const dword*) RADIX_DECIMAL_VALUES_LONG + (byte~) ultoa::$10)
[53] if((byte) 0!=(byte) ultoa::started#2) goto ultoa::@5
to:ultoa::@7
ultoa::@7: scope:[ultoa] from ultoa::@2
[54] if((dword) ultoa::value#2>=(dword) ultoa::digit_value#0) goto ultoa::@5
to:ultoa::@4
ultoa::@4: scope:[ultoa] from ultoa::@6 ultoa::@7
[55] (byte*) ultoa::buffer#14 ← phi( ultoa::@7/(byte*) ultoa::buffer#11 ultoa::@6/(byte*) ultoa::buffer#4 )
[55] (byte) ultoa::started#4 ← phi( ultoa::@7/(byte) ultoa::started#2 ultoa::@6/(byte) 1 )
[55] (dword) ultoa::value#6 ← phi( ultoa::@7/(dword) ultoa::value#2 ultoa::@6/(dword) ultoa::value#0 )
[56] (byte) ultoa::digit#1 ← ++ (byte) ultoa::digit#2
to:ultoa::@1
ultoa::@5: scope:[ultoa] from ultoa::@2 ultoa::@7
[57] (byte*) ultoa_append::buffer#0 ← (byte*) ultoa::buffer#11
[58] (dword) ultoa_append::value#0 ← (dword) ultoa::value#2
[59] (dword) ultoa_append::sub#0 ← (dword) ultoa::digit_value#0
[60] call ultoa_append
[61] (dword) ultoa_append::return#0 ← (dword) ultoa_append::value#2
to:ultoa::@6
ultoa::@6: scope:[ultoa] from ultoa::@5
[62] (dword) ultoa::value#0 ← (dword) ultoa_append::return#0
[63] (byte*) ultoa::buffer#4 ← ++ (byte*) ultoa::buffer#11
to:ultoa::@4
(dword()) ultoa_append((byte*) ultoa_append::buffer , (dword) ultoa_append::value , (dword) ultoa_append::sub)
ultoa_append: scope:[ultoa_append] from ultoa::@5
[64] phi()
to:ultoa_append::@1
ultoa_append::@1: scope:[ultoa_append] from ultoa_append ultoa_append::@2
[65] (byte) ultoa_append::digit#2 ← phi( ultoa_append/(byte) 0 ultoa_append::@2/(byte) ultoa_append::digit#1 )
[65] (dword) ultoa_append::value#2 ← phi( ultoa_append/(dword) ultoa_append::value#0 ultoa_append::@2/(dword) ultoa_append::value#1 )
[66] if((dword) ultoa_append::value#2>=(dword) ultoa_append::sub#0) goto ultoa_append::@2
to:ultoa_append::@3
ultoa_append::@3: scope:[ultoa_append] from ultoa_append::@1
[67] *((byte*) ultoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) ultoa_append::digit#2)
to:ultoa_append::@return
ultoa_append::@return: scope:[ultoa_append] from ultoa_append::@3
[68] return
to:@return
ultoa_append::@2: scope:[ultoa_append] from ultoa_append::@1
[69] (byte) ultoa_append::digit#1 ← ++ (byte) ultoa_append::digit#2
[70] (dword) ultoa_append::value#1 ← (dword) ultoa_append::value#2 - (dword) ultoa_append::sub#0
to:ultoa_append::@1
(void()) print_cls()
print_cls: scope:[print_cls] from main
[71] phi()
[72] call memset
to:print_cls::@return
print_cls::@return: scope:[print_cls] from print_cls
[73] return
to:@return
(void*()) memset((void*) memset::str , (byte) memset::c , (word) memset::num)
memset: scope:[memset] from print_cls
[74] phi()
to:memset::@1
memset::@1: scope:[memset] from memset memset::@2
[75] (byte*) memset::dst#2 ← phi( memset/(byte*)(const void*) memset::str#0 memset::@2/(byte*) memset::dst#1 )
[76] if((byte*) memset::dst#2!=(const byte*) memset::end#0) goto memset::@2
to:memset::@return
memset::@return: scope:[memset] from memset::@1
[77] return
to:@return
memset::@2: scope:[memset] from memset::@1
[78] *((byte*) memset::dst#2) ← (const byte) memset::c#0
[79] (byte*) memset::dst#1 ← ++ (byte*) memset::dst#2
to:memset::@1