1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2025-08-09 20:25:17 +00:00
Files
kickc/src/test/ref/screen-center-distance.cfg
2020-02-15 09:30:27 +01:00

346 lines
19 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 init_font_hex
to:main::toD0181
main::toD0181: scope:[main] from main
[6] phi()
to:main::@1
main::@1: scope:[main] from main::toD0181
[7] *((const byte*) D018) ← (const byte) main::toD0181_return#0
[8] call clock_start
to:main::@3
main::@3: scope:[main] from main::@1
[9] phi()
[10] call init_dist_screen
to:main::@4
main::@4: scope:[main] from main::@3
[11] phi()
[12] call clock
[13] (dword) clock::return#2 ← (dword) clock::return#0
to:main::@5
main::@5: scope:[main] from main::@4
[14] (dword~) main::$4 ← (dword) clock::return#2
[15] (dword) main::cyclecount#0 ← (dword~) main::$4 - (const dword) CLOCKS_PER_INIT
[16] (dword) print_dword_at::dw#0 ← (dword) main::cyclecount#0
[17] call print_dword_at
to:main::toD0182
main::toD0182: scope:[main] from main::@5
[18] phi()
to:main::@2
main::@2: scope:[main] from main::toD0182
[19] *((const byte*) D018) ← (const byte) main::toD0182_return#0
to:main::@return
main::@return: scope:[main] from main::@2
[20] return
to:@return
(void()) print_dword_at((dword) print_dword_at::dw , (byte*) print_dword_at::at)
print_dword_at: scope:[print_dword_at] from main::@5
[21] (word) print_word_at::w#0 ← > (dword) print_dword_at::dw#0
[22] call print_word_at
to:print_dword_at::@1
print_dword_at::@1: scope:[print_dword_at] from print_dword_at
[23] (word) print_word_at::w#1 ← < (dword) print_dword_at::dw#0
[24] call print_word_at
to:print_dword_at::@return
print_dword_at::@return: scope:[print_dword_at] from print_dword_at::@1
[25] return
to:@return
(void()) print_word_at((word) print_word_at::w , (byte*) print_word_at::at)
print_word_at: scope:[print_word_at] from print_dword_at print_dword_at::@1
[26] (byte*) print_word_at::at#2 ← phi( print_dword_at/(const byte*) main::BASE_SCREEN print_dword_at::@1/(const byte*) main::BASE_SCREEN+(byte) 4 )
[26] (word) print_word_at::w#2 ← phi( print_dword_at/(word) print_word_at::w#0 print_dword_at::@1/(word) print_word_at::w#1 )
[27] (byte) print_byte_at::b#0 ← > (word) print_word_at::w#2
[28] (byte*) print_byte_at::at#0 ← (byte*) print_word_at::at#2
[29] call print_byte_at
to:print_word_at::@1
print_word_at::@1: scope:[print_word_at] from print_word_at
[30] (byte) print_byte_at::b#1 ← < (word) print_word_at::w#2
[31] (byte*) print_byte_at::at#1 ← (byte*) print_word_at::at#2 + (byte) 2
[32] call print_byte_at
to:print_word_at::@return
print_word_at::@return: scope:[print_word_at] from print_word_at::@1
[33] return
to:@return
(void()) print_byte_at((byte) print_byte_at::b , (byte*) print_byte_at::at)
print_byte_at: scope:[print_byte_at] from print_word_at print_word_at::@1
[34] (byte*) print_byte_at::at#2 ← phi( print_word_at/(byte*) print_byte_at::at#0 print_word_at::@1/(byte*) print_byte_at::at#1 )
[34] (byte) print_byte_at::b#2 ← phi( print_word_at/(byte) print_byte_at::b#0 print_word_at::@1/(byte) print_byte_at::b#1 )
[35] (byte~) print_byte_at::$0 ← (byte) print_byte_at::b#2 >> (byte) 4
[36] (byte) print_char_at::ch#0 ← *((const byte*) print_hextab + (byte~) print_byte_at::$0)
[37] (byte*) print_char_at::at#0 ← (byte*) print_byte_at::at#2
[38] call print_char_at
to:print_byte_at::@1
print_byte_at::@1: scope:[print_byte_at] from print_byte_at
[39] (byte~) print_byte_at::$2 ← (byte) print_byte_at::b#2 & (byte) $f
[40] (byte*) print_char_at::at#1 ← (byte*) print_byte_at::at#2 + (byte) 1
[41] (byte) print_char_at::ch#1 ← *((const byte*) print_hextab + (byte~) print_byte_at::$2)
[42] call print_char_at
to:print_byte_at::@return
print_byte_at::@return: scope:[print_byte_at] from print_byte_at::@1
[43] return
to:@return
(void()) print_char_at((byte) print_char_at::ch , (byte*) print_char_at::at)
print_char_at: scope:[print_char_at] from print_byte_at print_byte_at::@1
[44] (byte*) print_char_at::at#2 ← phi( print_byte_at/(byte*) print_char_at::at#0 print_byte_at::@1/(byte*) print_char_at::at#1 )
[44] (byte) print_char_at::ch#2 ← phi( print_byte_at/(byte) print_char_at::ch#0 print_byte_at::@1/(byte) print_char_at::ch#1 )
[45] *((byte*) print_char_at::at#2) ← (byte) print_char_at::ch#2
to:print_char_at::@return
print_char_at::@return: scope:[print_char_at] from print_char_at
[46] return
to:@return
(dword()) clock()
clock: scope:[clock] from main::@4
[47] (dword) clock::return#0 ← (dword) $ffffffff - *((const dword*) CIA2_TIMER_AB)
to:clock::@return
clock::@return: scope:[clock] from clock
[48] return
to:@return
(void()) init_dist_screen((byte*) init_dist_screen::screen)
init_dist_screen: scope:[init_dist_screen] from main::@3
[49] phi()
[50] call init_squares
to:init_dist_screen::@1
init_dist_screen::@1: scope:[init_dist_screen] from init_dist_screen init_dist_screen::@7
[51] (byte*) init_dist_screen::screen_bottomline#11 ← phi( init_dist_screen/(const byte*) SCREEN+(word)(number) $28*(number) $18 init_dist_screen::@7/(byte*) init_dist_screen::screen_bottomline#1 )
[51] (byte*) init_dist_screen::screen_topline#11 ← phi( init_dist_screen/(const byte*) SCREEN init_dist_screen::@7/(byte*) init_dist_screen::screen_topline#1 )
[51] (byte) init_dist_screen::y#10 ← phi( init_dist_screen/(byte) 0 init_dist_screen::@7/(byte) init_dist_screen::y#1 )
[52] (byte) init_dist_screen::y2#0 ← (byte) init_dist_screen::y#10 << (byte) 1
[53] if((byte) init_dist_screen::y2#0>=(byte) $18) goto init_dist_screen::@2
to:init_dist_screen::@3
init_dist_screen::@3: scope:[init_dist_screen] from init_dist_screen::@1
[54] (byte~) init_dist_screen::$5 ← (byte) $18 - (byte) init_dist_screen::y2#0
to:init_dist_screen::@4
init_dist_screen::@4: scope:[init_dist_screen] from init_dist_screen::@2 init_dist_screen::@3
[55] (byte) init_dist_screen::yd#0 ← phi( init_dist_screen::@2/(byte~) init_dist_screen::$7 init_dist_screen::@3/(byte~) init_dist_screen::$5 )
[56] (byte) sqr::val#0 ← (byte) init_dist_screen::yd#0
[57] call sqr
[58] (word) sqr::return#2 ← (word) sqr::return#0
to:init_dist_screen::@11
init_dist_screen::@11: scope:[init_dist_screen] from init_dist_screen::@4
[59] (word) init_dist_screen::yds#0 ← (word) sqr::return#2
to:init_dist_screen::@5
init_dist_screen::@5: scope:[init_dist_screen] from init_dist_screen::@11 init_dist_screen::@13
[60] (byte) init_dist_screen::xb#2 ← phi( init_dist_screen::@11/(byte) $27 init_dist_screen::@13/(byte) init_dist_screen::xb#1 )
[60] (byte) init_dist_screen::x#2 ← phi( init_dist_screen::@11/(byte) 0 init_dist_screen::@13/(byte) init_dist_screen::x#1 )
[61] if((byte) init_dist_screen::x#2<(byte) $13+(byte) 1) goto init_dist_screen::@6
to:init_dist_screen::@7
init_dist_screen::@7: scope:[init_dist_screen] from init_dist_screen::@5
[62] (byte*) init_dist_screen::screen_topline#1 ← (byte*) init_dist_screen::screen_topline#11 + (byte) $28
[63] (byte*) init_dist_screen::screen_bottomline#1 ← (byte*) init_dist_screen::screen_bottomline#11 - (byte) $28
[64] (byte) init_dist_screen::y#1 ← ++ (byte) init_dist_screen::y#10
[65] if((byte) init_dist_screen::y#1!=(byte) $d) goto init_dist_screen::@1
to:init_dist_screen::@return
init_dist_screen::@return: scope:[init_dist_screen] from init_dist_screen::@7
[66] return
to:@return
init_dist_screen::@6: scope:[init_dist_screen] from init_dist_screen::@5
[67] (byte) init_dist_screen::x2#0 ← (byte) init_dist_screen::x#2 << (byte) 1
[68] if((byte) init_dist_screen::x2#0>=(byte) $27) goto init_dist_screen::@8
to:init_dist_screen::@9
init_dist_screen::@9: scope:[init_dist_screen] from init_dist_screen::@6
[69] (byte~) init_dist_screen::$14 ← (byte) $27 - (byte) init_dist_screen::x2#0
to:init_dist_screen::@10
init_dist_screen::@10: scope:[init_dist_screen] from init_dist_screen::@8 init_dist_screen::@9
[70] (byte) init_dist_screen::xd#0 ← phi( init_dist_screen::@8/(byte~) init_dist_screen::$16 init_dist_screen::@9/(byte~) init_dist_screen::$14 )
[71] (byte) sqr::val#1 ← (byte) init_dist_screen::xd#0
[72] call sqr
[73] (word) sqr::return#3 ← (word) sqr::return#0
to:init_dist_screen::@12
init_dist_screen::@12: scope:[init_dist_screen] from init_dist_screen::@10
[74] (word) init_dist_screen::xds#0 ← (word) sqr::return#3
[75] (word) init_dist_screen::ds#0 ← (word) init_dist_screen::xds#0 + (word) init_dist_screen::yds#0
[76] (word) sqrt::val#0 ← (word) init_dist_screen::ds#0
[77] call sqrt
[78] (byte) sqrt::return#2 ← (byte) sqrt::return#0
to:init_dist_screen::@13
init_dist_screen::@13: scope:[init_dist_screen] from init_dist_screen::@12
[79] (byte) init_dist_screen::d#0 ← (byte) sqrt::return#2
[80] *((byte*) init_dist_screen::screen_topline#11 + (byte) init_dist_screen::x#2) ← (byte) init_dist_screen::d#0
[81] *((byte*) init_dist_screen::screen_bottomline#11 + (byte) init_dist_screen::x#2) ← (byte) init_dist_screen::d#0
[82] *((byte*) init_dist_screen::screen_topline#11 + (byte) init_dist_screen::xb#2) ← (byte) init_dist_screen::d#0
[83] *((byte*) init_dist_screen::screen_bottomline#11 + (byte) init_dist_screen::xb#2) ← (byte) init_dist_screen::d#0
[84] (byte) init_dist_screen::x#1 ← ++ (byte) init_dist_screen::x#2
[85] (byte) init_dist_screen::xb#1 ← -- (byte) init_dist_screen::xb#2
to:init_dist_screen::@5
init_dist_screen::@8: scope:[init_dist_screen] from init_dist_screen::@6
[86] (byte~) init_dist_screen::$16 ← (byte) init_dist_screen::x2#0 - (byte) $27
to:init_dist_screen::@10
init_dist_screen::@2: scope:[init_dist_screen] from init_dist_screen::@1
[87] (byte~) init_dist_screen::$7 ← (byte) init_dist_screen::y2#0 - (byte) $18
to:init_dist_screen::@4
(byte()) sqrt((word) sqrt::val)
sqrt: scope:[sqrt] from init_dist_screen::@12
[88] (word) bsearch16u::key#0 ← (word) sqrt::val#0
[89] call bsearch16u
[90] (word*) bsearch16u::return#3 ← (word*) bsearch16u::return#1
to:sqrt::@1
sqrt::@1: scope:[sqrt] from sqrt
[91] (word*) sqrt::found#0 ← (word*) bsearch16u::return#3
[92] (word~) sqrt::$3 ← (word*) sqrt::found#0 - (const word*) SQUARES#1
[93] (word~) sqrt::$1 ← (word~) sqrt::$3 >> (byte) 1
[94] (byte) sqrt::return#0 ← (byte)(word~) sqrt::$1
to:sqrt::@return
sqrt::@return: scope:[sqrt] from sqrt::@1
[95] return
to:@return
(word*()) bsearch16u((word) bsearch16u::key , (word*) bsearch16u::items , (byte) bsearch16u::num)
bsearch16u: scope:[bsearch16u] from sqrt
[96] phi()
to:bsearch16u::@3
bsearch16u::@3: scope:[bsearch16u] from bsearch16u bsearch16u::@7
[97] (word*) bsearch16u::items#2 ← phi( bsearch16u/(const word*) SQUARES#1 bsearch16u::@7/(word*) bsearch16u::items#8 )
[97] (byte) bsearch16u::num#3 ← phi( bsearch16u/(const byte) NUM_SQUARES#3 bsearch16u::@7/(byte) bsearch16u::num#0 )
[98] if((byte) bsearch16u::num#3>(byte) 0) goto bsearch16u::@4
to:bsearch16u::@5
bsearch16u::@5: scope:[bsearch16u] from bsearch16u::@3
[99] if(*((word*) bsearch16u::items#2)<=(word) bsearch16u::key#0) goto bsearch16u::@2
to:bsearch16u::@1
bsearch16u::@1: scope:[bsearch16u] from bsearch16u::@5
[100] (word*~) bsearch16u::$2 ← (word*) bsearch16u::items#2 - (byte) 1*(const byte) SIZEOF_WORD
to:bsearch16u::@2
bsearch16u::@2: scope:[bsearch16u] from bsearch16u::@1 bsearch16u::@5
[101] (word*) bsearch16u::return#2 ← phi( bsearch16u::@5/(word*) bsearch16u::items#2 bsearch16u::@1/(word*~) bsearch16u::$2 )
to:bsearch16u::@return
bsearch16u::@return: scope:[bsearch16u] from bsearch16u::@2 bsearch16u::@8
[102] (word*) bsearch16u::return#1 ← phi( bsearch16u::@8/(word*) bsearch16u::return#6 bsearch16u::@2/(word*) bsearch16u::return#2 )
[103] return
to:@return
bsearch16u::@4: scope:[bsearch16u] from bsearch16u::@3
[104] (byte~) bsearch16u::$6 ← (byte) bsearch16u::num#3 >> (byte) 1
[105] (byte~) bsearch16u::$16 ← (byte~) bsearch16u::$6 << (byte) 1
[106] (word*) bsearch16u::pivot#0 ← (word*) bsearch16u::items#2 + (byte~) bsearch16u::$16
[107] (signed word) bsearch16u::result#0 ← (signed word)(word) bsearch16u::key#0 - (signed word)*((word*) bsearch16u::pivot#0)
[108] if((signed word) bsearch16u::result#0!=(signed byte) 0) goto bsearch16u::@6
to:bsearch16u::@8
bsearch16u::@8: scope:[bsearch16u] from bsearch16u::@4
[109] (word*) bsearch16u::return#6 ← (word*) bsearch16u::pivot#0
to:bsearch16u::@return
bsearch16u::@6: scope:[bsearch16u] from bsearch16u::@4
[110] if((signed word) bsearch16u::result#0<=(signed byte) 0) goto bsearch16u::@7
to:bsearch16u::@9
bsearch16u::@9: scope:[bsearch16u] from bsearch16u::@6
[111] (word*) bsearch16u::items#0 ← (word*) bsearch16u::pivot#0 + (byte) 1*(const byte) SIZEOF_WORD
[112] (byte) bsearch16u::num#1 ← -- (byte) bsearch16u::num#3
to:bsearch16u::@7
bsearch16u::@7: scope:[bsearch16u] from bsearch16u::@6 bsearch16u::@9
[113] (word*) bsearch16u::items#8 ← phi( bsearch16u::@9/(word*) bsearch16u::items#0 bsearch16u::@6/(word*) bsearch16u::items#2 )
[113] (byte) bsearch16u::num#5 ← phi( bsearch16u::@9/(byte) bsearch16u::num#1 bsearch16u::@6/(byte) bsearch16u::num#3 )
[114] (byte) bsearch16u::num#0 ← (byte) bsearch16u::num#5 >> (byte) 1
to:bsearch16u::@3
(word()) sqr((byte) sqr::val)
sqr: scope:[sqr] from init_dist_screen::@10 init_dist_screen::@4
[115] (byte) sqr::val#2 ← phi( init_dist_screen::@10/(byte) sqr::val#1 init_dist_screen::@4/(byte) sqr::val#0 )
[116] (byte~) sqr::$0 ← (byte) sqr::val#2 << (byte) 1
[117] (word) sqr::return#0 ← *((const word*) SQUARES#1 + (byte~) sqr::$0)
to:sqr::@return
sqr::@return: scope:[sqr] from sqr
[118] return
to:@return
(void()) init_squares()
init_squares: scope:[init_squares] from init_dist_screen
[119] phi()
[120] call malloc
to:init_squares::@1
init_squares::@1: scope:[init_squares] from init_squares init_squares::@2
[121] (word*) init_squares::squares#2 ← phi( init_squares::@2/(word*) init_squares::squares#1 init_squares/(const word*) SQUARES#1 )
[121] (word) init_squares::sqr#2 ← phi( init_squares::@2/(word) init_squares::sqr#1 init_squares/(word) 0 )
[121] (byte) init_squares::i#2 ← phi( init_squares::@2/(byte) init_squares::i#1 init_squares/(byte) 0 )
[122] if((byte) init_squares::i#2<(const byte) NUM_SQUARES#3) goto init_squares::@2
to:init_squares::@return
init_squares::@return: scope:[init_squares] from init_squares::@1
[123] return
to:@return
init_squares::@2: scope:[init_squares] from init_squares::@1
[124] *((word*) init_squares::squares#2) ← (word) init_squares::sqr#2
[125] (word*) init_squares::squares#1 ← (word*) init_squares::squares#2 + (const byte) SIZEOF_WORD
[126] (byte~) init_squares::$3 ← (byte) init_squares::i#2 << (byte) 1
[127] (byte~) init_squares::$4 ← (byte~) init_squares::$3 + (byte) 1
[128] (word) init_squares::sqr#1 ← (word) init_squares::sqr#2 + (byte~) init_squares::$4
[129] (byte) init_squares::i#1 ← ++ (byte) init_squares::i#2
to:init_squares::@1
(void*()) malloc((word) malloc::size)
malloc: scope:[malloc] from init_squares
[130] phi()
to:malloc::@return
malloc::@return: scope:[malloc] from malloc
[131] return
to:@return
(void()) clock_start()
clock_start: scope:[clock_start] from main::@1
[132] *((const byte*) CIA2_TIMER_A_CONTROL) ← (byte) 0
[133] *((const byte*) CIA2_TIMER_B_CONTROL) ← (const byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A
[134] *((const dword*) CIA2_TIMER_AB) ← (dword) $ffffffff
[135] *((const byte*) CIA2_TIMER_B_CONTROL) ← (const byte) CIA_TIMER_CONTROL_START|(const byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A
[136] *((const byte*) CIA2_TIMER_A_CONTROL) ← (const byte) CIA_TIMER_CONTROL_START
to:clock_start::@return
clock_start::@return: scope:[clock_start] from clock_start
[137] return
to:@return
(void()) init_font_hex((byte*) init_font_hex::charset)
init_font_hex: scope:[init_font_hex] from main
[138] phi()
to:init_font_hex::@1
init_font_hex::@1: scope:[init_font_hex] from init_font_hex init_font_hex::@5
[139] (byte) init_font_hex::c#6 ← phi( init_font_hex/(byte) 0 init_font_hex::@5/(byte) init_font_hex::c#1 )
[139] (byte*) init_font_hex::proto_hi#6 ← phi( init_font_hex/(const byte*) FONT_HEX_PROTO init_font_hex::@5/(byte*) init_font_hex::proto_hi#1 )
[139] (byte*) init_font_hex::charset#5 ← phi( init_font_hex/(const byte*) CHARSET init_font_hex::@5/(byte*) init_font_hex::charset#0 )
to:init_font_hex::@2
init_font_hex::@2: scope:[init_font_hex] from init_font_hex::@1 init_font_hex::@4
[140] (byte) init_font_hex::c1#4 ← phi( init_font_hex::@1/(byte) 0 init_font_hex::@4/(byte) init_font_hex::c1#1 )
[140] (byte*) init_font_hex::proto_lo#4 ← phi( init_font_hex::@1/(const byte*) FONT_HEX_PROTO init_font_hex::@4/(byte*) init_font_hex::proto_lo#1 )
[140] (byte*) init_font_hex::charset#2 ← phi( init_font_hex::@1/(byte*) init_font_hex::charset#5 init_font_hex::@4/(byte*) init_font_hex::charset#0 )
[141] *((byte*) init_font_hex::charset#2) ← (byte) 0
to:init_font_hex::@3
init_font_hex::@3: scope:[init_font_hex] from init_font_hex::@2 init_font_hex::@3
[142] (byte) init_font_hex::idx#5 ← phi( init_font_hex::@2/(byte) 1 init_font_hex::@3/(byte) init_font_hex::idx#2 )
[142] (byte) init_font_hex::i#2 ← phi( init_font_hex::@2/(byte) 0 init_font_hex::@3/(byte) init_font_hex::i#1 )
[143] (byte~) init_font_hex::$0 ← *((byte*) init_font_hex::proto_hi#6 + (byte) init_font_hex::i#2) << (byte) 4
[144] (byte~) init_font_hex::$1 ← *((byte*) init_font_hex::proto_lo#4 + (byte) init_font_hex::i#2) << (byte) 1
[145] (byte~) init_font_hex::$2 ← (byte~) init_font_hex::$0 | (byte~) init_font_hex::$1
[146] *((byte*) init_font_hex::charset#2 + (byte) init_font_hex::idx#5) ← (byte~) init_font_hex::$2
[147] (byte) init_font_hex::idx#2 ← ++ (byte) init_font_hex::idx#5
[148] (byte) init_font_hex::i#1 ← ++ (byte) init_font_hex::i#2
[149] if((byte) init_font_hex::i#1!=(byte) 5) goto init_font_hex::@3
to:init_font_hex::@4
init_font_hex::@4: scope:[init_font_hex] from init_font_hex::@3
[150] *((byte*) init_font_hex::charset#2 + (byte) init_font_hex::idx#2) ← (byte) 0
[151] (byte) init_font_hex::idx#3 ← ++ (byte) init_font_hex::idx#2
[152] *((byte*) init_font_hex::charset#2 + (byte) init_font_hex::idx#3) ← (byte) 0
[153] (byte*) init_font_hex::proto_lo#1 ← (byte*) init_font_hex::proto_lo#4 + (byte) 5
[154] (byte*) init_font_hex::charset#0 ← (byte*) init_font_hex::charset#2 + (byte) 8
[155] (byte) init_font_hex::c1#1 ← ++ (byte) init_font_hex::c1#4
[156] if((byte) init_font_hex::c1#1!=(byte) $10) goto init_font_hex::@2
to:init_font_hex::@5
init_font_hex::@5: scope:[init_font_hex] from init_font_hex::@4
[157] (byte*) init_font_hex::proto_hi#1 ← (byte*) init_font_hex::proto_hi#6 + (byte) 5
[158] (byte) init_font_hex::c#1 ← ++ (byte) init_font_hex::c#6
[159] if((byte) init_font_hex::c#1!=(byte) $10) goto init_font_hex::@1
to:init_font_hex::@return
init_font_hex::@return: scope:[init_font_hex] from init_font_hex::@5
[160] return
to:@return