@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 clock_start to:main::@1 main::@1: scope:[main] from main main::@2 [6] phi() [7] call clock [8] (dword) clock::return#2 ← (dword) clock::return#0 to:main::@2 main::@2: scope:[main] from main::@1 [9] (dword) print_dword_at::dw#0 ← (dword) clock::return#2 [10] call print_dword_at to:main::@1 (void()) print_dword_at((dword) print_dword_at::dw , (byte*) print_dword_at::at) print_dword_at: scope:[print_dword_at] from main::@2 [11] (word) print_word_at::w#0 ← > (dword) print_dword_at::dw#0 [12] call print_word_at to:print_dword_at::@1 print_dword_at::@1: scope:[print_dword_at] from print_dword_at [13] (word) print_word_at::w#1 ← < (dword) print_dword_at::dw#0 [14] call print_word_at to:print_dword_at::@return print_dword_at::@return: scope:[print_dword_at] from print_dword_at::@1 [15] 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 [16] (byte*) print_word_at::at#2 ← phi( print_dword_at/(const byte*) SCREEN print_dword_at::@1/(const byte*) SCREEN+(byte) 4 ) [16] (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 ) [17] (byte) print_byte_at::b#0 ← > (word) print_word_at::w#2 [18] (byte*) print_byte_at::at#0 ← (byte*) print_word_at::at#2 [19] call print_byte_at to:print_word_at::@1 print_word_at::@1: scope:[print_word_at] from print_word_at [20] (byte) print_byte_at::b#1 ← < (word) print_word_at::w#2 [21] (byte*) print_byte_at::at#1 ← (byte*) print_word_at::at#2 + (byte) 2 [22] call print_byte_at to:print_word_at::@return print_word_at::@return: scope:[print_word_at] from print_word_at::@1 [23] 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 [24] (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 ) [24] (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 ) [25] (byte~) print_byte_at::$0 ← (byte) print_byte_at::b#2 >> (byte) 4 [26] (byte) print_char_at::ch#0 ← *((const byte[]) print_hextab + (byte~) print_byte_at::$0) [27] (byte*) print_char_at::at#0 ← (byte*) print_byte_at::at#2 [28] call print_char_at to:print_byte_at::@1 print_byte_at::@1: scope:[print_byte_at] from print_byte_at [29] (byte~) print_byte_at::$2 ← (byte) print_byte_at::b#2 & (byte) $f [30] (byte*) print_char_at::at#1 ← (byte*) print_byte_at::at#2 + (byte) 1 [31] (byte) print_char_at::ch#1 ← *((const byte[]) print_hextab + (byte~) print_byte_at::$2) [32] call print_char_at to:print_byte_at::@return print_byte_at::@return: scope:[print_byte_at] from print_byte_at::@1 [33] 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 [34] (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 ) [34] (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 ) [35] *((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 [36] return to:@return (dword()) clock() clock: scope:[clock] from main::@1 [37] (dword) clock::return#0 ← (dword) $ffffffff - *((const dword*) CIA2_TIMER_AB) to:clock::@return clock::@return: scope:[clock] from clock [38] return to:@return (void()) clock_start() clock_start: scope:[clock_start] from main [39] *((const byte*) CIA2_TIMER_A_CONTROL) ← (const byte) CIA_TIMER_CONTROL_CONTINUOUS [40] *((const byte*) CIA2_TIMER_B_CONTROL) ← (const byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A [41] *((const dword*) CIA2_TIMER_AB) ← (dword) $ffffffff [42] *((const byte*) CIA2_TIMER_B_CONTROL) ← (const byte) CIA_TIMER_CONTROL_START|(const byte) CIA_TIMER_CONTROL_B_COUNT_UNDERFLOW_A [43] *((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 [44] return to:@return