Inlined call call __init Eliminating unused variable with no statement memset::$2 CONTROL FLOW GRAPH SSA void print_ln() print_ln: scope:[print_ln] from print_euclid::@6 print_char_cursor#52 = phi( print_euclid::@6/print_char_cursor#21 ) print_line_cursor#33 = phi( print_euclid::@6/print_line_cursor#35 ) to:print_ln::@1 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 print_char_cursor#27 = phi( print_ln/print_char_cursor#52, print_ln::@1/print_char_cursor#27 ) print_line_cursor#17 = phi( print_ln/print_line_cursor#33, print_ln::@1/print_line_cursor#0 ) print_ln::$0 = print_line_cursor#17 + $28 print_line_cursor#0 = print_ln::$0 print_ln::$1 = print_line_cursor#0 < print_char_cursor#27 if(print_ln::$1) goto print_ln::@1 to:print_ln::@2 print_ln::@2: scope:[print_ln] from print_ln::@1 print_line_cursor#18 = phi( print_ln::@1/print_line_cursor#0 ) print_char_cursor#0 = print_line_cursor#18 to:print_ln::@return print_ln::@return: scope:[print_ln] from print_ln::@2 print_char_cursor#28 = phi( print_ln::@2/print_char_cursor#0 ) print_line_cursor#19 = phi( print_ln::@2/print_line_cursor#18 ) print_line_cursor#1 = print_line_cursor#19 print_char_cursor#1 = print_char_cursor#28 return to:@return void print_uchar(char b) print_uchar: scope:[print_uchar] from print_euclid print_euclid::@2 print_euclid::@5 print_char_cursor#53 = phi( print_euclid/print_char_cursor#55, print_euclid::@2/print_char_cursor#18, print_euclid::@5/print_char_cursor#56 ) print_uchar::b#3 = phi( print_euclid/print_uchar::b#0, print_euclid::@2/print_uchar::b#1, print_euclid::@5/print_uchar::b#2 ) print_uchar::$0 = print_uchar::b#3 >> 4 print_char::ch#0 = print_hextab[print_uchar::$0] call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar print_uchar::b#4 = phi( print_uchar/print_uchar::b#3 ) print_char_cursor#29 = phi( print_uchar/print_char_cursor#6 ) print_char_cursor#2 = print_char_cursor#29 print_uchar::$2 = print_uchar::b#4 & $f print_char::ch#1 = print_hextab[print_uchar::$2] call print_char to:print_uchar::@2 print_uchar::@2: scope:[print_uchar] from print_uchar::@1 print_char_cursor#30 = phi( print_uchar::@1/print_char_cursor#6 ) print_char_cursor#3 = print_char_cursor#30 to:print_uchar::@return print_uchar::@return: scope:[print_uchar] from print_uchar::@2 print_char_cursor#31 = phi( print_uchar::@2/print_char_cursor#3 ) print_char_cursor#4 = print_char_cursor#31 return to:@return void print_char(char ch) print_char: scope:[print_char] from print_euclid::@1 print_euclid::@3 print_uchar print_uchar::@1 print_char_cursor#32 = phi( print_euclid::@1/print_char_cursor#17, print_euclid::@3/print_char_cursor#19, print_uchar/print_char_cursor#53, print_uchar::@1/print_char_cursor#2 ) print_char::ch#4 = phi( print_euclid::@1/print_char::ch#2, print_euclid::@3/print_char::ch#3, print_uchar/print_char::ch#0, print_uchar::@1/print_char::ch#1 ) *print_char_cursor#32 = print_char::ch#4 print_char_cursor#5 = ++ print_char_cursor#32 to:print_char::@return print_char::@return: scope:[print_char] from print_char print_char_cursor#33 = phi( print_char/print_char_cursor#5 ) print_char_cursor#6 = print_char_cursor#33 return to:@return void print_cls() print_cls: scope:[print_cls] from main print_screen#2 = phi( main/print_screen#5 ) memset::str#0 = (void *)print_screen#2 memset::c#0 = ' ' memset::num#0 = $3e8 call memset memset::return#0 = memset::return#2 to:print_cls::@1 print_cls::@1: scope:[print_cls] from print_cls print_screen#3 = phi( print_cls/print_screen#2 ) print_line_cursor#2 = print_screen#3 print_char_cursor#7 = print_line_cursor#2 to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls::@1 print_char_cursor#34 = phi( print_cls::@1/print_char_cursor#7 ) print_line_cursor#20 = phi( print_cls::@1/print_line_cursor#2 ) print_line_cursor#3 = print_line_cursor#20 print_char_cursor#8 = print_char_cursor#34 return to:@return void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from print_cls memset::c#4 = phi( print_cls/memset::c#0 ) memset::str#3 = phi( print_cls/memset::str#0 ) memset::num#1 = phi( print_cls/memset::num#0 ) memset::$0 = memset::num#1 > 0 memset::$1 = ! memset::$0 if(memset::$1) goto memset::@1 to:memset::@2 memset::@1: scope:[memset] from memset memset::@3 memset::str#1 = phi( memset/memset::str#3, memset::@3/memset::str#4 ) memset::return#1 = memset::str#1 to:memset::@return memset::@2: scope:[memset] from memset memset::c#3 = phi( memset/memset::c#4 ) memset::num#2 = phi( memset/memset::num#1 ) memset::str#2 = phi( memset/memset::str#3 ) memset::$4 = (char *)memset::str#2 memset::end#0 = memset::$4 + memset::num#2 memset::dst#0 = ((char *)) memset::str#2 to:memset::@3 memset::@3: scope:[memset] from memset::@2 memset::@4 memset::c#2 = phi( memset::@2/memset::c#3, memset::@4/memset::c#1 ) memset::str#4 = phi( memset::@2/memset::str#2, memset::@4/memset::str#5 ) memset::end#1 = phi( memset::@2/memset::end#0, memset::@4/memset::end#2 ) memset::dst#2 = phi( memset::@2/memset::dst#0, memset::@4/memset::dst#1 ) memset::$3 = memset::dst#2 != memset::end#1 if(memset::$3) goto memset::@4 to:memset::@1 memset::@4: scope:[memset] from memset::@3 memset::str#5 = phi( memset::@3/memset::str#4 ) memset::end#2 = phi( memset::@3/memset::end#1 ) memset::dst#3 = phi( memset::@3/memset::dst#2 ) memset::c#1 = phi( memset::@3/memset::c#2 ) *memset::dst#3 = memset::c#1 memset::dst#1 = ++ memset::dst#3 to:memset::@3 memset::@return: scope:[memset] from memset::@1 memset::return#3 = phi( memset::@1/memset::return#1 ) memset::return#2 = memset::return#3 return to:@return void main() main: scope:[main] from __start::@1 print_char_cursor#54 = phi( __start::@1/print_char_cursor#57 ) print_line_cursor#34 = phi( __start::@1/print_line_cursor#36 ) print_screen#5 = phi( __start::@1/print_screen#7 ) call print_cls to:main::@1 main::@1: scope:[main] from main print_char_cursor#35 = phi( main/print_char_cursor#8 ) print_line_cursor#21 = phi( main/print_line_cursor#3 ) print_line_cursor#4 = print_line_cursor#21 print_char_cursor#9 = print_char_cursor#35 print_euclid::a#0 = $80 print_euclid::b#0 = 2 call print_euclid to:main::@2 main::@2: scope:[main] from main::@1 print_line_cursor#22 = phi( main::@1/print_line_cursor#13 ) print_char_cursor#36 = phi( main::@1/print_char_cursor#23 ) print_char_cursor#10 = print_char_cursor#36 print_line_cursor#5 = print_line_cursor#22 print_euclid::a#1 = $a9 print_euclid::b#1 = $45 call print_euclid to:main::@3 main::@3: scope:[main] from main::@2 print_line_cursor#23 = phi( main::@2/print_line_cursor#13 ) print_char_cursor#37 = phi( main::@2/print_char_cursor#23 ) print_char_cursor#11 = print_char_cursor#37 print_line_cursor#6 = print_line_cursor#23 print_euclid::a#2 = $9b print_euclid::b#2 = $37 call print_euclid to:main::@4 main::@4: scope:[main] from main::@3 print_line_cursor#24 = phi( main::@3/print_line_cursor#13 ) print_char_cursor#38 = phi( main::@3/print_char_cursor#23 ) print_char_cursor#12 = print_char_cursor#38 print_line_cursor#7 = print_line_cursor#24 print_euclid::a#3 = $c7 print_euclid::b#3 = 3 call print_euclid to:main::@5 main::@5: scope:[main] from main::@4 print_line_cursor#25 = phi( main::@4/print_line_cursor#13 ) print_char_cursor#39 = phi( main::@4/print_char_cursor#23 ) print_char_cursor#13 = print_char_cursor#39 print_line_cursor#8 = print_line_cursor#25 print_euclid::a#4 = $5b print_euclid::b#4 = $1a call print_euclid to:main::@6 main::@6: scope:[main] from main::@5 print_line_cursor#26 = phi( main::@5/print_line_cursor#13 ) print_char_cursor#40 = phi( main::@5/print_char_cursor#23 ) print_char_cursor#14 = print_char_cursor#40 print_line_cursor#9 = print_line_cursor#26 print_euclid::a#5 = $77 print_euclid::b#5 = $bb call print_euclid to:main::@7 main::@7: scope:[main] from main::@6 print_line_cursor#27 = phi( main::@6/print_line_cursor#13 ) print_char_cursor#41 = phi( main::@6/print_char_cursor#23 ) print_char_cursor#15 = print_char_cursor#41 print_line_cursor#10 = print_line_cursor#27 to:main::@return main::@return: scope:[main] from main::@7 print_char_cursor#42 = phi( main::@7/print_char_cursor#15 ) print_line_cursor#28 = phi( main::@7/print_line_cursor#10 ) print_line_cursor#11 = print_line_cursor#28 print_char_cursor#16 = print_char_cursor#42 return to:@return void print_euclid(char a , char b) print_euclid: scope:[print_euclid] from main::@1 main::@2 main::@3 main::@4 main::@5 main::@6 print_line_cursor#42 = phi( main::@1/print_line_cursor#4, main::@2/print_line_cursor#5, main::@3/print_line_cursor#6, main::@4/print_line_cursor#7, main::@5/print_line_cursor#8, main::@6/print_line_cursor#9 ) print_euclid::b#10 = phi( main::@1/print_euclid::b#0, main::@2/print_euclid::b#1, main::@3/print_euclid::b#2, main::@4/print_euclid::b#3, main::@5/print_euclid::b#4, main::@6/print_euclid::b#5 ) print_char_cursor#55 = phi( main::@1/print_char_cursor#9, main::@2/print_char_cursor#10, main::@3/print_char_cursor#11, main::@4/print_char_cursor#12, main::@5/print_char_cursor#13, main::@6/print_char_cursor#14 ) print_euclid::a#6 = phi( main::@1/print_euclid::a#0, main::@2/print_euclid::a#1, main::@3/print_euclid::a#2, main::@4/print_euclid::a#3, main::@5/print_euclid::a#4, main::@6/print_euclid::a#5 ) print_uchar::b#0 = print_euclid::a#6 call print_uchar to:print_euclid::@1 print_euclid::@1: scope:[print_euclid] from print_euclid print_line_cursor#41 = phi( print_euclid/print_line_cursor#42 ) print_euclid::a#10 = phi( print_euclid/print_euclid::a#6 ) print_euclid::b#8 = phi( print_euclid/print_euclid::b#10 ) print_char_cursor#43 = phi( print_euclid/print_char_cursor#4 ) print_char_cursor#17 = print_char_cursor#43 print_char::ch#2 = ' ' call print_char to:print_euclid::@2 print_euclid::@2: scope:[print_euclid] from print_euclid::@1 print_line_cursor#40 = phi( print_euclid::@1/print_line_cursor#41 ) print_euclid::a#9 = phi( print_euclid::@1/print_euclid::a#10 ) print_euclid::b#6 = phi( print_euclid::@1/print_euclid::b#8 ) print_char_cursor#44 = phi( print_euclid::@1/print_char_cursor#6 ) print_char_cursor#18 = print_char_cursor#44 print_uchar::b#1 = print_euclid::b#6 call print_uchar to:print_euclid::@3 print_euclid::@3: scope:[print_euclid] from print_euclid::@2 print_line_cursor#39 = phi( print_euclid::@2/print_line_cursor#40 ) print_euclid::b#9 = phi( print_euclid::@2/print_euclid::b#6 ) print_euclid::a#8 = phi( print_euclid::@2/print_euclid::a#9 ) print_char_cursor#45 = phi( print_euclid::@2/print_char_cursor#4 ) print_char_cursor#19 = print_char_cursor#45 print_char::ch#3 = ' ' call print_char to:print_euclid::@4 print_euclid::@4: scope:[print_euclid] from print_euclid::@3 print_line_cursor#38 = phi( print_euclid::@3/print_line_cursor#39 ) print_euclid::b#7 = phi( print_euclid::@3/print_euclid::b#9 ) print_euclid::a#7 = phi( print_euclid::@3/print_euclid::a#8 ) print_char_cursor#46 = phi( print_euclid::@3/print_char_cursor#6 ) print_char_cursor#20 = print_char_cursor#46 euclid::a#0 = print_euclid::a#7 euclid::b#0 = print_euclid::b#7 call euclid euclid::return#0 = euclid::return#2 to:print_euclid::@5 print_euclid::@5: scope:[print_euclid] from print_euclid::@4 print_line_cursor#37 = phi( print_euclid::@4/print_line_cursor#38 ) print_char_cursor#56 = phi( print_euclid::@4/print_char_cursor#20 ) euclid::return#3 = phi( print_euclid::@4/euclid::return#0 ) print_euclid::$4 = euclid::return#3 print_uchar::b#2 = print_euclid::$4 call print_uchar to:print_euclid::@6 print_euclid::@6: scope:[print_euclid] from print_euclid::@5 print_line_cursor#35 = phi( print_euclid::@5/print_line_cursor#37 ) print_char_cursor#47 = phi( print_euclid::@5/print_char_cursor#4 ) print_char_cursor#21 = print_char_cursor#47 call print_ln to:print_euclid::@7 print_euclid::@7: scope:[print_euclid] from print_euclid::@6 print_char_cursor#48 = phi( print_euclid::@6/print_char_cursor#1 ) print_line_cursor#29 = phi( print_euclid::@6/print_line_cursor#1 ) print_line_cursor#12 = print_line_cursor#29 print_char_cursor#22 = print_char_cursor#48 to:print_euclid::@return print_euclid::@return: scope:[print_euclid] from print_euclid::@7 print_line_cursor#30 = phi( print_euclid::@7/print_line_cursor#12 ) print_char_cursor#49 = phi( print_euclid::@7/print_char_cursor#22 ) print_char_cursor#23 = print_char_cursor#49 print_line_cursor#13 = print_line_cursor#30 return to:@return char euclid(char a , char b) euclid: scope:[euclid] from print_euclid::@4 euclid::b#6 = phi( print_euclid::@4/euclid::b#0 ) euclid::a#7 = phi( print_euclid::@4/euclid::a#0 ) to:euclid::@1 euclid::@1: scope:[euclid] from euclid euclid::@4 euclid::@5 euclid::b#2 = phi( euclid/euclid::b#6, euclid::@4/euclid::b#4, euclid::@5/euclid::b#1 ) euclid::a#2 = phi( euclid/euclid::a#7, euclid::@4/euclid::a#1, euclid::@5/euclid::a#6 ) euclid::$0 = euclid::a#2 != euclid::b#2 if(euclid::$0) goto euclid::@2 to:euclid::@3 euclid::@2: scope:[euclid] from euclid::@1 euclid::b#3 = phi( euclid::@1/euclid::b#2 ) euclid::a#3 = phi( euclid::@1/euclid::a#2 ) euclid::$1 = euclid::a#3 > euclid::b#3 if(euclid::$1) goto euclid::@4 to:euclid::@5 euclid::@3: scope:[euclid] from euclid::@1 euclid::a#4 = phi( euclid::@1/euclid::a#2 ) euclid::return#1 = euclid::a#4 to:euclid::@return euclid::@4: scope:[euclid] from euclid::@2 euclid::b#4 = phi( euclid::@2/euclid::b#3 ) euclid::a#5 = phi( euclid::@2/euclid::a#3 ) euclid::$3 = euclid::a#5 - euclid::b#4 euclid::a#1 = euclid::$3 to:euclid::@1 euclid::@5: scope:[euclid] from euclid::@2 euclid::a#6 = phi( euclid::@2/euclid::a#3 ) euclid::b#5 = phi( euclid::@2/euclid::b#3 ) euclid::$2 = euclid::b#5 - euclid::a#6 euclid::b#1 = euclid::$2 to:euclid::@1 euclid::@return: scope:[euclid] from euclid::@3 euclid::return#4 = phi( euclid::@3/euclid::return#1 ) euclid::return#2 = euclid::return#4 return to:@return void __start() __start: scope:[__start] from to:__start::__init1 __start::__init1: scope:[__start] from __start print_screen#0 = (char *)$400 print_line_cursor#14 = print_screen#0 print_char_cursor#24 = print_line_cursor#14 to:__start::@1 __start::@1: scope:[__start] from __start::__init1 print_screen#7 = phi( __start::__init1/print_screen#0 ) print_char_cursor#57 = phi( __start::__init1/print_char_cursor#24 ) print_line_cursor#36 = phi( __start::__init1/print_line_cursor#14 ) call main to:__start::@2 __start::@2: scope:[__start] from __start::@1 print_screen#6 = phi( __start::@1/print_screen#7 ) print_char_cursor#50 = phi( __start::@1/print_char_cursor#16 ) print_line_cursor#31 = phi( __start::@1/print_line_cursor#11 ) print_line_cursor#15 = print_line_cursor#31 print_char_cursor#25 = print_char_cursor#50 to:__start::@return __start::@return: scope:[__start] from __start::@2 print_char_cursor#51 = phi( __start::@2/print_char_cursor#25 ) print_line_cursor#32 = phi( __start::@2/print_line_cursor#15 ) print_screen#4 = phi( __start::@2/print_screen#6 ) print_screen#1 = print_screen#4 print_line_cursor#16 = print_line_cursor#32 print_char_cursor#26 = print_char_cursor#51 return to:@return SYMBOL TABLE SSA __constant char RADIX::BINARY = 2 __constant char RADIX::DECIMAL = $a __constant char RADIX::HEXADECIMAL = $10 __constant char RADIX::OCTAL = 8 void __start() char euclid(char a , char b) bool euclid::$0 bool euclid::$1 char euclid::$2 char euclid::$3 char euclid::a char euclid::a#0 char euclid::a#1 char euclid::a#2 char euclid::a#3 char euclid::a#4 char euclid::a#5 char euclid::a#6 char euclid::a#7 char euclid::b char euclid::b#0 char euclid::b#1 char euclid::b#2 char euclid::b#3 char euclid::b#4 char euclid::b#5 char euclid::b#6 char euclid::return char euclid::return#0 char euclid::return#1 char euclid::return#2 char euclid::return#3 char euclid::return#4 void main() void * memset(void *str , char c , unsigned int num) bool memset::$0 bool memset::$1 bool memset::$3 char *memset::$4 char memset::c char memset::c#0 char memset::c#1 char memset::c#2 char memset::c#3 char memset::c#4 char *memset::dst char *memset::dst#0 char *memset::dst#1 char *memset::dst#2 char *memset::dst#3 char *memset::end char *memset::end#0 char *memset::end#1 char *memset::end#2 unsigned int memset::num unsigned int memset::num#0 unsigned int memset::num#1 unsigned int memset::num#2 void *memset::return void *memset::return#0 void *memset::return#1 void *memset::return#2 void *memset::return#3 void *memset::str void *memset::str#0 void *memset::str#1 void *memset::str#2 void *memset::str#3 void *memset::str#4 void *memset::str#5 void print_char(char ch) char print_char::ch char print_char::ch#0 char print_char::ch#1 char print_char::ch#2 char print_char::ch#3 char print_char::ch#4 char *print_char_cursor char *print_char_cursor#0 char *print_char_cursor#1 char *print_char_cursor#10 char *print_char_cursor#11 char *print_char_cursor#12 char *print_char_cursor#13 char *print_char_cursor#14 char *print_char_cursor#15 char *print_char_cursor#16 char *print_char_cursor#17 char *print_char_cursor#18 char *print_char_cursor#19 char *print_char_cursor#2 char *print_char_cursor#20 char *print_char_cursor#21 char *print_char_cursor#22 char *print_char_cursor#23 char *print_char_cursor#24 char *print_char_cursor#25 char *print_char_cursor#26 char *print_char_cursor#27 char *print_char_cursor#28 char *print_char_cursor#29 char *print_char_cursor#3 char *print_char_cursor#30 char *print_char_cursor#31 char *print_char_cursor#32 char *print_char_cursor#33 char *print_char_cursor#34 char *print_char_cursor#35 char *print_char_cursor#36 char *print_char_cursor#37 char *print_char_cursor#38 char *print_char_cursor#39 char *print_char_cursor#4 char *print_char_cursor#40 char *print_char_cursor#41 char *print_char_cursor#42 char *print_char_cursor#43 char *print_char_cursor#44 char *print_char_cursor#45 char *print_char_cursor#46 char *print_char_cursor#47 char *print_char_cursor#48 char *print_char_cursor#49 char *print_char_cursor#5 char *print_char_cursor#50 char *print_char_cursor#51 char *print_char_cursor#52 char *print_char_cursor#53 char *print_char_cursor#54 char *print_char_cursor#55 char *print_char_cursor#56 char *print_char_cursor#57 char *print_char_cursor#6 char *print_char_cursor#7 char *print_char_cursor#8 char *print_char_cursor#9 void print_cls() void print_euclid(char a , char b) char print_euclid::$4 char print_euclid::a char print_euclid::a#0 char print_euclid::a#1 char print_euclid::a#10 char print_euclid::a#2 char print_euclid::a#3 char print_euclid::a#4 char print_euclid::a#5 char print_euclid::a#6 char print_euclid::a#7 char print_euclid::a#8 char print_euclid::a#9 char print_euclid::b char print_euclid::b#0 char print_euclid::b#1 char print_euclid::b#10 char print_euclid::b#2 char print_euclid::b#3 char print_euclid::b#4 char print_euclid::b#5 char print_euclid::b#6 char print_euclid::b#7 char print_euclid::b#8 char print_euclid::b#9 __constant const char print_hextab[] = "0123456789abcdef"z char *print_line_cursor char *print_line_cursor#0 char *print_line_cursor#1 char *print_line_cursor#10 char *print_line_cursor#11 char *print_line_cursor#12 char *print_line_cursor#13 char *print_line_cursor#14 char *print_line_cursor#15 char *print_line_cursor#16 char *print_line_cursor#17 char *print_line_cursor#18 char *print_line_cursor#19 char *print_line_cursor#2 char *print_line_cursor#20 char *print_line_cursor#21 char *print_line_cursor#22 char *print_line_cursor#23 char *print_line_cursor#24 char *print_line_cursor#25 char *print_line_cursor#26 char *print_line_cursor#27 char *print_line_cursor#28 char *print_line_cursor#29 char *print_line_cursor#3 char *print_line_cursor#30 char *print_line_cursor#31 char *print_line_cursor#32 char *print_line_cursor#33 char *print_line_cursor#34 char *print_line_cursor#35 char *print_line_cursor#36 char *print_line_cursor#37 char *print_line_cursor#38 char *print_line_cursor#39 char *print_line_cursor#4 char *print_line_cursor#40 char *print_line_cursor#41 char *print_line_cursor#42 char *print_line_cursor#5 char *print_line_cursor#6 char *print_line_cursor#7 char *print_line_cursor#8 char *print_line_cursor#9 void print_ln() char *print_ln::$0 bool print_ln::$1 char *print_screen char *print_screen#0 char *print_screen#1 char *print_screen#2 char *print_screen#3 char *print_screen#4 char *print_screen#5 char *print_screen#6 char *print_screen#7 void print_uchar(char b) char print_uchar::$0 number print_uchar::$2 char print_uchar::b char print_uchar::b#0 char print_uchar::b#1 char print_uchar::b#2 char print_uchar::b#3 char print_uchar::b#4 Adding number conversion cast (unumber) $28 in print_ln::$0 = print_line_cursor#17 + $28 Adding number conversion cast (unumber) 4 in print_uchar::$0 = print_uchar::b#3 >> 4 Adding number conversion cast (unumber) $f in print_uchar::$2 = print_uchar::b#4 & $f Adding number conversion cast (unumber) print_uchar::$2 in print_uchar::$2 = print_uchar::b#4 & (unumber)$f Adding number conversion cast (unumber) $3e8 in memset::num#0 = $3e8 Adding number conversion cast (unumber) 0 in memset::$0 = memset::num#1 > 0 Adding number conversion cast (unumber) $80 in print_euclid::a#0 = $80 Adding number conversion cast (unumber) 2 in print_euclid::b#0 = 2 Adding number conversion cast (unumber) $a9 in print_euclid::a#1 = $a9 Adding number conversion cast (unumber) $45 in print_euclid::b#1 = $45 Adding number conversion cast (unumber) $9b in print_euclid::a#2 = $9b Adding number conversion cast (unumber) $37 in print_euclid::b#2 = $37 Adding number conversion cast (unumber) $c7 in print_euclid::a#3 = $c7 Adding number conversion cast (unumber) 3 in print_euclid::b#3 = 3 Adding number conversion cast (unumber) $5b in print_euclid::a#4 = $5b Adding number conversion cast (unumber) $1a in print_euclid::b#4 = $1a Adding number conversion cast (unumber) $77 in print_euclid::a#5 = $77 Adding number conversion cast (unumber) $bb in print_euclid::b#5 = $bb Successful SSA optimization PassNAddNumberTypeConversions Inlining cast memset::num#0 = (unumber)$3e8 Inlining cast memset::dst#0 = (char *)memset::str#2 Inlining cast print_euclid::a#0 = (unumber)$80 Inlining cast print_euclid::b#0 = (unumber)2 Inlining cast print_euclid::a#1 = (unumber)$a9 Inlining cast print_euclid::b#1 = (unumber)$45 Inlining cast print_euclid::a#2 = (unumber)$9b Inlining cast print_euclid::b#2 = (unumber)$37 Inlining cast print_euclid::a#3 = (unumber)$c7 Inlining cast print_euclid::b#3 = (unumber)3 Inlining cast print_euclid::a#4 = (unumber)$5b Inlining cast print_euclid::b#4 = (unumber)$1a Inlining cast print_euclid::a#5 = (unumber)$77 Inlining cast print_euclid::b#5 = (unumber)$bb Successful SSA optimization Pass2InlineCast Simplifying constant integer cast $28 Simplifying constant integer cast 4 Simplifying constant integer cast $f Simplifying constant integer cast $3e8 Simplifying constant integer cast 0 Simplifying constant integer cast $80 Simplifying constant integer cast 2 Simplifying constant integer cast $a9 Simplifying constant integer cast $45 Simplifying constant integer cast $9b Simplifying constant integer cast $37 Simplifying constant integer cast $c7 Simplifying constant integer cast 3 Simplifying constant integer cast $5b Simplifying constant integer cast $1a Simplifying constant integer cast $77 Simplifying constant integer cast $bb Simplifying constant pointer cast (char *) 1024 Successful SSA optimization PassNCastSimplification Finalized unsigned number type (char) $28 Finalized unsigned number type (char) 4 Finalized unsigned number type (char) $f Finalized unsigned number type (unsigned int) $3e8 Finalized unsigned number type (char) 0 Finalized unsigned number type (char) $80 Finalized unsigned number type (char) 2 Finalized unsigned number type (char) $a9 Finalized unsigned number type (char) $45 Finalized unsigned number type (char) $9b Finalized unsigned number type (char) $37 Finalized unsigned number type (char) $c7 Finalized unsigned number type (char) 3 Finalized unsigned number type (char) $5b Finalized unsigned number type (char) $1a Finalized unsigned number type (char) $77 Finalized unsigned number type (char) $bb Successful SSA optimization PassNFinalizeNumberTypeConversions Inferred type updated to char in print_uchar::$2 = print_uchar::b#4 & $f Inversing boolean not [47] memset::$1 = memset::num#1 <= 0 from [46] memset::$0 = memset::num#1 > 0 Successful SSA optimization Pass2UnaryNotSimplification Alias print_line_cursor#0 = print_ln::$0 print_line_cursor#18 print_char_cursor#0 print_line_cursor#19 print_char_cursor#28 print_line_cursor#1 print_char_cursor#1 Alias print_uchar::b#3 = print_uchar::b#4 Alias print_char_cursor#2 = print_char_cursor#29 Alias print_char_cursor#3 = print_char_cursor#30 print_char_cursor#31 print_char_cursor#4 Alias print_char_cursor#33 = print_char_cursor#5 print_char_cursor#6 Alias print_line_cursor#2 = print_screen#3 print_screen#2 print_char_cursor#7 print_line_cursor#20 print_char_cursor#34 print_line_cursor#3 print_char_cursor#8 Alias memset::return#1 = memset::str#1 memset::return#3 memset::return#2 Alias memset::str#2 = memset::str#3 Alias memset::num#1 = memset::num#2 Alias memset::c#3 = memset::c#4 Alias memset::c#1 = memset::c#2 Alias memset::dst#2 = memset::dst#3 Alias memset::end#1 = memset::end#2 Alias memset::str#4 = memset::str#5 Alias print_line_cursor#21 = print_line_cursor#4 Alias print_char_cursor#35 = print_char_cursor#9 Alias print_char_cursor#10 = print_char_cursor#36 Alias print_line_cursor#22 = print_line_cursor#5 Alias print_char_cursor#11 = print_char_cursor#37 Alias print_line_cursor#23 = print_line_cursor#6 Alias print_char_cursor#12 = print_char_cursor#38 Alias print_line_cursor#24 = print_line_cursor#7 Alias print_char_cursor#13 = print_char_cursor#39 Alias print_line_cursor#25 = print_line_cursor#8 Alias print_char_cursor#14 = print_char_cursor#40 Alias print_line_cursor#26 = print_line_cursor#9 Alias print_char_cursor#15 = print_char_cursor#41 print_char_cursor#42 print_char_cursor#16 Alias print_line_cursor#10 = print_line_cursor#27 print_line_cursor#28 print_line_cursor#11 Alias print_euclid::b#10 = print_euclid::b#8 print_euclid::b#6 print_euclid::b#9 print_euclid::b#7 Alias print_euclid::a#10 = print_euclid::a#6 print_euclid::a#9 print_euclid::a#8 print_euclid::a#7 Alias print_line_cursor#35 = print_line_cursor#41 print_line_cursor#42 print_line_cursor#40 print_line_cursor#39 print_line_cursor#38 print_line_cursor#37 Alias print_char_cursor#17 = print_char_cursor#43 Alias print_char_cursor#18 = print_char_cursor#44 Alias print_char_cursor#19 = print_char_cursor#45 Alias print_char_cursor#20 = print_char_cursor#46 print_char_cursor#56 Alias euclid::return#0 = euclid::return#3 Alias print_uchar::b#2 = print_euclid::$4 Alias print_char_cursor#21 = print_char_cursor#47 Alias print_line_cursor#12 = print_line_cursor#29 print_line_cursor#30 print_line_cursor#13 Alias print_char_cursor#22 = print_char_cursor#48 print_char_cursor#49 print_char_cursor#23 Alias euclid::a#2 = euclid::a#3 euclid::a#4 euclid::return#1 euclid::a#5 euclid::a#6 euclid::return#4 euclid::return#2 Alias euclid::b#2 = euclid::b#3 euclid::b#4 euclid::b#5 Alias euclid::a#1 = euclid::$3 Alias euclid::b#1 = euclid::$2 Alias print_screen#0 = print_line_cursor#14 print_char_cursor#24 print_line_cursor#36 print_char_cursor#57 print_screen#7 print_screen#6 print_screen#4 print_screen#1 Alias print_line_cursor#15 = print_line_cursor#31 print_line_cursor#32 print_line_cursor#16 Alias print_char_cursor#25 = print_char_cursor#50 print_char_cursor#51 print_char_cursor#26 Successful SSA optimization Pass2AliasElimination Identical Phi Values print_line_cursor#33 print_line_cursor#35 Identical Phi Values print_char_cursor#52 print_char_cursor#21 Identical Phi Values print_char_cursor#27 print_char_cursor#52 Identical Phi Values print_char_cursor#2 print_char_cursor#33 Identical Phi Values print_char_cursor#3 print_char_cursor#33 Identical Phi Values print_line_cursor#2 print_screen#5 Identical Phi Values memset::num#1 memset::num#0 Identical Phi Values memset::str#2 memset::str#0 Identical Phi Values memset::c#3 memset::c#0 Identical Phi Values memset::end#1 memset::end#0 Identical Phi Values memset::str#4 memset::str#2 Identical Phi Values memset::c#1 memset::c#3 Identical Phi Values print_screen#5 print_screen#0 Identical Phi Values print_line_cursor#34 print_screen#0 Identical Phi Values print_char_cursor#54 print_screen#0 Identical Phi Values print_line_cursor#21 print_line_cursor#2 Identical Phi Values print_char_cursor#35 print_line_cursor#2 Identical Phi Values print_char_cursor#10 print_char_cursor#22 Identical Phi Values print_line_cursor#22 print_line_cursor#12 Identical Phi Values print_char_cursor#11 print_char_cursor#22 Identical Phi Values print_line_cursor#23 print_line_cursor#12 Identical Phi Values print_char_cursor#12 print_char_cursor#22 Identical Phi Values print_line_cursor#24 print_line_cursor#12 Identical Phi Values print_char_cursor#13 print_char_cursor#22 Identical Phi Values print_line_cursor#25 print_line_cursor#12 Identical Phi Values print_char_cursor#14 print_char_cursor#22 Identical Phi Values print_line_cursor#26 print_line_cursor#12 Identical Phi Values print_char_cursor#15 print_char_cursor#22 Identical Phi Values print_line_cursor#10 print_line_cursor#12 Identical Phi Values print_char_cursor#17 print_char_cursor#3 Identical Phi Values print_char_cursor#18 print_char_cursor#33 Identical Phi Values print_char_cursor#19 print_char_cursor#3 Identical Phi Values print_char_cursor#20 print_char_cursor#33 Identical Phi Values print_char_cursor#21 print_char_cursor#3 Identical Phi Values print_line_cursor#12 print_line_cursor#0 Identical Phi Values print_char_cursor#22 print_line_cursor#0 Identical Phi Values euclid::a#7 euclid::a#0 Identical Phi Values euclid::b#6 euclid::b#0 Identical Phi Values print_line_cursor#15 print_line_cursor#10 Identical Phi Values print_char_cursor#25 print_char_cursor#15 Successful SSA optimization Pass2IdenticalPhiElimination Identical Phi Values memset::return#1 memset::str#0 Successful SSA optimization Pass2IdenticalPhiElimination Simple Condition print_ln::$1 [4] if(print_line_cursor#0euclid::b#2) goto euclid::@4 Successful SSA optimization Pass2ConditionalJumpSimplification Constant memset::c#0 = ' ' Constant memset::num#0 = $3e8 Constant print_euclid::a#0 = $80 Constant print_euclid::b#0 = 2 Constant print_euclid::a#1 = $a9 Constant print_euclid::b#1 = $45 Constant print_euclid::a#2 = $9b Constant print_euclid::b#2 = $37 Constant print_euclid::a#3 = $c7 Constant print_euclid::b#3 = 3 Constant print_euclid::a#4 = $5b Constant print_euclid::b#4 = $1a Constant print_euclid::a#5 = $77 Constant print_euclid::b#5 = $bb Constant print_char::ch#2 = ' ' Constant print_char::ch#3 = ' ' Constant print_screen#0 = (char *) 1024 Successful SSA optimization Pass2ConstantIdentification Constant memset::str#0 = (void *)print_screen#0 Successful SSA optimization Pass2ConstantIdentification Constant memset::return#0 = memset::str#0 Constant memset::$4 = (char *)memset::str#0 Constant memset::dst#0 = (char *)memset::str#0 Successful SSA optimization Pass2ConstantIdentification if() condition always false - eliminating [29] if(memset::num#0<=0) goto memset::@1 Successful SSA optimization Pass2ConstantIfs Eliminating unused constant memset::return#0 Successful SSA optimization PassNEliminateUnusedVars Removing unused procedure __start Removing unused procedure block __start Removing unused procedure block __start::__init1 Removing unused procedure block __start::@1 Removing unused procedure block __start::@2 Removing unused procedure block __start::@return Successful SSA optimization PassNEliminateEmptyStart Constant right-side identified [18] memset::end#0 = memset::$4 + memset::num#0 Successful SSA optimization Pass2ConstantRValueConsolidation Constant memset::end#0 = memset::$4+memset::num#0 Successful SSA optimization Pass2ConstantIdentification Inlining constant with var siblings print_char::ch#2 Inlining constant with var siblings print_char::ch#3 Inlining constant with var siblings memset::dst#0 Inlining constant with var siblings print_euclid::a#0 Inlining constant with var siblings print_euclid::b#0 Inlining constant with var siblings print_euclid::a#1 Inlining constant with var siblings print_euclid::b#1 Inlining constant with var siblings print_euclid::a#2 Inlining constant with var siblings print_euclid::b#2 Inlining constant with var siblings print_euclid::a#3 Inlining constant with var siblings print_euclid::b#3 Inlining constant with var siblings print_euclid::a#4 Inlining constant with var siblings print_euclid::b#4 Inlining constant with var siblings print_euclid::a#5 Inlining constant with var siblings print_euclid::b#5 Constant inlined print_char::ch#3 = ' ' Constant inlined print_euclid::b#4 = $1a Constant inlined print_euclid::a#5 = $77 Constant inlined print_char::ch#2 = ' ' Constant inlined print_euclid::b#3 = 3 Constant inlined print_euclid::a#4 = $5b Constant inlined print_euclid::b#5 = $bb Constant inlined memset::$4 = (char *)memset::str#0 Constant inlined print_euclid::b#0 = 2 Constant inlined print_euclid::a#1 = $a9 Constant inlined print_euclid::a#0 = $80 Constant inlined print_euclid::b#2 = $37 Constant inlined print_euclid::a#3 = $c7 Constant inlined print_euclid::b#1 = $45 Constant inlined print_euclid::a#2 = $9b Constant inlined memset::dst#0 = (char *)memset::str#0 Successful SSA optimization Pass2ConstantInlining Finalized unsigned number type (char) 2 Finalized unsigned number type (char) 8 Finalized unsigned number type (char) $a Finalized unsigned number type (char) $10 Successful SSA optimization PassNFinalizeNumberTypeConversions Added new block during phi lifting print_ln::@3(between print_ln::@1 and print_ln::@1) Adding NOP phi() at start of main Adding NOP phi() at start of main::@1 Adding NOP phi() at start of main::@7 Adding NOP phi() at start of print_cls Adding NOP phi() at start of print_cls::@1 Adding NOP phi() at start of print_euclid::@6 Adding NOP phi() at start of print_euclid::@7 Adding NOP phi() at start of memset Adding NOP phi() at start of memset::@2 Adding NOP phi() at start of memset::@1 Adding NOP phi() at start of print_uchar::@2 Adding NOP phi() at start of euclid::@3 Adding NOP phi() at start of print_ln::@2 CALL GRAPH Calls in [main] to print_cls:1 print_euclid:3 print_euclid:6 print_euclid:9 print_euclid:12 print_euclid:15 print_euclid:18 Calls in [print_cls] to memset:22 Calls in [print_euclid] to print_uchar:29 print_char:31 print_uchar:35 print_char:37 euclid:40 print_uchar:45 print_ln:47 Calls in [print_uchar] to print_char:64 print_char:69 Created 12 initial phi equivalence classes Not coalescing [4] print_char_cursor#65 = print_line_cursor#0 Coalesced [5] print_line_cursor#45 = print_line_cursor#0 Not coalescing [7] print_char_cursor#66 = print_line_cursor#0 Coalesced (already) [8] print_line_cursor#46 = print_line_cursor#0 Not coalescing [10] print_char_cursor#67 = print_line_cursor#0 Coalesced (already) [11] print_line_cursor#47 = print_line_cursor#0 Not coalescing [13] print_char_cursor#68 = print_line_cursor#0 Coalesced (already) [14] print_line_cursor#48 = print_line_cursor#0 Not coalescing [16] print_char_cursor#69 = print_line_cursor#0 Coalesced (already) [17] print_line_cursor#49 = print_line_cursor#0 Coalesced [27] print_uchar::b#5 = print_uchar::b#0 Coalesced [28] print_char_cursor#58 = print_char_cursor#55 Coalesced [30] print_char_cursor#61 = print_char_cursor#33 Coalesced [33] print_uchar::b#6 = print_uchar::b#1 Coalesced [34] print_char_cursor#59 = print_char_cursor#33 Coalesced (already) [36] print_char_cursor#62 = print_char_cursor#33 Coalesced [43] print_uchar::b#7 = print_uchar::b#2 Coalesced (already) [44] print_char_cursor#60 = print_char_cursor#33 Coalesced [58] memset::dst#4 = memset::dst#1 Coalesced [62] print_char::ch#5 = print_char::ch#0 Coalesced (already) [63] print_char_cursor#63 = print_char_cursor#53 Coalesced [67] print_char::ch#6 = print_char::ch#1 Coalesced (already) [68] print_char_cursor#64 = print_char_cursor#33 Coalesced [76] euclid::a#8 = euclid::a#0 Coalesced [77] euclid::b#7 = euclid::b#0 Coalesced (already) [84] euclid::a#10 = euclid::a#2 Coalesced [85] euclid::b#9 = euclid::b#1 Coalesced [87] euclid::a#9 = euclid::a#1 Coalesced (already) [88] euclid::b#8 = euclid::b#2 Coalesced [89] print_line_cursor#43 = print_line_cursor#35 Coalesced (already) [95] print_line_cursor#44 = print_line_cursor#0 Coalesced down to 9 phi equivalence classes Culled Empty Block label main::@7 Culled Empty Block label print_cls::@1 Culled Empty Block label print_euclid::@7 Culled Empty Block label memset::@2 Culled Empty Block label memset::@1 Culled Empty Block label print_uchar::@2 Culled Empty Block label euclid::@3 Culled Empty Block label print_ln::@2 Culled Empty Block label print_ln::@3 Renumbering block memset::@3 to memset::@1 Renumbering block memset::@4 to memset::@2 Renumbering block euclid::@4 to euclid::@3 Renumbering block euclid::@5 to euclid::@4 Adding NOP phi() at start of main Adding NOP phi() at start of main::@1 Adding NOP phi() at start of print_cls Adding NOP phi() at start of print_euclid::@1 Adding NOP phi() at start of print_euclid::@3 Adding NOP phi() at start of print_euclid::@6 Adding NOP phi() at start of memset Adding NOP phi() at start of euclid Adding NOP phi() at start of print_ln FINAL CONTROL FLOW GRAPH void main() main: scope:[main] from [0] phi() [1] call print_cls to:main::@1 main::@1: scope:[main] from main [2] phi() [3] call print_euclid to:main::@2 main::@2: scope:[main] from main::@1 [4] print_char_cursor#65 = print_line_cursor#0 [5] call print_euclid to:main::@3 main::@3: scope:[main] from main::@2 [6] print_char_cursor#66 = print_line_cursor#0 [7] call print_euclid to:main::@4 main::@4: scope:[main] from main::@3 [8] print_char_cursor#67 = print_line_cursor#0 [9] call print_euclid to:main::@5 main::@5: scope:[main] from main::@4 [10] print_char_cursor#68 = print_line_cursor#0 [11] call print_euclid to:main::@6 main::@6: scope:[main] from main::@5 [12] print_char_cursor#69 = print_line_cursor#0 [13] call print_euclid to:main::@return main::@return: scope:[main] from main::@6 [14] return to:@return void print_cls() print_cls: scope:[print_cls] from main [15] phi() [16] call memset to:print_cls::@return print_cls::@return: scope:[print_cls] from print_cls [17] return to:@return void print_euclid(char a , char b) print_euclid: scope:[print_euclid] from main::@1 main::@2 main::@3 main::@4 main::@5 main::@6 [18] print_line_cursor#35 = phi( main::@1/print_screen#0, main::@2/print_line_cursor#0, main::@3/print_line_cursor#0, main::@4/print_line_cursor#0, main::@5/print_line_cursor#0, main::@6/print_line_cursor#0 ) [18] print_euclid::b#10 = phi( main::@1/2, main::@2/$45, main::@3/$37, main::@4/3, main::@5/$1a, main::@6/$bb ) [18] print_char_cursor#55 = phi( main::@1/print_screen#0, main::@2/print_char_cursor#65, main::@3/print_char_cursor#66, main::@4/print_char_cursor#67, main::@5/print_char_cursor#68, main::@6/print_char_cursor#69 ) [18] print_euclid::a#10 = phi( main::@1/$80, main::@2/$a9, main::@3/$9b, main::@4/$c7, main::@5/$5b, main::@6/$77 ) [19] print_uchar::b#0 = print_euclid::a#10 [20] call print_uchar to:print_euclid::@1 print_euclid::@1: scope:[print_euclid] from print_euclid [21] phi() [22] call print_char to:print_euclid::@2 print_euclid::@2: scope:[print_euclid] from print_euclid::@1 [23] print_uchar::b#1 = print_euclid::b#10 [24] call print_uchar to:print_euclid::@3 print_euclid::@3: scope:[print_euclid] from print_euclid::@2 [25] phi() [26] call print_char to:print_euclid::@4 print_euclid::@4: scope:[print_euclid] from print_euclid::@3 [27] euclid::a#0 = print_euclid::a#10 [28] euclid::b#0 = print_euclid::b#10 [29] call euclid [30] euclid::return#0 = euclid::a#2 to:print_euclid::@5 print_euclid::@5: scope:[print_euclid] from print_euclid::@4 [31] print_uchar::b#2 = euclid::return#0 [32] call print_uchar to:print_euclid::@6 print_euclid::@6: scope:[print_euclid] from print_euclid::@5 [33] phi() [34] call print_ln to:print_euclid::@return print_euclid::@return: scope:[print_euclid] from print_euclid::@6 [35] return to:@return void * memset(void *str , char c , unsigned int num) memset: scope:[memset] from print_cls [36] phi() to:memset::@1 memset::@1: scope:[memset] from memset memset::@2 [37] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 ) [38] if(memset::dst#2!=memset::end#0) goto memset::@2 to:memset::@return memset::@return: scope:[memset] from memset::@1 [39] return to:@return memset::@2: scope:[memset] from memset::@1 [40] *memset::dst#2 = memset::c#0 [41] memset::dst#1 = ++ memset::dst#2 to:memset::@1 void print_uchar(char b) print_uchar: scope:[print_uchar] from print_euclid print_euclid::@2 print_euclid::@5 [42] print_char_cursor#53 = phi( print_euclid/print_char_cursor#55, print_euclid::@2/print_char_cursor#33, print_euclid::@5/print_char_cursor#33 ) [42] print_uchar::b#3 = phi( print_euclid/print_uchar::b#0, print_euclid::@2/print_uchar::b#1, print_euclid::@5/print_uchar::b#2 ) [43] print_uchar::$0 = print_uchar::b#3 >> 4 [44] print_char::ch#0 = print_hextab[print_uchar::$0] [45] call print_char to:print_uchar::@1 print_uchar::@1: scope:[print_uchar] from print_uchar [46] print_uchar::$2 = print_uchar::b#3 & $f [47] print_char::ch#1 = print_hextab[print_uchar::$2] [48] call print_char to:print_uchar::@return print_uchar::@return: scope:[print_uchar] from print_uchar::@1 [49] return to:@return void print_char(char ch) print_char: scope:[print_char] from print_euclid::@1 print_euclid::@3 print_uchar print_uchar::@1 [50] print_char_cursor#32 = phi( print_euclid::@1/print_char_cursor#33, print_euclid::@3/print_char_cursor#33, print_uchar/print_char_cursor#53, print_uchar::@1/print_char_cursor#33 ) [50] print_char::ch#4 = phi( print_euclid::@1/' ', print_euclid::@3/' ', print_uchar/print_char::ch#0, print_uchar::@1/print_char::ch#1 ) [51] *print_char_cursor#32 = print_char::ch#4 [52] print_char_cursor#33 = ++ print_char_cursor#32 to:print_char::@return print_char::@return: scope:[print_char] from print_char [53] return to:@return char euclid(char a , char b) euclid: scope:[euclid] from print_euclid::@4 [54] phi() to:euclid::@1 euclid::@1: scope:[euclid] from euclid euclid::@3 euclid::@4 [55] euclid::b#2 = phi( euclid/euclid::b#0, euclid::@3/euclid::b#2, euclid::@4/euclid::b#1 ) [55] euclid::a#2 = phi( euclid/euclid::a#0, euclid::@3/euclid::a#1, euclid::@4/euclid::a#2 ) [56] if(euclid::a#2!=euclid::b#2) goto euclid::@2 to:euclid::@return euclid::@return: scope:[euclid] from euclid::@1 [57] return to:@return euclid::@2: scope:[euclid] from euclid::@1 [58] if(euclid::a#2>euclid::b#2) goto euclid::@3 to:euclid::@4 euclid::@4: scope:[euclid] from euclid::@2 [59] euclid::b#1 = euclid::b#2 - euclid::a#2 to:euclid::@1 euclid::@3: scope:[euclid] from euclid::@2 [60] euclid::a#1 = euclid::a#2 - euclid::b#2 to:euclid::@1 void print_ln() print_ln: scope:[print_ln] from print_euclid::@6 [61] phi() to:print_ln::@1 print_ln::@1: scope:[print_ln] from print_ln print_ln::@1 [62] print_line_cursor#17 = phi( print_ln/print_line_cursor#35, print_ln::@1/print_line_cursor#0 ) [63] print_line_cursor#0 = print_line_cursor#17 + $28 [64] if(print_line_cursor#0> 4 [ print_uchar::b#3 print_char_cursor#53 print_uchar::$0 ] ( print_euclid:3::print_uchar:20 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_uchar::b#3 print_char_cursor#53 print_uchar::$0 ] { { print_uchar::b#0 = print_uchar::b#3 print_euclid::a#10 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#55 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:5::print_uchar:20 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_uchar::b#3 print_char_cursor#53 print_uchar::$0 ] { { print_char_cursor#32 = print_char_cursor#55 print_char_cursor#65 print_char_cursor#53 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#0 = print_uchar::b#3 print_euclid::a#10 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:7::print_uchar:20 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_uchar::b#3 print_char_cursor#53 print_uchar::$0 ] { { print_char_cursor#32 = print_char_cursor#55 print_char_cursor#66 print_char_cursor#53 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#0 = print_uchar::b#3 print_euclid::a#10 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:9::print_uchar:20 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_uchar::b#3 print_char_cursor#53 print_uchar::$0 ] { { print_char_cursor#32 = print_char_cursor#55 print_char_cursor#67 print_char_cursor#53 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#0 = print_uchar::b#3 print_euclid::a#10 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:11::print_uchar:20 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_uchar::b#3 print_char_cursor#53 print_uchar::$0 ] { { print_char_cursor#32 = print_char_cursor#55 print_char_cursor#68 print_char_cursor#53 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#0 = print_uchar::b#3 print_euclid::a#10 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:13::print_uchar:20 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_uchar::b#3 print_char_cursor#53 print_uchar::$0 ] { { print_char_cursor#32 = print_char_cursor#55 print_char_cursor#69 print_char_cursor#53 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#0 = print_uchar::b#3 print_euclid::a#10 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:3::print_uchar:24 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_uchar::b#3 print_char_cursor#53 print_uchar::$0 ] { { print_uchar::b#1 = print_uchar::b#3 print_euclid::b#10 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:5::print_uchar:24 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_uchar::b#3 print_char_cursor#53 print_uchar::$0 ] { { print_char_cursor#55 = print_char_cursor#65 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#1 = print_uchar::b#3 print_euclid::b#10 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:7::print_uchar:24 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_uchar::b#3 print_char_cursor#53 print_uchar::$0 ] { { print_char_cursor#55 = print_char_cursor#66 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#1 = print_uchar::b#3 print_euclid::b#10 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:9::print_uchar:24 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_uchar::b#3 print_char_cursor#53 print_uchar::$0 ] { { print_char_cursor#55 = print_char_cursor#67 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#1 = print_uchar::b#3 print_euclid::b#10 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:11::print_uchar:24 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_uchar::b#3 print_char_cursor#53 print_uchar::$0 ] { { print_char_cursor#55 = print_char_cursor#68 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#1 = print_uchar::b#3 print_euclid::b#10 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:13::print_uchar:24 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_uchar::b#3 print_char_cursor#53 print_uchar::$0 ] { { print_char_cursor#55 = print_char_cursor#69 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#1 = print_uchar::b#3 print_euclid::b#10 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:3::print_uchar:32 [ print_line_cursor#35 print_uchar::b#3 print_char_cursor#53 print_uchar::$0 ] { { print_uchar::b#2 = print_uchar::b#3 euclid::return#0 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:5::print_uchar:32 [ print_line_cursor#35 print_uchar::b#3 print_char_cursor#53 print_uchar::$0 ] { { print_char_cursor#55 = print_char_cursor#65 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#2 = print_uchar::b#3 euclid::return#0 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:7::print_uchar:32 [ print_line_cursor#35 print_uchar::b#3 print_char_cursor#53 print_uchar::$0 ] { { print_char_cursor#55 = print_char_cursor#66 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#2 = print_uchar::b#3 euclid::return#0 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:9::print_uchar:32 [ print_line_cursor#35 print_uchar::b#3 print_char_cursor#53 print_uchar::$0 ] { { print_char_cursor#55 = print_char_cursor#67 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#2 = print_uchar::b#3 euclid::return#0 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:11::print_uchar:32 [ print_line_cursor#35 print_uchar::b#3 print_char_cursor#53 print_uchar::$0 ] { { print_char_cursor#55 = print_char_cursor#68 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#2 = print_uchar::b#3 euclid::return#0 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:13::print_uchar:32 [ print_line_cursor#35 print_uchar::b#3 print_char_cursor#53 print_uchar::$0 ] { { print_char_cursor#55 = print_char_cursor#69 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#2 = print_uchar::b#3 euclid::return#0 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#0 = print_char::ch#4 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:15 [ print_euclid::a#10 ] Removing always clobbered register reg byte a as potential for zp[1]:16 [ print_euclid::b#10 ] Removing always clobbered register reg byte a as potential for zp[1]:13 [ print_uchar::b#3 print_uchar::b#0 print_uchar::b#1 print_uchar::b#2 ] Statement [46] print_uchar::$2 = print_uchar::b#3 & $f [ print_char_cursor#33 print_uchar::$2 ] ( print_euclid:3::print_uchar:20 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#33 print_uchar::$2 ] { { print_uchar::b#0 = print_uchar::b#3 print_euclid::a#10 } { print_char_cursor#53 = print_char_cursor#55 } { print_char::ch#1 = print_char::ch#4 } { print_char_cursor#32 = print_char_cursor#33 } } print_euclid:5::print_uchar:20 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#33 print_uchar::$2 ] { { print_char_cursor#53 = print_char_cursor#55 print_char_cursor#65 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#0 = print_uchar::b#3 print_euclid::a#10 } { print_char::ch#1 = print_char::ch#4 } { print_char_cursor#32 = print_char_cursor#33 } } print_euclid:7::print_uchar:20 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#33 print_uchar::$2 ] { { print_char_cursor#53 = print_char_cursor#55 print_char_cursor#66 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#0 = print_uchar::b#3 print_euclid::a#10 } { print_char::ch#1 = print_char::ch#4 } { print_char_cursor#32 = print_char_cursor#33 } } print_euclid:9::print_uchar:20 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#33 print_uchar::$2 ] { { print_char_cursor#53 = print_char_cursor#55 print_char_cursor#67 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#0 = print_uchar::b#3 print_euclid::a#10 } { print_char::ch#1 = print_char::ch#4 } { print_char_cursor#32 = print_char_cursor#33 } } print_euclid:11::print_uchar:20 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#33 print_uchar::$2 ] { { print_char_cursor#53 = print_char_cursor#55 print_char_cursor#68 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#0 = print_uchar::b#3 print_euclid::a#10 } { print_char::ch#1 = print_char::ch#4 } { print_char_cursor#32 = print_char_cursor#33 } } print_euclid:13::print_uchar:20 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#33 print_uchar::$2 ] { { print_char_cursor#53 = print_char_cursor#55 print_char_cursor#69 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#0 = print_uchar::b#3 print_euclid::a#10 } { print_char::ch#1 = print_char::ch#4 } { print_char_cursor#32 = print_char_cursor#33 } } print_euclid:3::print_uchar:24 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#33 print_uchar::$2 ] { { print_uchar::b#1 = print_uchar::b#3 print_euclid::b#10 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#1 = print_char::ch#4 } } print_euclid:5::print_uchar:24 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#33 print_uchar::$2 ] { { print_char_cursor#55 = print_char_cursor#65 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#1 = print_uchar::b#3 print_euclid::b#10 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#1 = print_char::ch#4 } } print_euclid:7::print_uchar:24 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#33 print_uchar::$2 ] { { print_char_cursor#55 = print_char_cursor#66 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#1 = print_uchar::b#3 print_euclid::b#10 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#1 = print_char::ch#4 } } print_euclid:9::print_uchar:24 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#33 print_uchar::$2 ] { { print_char_cursor#55 = print_char_cursor#67 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#1 = print_uchar::b#3 print_euclid::b#10 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#1 = print_char::ch#4 } } print_euclid:11::print_uchar:24 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#33 print_uchar::$2 ] { { print_char_cursor#55 = print_char_cursor#68 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#1 = print_uchar::b#3 print_euclid::b#10 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#1 = print_char::ch#4 } } print_euclid:13::print_uchar:24 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#33 print_uchar::$2 ] { { print_char_cursor#55 = print_char_cursor#69 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#1 = print_uchar::b#3 print_euclid::b#10 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#1 = print_char::ch#4 } } print_euclid:3::print_uchar:32 [ print_line_cursor#35 print_char_cursor#33 print_uchar::$2 ] { { print_uchar::b#2 = print_uchar::b#3 euclid::return#0 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#1 = print_char::ch#4 } } print_euclid:5::print_uchar:32 [ print_line_cursor#35 print_char_cursor#33 print_uchar::$2 ] { { print_char_cursor#55 = print_char_cursor#65 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#2 = print_uchar::b#3 euclid::return#0 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#1 = print_char::ch#4 } } print_euclid:7::print_uchar:32 [ print_line_cursor#35 print_char_cursor#33 print_uchar::$2 ] { { print_char_cursor#55 = print_char_cursor#66 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#2 = print_uchar::b#3 euclid::return#0 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#1 = print_char::ch#4 } } print_euclid:9::print_uchar:32 [ print_line_cursor#35 print_char_cursor#33 print_uchar::$2 ] { { print_char_cursor#55 = print_char_cursor#67 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#2 = print_uchar::b#3 euclid::return#0 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#1 = print_char::ch#4 } } print_euclid:11::print_uchar:32 [ print_line_cursor#35 print_char_cursor#33 print_uchar::$2 ] { { print_char_cursor#55 = print_char_cursor#68 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#2 = print_uchar::b#3 euclid::return#0 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#1 = print_char::ch#4 } } print_euclid:13::print_uchar:32 [ print_line_cursor#35 print_char_cursor#33 print_uchar::$2 ] { { print_char_cursor#55 = print_char_cursor#69 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#2 = print_uchar::b#3 euclid::return#0 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#1 = print_char::ch#4 } } ) always clobbers reg byte a Statement [51] *print_char_cursor#32 = print_char::ch#4 [ print_char_cursor#32 ] ( print_euclid:3::print_char:22 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#32 = print_char_cursor#33 } } print_euclid:5::print_char:22 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#65 } { print_line_cursor#0 = print_line_cursor#35 } { print_char_cursor#32 = print_char_cursor#33 } } print_euclid:7::print_char:22 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#66 } { print_line_cursor#0 = print_line_cursor#35 } { print_char_cursor#32 = print_char_cursor#33 } } print_euclid:9::print_char:22 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#67 } { print_line_cursor#0 = print_line_cursor#35 } { print_char_cursor#32 = print_char_cursor#33 } } print_euclid:11::print_char:22 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#68 } { print_line_cursor#0 = print_line_cursor#35 } { print_char_cursor#32 = print_char_cursor#33 } } print_euclid:13::print_char:22 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#69 } { print_line_cursor#0 = print_line_cursor#35 } { print_char_cursor#32 = print_char_cursor#33 } } print_euclid:3::print_char:26 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#32 = print_char_cursor#33 } } print_euclid:5::print_char:26 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#65 } { print_line_cursor#0 = print_line_cursor#35 } { print_char_cursor#32 = print_char_cursor#33 } } print_euclid:7::print_char:26 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#66 } { print_line_cursor#0 = print_line_cursor#35 } { print_char_cursor#32 = print_char_cursor#33 } } print_euclid:9::print_char:26 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#67 } { print_line_cursor#0 = print_line_cursor#35 } { print_char_cursor#32 = print_char_cursor#33 } } print_euclid:11::print_char:26 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#68 } { print_line_cursor#0 = print_line_cursor#35 } { print_char_cursor#32 = print_char_cursor#33 } } print_euclid:13::print_char:26 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#69 } { print_line_cursor#0 = print_line_cursor#35 } { print_char_cursor#32 = print_char_cursor#33 } } print_euclid:3::print_uchar:20::print_char:45 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_uchar::b#3 print_char_cursor#32 ] { { print_uchar::b#0 = print_uchar::b#3 print_euclid::a#10 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#55 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:5::print_uchar:20::print_char:45 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_uchar::b#3 print_char_cursor#32 ] { { print_char_cursor#32 = print_char_cursor#55 print_char_cursor#65 print_char_cursor#53 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#0 = print_uchar::b#3 print_euclid::a#10 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:7::print_uchar:20::print_char:45 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_uchar::b#3 print_char_cursor#32 ] { { print_char_cursor#32 = print_char_cursor#55 print_char_cursor#66 print_char_cursor#53 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#0 = print_uchar::b#3 print_euclid::a#10 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:9::print_uchar:20::print_char:45 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_uchar::b#3 print_char_cursor#32 ] { { print_char_cursor#32 = print_char_cursor#55 print_char_cursor#67 print_char_cursor#53 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#0 = print_uchar::b#3 print_euclid::a#10 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:11::print_uchar:20::print_char:45 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_uchar::b#3 print_char_cursor#32 ] { { print_char_cursor#32 = print_char_cursor#55 print_char_cursor#68 print_char_cursor#53 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#0 = print_uchar::b#3 print_euclid::a#10 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:13::print_uchar:20::print_char:45 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_uchar::b#3 print_char_cursor#32 ] { { print_char_cursor#32 = print_char_cursor#55 print_char_cursor#69 print_char_cursor#53 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#0 = print_uchar::b#3 print_euclid::a#10 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:3::print_uchar:24::print_char:45 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_uchar::b#3 print_char_cursor#32 ] { { print_uchar::b#1 = print_uchar::b#3 print_euclid::b#10 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:5::print_uchar:24::print_char:45 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_uchar::b#3 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#65 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#1 = print_uchar::b#3 print_euclid::b#10 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:7::print_uchar:24::print_char:45 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_uchar::b#3 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#66 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#1 = print_uchar::b#3 print_euclid::b#10 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:9::print_uchar:24::print_char:45 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_uchar::b#3 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#67 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#1 = print_uchar::b#3 print_euclid::b#10 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:11::print_uchar:24::print_char:45 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_uchar::b#3 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#68 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#1 = print_uchar::b#3 print_euclid::b#10 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:13::print_uchar:24::print_char:45 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_uchar::b#3 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#69 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#1 = print_uchar::b#3 print_euclid::b#10 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:3::print_uchar:32::print_char:45 [ print_line_cursor#35 print_uchar::b#3 print_char_cursor#32 ] { { print_uchar::b#2 = print_uchar::b#3 euclid::return#0 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:5::print_uchar:32::print_char:45 [ print_line_cursor#35 print_uchar::b#3 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#65 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#2 = print_uchar::b#3 euclid::return#0 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:7::print_uchar:32::print_char:45 [ print_line_cursor#35 print_uchar::b#3 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#66 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#2 = print_uchar::b#3 euclid::return#0 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:9::print_uchar:32::print_char:45 [ print_line_cursor#35 print_uchar::b#3 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#67 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#2 = print_uchar::b#3 euclid::return#0 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:11::print_uchar:32::print_char:45 [ print_line_cursor#35 print_uchar::b#3 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#68 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#2 = print_uchar::b#3 euclid::return#0 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:13::print_uchar:32::print_char:45 [ print_line_cursor#35 print_uchar::b#3 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#69 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#2 = print_uchar::b#3 euclid::return#0 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:3::print_uchar:20::print_char:48 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#32 ] { { print_uchar::b#0 = print_uchar::b#3 print_euclid::a#10 } { print_char_cursor#53 = print_char_cursor#55 } { print_char::ch#1 = print_char::ch#4 } { print_char_cursor#32 = print_char_cursor#33 } } print_euclid:5::print_uchar:20::print_char:48 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#53 = print_char_cursor#55 print_char_cursor#65 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#0 = print_uchar::b#3 print_euclid::a#10 } { print_char::ch#1 = print_char::ch#4 } { print_char_cursor#32 = print_char_cursor#33 } } print_euclid:7::print_uchar:20::print_char:48 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#53 = print_char_cursor#55 print_char_cursor#66 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#0 = print_uchar::b#3 print_euclid::a#10 } { print_char::ch#1 = print_char::ch#4 } { print_char_cursor#32 = print_char_cursor#33 } } print_euclid:9::print_uchar:20::print_char:48 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#53 = print_char_cursor#55 print_char_cursor#67 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#0 = print_uchar::b#3 print_euclid::a#10 } { print_char::ch#1 = print_char::ch#4 } { print_char_cursor#32 = print_char_cursor#33 } } print_euclid:11::print_uchar:20::print_char:48 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#53 = print_char_cursor#55 print_char_cursor#68 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#0 = print_uchar::b#3 print_euclid::a#10 } { print_char::ch#1 = print_char::ch#4 } { print_char_cursor#32 = print_char_cursor#33 } } print_euclid:13::print_uchar:20::print_char:48 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#53 = print_char_cursor#55 print_char_cursor#69 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#0 = print_uchar::b#3 print_euclid::a#10 } { print_char::ch#1 = print_char::ch#4 } { print_char_cursor#32 = print_char_cursor#33 } } print_euclid:3::print_uchar:24::print_char:48 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#32 ] { { print_uchar::b#1 = print_uchar::b#3 print_euclid::b#10 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#1 = print_char::ch#4 } } print_euclid:5::print_uchar:24::print_char:48 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#65 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#1 = print_uchar::b#3 print_euclid::b#10 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#1 = print_char::ch#4 } } print_euclid:7::print_uchar:24::print_char:48 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#66 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#1 = print_uchar::b#3 print_euclid::b#10 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#1 = print_char::ch#4 } } print_euclid:9::print_uchar:24::print_char:48 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#67 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#1 = print_uchar::b#3 print_euclid::b#10 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#1 = print_char::ch#4 } } print_euclid:11::print_uchar:24::print_char:48 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#68 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#1 = print_uchar::b#3 print_euclid::b#10 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#1 = print_char::ch#4 } } print_euclid:13::print_uchar:24::print_char:48 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#69 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#1 = print_uchar::b#3 print_euclid::b#10 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#1 = print_char::ch#4 } } print_euclid:3::print_uchar:32::print_char:48 [ print_line_cursor#35 print_char_cursor#32 ] { { print_uchar::b#2 = print_uchar::b#3 euclid::return#0 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#1 = print_char::ch#4 } } print_euclid:5::print_uchar:32::print_char:48 [ print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#65 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#2 = print_uchar::b#3 euclid::return#0 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#1 = print_char::ch#4 } } print_euclid:7::print_uchar:32::print_char:48 [ print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#66 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#2 = print_uchar::b#3 euclid::return#0 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#1 = print_char::ch#4 } } print_euclid:9::print_uchar:32::print_char:48 [ print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#67 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#2 = print_uchar::b#3 euclid::return#0 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#1 = print_char::ch#4 } } print_euclid:11::print_uchar:32::print_char:48 [ print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#68 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#2 = print_uchar::b#3 euclid::return#0 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#1 = print_char::ch#4 } } print_euclid:13::print_uchar:32::print_char:48 [ print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#69 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#2 = print_uchar::b#3 euclid::return#0 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#1 = print_char::ch#4 } } ) always clobbers reg byte y Removing always clobbered register reg byte y as potential for zp[1]:15 [ print_euclid::a#10 ] Removing always clobbered register reg byte y as potential for zp[1]:16 [ print_euclid::b#10 ] Removing always clobbered register reg byte y as potential for zp[1]:13 [ print_uchar::b#3 print_uchar::b#0 print_uchar::b#1 print_uchar::b#2 ] Statement [59] euclid::b#1 = euclid::b#2 - euclid::a#2 [ euclid::a#2 euclid::b#1 ] ( print_euclid:3::euclid:29 [ print_line_cursor#35 print_char_cursor#33 euclid::a#2 euclid::b#1 ] { { euclid::a#0 = print_euclid::a#10 } { euclid::b#0 = print_euclid::b#10 } { euclid::return#0 = euclid::a#2 } } print_euclid:5::euclid:29 [ print_line_cursor#35 print_char_cursor#33 euclid::a#2 euclid::b#1 ] { { print_char_cursor#55 = print_char_cursor#65 } { print_line_cursor#0 = print_line_cursor#35 } { euclid::a#0 = print_euclid::a#10 } { euclid::b#0 = print_euclid::b#10 } { euclid::return#0 = euclid::a#2 } } print_euclid:7::euclid:29 [ print_line_cursor#35 print_char_cursor#33 euclid::a#2 euclid::b#1 ] { { print_char_cursor#55 = print_char_cursor#66 } { print_line_cursor#0 = print_line_cursor#35 } { euclid::a#0 = print_euclid::a#10 } { euclid::b#0 = print_euclid::b#10 } { euclid::return#0 = euclid::a#2 } } print_euclid:9::euclid:29 [ print_line_cursor#35 print_char_cursor#33 euclid::a#2 euclid::b#1 ] { { print_char_cursor#55 = print_char_cursor#67 } { print_line_cursor#0 = print_line_cursor#35 } { euclid::a#0 = print_euclid::a#10 } { euclid::b#0 = print_euclid::b#10 } { euclid::return#0 = euclid::a#2 } } print_euclid:11::euclid:29 [ print_line_cursor#35 print_char_cursor#33 euclid::a#2 euclid::b#1 ] { { print_char_cursor#55 = print_char_cursor#68 } { print_line_cursor#0 = print_line_cursor#35 } { euclid::a#0 = print_euclid::a#10 } { euclid::b#0 = print_euclid::b#10 } { euclid::return#0 = euclid::a#2 } } print_euclid:13::euclid:29 [ print_line_cursor#35 print_char_cursor#33 euclid::a#2 euclid::b#1 ] { { print_char_cursor#55 = print_char_cursor#69 } { print_line_cursor#0 = print_line_cursor#35 } { euclid::a#0 = print_euclid::a#10 } { euclid::b#0 = print_euclid::b#10 } { euclid::return#0 = euclid::a#2 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:5 [ euclid::a#2 euclid::a#0 euclid::a#1 ] Statement [60] euclid::a#1 = euclid::a#2 - euclid::b#2 [ euclid::b#2 euclid::a#1 ] ( print_euclid:3::euclid:29 [ print_line_cursor#35 print_char_cursor#33 euclid::b#2 euclid::a#1 ] { { euclid::a#0 = print_euclid::a#10 } { euclid::b#0 = print_euclid::b#10 } { euclid::return#0 = euclid::a#2 } } print_euclid:5::euclid:29 [ print_line_cursor#35 print_char_cursor#33 euclid::b#2 euclid::a#1 ] { { print_char_cursor#55 = print_char_cursor#65 } { print_line_cursor#0 = print_line_cursor#35 } { euclid::a#0 = print_euclid::a#10 } { euclid::b#0 = print_euclid::b#10 } { euclid::return#0 = euclid::a#2 } } print_euclid:7::euclid:29 [ print_line_cursor#35 print_char_cursor#33 euclid::b#2 euclid::a#1 ] { { print_char_cursor#55 = print_char_cursor#66 } { print_line_cursor#0 = print_line_cursor#35 } { euclid::a#0 = print_euclid::a#10 } { euclid::b#0 = print_euclid::b#10 } { euclid::return#0 = euclid::a#2 } } print_euclid:9::euclid:29 [ print_line_cursor#35 print_char_cursor#33 euclid::b#2 euclid::a#1 ] { { print_char_cursor#55 = print_char_cursor#67 } { print_line_cursor#0 = print_line_cursor#35 } { euclid::a#0 = print_euclid::a#10 } { euclid::b#0 = print_euclid::b#10 } { euclid::return#0 = euclid::a#2 } } print_euclid:11::euclid:29 [ print_line_cursor#35 print_char_cursor#33 euclid::b#2 euclid::a#1 ] { { print_char_cursor#55 = print_char_cursor#68 } { print_line_cursor#0 = print_line_cursor#35 } { euclid::a#0 = print_euclid::a#10 } { euclid::b#0 = print_euclid::b#10 } { euclid::return#0 = euclid::a#2 } } print_euclid:13::euclid:29 [ print_line_cursor#35 print_char_cursor#33 euclid::b#2 euclid::a#1 ] { { print_char_cursor#55 = print_char_cursor#69 } { print_line_cursor#0 = print_line_cursor#35 } { euclid::a#0 = print_euclid::a#10 } { euclid::b#0 = print_euclid::b#10 } { euclid::return#0 = euclid::a#2 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:2 [ euclid::b#2 euclid::b#0 euclid::b#1 ] Statement [63] print_line_cursor#0 = print_line_cursor#17 + $28 [ print_line_cursor#0 print_char_cursor#33 ] ( print_euclid:3::print_ln:34 [ print_line_cursor#0 print_char_cursor#33 ] { } print_euclid:5::print_ln:34 [ print_line_cursor#0 print_char_cursor#33 ] { { print_char_cursor#55 = print_char_cursor#65 } { print_line_cursor#0 = print_line_cursor#35 } } print_euclid:7::print_ln:34 [ print_line_cursor#0 print_char_cursor#33 ] { { print_char_cursor#55 = print_char_cursor#66 } { print_line_cursor#0 = print_line_cursor#35 } } print_euclid:9::print_ln:34 [ print_line_cursor#0 print_char_cursor#33 ] { { print_char_cursor#55 = print_char_cursor#67 } { print_line_cursor#0 = print_line_cursor#35 } } print_euclid:11::print_ln:34 [ print_line_cursor#0 print_char_cursor#33 ] { { print_char_cursor#55 = print_char_cursor#68 } { print_line_cursor#0 = print_line_cursor#35 } } print_euclid:13::print_ln:34 [ print_line_cursor#0 print_char_cursor#33 ] { { print_char_cursor#55 = print_char_cursor#69 } { print_line_cursor#0 = print_line_cursor#35 } } ) always clobbers reg byte a Statement [64] if(print_line_cursor#0> 4 [ print_uchar::b#3 print_char_cursor#53 print_uchar::$0 ] ( print_euclid:3::print_uchar:20 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_uchar::b#3 print_char_cursor#53 print_uchar::$0 ] { { print_uchar::b#0 = print_uchar::b#3 print_euclid::a#10 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#55 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:5::print_uchar:20 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_uchar::b#3 print_char_cursor#53 print_uchar::$0 ] { { print_char_cursor#32 = print_char_cursor#55 print_char_cursor#65 print_char_cursor#53 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#0 = print_uchar::b#3 print_euclid::a#10 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:7::print_uchar:20 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_uchar::b#3 print_char_cursor#53 print_uchar::$0 ] { { print_char_cursor#32 = print_char_cursor#55 print_char_cursor#66 print_char_cursor#53 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#0 = print_uchar::b#3 print_euclid::a#10 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:9::print_uchar:20 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_uchar::b#3 print_char_cursor#53 print_uchar::$0 ] { { print_char_cursor#32 = print_char_cursor#55 print_char_cursor#67 print_char_cursor#53 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#0 = print_uchar::b#3 print_euclid::a#10 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:11::print_uchar:20 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_uchar::b#3 print_char_cursor#53 print_uchar::$0 ] { { print_char_cursor#32 = print_char_cursor#55 print_char_cursor#68 print_char_cursor#53 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#0 = print_uchar::b#3 print_euclid::a#10 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:13::print_uchar:20 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_uchar::b#3 print_char_cursor#53 print_uchar::$0 ] { { print_char_cursor#32 = print_char_cursor#55 print_char_cursor#69 print_char_cursor#53 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#0 = print_uchar::b#3 print_euclid::a#10 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:3::print_uchar:24 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_uchar::b#3 print_char_cursor#53 print_uchar::$0 ] { { print_uchar::b#1 = print_uchar::b#3 print_euclid::b#10 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:5::print_uchar:24 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_uchar::b#3 print_char_cursor#53 print_uchar::$0 ] { { print_char_cursor#55 = print_char_cursor#65 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#1 = print_uchar::b#3 print_euclid::b#10 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:7::print_uchar:24 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_uchar::b#3 print_char_cursor#53 print_uchar::$0 ] { { print_char_cursor#55 = print_char_cursor#66 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#1 = print_uchar::b#3 print_euclid::b#10 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:9::print_uchar:24 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_uchar::b#3 print_char_cursor#53 print_uchar::$0 ] { { print_char_cursor#55 = print_char_cursor#67 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#1 = print_uchar::b#3 print_euclid::b#10 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:11::print_uchar:24 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_uchar::b#3 print_char_cursor#53 print_uchar::$0 ] { { print_char_cursor#55 = print_char_cursor#68 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#1 = print_uchar::b#3 print_euclid::b#10 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:13::print_uchar:24 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_uchar::b#3 print_char_cursor#53 print_uchar::$0 ] { { print_char_cursor#55 = print_char_cursor#69 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#1 = print_uchar::b#3 print_euclid::b#10 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:3::print_uchar:32 [ print_line_cursor#35 print_uchar::b#3 print_char_cursor#53 print_uchar::$0 ] { { print_uchar::b#2 = print_uchar::b#3 euclid::return#0 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:5::print_uchar:32 [ print_line_cursor#35 print_uchar::b#3 print_char_cursor#53 print_uchar::$0 ] { { print_char_cursor#55 = print_char_cursor#65 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#2 = print_uchar::b#3 euclid::return#0 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:7::print_uchar:32 [ print_line_cursor#35 print_uchar::b#3 print_char_cursor#53 print_uchar::$0 ] { { print_char_cursor#55 = print_char_cursor#66 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#2 = print_uchar::b#3 euclid::return#0 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:9::print_uchar:32 [ print_line_cursor#35 print_uchar::b#3 print_char_cursor#53 print_uchar::$0 ] { { print_char_cursor#55 = print_char_cursor#67 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#2 = print_uchar::b#3 euclid::return#0 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:11::print_uchar:32 [ print_line_cursor#35 print_uchar::b#3 print_char_cursor#53 print_uchar::$0 ] { { print_char_cursor#55 = print_char_cursor#68 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#2 = print_uchar::b#3 euclid::return#0 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:13::print_uchar:32 [ print_line_cursor#35 print_uchar::b#3 print_char_cursor#53 print_uchar::$0 ] { { print_char_cursor#55 = print_char_cursor#69 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#2 = print_uchar::b#3 euclid::return#0 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#0 = print_char::ch#4 } } ) always clobbers reg byte a Statement [46] print_uchar::$2 = print_uchar::b#3 & $f [ print_char_cursor#33 print_uchar::$2 ] ( print_euclid:3::print_uchar:20 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#33 print_uchar::$2 ] { { print_uchar::b#0 = print_uchar::b#3 print_euclid::a#10 } { print_char_cursor#53 = print_char_cursor#55 } { print_char::ch#1 = print_char::ch#4 } { print_char_cursor#32 = print_char_cursor#33 } } print_euclid:5::print_uchar:20 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#33 print_uchar::$2 ] { { print_char_cursor#53 = print_char_cursor#55 print_char_cursor#65 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#0 = print_uchar::b#3 print_euclid::a#10 } { print_char::ch#1 = print_char::ch#4 } { print_char_cursor#32 = print_char_cursor#33 } } print_euclid:7::print_uchar:20 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#33 print_uchar::$2 ] { { print_char_cursor#53 = print_char_cursor#55 print_char_cursor#66 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#0 = print_uchar::b#3 print_euclid::a#10 } { print_char::ch#1 = print_char::ch#4 } { print_char_cursor#32 = print_char_cursor#33 } } print_euclid:9::print_uchar:20 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#33 print_uchar::$2 ] { { print_char_cursor#53 = print_char_cursor#55 print_char_cursor#67 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#0 = print_uchar::b#3 print_euclid::a#10 } { print_char::ch#1 = print_char::ch#4 } { print_char_cursor#32 = print_char_cursor#33 } } print_euclid:11::print_uchar:20 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#33 print_uchar::$2 ] { { print_char_cursor#53 = print_char_cursor#55 print_char_cursor#68 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#0 = print_uchar::b#3 print_euclid::a#10 } { print_char::ch#1 = print_char::ch#4 } { print_char_cursor#32 = print_char_cursor#33 } } print_euclid:13::print_uchar:20 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#33 print_uchar::$2 ] { { print_char_cursor#53 = print_char_cursor#55 print_char_cursor#69 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#0 = print_uchar::b#3 print_euclid::a#10 } { print_char::ch#1 = print_char::ch#4 } { print_char_cursor#32 = print_char_cursor#33 } } print_euclid:3::print_uchar:24 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#33 print_uchar::$2 ] { { print_uchar::b#1 = print_uchar::b#3 print_euclid::b#10 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#1 = print_char::ch#4 } } print_euclid:5::print_uchar:24 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#33 print_uchar::$2 ] { { print_char_cursor#55 = print_char_cursor#65 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#1 = print_uchar::b#3 print_euclid::b#10 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#1 = print_char::ch#4 } } print_euclid:7::print_uchar:24 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#33 print_uchar::$2 ] { { print_char_cursor#55 = print_char_cursor#66 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#1 = print_uchar::b#3 print_euclid::b#10 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#1 = print_char::ch#4 } } print_euclid:9::print_uchar:24 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#33 print_uchar::$2 ] { { print_char_cursor#55 = print_char_cursor#67 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#1 = print_uchar::b#3 print_euclid::b#10 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#1 = print_char::ch#4 } } print_euclid:11::print_uchar:24 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#33 print_uchar::$2 ] { { print_char_cursor#55 = print_char_cursor#68 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#1 = print_uchar::b#3 print_euclid::b#10 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#1 = print_char::ch#4 } } print_euclid:13::print_uchar:24 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#33 print_uchar::$2 ] { { print_char_cursor#55 = print_char_cursor#69 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#1 = print_uchar::b#3 print_euclid::b#10 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#1 = print_char::ch#4 } } print_euclid:3::print_uchar:32 [ print_line_cursor#35 print_char_cursor#33 print_uchar::$2 ] { { print_uchar::b#2 = print_uchar::b#3 euclid::return#0 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#1 = print_char::ch#4 } } print_euclid:5::print_uchar:32 [ print_line_cursor#35 print_char_cursor#33 print_uchar::$2 ] { { print_char_cursor#55 = print_char_cursor#65 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#2 = print_uchar::b#3 euclid::return#0 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#1 = print_char::ch#4 } } print_euclid:7::print_uchar:32 [ print_line_cursor#35 print_char_cursor#33 print_uchar::$2 ] { { print_char_cursor#55 = print_char_cursor#66 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#2 = print_uchar::b#3 euclid::return#0 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#1 = print_char::ch#4 } } print_euclid:9::print_uchar:32 [ print_line_cursor#35 print_char_cursor#33 print_uchar::$2 ] { { print_char_cursor#55 = print_char_cursor#67 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#2 = print_uchar::b#3 euclid::return#0 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#1 = print_char::ch#4 } } print_euclid:11::print_uchar:32 [ print_line_cursor#35 print_char_cursor#33 print_uchar::$2 ] { { print_char_cursor#55 = print_char_cursor#68 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#2 = print_uchar::b#3 euclid::return#0 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#1 = print_char::ch#4 } } print_euclid:13::print_uchar:32 [ print_line_cursor#35 print_char_cursor#33 print_uchar::$2 ] { { print_char_cursor#55 = print_char_cursor#69 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#2 = print_uchar::b#3 euclid::return#0 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#1 = print_char::ch#4 } } ) always clobbers reg byte a Statement [51] *print_char_cursor#32 = print_char::ch#4 [ print_char_cursor#32 ] ( print_euclid:3::print_char:22 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#32 = print_char_cursor#33 } } print_euclid:5::print_char:22 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#65 } { print_line_cursor#0 = print_line_cursor#35 } { print_char_cursor#32 = print_char_cursor#33 } } print_euclid:7::print_char:22 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#66 } { print_line_cursor#0 = print_line_cursor#35 } { print_char_cursor#32 = print_char_cursor#33 } } print_euclid:9::print_char:22 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#67 } { print_line_cursor#0 = print_line_cursor#35 } { print_char_cursor#32 = print_char_cursor#33 } } print_euclid:11::print_char:22 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#68 } { print_line_cursor#0 = print_line_cursor#35 } { print_char_cursor#32 = print_char_cursor#33 } } print_euclid:13::print_char:22 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#69 } { print_line_cursor#0 = print_line_cursor#35 } { print_char_cursor#32 = print_char_cursor#33 } } print_euclid:3::print_char:26 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#32 = print_char_cursor#33 } } print_euclid:5::print_char:26 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#65 } { print_line_cursor#0 = print_line_cursor#35 } { print_char_cursor#32 = print_char_cursor#33 } } print_euclid:7::print_char:26 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#66 } { print_line_cursor#0 = print_line_cursor#35 } { print_char_cursor#32 = print_char_cursor#33 } } print_euclid:9::print_char:26 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#67 } { print_line_cursor#0 = print_line_cursor#35 } { print_char_cursor#32 = print_char_cursor#33 } } print_euclid:11::print_char:26 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#68 } { print_line_cursor#0 = print_line_cursor#35 } { print_char_cursor#32 = print_char_cursor#33 } } print_euclid:13::print_char:26 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#69 } { print_line_cursor#0 = print_line_cursor#35 } { print_char_cursor#32 = print_char_cursor#33 } } print_euclid:3::print_uchar:20::print_char:45 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_uchar::b#3 print_char_cursor#32 ] { { print_uchar::b#0 = print_uchar::b#3 print_euclid::a#10 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#55 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:5::print_uchar:20::print_char:45 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_uchar::b#3 print_char_cursor#32 ] { { print_char_cursor#32 = print_char_cursor#55 print_char_cursor#65 print_char_cursor#53 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#0 = print_uchar::b#3 print_euclid::a#10 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:7::print_uchar:20::print_char:45 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_uchar::b#3 print_char_cursor#32 ] { { print_char_cursor#32 = print_char_cursor#55 print_char_cursor#66 print_char_cursor#53 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#0 = print_uchar::b#3 print_euclid::a#10 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:9::print_uchar:20::print_char:45 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_uchar::b#3 print_char_cursor#32 ] { { print_char_cursor#32 = print_char_cursor#55 print_char_cursor#67 print_char_cursor#53 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#0 = print_uchar::b#3 print_euclid::a#10 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:11::print_uchar:20::print_char:45 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_uchar::b#3 print_char_cursor#32 ] { { print_char_cursor#32 = print_char_cursor#55 print_char_cursor#68 print_char_cursor#53 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#0 = print_uchar::b#3 print_euclid::a#10 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:13::print_uchar:20::print_char:45 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_uchar::b#3 print_char_cursor#32 ] { { print_char_cursor#32 = print_char_cursor#55 print_char_cursor#69 print_char_cursor#53 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#0 = print_uchar::b#3 print_euclid::a#10 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:3::print_uchar:24::print_char:45 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_uchar::b#3 print_char_cursor#32 ] { { print_uchar::b#1 = print_uchar::b#3 print_euclid::b#10 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:5::print_uchar:24::print_char:45 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_uchar::b#3 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#65 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#1 = print_uchar::b#3 print_euclid::b#10 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:7::print_uchar:24::print_char:45 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_uchar::b#3 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#66 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#1 = print_uchar::b#3 print_euclid::b#10 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:9::print_uchar:24::print_char:45 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_uchar::b#3 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#67 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#1 = print_uchar::b#3 print_euclid::b#10 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:11::print_uchar:24::print_char:45 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_uchar::b#3 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#68 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#1 = print_uchar::b#3 print_euclid::b#10 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:13::print_uchar:24::print_char:45 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_uchar::b#3 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#69 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#1 = print_uchar::b#3 print_euclid::b#10 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:3::print_uchar:32::print_char:45 [ print_line_cursor#35 print_uchar::b#3 print_char_cursor#32 ] { { print_uchar::b#2 = print_uchar::b#3 euclid::return#0 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:5::print_uchar:32::print_char:45 [ print_line_cursor#35 print_uchar::b#3 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#65 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#2 = print_uchar::b#3 euclid::return#0 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:7::print_uchar:32::print_char:45 [ print_line_cursor#35 print_uchar::b#3 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#66 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#2 = print_uchar::b#3 euclid::return#0 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:9::print_uchar:32::print_char:45 [ print_line_cursor#35 print_uchar::b#3 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#67 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#2 = print_uchar::b#3 euclid::return#0 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:11::print_uchar:32::print_char:45 [ print_line_cursor#35 print_uchar::b#3 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#68 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#2 = print_uchar::b#3 euclid::return#0 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:13::print_uchar:32::print_char:45 [ print_line_cursor#35 print_uchar::b#3 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#69 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#2 = print_uchar::b#3 euclid::return#0 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#0 = print_char::ch#4 } } print_euclid:3::print_uchar:20::print_char:48 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#32 ] { { print_uchar::b#0 = print_uchar::b#3 print_euclid::a#10 } { print_char_cursor#53 = print_char_cursor#55 } { print_char::ch#1 = print_char::ch#4 } { print_char_cursor#32 = print_char_cursor#33 } } print_euclid:5::print_uchar:20::print_char:48 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#53 = print_char_cursor#55 print_char_cursor#65 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#0 = print_uchar::b#3 print_euclid::a#10 } { print_char::ch#1 = print_char::ch#4 } { print_char_cursor#32 = print_char_cursor#33 } } print_euclid:7::print_uchar:20::print_char:48 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#53 = print_char_cursor#55 print_char_cursor#66 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#0 = print_uchar::b#3 print_euclid::a#10 } { print_char::ch#1 = print_char::ch#4 } { print_char_cursor#32 = print_char_cursor#33 } } print_euclid:9::print_uchar:20::print_char:48 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#53 = print_char_cursor#55 print_char_cursor#67 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#0 = print_uchar::b#3 print_euclid::a#10 } { print_char::ch#1 = print_char::ch#4 } { print_char_cursor#32 = print_char_cursor#33 } } print_euclid:11::print_uchar:20::print_char:48 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#53 = print_char_cursor#55 print_char_cursor#68 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#0 = print_uchar::b#3 print_euclid::a#10 } { print_char::ch#1 = print_char::ch#4 } { print_char_cursor#32 = print_char_cursor#33 } } print_euclid:13::print_uchar:20::print_char:48 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#53 = print_char_cursor#55 print_char_cursor#69 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#0 = print_uchar::b#3 print_euclid::a#10 } { print_char::ch#1 = print_char::ch#4 } { print_char_cursor#32 = print_char_cursor#33 } } print_euclid:3::print_uchar:24::print_char:48 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#32 ] { { print_uchar::b#1 = print_uchar::b#3 print_euclid::b#10 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#1 = print_char::ch#4 } } print_euclid:5::print_uchar:24::print_char:48 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#65 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#1 = print_uchar::b#3 print_euclid::b#10 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#1 = print_char::ch#4 } } print_euclid:7::print_uchar:24::print_char:48 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#66 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#1 = print_uchar::b#3 print_euclid::b#10 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#1 = print_char::ch#4 } } print_euclid:9::print_uchar:24::print_char:48 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#67 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#1 = print_uchar::b#3 print_euclid::b#10 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#1 = print_char::ch#4 } } print_euclid:11::print_uchar:24::print_char:48 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#68 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#1 = print_uchar::b#3 print_euclid::b#10 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#1 = print_char::ch#4 } } print_euclid:13::print_uchar:24::print_char:48 [ print_euclid::a#10 print_euclid::b#10 print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#69 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#1 = print_uchar::b#3 print_euclid::b#10 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#1 = print_char::ch#4 } } print_euclid:3::print_uchar:32::print_char:48 [ print_line_cursor#35 print_char_cursor#32 ] { { print_uchar::b#2 = print_uchar::b#3 euclid::return#0 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#1 = print_char::ch#4 } } print_euclid:5::print_uchar:32::print_char:48 [ print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#65 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#2 = print_uchar::b#3 euclid::return#0 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#1 = print_char::ch#4 } } print_euclid:7::print_uchar:32::print_char:48 [ print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#66 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#2 = print_uchar::b#3 euclid::return#0 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#1 = print_char::ch#4 } } print_euclid:9::print_uchar:32::print_char:48 [ print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#67 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#2 = print_uchar::b#3 euclid::return#0 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#1 = print_char::ch#4 } } print_euclid:11::print_uchar:32::print_char:48 [ print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#68 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#2 = print_uchar::b#3 euclid::return#0 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#1 = print_char::ch#4 } } print_euclid:13::print_uchar:32::print_char:48 [ print_line_cursor#35 print_char_cursor#32 ] { { print_char_cursor#55 = print_char_cursor#69 } { print_line_cursor#0 = print_line_cursor#35 } { print_uchar::b#2 = print_uchar::b#3 euclid::return#0 } { print_char_cursor#32 = print_char_cursor#53 print_char_cursor#33 } { print_char::ch#1 = print_char::ch#4 } } ) always clobbers reg byte y Statement [59] euclid::b#1 = euclid::b#2 - euclid::a#2 [ euclid::a#2 euclid::b#1 ] ( print_euclid:3::euclid:29 [ print_line_cursor#35 print_char_cursor#33 euclid::a#2 euclid::b#1 ] { { euclid::a#0 = print_euclid::a#10 } { euclid::b#0 = print_euclid::b#10 } { euclid::return#0 = euclid::a#2 } } print_euclid:5::euclid:29 [ print_line_cursor#35 print_char_cursor#33 euclid::a#2 euclid::b#1 ] { { print_char_cursor#55 = print_char_cursor#65 } { print_line_cursor#0 = print_line_cursor#35 } { euclid::a#0 = print_euclid::a#10 } { euclid::b#0 = print_euclid::b#10 } { euclid::return#0 = euclid::a#2 } } print_euclid:7::euclid:29 [ print_line_cursor#35 print_char_cursor#33 euclid::a#2 euclid::b#1 ] { { print_char_cursor#55 = print_char_cursor#66 } { print_line_cursor#0 = print_line_cursor#35 } { euclid::a#0 = print_euclid::a#10 } { euclid::b#0 = print_euclid::b#10 } { euclid::return#0 = euclid::a#2 } } print_euclid:9::euclid:29 [ print_line_cursor#35 print_char_cursor#33 euclid::a#2 euclid::b#1 ] { { print_char_cursor#55 = print_char_cursor#67 } { print_line_cursor#0 = print_line_cursor#35 } { euclid::a#0 = print_euclid::a#10 } { euclid::b#0 = print_euclid::b#10 } { euclid::return#0 = euclid::a#2 } } print_euclid:11::euclid:29 [ print_line_cursor#35 print_char_cursor#33 euclid::a#2 euclid::b#1 ] { { print_char_cursor#55 = print_char_cursor#68 } { print_line_cursor#0 = print_line_cursor#35 } { euclid::a#0 = print_euclid::a#10 } { euclid::b#0 = print_euclid::b#10 } { euclid::return#0 = euclid::a#2 } } print_euclid:13::euclid:29 [ print_line_cursor#35 print_char_cursor#33 euclid::a#2 euclid::b#1 ] { { print_char_cursor#55 = print_char_cursor#69 } { print_line_cursor#0 = print_line_cursor#35 } { euclid::a#0 = print_euclid::a#10 } { euclid::b#0 = print_euclid::b#10 } { euclid::return#0 = euclid::a#2 } } ) always clobbers reg byte a Statement [60] euclid::a#1 = euclid::a#2 - euclid::b#2 [ euclid::b#2 euclid::a#1 ] ( print_euclid:3::euclid:29 [ print_line_cursor#35 print_char_cursor#33 euclid::b#2 euclid::a#1 ] { { euclid::a#0 = print_euclid::a#10 } { euclid::b#0 = print_euclid::b#10 } { euclid::return#0 = euclid::a#2 } } print_euclid:5::euclid:29 [ print_line_cursor#35 print_char_cursor#33 euclid::b#2 euclid::a#1 ] { { print_char_cursor#55 = print_char_cursor#65 } { print_line_cursor#0 = print_line_cursor#35 } { euclid::a#0 = print_euclid::a#10 } { euclid::b#0 = print_euclid::b#10 } { euclid::return#0 = euclid::a#2 } } print_euclid:7::euclid:29 [ print_line_cursor#35 print_char_cursor#33 euclid::b#2 euclid::a#1 ] { { print_char_cursor#55 = print_char_cursor#66 } { print_line_cursor#0 = print_line_cursor#35 } { euclid::a#0 = print_euclid::a#10 } { euclid::b#0 = print_euclid::b#10 } { euclid::return#0 = euclid::a#2 } } print_euclid:9::euclid:29 [ print_line_cursor#35 print_char_cursor#33 euclid::b#2 euclid::a#1 ] { { print_char_cursor#55 = print_char_cursor#67 } { print_line_cursor#0 = print_line_cursor#35 } { euclid::a#0 = print_euclid::a#10 } { euclid::b#0 = print_euclid::b#10 } { euclid::return#0 = euclid::a#2 } } print_euclid:11::euclid:29 [ print_line_cursor#35 print_char_cursor#33 euclid::b#2 euclid::a#1 ] { { print_char_cursor#55 = print_char_cursor#68 } { print_line_cursor#0 = print_line_cursor#35 } { euclid::a#0 = print_euclid::a#10 } { euclid::b#0 = print_euclid::b#10 } { euclid::return#0 = euclid::a#2 } } print_euclid:13::euclid:29 [ print_line_cursor#35 print_char_cursor#33 euclid::b#2 euclid::a#1 ] { { print_char_cursor#55 = print_char_cursor#69 } { print_line_cursor#0 = print_line_cursor#35 } { euclid::a#0 = print_euclid::a#10 } { euclid::b#0 = print_euclid::b#10 } { euclid::return#0 = euclid::a#2 } } ) always clobbers reg byte a Statement [63] print_line_cursor#0 = print_line_cursor#17 + $28 [ print_line_cursor#0 print_char_cursor#33 ] ( print_euclid:3::print_ln:34 [ print_line_cursor#0 print_char_cursor#33 ] { } print_euclid:5::print_ln:34 [ print_line_cursor#0 print_char_cursor#33 ] { { print_char_cursor#55 = print_char_cursor#65 } { print_line_cursor#0 = print_line_cursor#35 } } print_euclid:7::print_ln:34 [ print_line_cursor#0 print_char_cursor#33 ] { { print_char_cursor#55 = print_char_cursor#66 } { print_line_cursor#0 = print_line_cursor#35 } } print_euclid:9::print_ln:34 [ print_line_cursor#0 print_char_cursor#33 ] { { print_char_cursor#55 = print_char_cursor#67 } { print_line_cursor#0 = print_line_cursor#35 } } print_euclid:11::print_ln:34 [ print_line_cursor#0 print_char_cursor#33 ] { { print_char_cursor#55 = print_char_cursor#68 } { print_line_cursor#0 = print_line_cursor#35 } } print_euclid:13::print_ln:34 [ print_line_cursor#0 print_char_cursor#33 ] { { print_char_cursor#55 = print_char_cursor#69 } { print_line_cursor#0 = print_line_cursor#35 } } ) always clobbers reg byte a Statement [64] if(print_line_cursor#0print_cls] print_cls_from_main: jsr print_cls // [2] phi from main to main::@1 [phi:main->main::@1] __b1_from_main: jmp __b1 // main::@1 __b1: // [3] call print_euclid // [18] phi from main::@1 to print_euclid [phi:main::@1->print_euclid] print_euclid_from___b1: // [18] phi print_line_cursor#35 = print_screen#0 [phi:main::@1->print_euclid#0] -- pbuz1=pbuc1 lda #print_screen sta.z print_line_cursor+1 // [18] phi print_euclid::b#10 = 2 [phi:main::@1->print_euclid#1] -- vbuz1=vbuc1 lda #2 sta.z print_euclid.b // [18] phi print_char_cursor#55 = print_screen#0 [phi:main::@1->print_euclid#2] -- pbuz1=pbuc1 lda #print_screen sta.z print_char_cursor+1 // [18] phi print_euclid::a#10 = $80 [phi:main::@1->print_euclid#3] -- vbuz1=vbuc1 lda #$80 sta.z print_euclid.a jsr print_euclid jmp __b2 // main::@2 __b2: // [4] print_char_cursor#65 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 // [5] call print_euclid // [18] phi from main::@2 to print_euclid [phi:main::@2->print_euclid] print_euclid_from___b2: // [18] phi print_line_cursor#35 = print_line_cursor#0 [phi:main::@2->print_euclid#0] -- register_copy // [18] phi print_euclid::b#10 = $45 [phi:main::@2->print_euclid#1] -- vbuz1=vbuc1 lda #$45 sta.z print_euclid.b // [18] phi print_char_cursor#55 = print_char_cursor#65 [phi:main::@2->print_euclid#2] -- register_copy // [18] phi print_euclid::a#10 = $a9 [phi:main::@2->print_euclid#3] -- vbuz1=vbuc1 lda #$a9 sta.z print_euclid.a jsr print_euclid jmp __b3 // main::@3 __b3: // [6] print_char_cursor#66 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 // [7] call print_euclid // [18] phi from main::@3 to print_euclid [phi:main::@3->print_euclid] print_euclid_from___b3: // [18] phi print_line_cursor#35 = print_line_cursor#0 [phi:main::@3->print_euclid#0] -- register_copy // [18] phi print_euclid::b#10 = $37 [phi:main::@3->print_euclid#1] -- vbuz1=vbuc1 lda #$37 sta.z print_euclid.b // [18] phi print_char_cursor#55 = print_char_cursor#66 [phi:main::@3->print_euclid#2] -- register_copy // [18] phi print_euclid::a#10 = $9b [phi:main::@3->print_euclid#3] -- vbuz1=vbuc1 lda #$9b sta.z print_euclid.a jsr print_euclid jmp __b4 // main::@4 __b4: // [8] print_char_cursor#67 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 // [9] call print_euclid // [18] phi from main::@4 to print_euclid [phi:main::@4->print_euclid] print_euclid_from___b4: // [18] phi print_line_cursor#35 = print_line_cursor#0 [phi:main::@4->print_euclid#0] -- register_copy // [18] phi print_euclid::b#10 = 3 [phi:main::@4->print_euclid#1] -- vbuz1=vbuc1 lda #3 sta.z print_euclid.b // [18] phi print_char_cursor#55 = print_char_cursor#67 [phi:main::@4->print_euclid#2] -- register_copy // [18] phi print_euclid::a#10 = $c7 [phi:main::@4->print_euclid#3] -- vbuz1=vbuc1 lda #$c7 sta.z print_euclid.a jsr print_euclid jmp __b5 // main::@5 __b5: // [10] print_char_cursor#68 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 // [11] call print_euclid // [18] phi from main::@5 to print_euclid [phi:main::@5->print_euclid] print_euclid_from___b5: // [18] phi print_line_cursor#35 = print_line_cursor#0 [phi:main::@5->print_euclid#0] -- register_copy // [18] phi print_euclid::b#10 = $1a [phi:main::@5->print_euclid#1] -- vbuz1=vbuc1 lda #$1a sta.z print_euclid.b // [18] phi print_char_cursor#55 = print_char_cursor#68 [phi:main::@5->print_euclid#2] -- register_copy // [18] phi print_euclid::a#10 = $5b [phi:main::@5->print_euclid#3] -- vbuz1=vbuc1 lda #$5b sta.z print_euclid.a jsr print_euclid jmp __b6 // main::@6 __b6: // [12] print_char_cursor#69 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 // [13] call print_euclid // [18] phi from main::@6 to print_euclid [phi:main::@6->print_euclid] print_euclid_from___b6: // [18] phi print_line_cursor#35 = print_line_cursor#0 [phi:main::@6->print_euclid#0] -- register_copy // [18] phi print_euclid::b#10 = $bb [phi:main::@6->print_euclid#1] -- vbuz1=vbuc1 lda #$bb sta.z print_euclid.b // [18] phi print_char_cursor#55 = print_char_cursor#69 [phi:main::@6->print_euclid#2] -- register_copy // [18] phi print_euclid::a#10 = $77 [phi:main::@6->print_euclid#3] -- vbuz1=vbuc1 lda #$77 sta.z print_euclid.a jsr print_euclid jmp __breturn // main::@return __breturn: // [14] return rts } // print_cls // Clear the screen. Also resets current line/char cursor. print_cls: { // [16] call memset // [36] phi from print_cls to memset [phi:print_cls->memset] memset_from_print_cls: jsr memset jmp __breturn // print_cls::@return __breturn: // [17] return rts } // print_euclid // void print_euclid(__zp(4) char a, __zp(7) char b) print_euclid: { .label b = 7 .label a = 4 // [19] print_uchar::b#0 = print_euclid::a#10 -- vbuxx=vbuz1 ldx.z a // [20] call print_uchar // [42] phi from print_euclid to print_uchar [phi:print_euclid->print_uchar] print_uchar_from_print_euclid: // [42] phi print_char_cursor#53 = print_char_cursor#55 [phi:print_euclid->print_uchar#0] -- register_copy // [42] phi print_uchar::b#3 = print_uchar::b#0 [phi:print_euclid->print_uchar#1] -- register_copy jsr print_uchar // [21] phi from print_euclid to print_euclid::@1 [phi:print_euclid->print_euclid::@1] __b1_from_print_euclid: jmp __b1 // print_euclid::@1 __b1: // [22] call print_char // [50] phi from print_euclid::@1 to print_char [phi:print_euclid::@1->print_char] print_char_from___b1: // [50] phi print_char_cursor#32 = print_char_cursor#33 [phi:print_euclid::@1->print_char#0] -- register_copy // [50] phi print_char::ch#4 = ' ' [phi:print_euclid::@1->print_char#1] -- vbuaa=vbuc1 lda #' ' jsr print_char jmp __b2 // print_euclid::@2 __b2: // [23] print_uchar::b#1 = print_euclid::b#10 -- vbuxx=vbuz1 ldx.z b // [24] call print_uchar // [42] phi from print_euclid::@2 to print_uchar [phi:print_euclid::@2->print_uchar] print_uchar_from___b2: // [42] phi print_char_cursor#53 = print_char_cursor#33 [phi:print_euclid::@2->print_uchar#0] -- register_copy // [42] phi print_uchar::b#3 = print_uchar::b#1 [phi:print_euclid::@2->print_uchar#1] -- register_copy jsr print_uchar // [25] phi from print_euclid::@2 to print_euclid::@3 [phi:print_euclid::@2->print_euclid::@3] __b3_from___b2: jmp __b3 // print_euclid::@3 __b3: // [26] call print_char // [50] phi from print_euclid::@3 to print_char [phi:print_euclid::@3->print_char] print_char_from___b3: // [50] phi print_char_cursor#32 = print_char_cursor#33 [phi:print_euclid::@3->print_char#0] -- register_copy // [50] phi print_char::ch#4 = ' ' [phi:print_euclid::@3->print_char#1] -- vbuaa=vbuc1 lda #' ' jsr print_char jmp __b4 // print_euclid::@4 __b4: // [27] euclid::a#0 = print_euclid::a#10 // [28] euclid::b#0 = print_euclid::b#10 -- vbuxx=vbuz1 ldx.z b // [29] call euclid // [54] phi from print_euclid::@4 to euclid [phi:print_euclid::@4->euclid] euclid_from___b4: jsr euclid // [30] euclid::return#0 = euclid::a#2 -- vbuaa=vbuz1 lda.z euclid.a jmp __b5 // print_euclid::@5 __b5: // [31] print_uchar::b#2 = euclid::return#0 -- vbuxx=vbuaa tax // [32] call print_uchar // [42] phi from print_euclid::@5 to print_uchar [phi:print_euclid::@5->print_uchar] print_uchar_from___b5: // [42] phi print_char_cursor#53 = print_char_cursor#33 [phi:print_euclid::@5->print_uchar#0] -- register_copy // [42] phi print_uchar::b#3 = print_uchar::b#2 [phi:print_euclid::@5->print_uchar#1] -- register_copy jsr print_uchar // [33] phi from print_euclid::@5 to print_euclid::@6 [phi:print_euclid::@5->print_euclid::@6] __b6_from___b5: jmp __b6 // print_euclid::@6 __b6: // [34] call print_ln // [61] phi from print_euclid::@6 to print_ln [phi:print_euclid::@6->print_ln] print_ln_from___b6: jsr print_ln jmp __breturn // print_euclid::@return __breturn: // [35] return rts } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. // void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $3e8 .label str = print_screen .label end = str+num .label dst = 2 // [37] phi from memset to memset::@1 [phi:memset->memset::@1] __b1_from_memset: // [37] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str sta.z dst+1 jmp __b1 // memset::@1 __b1: // [38] if(memset::dst#2!=memset::end#0) goto memset::@2 -- pbuz1_neq_pbuc1_then_la1 lda.z dst+1 cmp #>end bne __b2 lda.z dst cmp #memset::@1] __b1_from___b2: // [37] phi memset::dst#2 = memset::dst#1 [phi:memset::@2->memset::@1#0] -- register_copy jmp __b1 } // print_uchar // Print a char as HEX // void print_uchar(__register(X) char b) print_uchar: { // [43] print_uchar::$0 = print_uchar::b#3 >> 4 -- vbuaa=vbuxx_ror_4 txa lsr lsr lsr lsr // [44] print_char::ch#0 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa tay lda print_hextab,y // [45] call print_char // Table of hexadecimal digits // [50] phi from print_uchar to print_char [phi:print_uchar->print_char] print_char_from_print_uchar: // [50] phi print_char_cursor#32 = print_char_cursor#53 [phi:print_uchar->print_char#0] -- register_copy // [50] phi print_char::ch#4 = print_char::ch#0 [phi:print_uchar->print_char#1] -- register_copy jsr print_char jmp __b1 // print_uchar::@1 __b1: // [46] print_uchar::$2 = print_uchar::b#3 & $f -- vbuxx=vbuxx_band_vbuc1 lda #$f axs #0 // [47] print_char::ch#1 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx lda print_hextab,x // [48] call print_char // [50] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] print_char_from___b1: // [50] phi print_char_cursor#32 = print_char_cursor#33 [phi:print_uchar::@1->print_char#0] -- register_copy // [50] phi print_char::ch#4 = print_char::ch#1 [phi:print_uchar::@1->print_char#1] -- register_copy jsr print_char jmp __breturn // print_uchar::@return __breturn: // [49] return rts } // print_char // Print a single char // void print_char(__register(A) char ch) print_char: { // [51] *print_char_cursor#32 = print_char::ch#4 -- _deref_pbuz1=vbuaa ldy #0 sta (print_char_cursor),y // [52] print_char_cursor#33 = ++ print_char_cursor#32 -- pbuz1=_inc_pbuz1 inc.z print_char_cursor bne !+ inc.z print_char_cursor+1 !: jmp __breturn // print_char::@return __breturn: // [53] return rts } // euclid // __register(A) char euclid(__zp(4) char a, __register(X) char b) euclid: { .label a = 4 // [55] phi from euclid euclid::@3 euclid::@4 to euclid::@1 [phi:euclid/euclid::@3/euclid::@4->euclid::@1] __b1_from_euclid: __b1_from___b3: __b1_from___b4: // [55] phi euclid::b#2 = euclid::b#0 [phi:euclid/euclid::@3/euclid::@4->euclid::@1#0] -- register_copy // [55] phi euclid::a#2 = euclid::a#0 [phi:euclid/euclid::@3/euclid::@4->euclid::@1#1] -- register_copy jmp __b1 // euclid::@1 __b1: // [56] if(euclid::a#2!=euclid::b#2) goto euclid::@2 -- vbuz1_neq_vbuxx_then_la1 cpx.z a bne __b2 jmp __breturn // euclid::@return __breturn: // [57] return rts // euclid::@2 __b2: // [58] if(euclid::a#2>euclid::b#2) goto euclid::@3 -- vbuz1_gt_vbuxx_then_la1 cpx.z a bcc __b3 jmp __b4 // euclid::@4 __b4: // [59] euclid::b#1 = euclid::b#2 - euclid::a#2 -- vbuxx=vbuxx_minus_vbuz1 txa sec sbc.z a tax jmp __b1_from___b4 // euclid::@3 __b3: // [60] euclid::a#1 = euclid::a#2 - euclid::b#2 -- vbuz1=vbuz1_minus_vbuxx txa eor #$ff sec adc.z a sta.z a jmp __b1_from___b3 } // print_ln // Print a newline print_ln: { // [62] phi from print_ln print_ln::@1 to print_ln::@1 [phi:print_ln/print_ln::@1->print_ln::@1] __b1_from_print_ln: __b1_from___b1: // [62] phi print_line_cursor#17 = print_line_cursor#35 [phi:print_ln/print_ln::@1->print_ln::@1#0] -- register_copy jmp __b1 // print_ln::@1 __b1: // [63] print_line_cursor#0 = print_line_cursor#17 + $28 -- pbuz1=pbuz1_plus_vbuc1 lda #$28 clc adc.z print_line_cursor sta.z print_line_cursor bcc !+ inc.z print_line_cursor+1 !: // [64] if(print_line_cursor#0print_cls] jsr print_cls // [2] phi from main to main::@1 [phi:main->main::@1] // main::@1 // print_euclid(128,2) // [3] call print_euclid // [18] phi from main::@1 to print_euclid [phi:main::@1->print_euclid] // [18] phi print_line_cursor#35 = print_screen#0 [phi:main::@1->print_euclid#0] -- pbuz1=pbuc1 lda #print_screen sta.z print_line_cursor+1 // [18] phi print_euclid::b#10 = 2 [phi:main::@1->print_euclid#1] -- vbuz1=vbuc1 lda #2 sta.z print_euclid.b // [18] phi print_char_cursor#55 = print_screen#0 [phi:main::@1->print_euclid#2] -- pbuz1=pbuc1 lda #print_screen sta.z print_char_cursor+1 // [18] phi print_euclid::a#10 = $80 [phi:main::@1->print_euclid#3] -- vbuz1=vbuc1 lda #$80 sta.z print_euclid.a jsr print_euclid // main::@2 // [4] print_char_cursor#65 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 // print_euclid(169,69) // [5] call print_euclid // [18] phi from main::@2 to print_euclid [phi:main::@2->print_euclid] // [18] phi print_line_cursor#35 = print_line_cursor#0 [phi:main::@2->print_euclid#0] -- register_copy // [18] phi print_euclid::b#10 = $45 [phi:main::@2->print_euclid#1] -- vbuz1=vbuc1 lda #$45 sta.z print_euclid.b // [18] phi print_char_cursor#55 = print_char_cursor#65 [phi:main::@2->print_euclid#2] -- register_copy // [18] phi print_euclid::a#10 = $a9 [phi:main::@2->print_euclid#3] -- vbuz1=vbuc1 lda #$a9 sta.z print_euclid.a jsr print_euclid // main::@3 // [6] print_char_cursor#66 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 // print_euclid(155,55) // [7] call print_euclid // [18] phi from main::@3 to print_euclid [phi:main::@3->print_euclid] // [18] phi print_line_cursor#35 = print_line_cursor#0 [phi:main::@3->print_euclid#0] -- register_copy // [18] phi print_euclid::b#10 = $37 [phi:main::@3->print_euclid#1] -- vbuz1=vbuc1 lda #$37 sta.z print_euclid.b // [18] phi print_char_cursor#55 = print_char_cursor#66 [phi:main::@3->print_euclid#2] -- register_copy // [18] phi print_euclid::a#10 = $9b [phi:main::@3->print_euclid#3] -- vbuz1=vbuc1 lda #$9b sta.z print_euclid.a jsr print_euclid // main::@4 // [8] print_char_cursor#67 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 // print_euclid(199,3) // [9] call print_euclid // [18] phi from main::@4 to print_euclid [phi:main::@4->print_euclid] // [18] phi print_line_cursor#35 = print_line_cursor#0 [phi:main::@4->print_euclid#0] -- register_copy // [18] phi print_euclid::b#10 = 3 [phi:main::@4->print_euclid#1] -- vbuz1=vbuc1 lda #3 sta.z print_euclid.b // [18] phi print_char_cursor#55 = print_char_cursor#67 [phi:main::@4->print_euclid#2] -- register_copy // [18] phi print_euclid::a#10 = $c7 [phi:main::@4->print_euclid#3] -- vbuz1=vbuc1 lda #$c7 sta.z print_euclid.a jsr print_euclid // main::@5 // [10] print_char_cursor#68 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 // print_euclid(91,26) // [11] call print_euclid // [18] phi from main::@5 to print_euclid [phi:main::@5->print_euclid] // [18] phi print_line_cursor#35 = print_line_cursor#0 [phi:main::@5->print_euclid#0] -- register_copy // [18] phi print_euclid::b#10 = $1a [phi:main::@5->print_euclid#1] -- vbuz1=vbuc1 lda #$1a sta.z print_euclid.b // [18] phi print_char_cursor#55 = print_char_cursor#68 [phi:main::@5->print_euclid#2] -- register_copy // [18] phi print_euclid::a#10 = $5b [phi:main::@5->print_euclid#3] -- vbuz1=vbuc1 lda #$5b sta.z print_euclid.a jsr print_euclid // main::@6 // [12] print_char_cursor#69 = print_line_cursor#0 -- pbuz1=pbuz2 lda.z print_line_cursor sta.z print_char_cursor lda.z print_line_cursor+1 sta.z print_char_cursor+1 // print_euclid(119,187) // [13] call print_euclid // [18] phi from main::@6 to print_euclid [phi:main::@6->print_euclid] // [18] phi print_line_cursor#35 = print_line_cursor#0 [phi:main::@6->print_euclid#0] -- register_copy // [18] phi print_euclid::b#10 = $bb [phi:main::@6->print_euclid#1] -- vbuz1=vbuc1 lda #$bb sta.z print_euclid.b // [18] phi print_char_cursor#55 = print_char_cursor#69 [phi:main::@6->print_euclid#2] -- register_copy // [18] phi print_euclid::a#10 = $77 [phi:main::@6->print_euclid#3] -- vbuz1=vbuc1 lda #$77 sta.z print_euclid.a jsr print_euclid // main::@return // } // [14] return rts } // print_cls // Clear the screen. Also resets current line/char cursor. print_cls: { // memset(print_screen, ' ', 1000) // [16] call memset // [36] phi from print_cls to memset [phi:print_cls->memset] jsr memset // print_cls::@return // } // [17] return rts } // print_euclid // void print_euclid(__zp(4) char a, __zp(7) char b) print_euclid: { .label b = 7 .label a = 4 // print_uchar(a) // [19] print_uchar::b#0 = print_euclid::a#10 -- vbuxx=vbuz1 ldx.z a // [20] call print_uchar // [42] phi from print_euclid to print_uchar [phi:print_euclid->print_uchar] // [42] phi print_char_cursor#53 = print_char_cursor#55 [phi:print_euclid->print_uchar#0] -- register_copy // [42] phi print_uchar::b#3 = print_uchar::b#0 [phi:print_euclid->print_uchar#1] -- register_copy jsr print_uchar // [21] phi from print_euclid to print_euclid::@1 [phi:print_euclid->print_euclid::@1] // print_euclid::@1 // print_char(' ') // [22] call print_char // [50] phi from print_euclid::@1 to print_char [phi:print_euclid::@1->print_char] // [50] phi print_char_cursor#32 = print_char_cursor#33 [phi:print_euclid::@1->print_char#0] -- register_copy // [50] phi print_char::ch#4 = ' ' [phi:print_euclid::@1->print_char#1] -- vbuaa=vbuc1 lda #' ' jsr print_char // print_euclid::@2 // print_uchar(b) // [23] print_uchar::b#1 = print_euclid::b#10 -- vbuxx=vbuz1 ldx.z b // [24] call print_uchar // [42] phi from print_euclid::@2 to print_uchar [phi:print_euclid::@2->print_uchar] // [42] phi print_char_cursor#53 = print_char_cursor#33 [phi:print_euclid::@2->print_uchar#0] -- register_copy // [42] phi print_uchar::b#3 = print_uchar::b#1 [phi:print_euclid::@2->print_uchar#1] -- register_copy jsr print_uchar // [25] phi from print_euclid::@2 to print_euclid::@3 [phi:print_euclid::@2->print_euclid::@3] // print_euclid::@3 // print_char(' ') // [26] call print_char // [50] phi from print_euclid::@3 to print_char [phi:print_euclid::@3->print_char] // [50] phi print_char_cursor#32 = print_char_cursor#33 [phi:print_euclid::@3->print_char#0] -- register_copy // [50] phi print_char::ch#4 = ' ' [phi:print_euclid::@3->print_char#1] -- vbuaa=vbuc1 lda #' ' jsr print_char // print_euclid::@4 // euclid(a,b) // [27] euclid::a#0 = print_euclid::a#10 // [28] euclid::b#0 = print_euclid::b#10 -- vbuxx=vbuz1 ldx.z b // [29] call euclid // [54] phi from print_euclid::@4 to euclid [phi:print_euclid::@4->euclid] jsr euclid // euclid(a,b) // [30] euclid::return#0 = euclid::a#2 -- vbuaa=vbuz1 lda.z euclid.a // print_euclid::@5 // print_uchar(euclid(a,b)) // [31] print_uchar::b#2 = euclid::return#0 -- vbuxx=vbuaa tax // [32] call print_uchar // [42] phi from print_euclid::@5 to print_uchar [phi:print_euclid::@5->print_uchar] // [42] phi print_char_cursor#53 = print_char_cursor#33 [phi:print_euclid::@5->print_uchar#0] -- register_copy // [42] phi print_uchar::b#3 = print_uchar::b#2 [phi:print_euclid::@5->print_uchar#1] -- register_copy jsr print_uchar // [33] phi from print_euclid::@5 to print_euclid::@6 [phi:print_euclid::@5->print_euclid::@6] // print_euclid::@6 // print_ln() // [34] call print_ln // [61] phi from print_euclid::@6 to print_ln [phi:print_euclid::@6->print_ln] jsr print_ln // print_euclid::@return // } // [35] return rts } // memset // Copies the character c (an unsigned char) to the first num characters of the object pointed to by the argument str. // void * memset(void *str, char c, unsigned int num) memset: { .const c = ' ' .const num = $3e8 .label str = print_screen .label end = str+num .label dst = 2 // [37] phi from memset to memset::@1 [phi:memset->memset::@1] // [37] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1 lda #str sta.z dst+1 // memset::@1 __b1: // for(char* dst = str; dst!=end; dst++) // [38] if(memset::dst#2!=memset::end#0) goto memset::@2 -- pbuz1_neq_pbuc1_then_la1 lda.z dst+1 cmp #>end bne __b2 lda.z dst cmp #memset::@1] // [37] phi memset::dst#2 = memset::dst#1 [phi:memset::@2->memset::@1#0] -- register_copy jmp __b1 } // print_uchar // Print a char as HEX // void print_uchar(__register(X) char b) print_uchar: { // b>>4 // [43] print_uchar::$0 = print_uchar::b#3 >> 4 -- vbuaa=vbuxx_ror_4 txa lsr lsr lsr lsr // print_char(print_hextab[b>>4]) // [44] print_char::ch#0 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa tay lda print_hextab,y // [45] call print_char // Table of hexadecimal digits // [50] phi from print_uchar to print_char [phi:print_uchar->print_char] // [50] phi print_char_cursor#32 = print_char_cursor#53 [phi:print_uchar->print_char#0] -- register_copy // [50] phi print_char::ch#4 = print_char::ch#0 [phi:print_uchar->print_char#1] -- register_copy jsr print_char // print_uchar::@1 // b&0xf // [46] print_uchar::$2 = print_uchar::b#3 & $f -- vbuxx=vbuxx_band_vbuc1 lda #$f axs #0 // print_char(print_hextab[b&0xf]) // [47] print_char::ch#1 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx lda print_hextab,x // [48] call print_char // [50] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char] // [50] phi print_char_cursor#32 = print_char_cursor#33 [phi:print_uchar::@1->print_char#0] -- register_copy // [50] phi print_char::ch#4 = print_char::ch#1 [phi:print_uchar::@1->print_char#1] -- register_copy jsr print_char // print_uchar::@return // } // [49] return rts } // print_char // Print a single char // void print_char(__register(A) char ch) print_char: { // *(print_char_cursor++) = ch // [51] *print_char_cursor#32 = print_char::ch#4 -- _deref_pbuz1=vbuaa ldy #0 sta (print_char_cursor),y // *(print_char_cursor++) = ch; // [52] print_char_cursor#33 = ++ print_char_cursor#32 -- pbuz1=_inc_pbuz1 inc.z print_char_cursor bne !+ inc.z print_char_cursor+1 !: // print_char::@return // } // [53] return rts } // euclid // __register(A) char euclid(__zp(4) char a, __register(X) char b) euclid: { .label a = 4 // [55] phi from euclid euclid::@3 euclid::@4 to euclid::@1 [phi:euclid/euclid::@3/euclid::@4->euclid::@1] // [55] phi euclid::b#2 = euclid::b#0 [phi:euclid/euclid::@3/euclid::@4->euclid::@1#0] -- register_copy // [55] phi euclid::a#2 = euclid::a#0 [phi:euclid/euclid::@3/euclid::@4->euclid::@1#1] -- register_copy // euclid::@1 __b1: // while (a!=b) // [56] if(euclid::a#2!=euclid::b#2) goto euclid::@2 -- vbuz1_neq_vbuxx_then_la1 cpx.z a bne __b2 // euclid::@return // } // [57] return rts // euclid::@2 __b2: // if(a>b) // [58] if(euclid::a#2>euclid::b#2) goto euclid::@3 -- vbuz1_gt_vbuxx_then_la1 cpx.z a bcc __b3 // euclid::@4 // b=b-a // [59] euclid::b#1 = euclid::b#2 - euclid::a#2 -- vbuxx=vbuxx_minus_vbuz1 txa sec sbc.z a tax jmp __b1 // euclid::@3 __b3: // a=a-b // [60] euclid::a#1 = euclid::a#2 - euclid::b#2 -- vbuz1=vbuz1_minus_vbuxx txa eor #$ff sec adc.z a sta.z a jmp __b1 } // print_ln // Print a newline print_ln: { // [62] phi from print_ln print_ln::@1 to print_ln::@1 [phi:print_ln/print_ln::@1->print_ln::@1] // [62] phi print_line_cursor#17 = print_line_cursor#35 [phi:print_ln/print_ln::@1->print_ln::@1#0] -- register_copy // print_ln::@1 __b1: // print_line_cursor + 0x28 // [63] print_line_cursor#0 = print_line_cursor#17 + $28 -- pbuz1=pbuz1_plus_vbuc1 lda #$28 clc adc.z print_line_cursor sta.z print_line_cursor bcc !+ inc.z print_line_cursor+1 !: // while (print_line_cursor