kickc/src/test/ref/c-types.log

4260 lines
268 KiB
Plaintext

Inlined call call __init
Eliminating unused variable with no statement memset::$2
CONTROL FLOW GRAPH SSA
void print_str(char *str)
print_str: scope:[print_str] from testChar testInt testLong testShort
print_char_cursor#159 = phi( testChar/print_char_cursor#154, testInt/print_char_cursor#156, testLong/print_char_cursor#157, testShort/print_char_cursor#155 )
print_str::str#8 = phi( testChar/print_str::str#1, testInt/print_str::str#3, testLong/print_str::str#4, testShort/print_str::str#2 )
to:print_str::@1
print_str::@1: scope:[print_str] from print_str print_str::@3
print_char_cursor#139 = phi( print_str/print_char_cursor#159, print_str::@3/print_char_cursor#0 )
print_str::str#5 = phi( print_str/print_str::str#8, print_str::@3/print_str::str#0 )
print_str::$1 = 0 != *print_str::str#5
if(print_str::$1) goto print_str::@2
to:print_str::@return
print_str::@2: scope:[print_str] from print_str::@1
print_char_cursor#138 = phi( print_str::@1/print_char_cursor#139 )
print_str::str#6 = phi( print_str::@1/print_str::str#5 )
print_char::ch#0 = *print_str::str#6
call print_char
to:print_str::@3
print_str::@3: scope:[print_str] from print_str::@2
print_str::str#7 = phi( print_str::@2/print_str::str#6 )
print_char_cursor#70 = phi( print_str::@2/print_char_cursor#26 )
print_char_cursor#0 = print_char_cursor#70
print_str::str#0 = ++ print_str::str#7
to:print_str::@1
print_str::@return: scope:[print_str] from print_str::@1
print_char_cursor#71 = phi( print_str::@1/print_char_cursor#139 )
print_char_cursor#1 = print_char_cursor#71
return
to:@return
void print_ln()
print_ln: scope:[print_ln] from testChar::@6 testInt::@6 testLong::@6 testShort::@6
print_char_cursor#140 = phi( testChar::@6/print_char_cursor#40, testInt::@6/print_char_cursor#56, testLong::@6/print_char_cursor#64, testShort::@6/print_char_cursor#48 )
print_line_cursor#41 = phi( testChar::@6/print_line_cursor#43, testInt::@6/print_line_cursor#45, testLong::@6/print_line_cursor#46, testShort::@6/print_line_cursor#44 )
to:print_ln::@1
print_ln::@1: scope:[print_ln] from print_ln print_ln::@1
print_char_cursor#72 = phi( print_ln/print_char_cursor#140, print_ln::@1/print_char_cursor#72 )
print_line_cursor#21 = phi( print_ln/print_line_cursor#41, print_ln::@1/print_line_cursor#0 )
print_ln::$0 = print_line_cursor#21 + $28
print_line_cursor#0 = print_ln::$0
print_ln::$1 = print_line_cursor#0 < print_char_cursor#72
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#22 = phi( print_ln::@1/print_line_cursor#0 )
print_char_cursor#2 = print_line_cursor#22
to:print_ln::@return
print_ln::@return: scope:[print_ln] from print_ln::@2
print_char_cursor#73 = phi( print_ln::@2/print_char_cursor#2 )
print_line_cursor#23 = phi( print_ln::@2/print_line_cursor#22 )
print_line_cursor#1 = print_line_cursor#23
print_char_cursor#3 = print_char_cursor#73
return
to:@return
void print_sint(int w)
print_sint: scope:[print_sint] from testInt::@3 testInt::@5 testShort::@3 testShort::@5
print_char_cursor#160 = phi( testInt::@3/print_char_cursor#53, testInt::@5/print_char_cursor#55, testShort::@3/print_char_cursor#45, testShort::@5/print_char_cursor#47 )
print_sint::w#5 = phi( testInt::@3/print_sint::w#3, testInt::@5/print_sint::w#4, testShort::@3/print_sint::w#1, testShort::@5/print_sint::w#2 )
print_sint::$0 = print_sint::w#5 < 0
if(print_sint::$0) goto print_sint::@1
to:print_sint::@3
print_sint::@1: scope:[print_sint] from print_sint
print_sint::w#8 = phi( print_sint/print_sint::w#5 )
print_char_cursor#141 = phi( print_sint/print_char_cursor#160 )
print_char::ch#1 = '-'
call print_char
to:print_sint::@4
print_sint::@4: scope:[print_sint] from print_sint::@1
print_sint::w#6 = phi( print_sint::@1/print_sint::w#8 )
print_char_cursor#74 = phi( print_sint::@1/print_char_cursor#26 )
print_char_cursor#4 = print_char_cursor#74
print_sint::$4 = - print_sint::w#6
print_sint::w#0 = print_sint::$4
to:print_sint::@2
print_sint::@3: scope:[print_sint] from print_sint
print_sint::w#10 = phi( print_sint/print_sint::w#5 )
print_char_cursor#142 = phi( print_sint/print_char_cursor#160 )
print_char::ch#2 = ' '
call print_char
to:print_sint::@5
print_sint::@5: scope:[print_sint] from print_sint::@3
print_sint::w#9 = phi( print_sint::@3/print_sint::w#10 )
print_char_cursor#75 = phi( print_sint::@3/print_char_cursor#26 )
print_char_cursor#5 = print_char_cursor#75
to:print_sint::@2
print_sint::@2: scope:[print_sint] from print_sint::@4 print_sint::@5
print_char_cursor#143 = phi( print_sint::@4/print_char_cursor#4, print_sint::@5/print_char_cursor#5 )
print_sint::w#7 = phi( print_sint::@4/print_sint::w#0, print_sint::@5/print_sint::w#9 )
print_uint::w#0 = (unsigned int)print_sint::w#7
call print_uint
to:print_sint::@6
print_sint::@6: scope:[print_sint] from print_sint::@2
print_char_cursor#76 = phi( print_sint::@2/print_char_cursor#14 )
print_char_cursor#6 = print_char_cursor#76
to:print_sint::@return
print_sint::@return: scope:[print_sint] from print_sint::@6
print_char_cursor#77 = phi( print_sint::@6/print_char_cursor#6 )
print_char_cursor#7 = print_char_cursor#77
return
to:@return
void print_schar(signed char b)
print_schar: scope:[print_schar] from testChar::@5
print_char_cursor#161 = phi( testChar::@5/print_char_cursor#39 )
print_schar::b#2 = phi( testChar::@5/print_schar::b#1 )
print_schar::$0 = print_schar::b#2 < 0
if(print_schar::$0) goto print_schar::@1
to:print_schar::@3
print_schar::@1: scope:[print_schar] from print_schar
print_schar::b#5 = phi( print_schar/print_schar::b#2 )
print_char_cursor#144 = phi( print_schar/print_char_cursor#161 )
print_char::ch#3 = '-'
call print_char
to:print_schar::@4
print_schar::@4: scope:[print_schar] from print_schar::@1
print_schar::b#3 = phi( print_schar::@1/print_schar::b#5 )
print_char_cursor#78 = phi( print_schar::@1/print_char_cursor#26 )
print_char_cursor#8 = print_char_cursor#78
print_schar::$4 = - print_schar::b#3
print_schar::b#0 = print_schar::$4
to:print_schar::@2
print_schar::@3: scope:[print_schar] from print_schar
print_schar::b#7 = phi( print_schar/print_schar::b#2 )
print_char_cursor#145 = phi( print_schar/print_char_cursor#161 )
print_char::ch#4 = ' '
call print_char
to:print_schar::@5
print_schar::@5: scope:[print_schar] from print_schar::@3
print_schar::b#6 = phi( print_schar::@3/print_schar::b#7 )
print_char_cursor#79 = phi( print_schar::@3/print_char_cursor#26 )
print_char_cursor#9 = print_char_cursor#79
to:print_schar::@2
print_schar::@2: scope:[print_schar] from print_schar::@4 print_schar::@5
print_char_cursor#146 = phi( print_schar::@4/print_char_cursor#8, print_schar::@5/print_char_cursor#9 )
print_schar::b#4 = phi( print_schar::@4/print_schar::b#0, print_schar::@5/print_schar::b#6 )
print_uchar::b#0 = (char)print_schar::b#4
call print_uchar
to:print_schar::@6
print_schar::@6: scope:[print_schar] from print_schar::@2
print_char_cursor#80 = phi( print_schar::@2/print_char_cursor#24 )
print_char_cursor#10 = print_char_cursor#80
to:print_schar::@return
print_schar::@return: scope:[print_schar] from print_schar::@6
print_char_cursor#81 = phi( print_schar::@6/print_char_cursor#10 )
print_char_cursor#11 = print_char_cursor#81
return
to:@return
void print_uint(unsigned int w)
print_uint: scope:[print_uint] from print_sint::@2 print_ulong print_ulong::@1 testInt::@1 testShort::@1
print_char_cursor#147 = phi( print_sint::@2/print_char_cursor#143, print_ulong/print_char_cursor#148, print_ulong::@1/print_char_cursor#15, testInt::@1/print_char_cursor#51, testShort::@1/print_char_cursor#43 )
print_uint::w#5 = phi( print_sint::@2/print_uint::w#0, print_ulong/print_uint::w#1, print_ulong::@1/print_uint::w#2, testInt::@1/print_uint::w#4, testShort::@1/print_uint::w#3 )
print_uint::$0 = byte1 print_uint::w#5
print_uchar::b#1 = print_uint::$0
call print_uchar
to:print_uint::@1
print_uint::@1: scope:[print_uint] from print_uint
print_uint::w#6 = phi( print_uint/print_uint::w#5 )
print_char_cursor#82 = phi( print_uint/print_char_cursor#24 )
print_char_cursor#12 = print_char_cursor#82
print_uint::$2 = byte0 print_uint::w#6
print_uchar::b#2 = print_uint::$2
call print_uchar
to:print_uint::@2
print_uint::@2: scope:[print_uint] from print_uint::@1
print_char_cursor#83 = phi( print_uint::@1/print_char_cursor#24 )
print_char_cursor#13 = print_char_cursor#83
to:print_uint::@return
print_uint::@return: scope:[print_uint] from print_uint::@2
print_char_cursor#84 = phi( print_uint::@2/print_char_cursor#13 )
print_char_cursor#14 = print_char_cursor#84
return
to:@return
void print_ulong(unsigned long dw)
print_ulong: scope:[print_ulong] from print_slong::@2 testLong::@1
print_char_cursor#148 = phi( print_slong::@2/print_char_cursor#151, testLong::@1/print_char_cursor#59 )
print_ulong::dw#2 = phi( print_slong::@2/print_ulong::dw#0, testLong::@1/print_ulong::dw#1 )
print_ulong::$0 = word1 print_ulong::dw#2
print_uint::w#1 = print_ulong::$0
call print_uint
to:print_ulong::@1
print_ulong::@1: scope:[print_ulong] from print_ulong
print_ulong::dw#3 = phi( print_ulong/print_ulong::dw#2 )
print_char_cursor#85 = phi( print_ulong/print_char_cursor#14 )
print_char_cursor#15 = print_char_cursor#85
print_ulong::$2 = word0 print_ulong::dw#3
print_uint::w#2 = print_ulong::$2
call print_uint
to:print_ulong::@2
print_ulong::@2: scope:[print_ulong] from print_ulong::@1
print_char_cursor#86 = phi( print_ulong::@1/print_char_cursor#14 )
print_char_cursor#16 = print_char_cursor#86
to:print_ulong::@return
print_ulong::@return: scope:[print_ulong] from print_ulong::@2
print_char_cursor#87 = phi( print_ulong::@2/print_char_cursor#16 )
print_char_cursor#17 = print_char_cursor#87
return
to:@return
void print_slong(long dw)
print_slong: scope:[print_slong] from testLong::@3 testLong::@5
print_char_cursor#162 = phi( testLong::@3/print_char_cursor#61, testLong::@5/print_char_cursor#63 )
print_slong::dw#3 = phi( testLong::@3/print_slong::dw#1, testLong::@5/print_slong::dw#2 )
print_slong::$0 = print_slong::dw#3 < 0
if(print_slong::$0) goto print_slong::@1
to:print_slong::@3
print_slong::@1: scope:[print_slong] from print_slong
print_slong::dw#6 = phi( print_slong/print_slong::dw#3 )
print_char_cursor#149 = phi( print_slong/print_char_cursor#162 )
print_char::ch#5 = '-'
call print_char
to:print_slong::@4
print_slong::@4: scope:[print_slong] from print_slong::@1
print_slong::dw#4 = phi( print_slong::@1/print_slong::dw#6 )
print_char_cursor#88 = phi( print_slong::@1/print_char_cursor#26 )
print_char_cursor#18 = print_char_cursor#88
print_slong::$4 = - print_slong::dw#4
print_slong::dw#0 = print_slong::$4
to:print_slong::@2
print_slong::@3: scope:[print_slong] from print_slong
print_slong::dw#8 = phi( print_slong/print_slong::dw#3 )
print_char_cursor#150 = phi( print_slong/print_char_cursor#162 )
print_char::ch#6 = ' '
call print_char
to:print_slong::@5
print_slong::@5: scope:[print_slong] from print_slong::@3
print_slong::dw#7 = phi( print_slong::@3/print_slong::dw#8 )
print_char_cursor#89 = phi( print_slong::@3/print_char_cursor#26 )
print_char_cursor#19 = print_char_cursor#89
to:print_slong::@2
print_slong::@2: scope:[print_slong] from print_slong::@4 print_slong::@5
print_char_cursor#151 = phi( print_slong::@4/print_char_cursor#18, print_slong::@5/print_char_cursor#19 )
print_slong::dw#5 = phi( print_slong::@4/print_slong::dw#0, print_slong::@5/print_slong::dw#7 )
print_ulong::dw#0 = (unsigned long)print_slong::dw#5
call print_ulong
to:print_slong::@6
print_slong::@6: scope:[print_slong] from print_slong::@2
print_char_cursor#90 = phi( print_slong::@2/print_char_cursor#17 )
print_char_cursor#20 = print_char_cursor#90
to:print_slong::@return
print_slong::@return: scope:[print_slong] from print_slong::@6
print_char_cursor#91 = phi( print_slong::@6/print_char_cursor#20 )
print_char_cursor#21 = print_char_cursor#91
return
to:@return
void print_uchar(char b)
print_uchar: scope:[print_uchar] from print_schar::@2 print_uint print_uint::@1 testChar::@1 testChar::@3
print_char_cursor#152 = phi( print_schar::@2/print_char_cursor#146, print_uint/print_char_cursor#147, print_uint::@1/print_char_cursor#12, testChar::@1/print_char_cursor#35, testChar::@3/print_char_cursor#37 )
print_uchar::b#5 = phi( print_schar::@2/print_uchar::b#0, print_uint/print_uchar::b#1, print_uint::@1/print_uchar::b#2, testChar::@1/print_uchar::b#3, testChar::@3/print_uchar::b#4 )
print_uchar::$0 = print_uchar::b#5 >> 4
print_char::ch#7 = print_hextab[print_uchar::$0]
call print_char
to:print_uchar::@1
print_uchar::@1: scope:[print_uchar] from print_uchar
print_uchar::b#6 = phi( print_uchar/print_uchar::b#5 )
print_char_cursor#92 = phi( print_uchar/print_char_cursor#26 )
print_char_cursor#22 = print_char_cursor#92
print_uchar::$2 = print_uchar::b#6 & $f
print_char::ch#8 = 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#93 = phi( print_uchar::@1/print_char_cursor#26 )
print_char_cursor#23 = print_char_cursor#93
to:print_uchar::@return
print_uchar::@return: scope:[print_uchar] from print_uchar::@2
print_char_cursor#94 = phi( print_uchar::@2/print_char_cursor#23 )
print_char_cursor#24 = print_char_cursor#94
return
to:@return
void print_char(char ch)
print_char: scope:[print_char] from print_schar::@1 print_schar::@3 print_sint::@1 print_sint::@3 print_slong::@1 print_slong::@3 print_str::@2 print_uchar print_uchar::@1 testChar::@2 testChar::@4 testInt::@2 testInt::@4 testLong::@2 testLong::@4 testShort::@2 testShort::@4
print_char_cursor#95 = phi( print_schar::@1/print_char_cursor#144, print_schar::@3/print_char_cursor#145, print_sint::@1/print_char_cursor#141, print_sint::@3/print_char_cursor#142, print_slong::@1/print_char_cursor#149, print_slong::@3/print_char_cursor#150, print_str::@2/print_char_cursor#138, print_uchar/print_char_cursor#152, print_uchar::@1/print_char_cursor#22, testChar::@2/print_char_cursor#36, testChar::@4/print_char_cursor#38, testInt::@2/print_char_cursor#52, testInt::@4/print_char_cursor#54, testLong::@2/print_char_cursor#60, testLong::@4/print_char_cursor#62, testShort::@2/print_char_cursor#44, testShort::@4/print_char_cursor#46 )
print_char::ch#17 = phi( print_schar::@1/print_char::ch#3, print_schar::@3/print_char::ch#4, print_sint::@1/print_char::ch#1, print_sint::@3/print_char::ch#2, print_slong::@1/print_char::ch#5, print_slong::@3/print_char::ch#6, print_str::@2/print_char::ch#0, print_uchar/print_char::ch#7, print_uchar::@1/print_char::ch#8, testChar::@2/print_char::ch#9, testChar::@4/print_char::ch#10, testInt::@2/print_char::ch#13, testInt::@4/print_char::ch#14, testLong::@2/print_char::ch#15, testLong::@4/print_char::ch#16, testShort::@2/print_char::ch#11, testShort::@4/print_char::ch#12 )
*print_char_cursor#95 = print_char::ch#17
print_char_cursor#25 = ++ print_char_cursor#95
to:print_char::@return
print_char::@return: scope:[print_char] from print_char
print_char_cursor#96 = phi( print_char/print_char_cursor#25 )
print_char_cursor#26 = print_char_cursor#96
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#27 = print_line_cursor#2
to:print_cls::@return
print_cls::@return: scope:[print_cls] from print_cls::@1
print_char_cursor#97 = phi( print_cls::@1/print_char_cursor#27 )
print_line_cursor#24 = phi( print_cls::@1/print_line_cursor#2 )
print_line_cursor#3 = print_line_cursor#24
print_char_cursor#28 = print_char_cursor#97
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#153 = phi( __start::@1/print_char_cursor#158 )
print_line_cursor#42 = phi( __start::@1/print_line_cursor#47 )
print_screen#5 = phi( __start::@1/print_screen#7 )
call print_cls
to:main::@1
main::@1: scope:[main] from main
print_char_cursor#98 = phi( main/print_char_cursor#28 )
print_line_cursor#25 = phi( main/print_line_cursor#3 )
print_line_cursor#4 = print_line_cursor#25
print_char_cursor#29 = print_char_cursor#98
call testChar
to:main::@2
main::@2: scope:[main] from main::@1
print_line_cursor#26 = phi( main::@1/print_line_cursor#11 )
print_char_cursor#99 = phi( main::@1/print_char_cursor#42 )
print_char_cursor#30 = print_char_cursor#99
print_line_cursor#5 = print_line_cursor#26
call testShort
to:main::@3
main::@3: scope:[main] from main::@2
print_line_cursor#27 = phi( main::@2/print_line_cursor#13 )
print_char_cursor#100 = phi( main::@2/print_char_cursor#50 )
print_char_cursor#31 = print_char_cursor#100
print_line_cursor#6 = print_line_cursor#27
call testInt
to:main::@4
main::@4: scope:[main] from main::@3
print_line_cursor#28 = phi( main::@3/print_line_cursor#15 )
print_char_cursor#101 = phi( main::@3/print_char_cursor#58 )
print_char_cursor#32 = print_char_cursor#101
print_line_cursor#7 = print_line_cursor#28
call testLong
to:main::@5
main::@5: scope:[main] from main::@4
print_line_cursor#29 = phi( main::@4/print_line_cursor#17 )
print_char_cursor#102 = phi( main::@4/print_char_cursor#66 )
print_char_cursor#33 = print_char_cursor#102
print_line_cursor#8 = print_line_cursor#29
to:main::@return
main::@return: scope:[main] from main::@5
print_char_cursor#103 = phi( main::@5/print_char_cursor#33 )
print_line_cursor#30 = phi( main::@5/print_line_cursor#8 )
print_line_cursor#9 = print_line_cursor#30
print_char_cursor#34 = print_char_cursor#103
return
to:@return
void testChar()
testChar: scope:[testChar] from main::@1
print_line_cursor#68 = phi( main::@1/print_line_cursor#4 )
print_char_cursor#154 = phi( main::@1/print_char_cursor#29 )
print_str::str#1 = testChar::str
call print_str
to:testChar::@1
testChar::@1: scope:[testChar] from testChar
print_line_cursor#64 = phi( testChar/print_line_cursor#68 )
print_char_cursor#104 = phi( testChar/print_char_cursor#1 )
print_char_cursor#35 = print_char_cursor#104
print_uchar::b#3 = testChar::u
call print_uchar
to:testChar::@2
testChar::@2: scope:[testChar] from testChar::@1
print_line_cursor#60 = phi( testChar::@1/print_line_cursor#64 )
print_char_cursor#105 = phi( testChar::@1/print_char_cursor#24 )
print_char_cursor#36 = print_char_cursor#105
print_char::ch#9 = ' '
call print_char
to:testChar::@3
testChar::@3: scope:[testChar] from testChar::@2
print_line_cursor#56 = phi( testChar::@2/print_line_cursor#60 )
print_char_cursor#106 = phi( testChar::@2/print_char_cursor#26 )
print_char_cursor#37 = print_char_cursor#106
print_uchar::b#4 = testChar::n
call print_uchar
to:testChar::@4
testChar::@4: scope:[testChar] from testChar::@3
print_line_cursor#52 = phi( testChar::@3/print_line_cursor#56 )
print_char_cursor#107 = phi( testChar::@3/print_char_cursor#24 )
print_char_cursor#38 = print_char_cursor#107
print_char::ch#10 = ' '
call print_char
to:testChar::@5
testChar::@5: scope:[testChar] from testChar::@4
print_line_cursor#48 = phi( testChar::@4/print_line_cursor#52 )
print_char_cursor#108 = phi( testChar::@4/print_char_cursor#26 )
print_char_cursor#39 = print_char_cursor#108
print_schar::b#1 = testChar::s
call print_schar
to:testChar::@6
testChar::@6: scope:[testChar] from testChar::@5
print_line_cursor#43 = phi( testChar::@5/print_line_cursor#48 )
print_char_cursor#109 = phi( testChar::@5/print_char_cursor#11 )
print_char_cursor#40 = print_char_cursor#109
call print_ln
to:testChar::@7
testChar::@7: scope:[testChar] from testChar::@6
print_char_cursor#110 = phi( testChar::@6/print_char_cursor#3 )
print_line_cursor#31 = phi( testChar::@6/print_line_cursor#1 )
print_line_cursor#10 = print_line_cursor#31
print_char_cursor#41 = print_char_cursor#110
to:testChar::@return
testChar::@return: scope:[testChar] from testChar::@7
print_line_cursor#32 = phi( testChar::@7/print_line_cursor#10 )
print_char_cursor#111 = phi( testChar::@7/print_char_cursor#41 )
print_char_cursor#42 = print_char_cursor#111
print_line_cursor#11 = print_line_cursor#32
return
to:@return
void testShort()
testShort: scope:[testShort] from main::@2
print_line_cursor#69 = phi( main::@2/print_line_cursor#5 )
print_char_cursor#155 = phi( main::@2/print_char_cursor#30 )
print_str::str#2 = testShort::str
call print_str
to:testShort::@1
testShort::@1: scope:[testShort] from testShort
print_line_cursor#65 = phi( testShort/print_line_cursor#69 )
print_char_cursor#112 = phi( testShort/print_char_cursor#1 )
print_char_cursor#43 = print_char_cursor#112
print_uint::w#3 = testShort::u
call print_uint
to:testShort::@2
testShort::@2: scope:[testShort] from testShort::@1
print_line_cursor#61 = phi( testShort::@1/print_line_cursor#65 )
print_char_cursor#113 = phi( testShort::@1/print_char_cursor#14 )
print_char_cursor#44 = print_char_cursor#113
print_char::ch#11 = ' '
call print_char
to:testShort::@3
testShort::@3: scope:[testShort] from testShort::@2
print_line_cursor#57 = phi( testShort::@2/print_line_cursor#61 )
print_char_cursor#114 = phi( testShort::@2/print_char_cursor#26 )
print_char_cursor#45 = print_char_cursor#114
print_sint::w#1 = testShort::n
call print_sint
to:testShort::@4
testShort::@4: scope:[testShort] from testShort::@3
print_line_cursor#53 = phi( testShort::@3/print_line_cursor#57 )
print_char_cursor#115 = phi( testShort::@3/print_char_cursor#7 )
print_char_cursor#46 = print_char_cursor#115
print_char::ch#12 = ' '
call print_char
to:testShort::@5
testShort::@5: scope:[testShort] from testShort::@4
print_line_cursor#49 = phi( testShort::@4/print_line_cursor#53 )
print_char_cursor#116 = phi( testShort::@4/print_char_cursor#26 )
print_char_cursor#47 = print_char_cursor#116
print_sint::w#2 = testShort::s
call print_sint
to:testShort::@6
testShort::@6: scope:[testShort] from testShort::@5
print_line_cursor#44 = phi( testShort::@5/print_line_cursor#49 )
print_char_cursor#117 = phi( testShort::@5/print_char_cursor#7 )
print_char_cursor#48 = print_char_cursor#117
call print_ln
to:testShort::@7
testShort::@7: scope:[testShort] from testShort::@6
print_char_cursor#118 = phi( testShort::@6/print_char_cursor#3 )
print_line_cursor#33 = phi( testShort::@6/print_line_cursor#1 )
print_line_cursor#12 = print_line_cursor#33
print_char_cursor#49 = print_char_cursor#118
to:testShort::@return
testShort::@return: scope:[testShort] from testShort::@7
print_line_cursor#34 = phi( testShort::@7/print_line_cursor#12 )
print_char_cursor#119 = phi( testShort::@7/print_char_cursor#49 )
print_char_cursor#50 = print_char_cursor#119
print_line_cursor#13 = print_line_cursor#34
return
to:@return
void testInt()
testInt: scope:[testInt] from main::@3
print_line_cursor#70 = phi( main::@3/print_line_cursor#6 )
print_char_cursor#156 = phi( main::@3/print_char_cursor#31 )
print_str::str#3 = testInt::str
call print_str
to:testInt::@1
testInt::@1: scope:[testInt] from testInt
print_line_cursor#66 = phi( testInt/print_line_cursor#70 )
print_char_cursor#120 = phi( testInt/print_char_cursor#1 )
print_char_cursor#51 = print_char_cursor#120
print_uint::w#4 = testInt::u
call print_uint
to:testInt::@2
testInt::@2: scope:[testInt] from testInt::@1
print_line_cursor#62 = phi( testInt::@1/print_line_cursor#66 )
print_char_cursor#121 = phi( testInt::@1/print_char_cursor#14 )
print_char_cursor#52 = print_char_cursor#121
print_char::ch#13 = ' '
call print_char
to:testInt::@3
testInt::@3: scope:[testInt] from testInt::@2
print_line_cursor#58 = phi( testInt::@2/print_line_cursor#62 )
print_char_cursor#122 = phi( testInt::@2/print_char_cursor#26 )
print_char_cursor#53 = print_char_cursor#122
print_sint::w#3 = testInt::n
call print_sint
to:testInt::@4
testInt::@4: scope:[testInt] from testInt::@3
print_line_cursor#54 = phi( testInt::@3/print_line_cursor#58 )
print_char_cursor#123 = phi( testInt::@3/print_char_cursor#7 )
print_char_cursor#54 = print_char_cursor#123
print_char::ch#14 = ' '
call print_char
to:testInt::@5
testInt::@5: scope:[testInt] from testInt::@4
print_line_cursor#50 = phi( testInt::@4/print_line_cursor#54 )
print_char_cursor#124 = phi( testInt::@4/print_char_cursor#26 )
print_char_cursor#55 = print_char_cursor#124
print_sint::w#4 = testInt::s
call print_sint
to:testInt::@6
testInt::@6: scope:[testInt] from testInt::@5
print_line_cursor#45 = phi( testInt::@5/print_line_cursor#50 )
print_char_cursor#125 = phi( testInt::@5/print_char_cursor#7 )
print_char_cursor#56 = print_char_cursor#125
call print_ln
to:testInt::@7
testInt::@7: scope:[testInt] from testInt::@6
print_char_cursor#126 = phi( testInt::@6/print_char_cursor#3 )
print_line_cursor#35 = phi( testInt::@6/print_line_cursor#1 )
print_line_cursor#14 = print_line_cursor#35
print_char_cursor#57 = print_char_cursor#126
to:testInt::@return
testInt::@return: scope:[testInt] from testInt::@7
print_line_cursor#36 = phi( testInt::@7/print_line_cursor#14 )
print_char_cursor#127 = phi( testInt::@7/print_char_cursor#57 )
print_char_cursor#58 = print_char_cursor#127
print_line_cursor#15 = print_line_cursor#36
return
to:@return
void testLong()
testLong: scope:[testLong] from main::@4
print_line_cursor#71 = phi( main::@4/print_line_cursor#7 )
print_char_cursor#157 = phi( main::@4/print_char_cursor#32 )
print_str::str#4 = testLong::str
call print_str
to:testLong::@1
testLong::@1: scope:[testLong] from testLong
print_line_cursor#67 = phi( testLong/print_line_cursor#71 )
print_char_cursor#128 = phi( testLong/print_char_cursor#1 )
print_char_cursor#59 = print_char_cursor#128
print_ulong::dw#1 = testLong::u
call print_ulong
to:testLong::@2
testLong::@2: scope:[testLong] from testLong::@1
print_line_cursor#63 = phi( testLong::@1/print_line_cursor#67 )
print_char_cursor#129 = phi( testLong::@1/print_char_cursor#17 )
print_char_cursor#60 = print_char_cursor#129
print_char::ch#15 = ' '
call print_char
to:testLong::@3
testLong::@3: scope:[testLong] from testLong::@2
print_line_cursor#59 = phi( testLong::@2/print_line_cursor#63 )
print_char_cursor#130 = phi( testLong::@2/print_char_cursor#26 )
print_char_cursor#61 = print_char_cursor#130
print_slong::dw#1 = testLong::n
call print_slong
to:testLong::@4
testLong::@4: scope:[testLong] from testLong::@3
print_line_cursor#55 = phi( testLong::@3/print_line_cursor#59 )
print_char_cursor#131 = phi( testLong::@3/print_char_cursor#21 )
print_char_cursor#62 = print_char_cursor#131
print_char::ch#16 = ' '
call print_char
to:testLong::@5
testLong::@5: scope:[testLong] from testLong::@4
print_line_cursor#51 = phi( testLong::@4/print_line_cursor#55 )
print_char_cursor#132 = phi( testLong::@4/print_char_cursor#26 )
print_char_cursor#63 = print_char_cursor#132
print_slong::dw#2 = testLong::s
call print_slong
to:testLong::@6
testLong::@6: scope:[testLong] from testLong::@5
print_line_cursor#46 = phi( testLong::@5/print_line_cursor#51 )
print_char_cursor#133 = phi( testLong::@5/print_char_cursor#21 )
print_char_cursor#64 = print_char_cursor#133
call print_ln
to:testLong::@7
testLong::@7: scope:[testLong] from testLong::@6
print_char_cursor#134 = phi( testLong::@6/print_char_cursor#3 )
print_line_cursor#37 = phi( testLong::@6/print_line_cursor#1 )
print_line_cursor#16 = print_line_cursor#37
print_char_cursor#65 = print_char_cursor#134
to:testLong::@return
testLong::@return: scope:[testLong] from testLong::@7
print_line_cursor#38 = phi( testLong::@7/print_line_cursor#16 )
print_char_cursor#135 = phi( testLong::@7/print_char_cursor#65 )
print_char_cursor#66 = print_char_cursor#135
print_line_cursor#17 = print_line_cursor#38
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#18 = print_screen#0
print_char_cursor#67 = print_line_cursor#18
to:__start::@1
__start::@1: scope:[__start] from __start::__init1
print_screen#7 = phi( __start::__init1/print_screen#0 )
print_char_cursor#158 = phi( __start::__init1/print_char_cursor#67 )
print_line_cursor#47 = phi( __start::__init1/print_line_cursor#18 )
call main
to:__start::@2
__start::@2: scope:[__start] from __start::@1
print_screen#6 = phi( __start::@1/print_screen#7 )
print_char_cursor#136 = phi( __start::@1/print_char_cursor#34 )
print_line_cursor#39 = phi( __start::@1/print_line_cursor#9 )
print_line_cursor#19 = print_line_cursor#39
print_char_cursor#68 = print_char_cursor#136
to:__start::@return
__start::@return: scope:[__start] from __start::@2
print_char_cursor#137 = phi( __start::@2/print_char_cursor#68 )
print_line_cursor#40 = phi( __start::@2/print_line_cursor#19 )
print_screen#4 = phi( __start::@2/print_screen#6 )
print_screen#1 = print_screen#4
print_line_cursor#20 = print_line_cursor#40
print_char_cursor#69 = print_char_cursor#137
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()
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#10
char print_char::ch#11
char print_char::ch#12
char print_char::ch#13
char print_char::ch#14
char print_char::ch#15
char print_char::ch#16
char print_char::ch#17
char print_char::ch#2
char print_char::ch#3
char print_char::ch#4
char print_char::ch#5
char print_char::ch#6
char print_char::ch#7
char print_char::ch#8
char print_char::ch#9
char *print_char_cursor
char *print_char_cursor#0
char *print_char_cursor#1
char *print_char_cursor#10
char *print_char_cursor#100
char *print_char_cursor#101
char *print_char_cursor#102
char *print_char_cursor#103
char *print_char_cursor#104
char *print_char_cursor#105
char *print_char_cursor#106
char *print_char_cursor#107
char *print_char_cursor#108
char *print_char_cursor#109
char *print_char_cursor#11
char *print_char_cursor#110
char *print_char_cursor#111
char *print_char_cursor#112
char *print_char_cursor#113
char *print_char_cursor#114
char *print_char_cursor#115
char *print_char_cursor#116
char *print_char_cursor#117
char *print_char_cursor#118
char *print_char_cursor#119
char *print_char_cursor#12
char *print_char_cursor#120
char *print_char_cursor#121
char *print_char_cursor#122
char *print_char_cursor#123
char *print_char_cursor#124
char *print_char_cursor#125
char *print_char_cursor#126
char *print_char_cursor#127
char *print_char_cursor#128
char *print_char_cursor#129
char *print_char_cursor#13
char *print_char_cursor#130
char *print_char_cursor#131
char *print_char_cursor#132
char *print_char_cursor#133
char *print_char_cursor#134
char *print_char_cursor#135
char *print_char_cursor#136
char *print_char_cursor#137
char *print_char_cursor#138
char *print_char_cursor#139
char *print_char_cursor#14
char *print_char_cursor#140
char *print_char_cursor#141
char *print_char_cursor#142
char *print_char_cursor#143
char *print_char_cursor#144
char *print_char_cursor#145
char *print_char_cursor#146
char *print_char_cursor#147
char *print_char_cursor#148
char *print_char_cursor#149
char *print_char_cursor#15
char *print_char_cursor#150
char *print_char_cursor#151
char *print_char_cursor#152
char *print_char_cursor#153
char *print_char_cursor#154
char *print_char_cursor#155
char *print_char_cursor#156
char *print_char_cursor#157
char *print_char_cursor#158
char *print_char_cursor#159
char *print_char_cursor#16
char *print_char_cursor#160
char *print_char_cursor#161
char *print_char_cursor#162
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#58
char *print_char_cursor#59
char *print_char_cursor#6
char *print_char_cursor#60
char *print_char_cursor#61
char *print_char_cursor#62
char *print_char_cursor#63
char *print_char_cursor#64
char *print_char_cursor#65
char *print_char_cursor#66
char *print_char_cursor#67
char *print_char_cursor#68
char *print_char_cursor#69
char *print_char_cursor#7
char *print_char_cursor#70
char *print_char_cursor#71
char *print_char_cursor#72
char *print_char_cursor#73
char *print_char_cursor#74
char *print_char_cursor#75
char *print_char_cursor#76
char *print_char_cursor#77
char *print_char_cursor#78
char *print_char_cursor#79
char *print_char_cursor#8
char *print_char_cursor#80
char *print_char_cursor#81
char *print_char_cursor#82
char *print_char_cursor#83
char *print_char_cursor#84
char *print_char_cursor#85
char *print_char_cursor#86
char *print_char_cursor#87
char *print_char_cursor#88
char *print_char_cursor#89
char *print_char_cursor#9
char *print_char_cursor#90
char *print_char_cursor#91
char *print_char_cursor#92
char *print_char_cursor#93
char *print_char_cursor#94
char *print_char_cursor#95
char *print_char_cursor#96
char *print_char_cursor#97
char *print_char_cursor#98
char *print_char_cursor#99
void print_cls()
__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#43
char *print_line_cursor#44
char *print_line_cursor#45
char *print_line_cursor#46
char *print_line_cursor#47
char *print_line_cursor#48
char *print_line_cursor#49
char *print_line_cursor#5
char *print_line_cursor#50
char *print_line_cursor#51
char *print_line_cursor#52
char *print_line_cursor#53
char *print_line_cursor#54
char *print_line_cursor#55
char *print_line_cursor#56
char *print_line_cursor#57
char *print_line_cursor#58
char *print_line_cursor#59
char *print_line_cursor#6
char *print_line_cursor#60
char *print_line_cursor#61
char *print_line_cursor#62
char *print_line_cursor#63
char *print_line_cursor#64
char *print_line_cursor#65
char *print_line_cursor#66
char *print_line_cursor#67
char *print_line_cursor#68
char *print_line_cursor#69
char *print_line_cursor#7
char *print_line_cursor#70
char *print_line_cursor#71
char *print_line_cursor#8
char *print_line_cursor#9
void print_ln()
char *print_ln::$0
bool print_ln::$1
void print_schar(signed char b)
bool print_schar::$0
signed char print_schar::$4
signed char print_schar::b
signed char print_schar::b#0
signed char print_schar::b#1
signed char print_schar::b#2
signed char print_schar::b#3
signed char print_schar::b#4
signed char print_schar::b#5
signed char print_schar::b#6
signed char print_schar::b#7
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_sint(int w)
bool print_sint::$0
int print_sint::$4
int print_sint::w
int print_sint::w#0
int print_sint::w#1
int print_sint::w#10
int print_sint::w#2
int print_sint::w#3
int print_sint::w#4
int print_sint::w#5
int print_sint::w#6
int print_sint::w#7
int print_sint::w#8
int print_sint::w#9
void print_slong(long dw)
bool print_slong::$0
long print_slong::$4
long print_slong::dw
long print_slong::dw#0
long print_slong::dw#1
long print_slong::dw#2
long print_slong::dw#3
long print_slong::dw#4
long print_slong::dw#5
long print_slong::dw#6
long print_slong::dw#7
long print_slong::dw#8
void print_str(char *str)
bool print_str::$1
char *print_str::str
char *print_str::str#0
char *print_str::str#1
char *print_str::str#2
char *print_str::str#3
char *print_str::str#4
char *print_str::str#5
char *print_str::str#6
char *print_str::str#7
char *print_str::str#8
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
char print_uchar::b#5
char print_uchar::b#6
void print_uint(unsigned int w)
char print_uint::$0
char print_uint::$2
unsigned int print_uint::w
unsigned int print_uint::w#0
unsigned int print_uint::w#1
unsigned int print_uint::w#2
unsigned int print_uint::w#3
unsigned int print_uint::w#4
unsigned int print_uint::w#5
unsigned int print_uint::w#6
void print_ulong(unsigned long dw)
unsigned int print_ulong::$0
unsigned int print_ulong::$2
unsigned long print_ulong::dw
unsigned long print_ulong::dw#0
unsigned long print_ulong::dw#1
unsigned long print_ulong::dw#2
unsigned long print_ulong::dw#3
void testChar()
__constant char testChar::n = $e
__constant signed char testChar::s = -$e
__constant char testChar::str[7] = "char: "
__constant char testChar::u = $e
void testInt()
__constant int testInt::n = -$578
__constant int testInt::s = -$578
__constant char testInt::str[6] = "int: "
__constant unsigned int testInt::u = $578
void testLong()
__constant long testLong::n = -$222e0
__constant long testLong::s = -$222e0
__constant char testLong::str[7] = "long: "
__constant unsigned long testLong::u = $222e0
void testShort()
__constant int testShort::n = -$578
__constant int testShort::s = -$578
__constant char testShort::str[8] = "short: "
__constant unsigned int testShort::u = $578
Adding number conversion cast (unumber) 0 in print_str::$1 = 0 != *print_str::str#5
Adding number conversion cast (unumber) $28 in print_ln::$0 = print_line_cursor#21 + $28
Adding number conversion cast (snumber) 0 in print_sint::$0 = print_sint::w#5 < 0
Adding number conversion cast (snumber) 0 in print_schar::$0 = print_schar::b#2 < 0
Adding number conversion cast (snumber) 0 in print_slong::$0 = print_slong::dw#3 < 0
Adding number conversion cast (unumber) 4 in print_uchar::$0 = print_uchar::b#5 >> 4
Adding number conversion cast (unumber) $f in print_uchar::$2 = print_uchar::b#6 & $f
Adding number conversion cast (unumber) print_uchar::$2 in print_uchar::$2 = print_uchar::b#6 & (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
Successful SSA optimization PassNAddNumberTypeConversions
Inlining cast memset::num#0 = (unumber)$3e8
Inlining cast memset::dst#0 = (char *)memset::str#2
Successful SSA optimization Pass2InlineCast
Simplifying constant integer cast 0
Simplifying constant integer cast $28
Simplifying constant integer cast 0
Simplifying constant integer cast 0
Simplifying constant integer cast 0
Simplifying constant integer cast 4
Simplifying constant integer cast $f
Simplifying constant integer cast $3e8
Simplifying constant integer cast 0
Simplifying constant pointer cast (char *) 1024
Successful SSA optimization PassNCastSimplification
Finalized unsigned number type (char) 0
Finalized unsigned number type (char) $28
Finalized signed number type (signed char) 0
Finalized signed number type (signed char) 0
Finalized signed number type (signed char) 0
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
Successful SSA optimization PassNFinalizeNumberTypeConversions
Inferred type updated to char in print_uchar::$2 = print_uchar::b#6 & $f
Inversing boolean not [157] memset::$1 = memset::num#1 <= 0 from [156] memset::$0 = memset::num#1 > 0
Successful SSA optimization Pass2UnaryNotSimplification
Alias print_str::str#5 = print_str::str#6 print_str::str#7
Alias print_char_cursor#1 = print_char_cursor#138 print_char_cursor#139 print_char_cursor#71
Alias print_char_cursor#0 = print_char_cursor#70
Alias print_line_cursor#0 = print_ln::$0 print_line_cursor#22 print_char_cursor#2 print_line_cursor#23 print_char_cursor#73 print_line_cursor#1 print_char_cursor#3
Alias print_char_cursor#141 = print_char_cursor#160 print_char_cursor#142
Alias print_sint::w#10 = print_sint::w#8 print_sint::w#5 print_sint::w#6 print_sint::w#9
Alias print_char_cursor#4 = print_char_cursor#74
Alias print_sint::w#0 = print_sint::$4
Alias print_char_cursor#5 = print_char_cursor#75
Alias print_char_cursor#6 = print_char_cursor#76 print_char_cursor#77 print_char_cursor#7
Alias print_char_cursor#144 = print_char_cursor#161 print_char_cursor#145
Alias print_schar::b#2 = print_schar::b#5 print_schar::b#3 print_schar::b#7 print_schar::b#6
Alias print_char_cursor#78 = print_char_cursor#8
Alias print_schar::b#0 = print_schar::$4
Alias print_char_cursor#79 = print_char_cursor#9
Alias print_char_cursor#10 = print_char_cursor#80 print_char_cursor#81 print_char_cursor#11
Alias print_uchar::b#1 = print_uint::$0
Alias print_uint::w#5 = print_uint::w#6
Alias print_char_cursor#12 = print_char_cursor#82
Alias print_uchar::b#2 = print_uint::$2
Alias print_char_cursor#13 = print_char_cursor#83 print_char_cursor#84 print_char_cursor#14
Alias print_uint::w#1 = print_ulong::$0
Alias print_ulong::dw#2 = print_ulong::dw#3
Alias print_char_cursor#15 = print_char_cursor#85
Alias print_uint::w#2 = print_ulong::$2
Alias print_char_cursor#16 = print_char_cursor#86 print_char_cursor#87 print_char_cursor#17
Alias print_char_cursor#149 = print_char_cursor#162 print_char_cursor#150
Alias print_slong::dw#3 = print_slong::dw#6 print_slong::dw#4 print_slong::dw#8 print_slong::dw#7
Alias print_char_cursor#18 = print_char_cursor#88
Alias print_slong::dw#0 = print_slong::$4
Alias print_char_cursor#19 = print_char_cursor#89
Alias print_char_cursor#20 = print_char_cursor#90 print_char_cursor#91 print_char_cursor#21
Alias print_uchar::b#5 = print_uchar::b#6
Alias print_char_cursor#22 = print_char_cursor#92
Alias print_char_cursor#23 = print_char_cursor#93 print_char_cursor#94 print_char_cursor#24
Alias print_char_cursor#25 = print_char_cursor#96 print_char_cursor#26
Alias print_line_cursor#2 = print_screen#3 print_screen#2 print_char_cursor#27 print_line_cursor#24 print_char_cursor#97 print_line_cursor#3 print_char_cursor#28
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#25 = print_line_cursor#4
Alias print_char_cursor#29 = print_char_cursor#98
Alias print_char_cursor#30 = print_char_cursor#99
Alias print_line_cursor#26 = print_line_cursor#5
Alias print_char_cursor#100 = print_char_cursor#31
Alias print_line_cursor#27 = print_line_cursor#6
Alias print_char_cursor#101 = print_char_cursor#32
Alias print_line_cursor#28 = print_line_cursor#7
Alias print_char_cursor#102 = print_char_cursor#33 print_char_cursor#103 print_char_cursor#34
Alias print_line_cursor#29 = print_line_cursor#8 print_line_cursor#30 print_line_cursor#9
Alias print_line_cursor#43 = print_line_cursor#64 print_line_cursor#68 print_line_cursor#60 print_line_cursor#56 print_line_cursor#52 print_line_cursor#48
Alias print_char_cursor#104 = print_char_cursor#35
Alias print_char_cursor#105 = print_char_cursor#36
Alias print_char_cursor#106 = print_char_cursor#37
Alias print_char_cursor#107 = print_char_cursor#38
Alias print_char_cursor#108 = print_char_cursor#39
Alias print_char_cursor#109 = print_char_cursor#40
Alias print_line_cursor#10 = print_line_cursor#31 print_line_cursor#32 print_line_cursor#11
Alias print_char_cursor#110 = print_char_cursor#41 print_char_cursor#111 print_char_cursor#42
Alias print_line_cursor#44 = print_line_cursor#65 print_line_cursor#69 print_line_cursor#61 print_line_cursor#57 print_line_cursor#53 print_line_cursor#49
Alias print_char_cursor#112 = print_char_cursor#43
Alias print_char_cursor#113 = print_char_cursor#44
Alias print_char_cursor#114 = print_char_cursor#45
Alias print_char_cursor#115 = print_char_cursor#46
Alias print_char_cursor#116 = print_char_cursor#47
Alias print_char_cursor#117 = print_char_cursor#48
Alias print_line_cursor#12 = print_line_cursor#33 print_line_cursor#34 print_line_cursor#13
Alias print_char_cursor#118 = print_char_cursor#49 print_char_cursor#119 print_char_cursor#50
Alias print_line_cursor#45 = print_line_cursor#66 print_line_cursor#70 print_line_cursor#62 print_line_cursor#58 print_line_cursor#54 print_line_cursor#50
Alias print_char_cursor#120 = print_char_cursor#51
Alias print_char_cursor#121 = print_char_cursor#52
Alias print_char_cursor#122 = print_char_cursor#53
Alias print_char_cursor#123 = print_char_cursor#54
Alias print_char_cursor#124 = print_char_cursor#55
Alias print_char_cursor#125 = print_char_cursor#56
Alias print_line_cursor#14 = print_line_cursor#35 print_line_cursor#36 print_line_cursor#15
Alias print_char_cursor#126 = print_char_cursor#57 print_char_cursor#127 print_char_cursor#58
Alias print_line_cursor#46 = print_line_cursor#67 print_line_cursor#71 print_line_cursor#63 print_line_cursor#59 print_line_cursor#55 print_line_cursor#51
Alias print_char_cursor#128 = print_char_cursor#59
Alias print_char_cursor#129 = print_char_cursor#60
Alias print_char_cursor#130 = print_char_cursor#61
Alias print_char_cursor#131 = print_char_cursor#62
Alias print_char_cursor#132 = print_char_cursor#63
Alias print_char_cursor#133 = print_char_cursor#64
Alias print_line_cursor#16 = print_line_cursor#37 print_line_cursor#38 print_line_cursor#17
Alias print_char_cursor#134 = print_char_cursor#65 print_char_cursor#135 print_char_cursor#66
Alias print_screen#0 = print_line_cursor#18 print_char_cursor#67 print_line_cursor#47 print_char_cursor#158 print_screen#7 print_screen#6 print_screen#4 print_screen#1
Alias print_line_cursor#19 = print_line_cursor#39 print_line_cursor#40 print_line_cursor#20
Alias print_char_cursor#136 = print_char_cursor#68 print_char_cursor#137 print_char_cursor#69
Successful SSA optimization Pass2AliasElimination
Identical Phi Values print_char_cursor#0 print_char_cursor#25
Identical Phi Values print_char_cursor#72 print_char_cursor#140
Identical Phi Values print_char_cursor#4 print_char_cursor#25
Identical Phi Values print_char_cursor#5 print_char_cursor#25
Identical Phi Values print_char_cursor#6 print_char_cursor#13
Identical Phi Values print_schar::b#2 print_schar::b#1
Identical Phi Values print_char_cursor#144 print_char_cursor#108
Identical Phi Values print_char_cursor#78 print_char_cursor#25
Identical Phi Values print_char_cursor#79 print_char_cursor#25
Identical Phi Values print_char_cursor#10 print_char_cursor#23
Identical Phi Values print_char_cursor#12 print_char_cursor#23
Identical Phi Values print_char_cursor#13 print_char_cursor#23
Identical Phi Values print_char_cursor#15 print_char_cursor#13
Identical Phi Values print_char_cursor#16 print_char_cursor#13
Identical Phi Values print_char_cursor#18 print_char_cursor#25
Identical Phi Values print_char_cursor#19 print_char_cursor#25
Identical Phi Values print_char_cursor#20 print_char_cursor#16
Identical Phi Values print_char_cursor#22 print_char_cursor#25
Identical Phi Values print_char_cursor#23 print_char_cursor#25
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#42 print_screen#0
Identical Phi Values print_char_cursor#153 print_screen#0
Identical Phi Values print_line_cursor#25 print_line_cursor#2
Identical Phi Values print_char_cursor#29 print_line_cursor#2
Identical Phi Values print_char_cursor#30 print_char_cursor#110
Identical Phi Values print_line_cursor#26 print_line_cursor#10
Identical Phi Values print_char_cursor#100 print_char_cursor#118
Identical Phi Values print_line_cursor#27 print_line_cursor#12
Identical Phi Values print_char_cursor#101 print_char_cursor#126
Identical Phi Values print_line_cursor#28 print_line_cursor#14
Identical Phi Values print_char_cursor#102 print_char_cursor#134
Identical Phi Values print_line_cursor#29 print_line_cursor#16
Identical Phi Values print_char_cursor#154 print_char_cursor#29
Identical Phi Values print_line_cursor#43 print_line_cursor#25
Identical Phi Values print_char_cursor#104 print_char_cursor#1
Identical Phi Values print_char_cursor#105 print_char_cursor#23
Identical Phi Values print_char_cursor#106 print_char_cursor#25
Identical Phi Values print_char_cursor#107 print_char_cursor#23
Identical Phi Values print_char_cursor#108 print_char_cursor#25
Identical Phi Values print_char_cursor#109 print_char_cursor#10
Identical Phi Values print_line_cursor#10 print_line_cursor#0
Identical Phi Values print_char_cursor#110 print_line_cursor#0
Identical Phi Values print_char_cursor#155 print_char_cursor#30
Identical Phi Values print_line_cursor#44 print_line_cursor#26
Identical Phi Values print_char_cursor#112 print_char_cursor#1
Identical Phi Values print_char_cursor#113 print_char_cursor#13
Identical Phi Values print_char_cursor#114 print_char_cursor#25
Identical Phi Values print_char_cursor#115 print_char_cursor#6
Identical Phi Values print_char_cursor#116 print_char_cursor#25
Identical Phi Values print_char_cursor#117 print_char_cursor#6
Identical Phi Values print_line_cursor#12 print_line_cursor#0
Identical Phi Values print_char_cursor#118 print_line_cursor#0
Identical Phi Values print_char_cursor#156 print_char_cursor#100
Identical Phi Values print_line_cursor#45 print_line_cursor#27
Identical Phi Values print_char_cursor#120 print_char_cursor#1
Identical Phi Values print_char_cursor#121 print_char_cursor#13
Identical Phi Values print_char_cursor#122 print_char_cursor#25
Identical Phi Values print_char_cursor#123 print_char_cursor#6
Identical Phi Values print_char_cursor#124 print_char_cursor#25
Identical Phi Values print_char_cursor#125 print_char_cursor#6
Identical Phi Values print_line_cursor#14 print_line_cursor#0
Identical Phi Values print_char_cursor#126 print_line_cursor#0
Identical Phi Values print_char_cursor#157 print_char_cursor#101
Identical Phi Values print_line_cursor#46 print_line_cursor#28
Identical Phi Values print_char_cursor#128 print_char_cursor#1
Identical Phi Values print_char_cursor#129 print_char_cursor#16
Identical Phi Values print_char_cursor#130 print_char_cursor#25
Identical Phi Values print_char_cursor#131 print_char_cursor#20
Identical Phi Values print_char_cursor#132 print_char_cursor#25
Identical Phi Values print_char_cursor#133 print_char_cursor#20
Identical Phi Values print_line_cursor#16 print_line_cursor#0
Identical Phi Values print_char_cursor#134 print_line_cursor#0
Identical Phi Values print_line_cursor#19 print_line_cursor#29
Identical Phi Values print_char_cursor#136 print_char_cursor#102
Successful SSA optimization Pass2IdenticalPhiElimination
Identical Phi Values print_char_cursor#140 print_char_cursor#25
Identical Phi Values print_char_cursor#141 print_char_cursor#25
Identical Phi Values print_char_cursor#143 print_char_cursor#25
Identical Phi Values print_char_cursor#146 print_char_cursor#25
Identical Phi Values print_char_cursor#149 print_char_cursor#25
Identical Phi Values print_char_cursor#151 print_char_cursor#25
Identical Phi Values memset::return#1 memset::str#0
Successful SSA optimization Pass2IdenticalPhiElimination
Simple Condition print_str::$1 [3] if(0!=*print_str::str#5) goto print_str::@2
Simple Condition print_ln::$1 [13] if(print_line_cursor#0<print_char_cursor#25) goto print_ln::@1
Simple Condition print_sint::$0 [17] if(print_sint::w#10<0) goto print_sint::@1
Simple Condition print_schar::$0 [32] if(print_schar::b#1<0) goto print_schar::@1
Simple Condition print_slong::$0 [63] if(print_slong::dw#3<0) goto print_slong::@1
Simple Condition memset::$1 [99] if(memset::num#0<=0) goto memset::@1
Simple Condition memset::$3 [106] if(memset::dst#2!=memset::end#0) goto memset::@4
Successful SSA optimization Pass2ConditionalJumpSimplification
Constant print_char::ch#1 = '-'
Constant print_char::ch#2 = ' '
Constant print_char::ch#3 = '-'
Constant print_char::ch#4 = ' '
Constant print_char::ch#5 = '-'
Constant print_char::ch#6 = ' '
Constant memset::c#0 = ' '
Constant memset::num#0 = $3e8
Constant print_str::str#1 = testChar::str
Constant print_uchar::b#3 = testChar::u
Constant print_char::ch#9 = ' '
Constant print_uchar::b#4 = testChar::n
Constant print_char::ch#10 = ' '
Constant print_schar::b#1 = testChar::s
Constant print_str::str#2 = testShort::str
Constant print_uint::w#3 = testShort::u
Constant print_char::ch#11 = ' '
Constant print_sint::w#1 = testShort::n
Constant print_char::ch#12 = ' '
Constant print_sint::w#2 = testShort::s
Constant print_str::str#3 = testInt::str
Constant print_uint::w#4 = testInt::u
Constant print_char::ch#13 = ' '
Constant print_sint::w#3 = testInt::n
Constant print_char::ch#14 = ' '
Constant print_sint::w#4 = testInt::s
Constant print_str::str#4 = testLong::str
Constant print_ulong::dw#1 = testLong::u
Constant print_char::ch#15 = ' '
Constant print_slong::dw#1 = testLong::n
Constant print_char::ch#16 = ' '
Constant print_slong::dw#2 = testLong::s
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 true - replacing block destination [32] if(print_schar::b#1<0) goto print_schar::@1
if() condition always false - eliminating [99] if(memset::num#0<=0) goto memset::@1
Successful SSA optimization Pass2ConstantIfs
Removing PHI-reference to removed block (print_schar::@3) in block print_char
Removing PHI-reference to removed block (print_schar::@3) in block print_char
Removing unused block print_schar::@3
Removing PHI-reference to removed block (print_schar::@5) in block print_schar::@2
Removing unused block print_schar::@5
Successful SSA optimization Pass2EliminateUnusedBlocks
Eliminating unused constant print_char::ch#4
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
Alias print_schar::b#0 = print_schar::b#4
Successful SSA optimization Pass2AliasElimination
Constant right-side identified [22] print_schar::b#0 = - print_schar::b#1
Constant right-side identified [61] memset::end#0 = memset::$4 + memset::num#0
Successful SSA optimization Pass2ConstantRValueConsolidation
Constant print_schar::b#0 = -print_schar::b#1
Constant memset::end#0 = memset::$4+memset::num#0
Successful SSA optimization Pass2ConstantIdentification
Constant print_uchar::b#0 = (char)print_schar::b#0
Successful SSA optimization Pass2ConstantIdentification
Inlining constant with var siblings print_str::str#1
Inlining constant with var siblings print_str::str#2
Inlining constant with var siblings print_str::str#3
Inlining constant with var siblings print_str::str#4
Inlining constant with var siblings print_sint::w#1
Inlining constant with var siblings print_sint::w#2
Inlining constant with var siblings print_sint::w#3
Inlining constant with var siblings print_sint::w#4
Inlining constant with different constant siblings print_schar::b#1
Inlining constant with var siblings print_uint::w#3
Inlining constant with var siblings print_uint::w#4
Inlining constant with var siblings print_ulong::dw#1
Inlining constant with var siblings print_slong::dw#1
Inlining constant with var siblings print_slong::dw#2
Inlining constant with var siblings print_uchar::b#3
Inlining constant with var siblings print_uchar::b#4
Inlining constant with var siblings print_uchar::b#0
Inlining constant with var siblings print_char::ch#1
Inlining constant with var siblings print_char::ch#2
Inlining constant with var siblings print_char::ch#3
Inlining constant with var siblings print_char::ch#5
Inlining constant with var siblings print_char::ch#6
Inlining constant with var siblings print_char::ch#9
Inlining constant with var siblings print_char::ch#10
Inlining constant with var siblings print_char::ch#11
Inlining constant with var siblings print_char::ch#12
Inlining constant with var siblings print_char::ch#13
Inlining constant with var siblings print_char::ch#14
Inlining constant with var siblings print_char::ch#15
Inlining constant with var siblings print_char::ch#16
Inlining constant with var siblings memset::dst#0
Constant inlined print_sint::w#3 = testInt::n
Constant inlined print_char::ch#13 = ' '
Constant inlined print_sint::w#2 = testShort::s
Constant inlined print_uchar::b#3 = testChar::u
Constant inlined print_char::ch#14 = ' '
Constant inlined print_uchar::b#4 = testChar::n
Constant inlined print_char::ch#15 = ' '
Constant inlined print_sint::w#4 = testInt::s
Constant inlined print_char::ch#16 = ' '
Constant inlined print_char::ch#10 = ' '
Constant inlined print_sint::w#1 = testShort::n
Constant inlined print_uchar::b#0 = (char)print_schar::b#0
Constant inlined print_char::ch#11 = ' '
Constant inlined print_char::ch#12 = ' '
Constant inlined print_char::ch#6 = ' '
Constant inlined print_char::ch#9 = ' '
Constant inlined print_schar::b#1 = testChar::s
Constant inlined memset::$4 = (char *)memset::str#0
Constant inlined print_slong::dw#2 = testLong::s
Constant inlined print_slong::dw#1 = testLong::n
Constant inlined print_ulong::dw#1 = testLong::u
Constant inlined print_char::ch#3 = '-'
Constant inlined print_char::ch#2 = ' '
Constant inlined print_char::ch#5 = '-'
Constant inlined print_char::ch#1 = '-'
Constant inlined print_str::str#4 = testLong::str
Constant inlined print_str::str#3 = testInt::str
Constant inlined print_str::str#2 = testShort::str
Constant inlined print_uint::w#4 = testInt::u
Constant inlined memset::dst#0 = (char *)memset::str#0
Constant inlined print_str::str#1 = testChar::str
Constant inlined print_uint::w#3 = testShort::u
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::@2
Adding NOP phi() at start of main::@3
Adding NOP phi() at start of main::@4
Adding NOP phi() at start of main::@5
Adding NOP phi() at start of print_cls
Adding NOP phi() at start of print_cls::@1
Adding NOP phi() at start of testChar
Adding NOP phi() at start of testChar::@5
Adding NOP phi() at start of testChar::@6
Adding NOP phi() at start of testChar::@7
Adding NOP phi() at start of testShort::@3
Adding NOP phi() at start of testShort::@5
Adding NOP phi() at start of testShort::@7
Adding NOP phi() at start of testInt::@3
Adding NOP phi() at start of testInt::@5
Adding NOP phi() at start of testInt::@7
Adding NOP phi() at start of testLong::@3
Adding NOP phi() at start of testLong::@5
Adding NOP phi() at start of testLong::@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 print_schar
Adding NOP phi() at start of print_schar::@4
Adding NOP phi() at start of print_schar::@6
Adding NOP phi() at start of print_ln::@2
Adding NOP phi() at start of print_uint::@2
Adding NOP phi() at start of print_sint::@6
Adding NOP phi() at start of print_ulong::@2
Adding NOP phi() at start of print_slong::@6
CALL GRAPH
Calls in [main] to print_cls:1 testChar:3 testShort:5 testInt:7 testLong:9
Calls in [print_cls] to memset:13
Calls in [testChar] to print_str:17 print_uchar:19 print_char:21 print_uchar:23 print_char:25 print_schar:27 print_ln:29
Calls in [testShort] to print_str:33 print_uint:35 print_char:37 print_sint:39 print_char:41 print_sint:43 print_ln:45
Calls in [testInt] to print_str:49 print_uint:51 print_char:53 print_sint:55 print_char:57 print_sint:59 print_ln:61
Calls in [testLong] to print_str:65 print_ulong:67 print_char:69 print_slong:71 print_char:73 print_slong:75 print_ln:77
Calls in [print_str] to print_char:98
Calls in [print_uchar] to print_char:107 print_char:112
Calls in [print_schar] to print_char:121 print_uchar:124
Calls in [print_uint] to print_uchar:139 print_uchar:143
Calls in [print_sint] to print_char:149 print_uint:155 print_char:159
Calls in [print_ulong] to print_uint:166 print_uint:170
Calls in [print_slong] to print_char:176 print_ulong:182 print_char:186
Created 19 initial phi equivalence classes
Coalesced [18] print_char_cursor#178 = print_char_cursor#1
Coalesced [20] print_char_cursor#188 = print_char_cursor#25
Coalesced [22] print_char_cursor#179 = print_char_cursor#25
Coalesced (already) [24] print_char_cursor#189 = print_char_cursor#25
Not coalescing [32] print_char_cursor#165 = print_line_cursor#0
Coalesced [34] print_char_cursor#172 = print_char_cursor#1
Coalesced (already) [36] print_char_cursor#194 = print_char_cursor#25
Coalesced (already) [40] print_char_cursor#195 = print_char_cursor#25
Coalesced [44] print_line_cursor#74 = print_line_cursor#0
Not coalescing [48] print_char_cursor#163 = print_line_cursor#0
Coalesced (already) [50] print_char_cursor#171 = print_char_cursor#1
Coalesced (already) [52] print_char_cursor#190 = print_char_cursor#25
Coalesced (already) [56] print_char_cursor#191 = print_char_cursor#25
Coalesced (already) [60] print_line_cursor#72 = print_line_cursor#0
Not coalescing [64] print_char_cursor#164 = print_line_cursor#0
Coalesced [66] print_char_cursor#174 = print_char_cursor#1
Coalesced (already) [68] print_char_cursor#192 = print_char_cursor#25
Coalesced (already) [72] print_char_cursor#193 = print_char_cursor#25
Coalesced (already) [76] print_line_cursor#73 = print_line_cursor#0
Coalesced [88] memset::dst#4 = memset::dst#1
Coalesced [90] print_str::str#9 = print_str::str#8
Coalesced [91] print_char_cursor#166 = print_char_cursor#159
Coalesced [96] print_char::ch#18 = print_char::ch#0
Coalesced (already) [97] print_char_cursor#185 = print_char_cursor#1
Coalesced [100] print_str::str#10 = print_str::str#0
Coalesced (already) [101] print_char_cursor#167 = print_char_cursor#25
Coalesced [105] print_char::ch#19 = print_char::ch#7
Coalesced (already) [106] print_char_cursor#186 = print_char_cursor#152
Coalesced [110] print_char::ch#20 = print_char::ch#8
Coalesced (already) [111] print_char_cursor#187 = print_char_cursor#25
Coalesced (already) [120] print_char_cursor#180 = print_char_cursor#25
Coalesced (already) [123] print_char_cursor#175 = print_char_cursor#25
Coalesced [128] print_line_cursor#75 = print_line_cursor#41
Coalesced (already) [134] print_line_cursor#76 = print_line_cursor#0
Coalesced [137] print_uchar::b#7 = print_uchar::b#1
Coalesced (already) [138] print_char_cursor#176 = print_char_cursor#147
Coalesced [141] print_uchar::b#8 = print_uchar::b#2
Coalesced (already) [142] print_char_cursor#177 = print_char_cursor#25
Coalesced (already) [148] print_char_cursor#182 = print_char_cursor#25
Coalesced [150] print_sint::w#12 = print_sint::w#10
Coalesced [153] print_uint::w#7 = print_uint::w#0
Coalesced (already) [154] print_char_cursor#168 = print_char_cursor#25
Coalesced (already) [158] print_char_cursor#181 = print_char_cursor#25
Coalesced [161] print_sint::w#11 = print_sint::w#0
Coalesced [164] print_uint::w#8 = print_uint::w#1
Coalesced (already) [165] print_char_cursor#169 = print_char_cursor#148
Coalesced [168] print_uint::w#9 = print_uint::w#2
Coalesced (already) [169] print_char_cursor#170 = print_char_cursor#25
Coalesced (already) [175] print_char_cursor#184 = print_char_cursor#25
Coalesced [177] print_slong::dw#10 = print_slong::dw#3
Coalesced [180] print_ulong::dw#4 = print_ulong::dw#0
Coalesced (already) [181] print_char_cursor#173 = print_char_cursor#25
Coalesced (already) [185] print_char_cursor#183 = print_char_cursor#25
Coalesced [188] print_slong::dw#9 = print_slong::dw#0
Coalesced down to 10 phi equivalence classes
Culled Empty Block label main::@5
Culled Empty Block label print_cls::@1
Culled Empty Block label testChar::@7
Culled Empty Block label testShort::@7
Culled Empty Block label testInt::@7
Culled Empty Block label testLong::@7
Culled Empty Block label memset::@2
Culled Empty Block label memset::@1
Culled Empty Block label print_uchar::@2
Culled Empty Block label print_schar::@4
Culled Empty Block label print_schar::@6
Culled Empty Block label print_ln::@2
Culled Empty Block label print_ln::@3
Culled Empty Block label print_uint::@2
Culled Empty Block label print_sint::@5
Culled Empty Block label print_sint::@6
Culled Empty Block label print_ulong::@2
Culled Empty Block label print_slong::@5
Culled Empty Block label print_slong::@6
Renumbering block memset::@3 to memset::@1
Renumbering block memset::@4 to memset::@2
Adding NOP phi() at start of main
Adding NOP phi() at start of main::@1
Adding NOP phi() at start of main::@2
Adding NOP phi() at start of main::@3
Adding NOP phi() at start of main::@4
Adding NOP phi() at start of print_cls
Adding NOP phi() at start of testChar
Adding NOP phi() at start of testChar::@1
Adding NOP phi() at start of testChar::@2
Adding NOP phi() at start of testChar::@3
Adding NOP phi() at start of testChar::@4
Adding NOP phi() at start of testChar::@5
Adding NOP phi() at start of testChar::@6
Adding NOP phi() at start of testShort::@1
Adding NOP phi() at start of testShort::@2
Adding NOP phi() at start of testShort::@3
Adding NOP phi() at start of testShort::@4
Adding NOP phi() at start of testShort::@5
Adding NOP phi() at start of testShort::@6
Adding NOP phi() at start of testInt::@1
Adding NOP phi() at start of testInt::@2
Adding NOP phi() at start of testInt::@3
Adding NOP phi() at start of testInt::@4
Adding NOP phi() at start of testInt::@5
Adding NOP phi() at start of testInt::@6
Adding NOP phi() at start of testLong::@1
Adding NOP phi() at start of testLong::@2
Adding NOP phi() at start of testLong::@3
Adding NOP phi() at start of testLong::@4
Adding NOP phi() at start of testLong::@5
Adding NOP phi() at start of testLong::@6
Adding NOP phi() at start of memset
Adding NOP phi() at start of print_schar
Adding NOP phi() at start of print_schar::@1
Adding NOP phi() at start of print_schar::@2
Adding NOP phi() at start of print_sint::@3
Adding NOP phi() at start of print_sint::@1
Adding NOP phi() at start of print_slong::@3
Adding NOP phi() at start of print_slong::@1
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 testChar
to:main::@2
main::@2: scope:[main] from main::@1
[4] phi()
[5] call testShort
to:main::@3
main::@3: scope:[main] from main::@2
[6] phi()
[7] call testInt
to:main::@4
main::@4: scope:[main] from main::@3
[8] phi()
[9] call testLong
to:main::@return
main::@return: scope:[main] from main::@4
[10] return
to:@return
void print_cls()
print_cls: scope:[print_cls] from main
[11] phi()
[12] call memset
to:print_cls::@return
print_cls::@return: scope:[print_cls] from print_cls
[13] return
to:@return
void testChar()
testChar: scope:[testChar] from main::@1
[14] phi()
[15] call print_str
to:testChar::@1
testChar::@1: scope:[testChar] from testChar
[16] phi()
[17] call print_uchar
to:testChar::@2
testChar::@2: scope:[testChar] from testChar::@1
[18] phi()
[19] call print_char
to:testChar::@3
testChar::@3: scope:[testChar] from testChar::@2
[20] phi()
[21] call print_uchar
to:testChar::@4
testChar::@4: scope:[testChar] from testChar::@3
[22] phi()
[23] call print_char
to:testChar::@5
testChar::@5: scope:[testChar] from testChar::@4
[24] phi()
[25] call print_schar
to:testChar::@6
testChar::@6: scope:[testChar] from testChar::@5
[26] phi()
[27] call print_ln
to:testChar::@return
testChar::@return: scope:[testChar] from testChar::@6
[28] return
to:@return
void testShort()
testShort: scope:[testShort] from main::@2
[29] print_char_cursor#165 = print_line_cursor#0
[30] call print_str
to:testShort::@1
testShort::@1: scope:[testShort] from testShort
[31] phi()
[32] call print_uint
to:testShort::@2
testShort::@2: scope:[testShort] from testShort::@1
[33] phi()
[34] call print_char
to:testShort::@3
testShort::@3: scope:[testShort] from testShort::@2
[35] phi()
[36] call print_sint
to:testShort::@4
testShort::@4: scope:[testShort] from testShort::@3
[37] phi()
[38] call print_char
to:testShort::@5
testShort::@5: scope:[testShort] from testShort::@4
[39] phi()
[40] call print_sint
to:testShort::@6
testShort::@6: scope:[testShort] from testShort::@5
[41] phi()
[42] call print_ln
to:testShort::@return
testShort::@return: scope:[testShort] from testShort::@6
[43] return
to:@return
void testInt()
testInt: scope:[testInt] from main::@3
[44] print_char_cursor#163 = print_line_cursor#0
[45] call print_str
to:testInt::@1
testInt::@1: scope:[testInt] from testInt
[46] phi()
[47] call print_uint
to:testInt::@2
testInt::@2: scope:[testInt] from testInt::@1
[48] phi()
[49] call print_char
to:testInt::@3
testInt::@3: scope:[testInt] from testInt::@2
[50] phi()
[51] call print_sint
to:testInt::@4
testInt::@4: scope:[testInt] from testInt::@3
[52] phi()
[53] call print_char
to:testInt::@5
testInt::@5: scope:[testInt] from testInt::@4
[54] phi()
[55] call print_sint
to:testInt::@6
testInt::@6: scope:[testInt] from testInt::@5
[56] phi()
[57] call print_ln
to:testInt::@return
testInt::@return: scope:[testInt] from testInt::@6
[58] return
to:@return
void testLong()
testLong: scope:[testLong] from main::@4
[59] print_char_cursor#164 = print_line_cursor#0
[60] call print_str
to:testLong::@1
testLong::@1: scope:[testLong] from testLong
[61] phi()
[62] call print_ulong
to:testLong::@2
testLong::@2: scope:[testLong] from testLong::@1
[63] phi()
[64] call print_char
to:testLong::@3
testLong::@3: scope:[testLong] from testLong::@2
[65] phi()
[66] call print_slong
to:testLong::@4
testLong::@4: scope:[testLong] from testLong::@3
[67] phi()
[68] call print_char
to:testLong::@5
testLong::@5: scope:[testLong] from testLong::@4
[69] phi()
[70] call print_slong
to:testLong::@6
testLong::@6: scope:[testLong] from testLong::@5
[71] phi()
[72] call print_ln
to:testLong::@return
testLong::@return: scope:[testLong] from testLong::@6
[73] return
to:@return
void * memset(void *str , char c , unsigned int num)
memset: scope:[memset] from print_cls
[74] phi()
to:memset::@1
memset::@1: scope:[memset] from memset memset::@2
[75] memset::dst#2 = phi( memset/(char *)memset::str#0, memset::@2/memset::dst#1 )
[76] if(memset::dst#2!=memset::end#0) goto memset::@2
to:memset::@return
memset::@return: scope:[memset] from memset::@1
[77] return
to:@return
memset::@2: scope:[memset] from memset::@1
[78] *memset::dst#2 = memset::c#0
[79] memset::dst#1 = ++ memset::dst#2
to:memset::@1
void print_str(char *str)
print_str: scope:[print_str] from testChar testInt testLong testShort
[80] print_char_cursor#159 = phi( testChar/print_screen#0, testInt/print_char_cursor#163, testLong/print_char_cursor#164, testShort/print_char_cursor#165 )
[80] print_str::str#8 = phi( testChar/testChar::str, testInt/testInt::str, testLong/testLong::str, testShort/testShort::str )
to:print_str::@1
print_str::@1: scope:[print_str] from print_str print_str::@3
[81] print_char_cursor#1 = phi( print_str/print_char_cursor#159, print_str::@3/print_char_cursor#25 )
[81] print_str::str#5 = phi( print_str/print_str::str#8, print_str::@3/print_str::str#0 )
[82] if(0!=*print_str::str#5) goto print_str::@2
to:print_str::@return
print_str::@return: scope:[print_str] from print_str::@1
[83] return
to:@return
print_str::@2: scope:[print_str] from print_str::@1
[84] print_char::ch#0 = *print_str::str#5
[85] call print_char
to:print_str::@3
print_str::@3: scope:[print_str] from print_str::@2
[86] print_str::str#0 = ++ print_str::str#5
to:print_str::@1
void print_uchar(char b)
print_uchar: scope:[print_uchar] from print_schar::@2 print_uint print_uint::@1 testChar::@1 testChar::@3
[87] print_char_cursor#152 = phi( print_schar::@2/print_char_cursor#25, print_uint/print_char_cursor#147, print_uint::@1/print_char_cursor#25, testChar::@1/print_char_cursor#1, testChar::@3/print_char_cursor#25 )
[87] print_uchar::b#5 = phi( print_schar::@2/(char)print_schar::b#0, print_uint/print_uchar::b#1, print_uint::@1/print_uchar::b#2, testChar::@1/testChar::u, testChar::@3/testChar::n )
[88] print_uchar::$0 = print_uchar::b#5 >> 4
[89] print_char::ch#7 = print_hextab[print_uchar::$0]
[90] call print_char
to:print_uchar::@1
print_uchar::@1: scope:[print_uchar] from print_uchar
[91] print_uchar::$2 = print_uchar::b#5 & $f
[92] print_char::ch#8 = print_hextab[print_uchar::$2]
[93] call print_char
to:print_uchar::@return
print_uchar::@return: scope:[print_uchar] from print_uchar::@1
[94] return
to:@return
void print_char(char ch)
print_char: scope:[print_char] from print_schar::@1 print_sint::@1 print_sint::@3 print_slong::@1 print_slong::@3 print_str::@2 print_uchar print_uchar::@1 testChar::@2 testChar::@4 testInt::@2 testInt::@4 testLong::@2 testLong::@4 testShort::@2 testShort::@4
[95] print_char_cursor#95 = phi( print_schar::@1/print_char_cursor#25, print_sint::@1/print_char_cursor#25, print_sint::@3/print_char_cursor#25, print_slong::@1/print_char_cursor#25, print_slong::@3/print_char_cursor#25, print_str::@2/print_char_cursor#1, print_uchar/print_char_cursor#152, print_uchar::@1/print_char_cursor#25, testChar::@2/print_char_cursor#25, testChar::@4/print_char_cursor#25, testInt::@2/print_char_cursor#25, testInt::@4/print_char_cursor#25, testLong::@2/print_char_cursor#25, testLong::@4/print_char_cursor#25, testShort::@2/print_char_cursor#25, testShort::@4/print_char_cursor#25 )
[95] print_char::ch#17 = phi( print_schar::@1/'-', print_sint::@1/'-', print_sint::@3/' ', print_slong::@1/'-', print_slong::@3/' ', print_str::@2/print_char::ch#0, print_uchar/print_char::ch#7, print_uchar::@1/print_char::ch#8, testChar::@2/' ', testChar::@4/' ', testInt::@2/' ', testInt::@4/' ', testLong::@2/' ', testLong::@4/' ', testShort::@2/' ', testShort::@4/' ' )
[96] *print_char_cursor#95 = print_char::ch#17
[97] print_char_cursor#25 = ++ print_char_cursor#95
to:print_char::@return
print_char::@return: scope:[print_char] from print_char
[98] return
to:@return
void print_schar(signed char b)
print_schar: scope:[print_schar] from testChar::@5
[99] phi()
to:print_schar::@1
print_schar::@1: scope:[print_schar] from print_schar
[100] phi()
[101] call print_char
to:print_schar::@2
print_schar::@2: scope:[print_schar] from print_schar::@1
[102] phi()
[103] call print_uchar
to:print_schar::@return
print_schar::@return: scope:[print_schar] from print_schar::@2
[104] return
to:@return
void print_ln()
print_ln: scope:[print_ln] from testChar::@6 testInt::@6 testLong::@6 testShort::@6
[105] print_line_cursor#41 = phi( testChar::@6/print_screen#0, testInt::@6/print_line_cursor#0, testLong::@6/print_line_cursor#0, testShort::@6/print_line_cursor#0 )
to:print_ln::@1
print_ln::@1: scope:[print_ln] from print_ln print_ln::@1
[106] print_line_cursor#21 = phi( print_ln/print_line_cursor#41, print_ln::@1/print_line_cursor#0 )
[107] print_line_cursor#0 = print_line_cursor#21 + $28
[108] if(print_line_cursor#0<print_char_cursor#25) goto print_ln::@1
to:print_ln::@return
print_ln::@return: scope:[print_ln] from print_ln::@1
[109] return
to:@return
void print_uint(unsigned int w)
print_uint: scope:[print_uint] from print_sint::@2 print_ulong print_ulong::@1 testInt::@1 testShort::@1
[110] print_char_cursor#147 = phi( print_sint::@2/print_char_cursor#25, print_ulong/print_char_cursor#148, print_ulong::@1/print_char_cursor#25, testInt::@1/print_char_cursor#1, testShort::@1/print_char_cursor#1 )
[110] print_uint::w#5 = phi( print_sint::@2/print_uint::w#0, print_ulong/print_uint::w#1, print_ulong::@1/print_uint::w#2, testInt::@1/testInt::u, testShort::@1/testShort::u )
[111] print_uchar::b#1 = byte1 print_uint::w#5
[112] call print_uchar
to:print_uint::@1
print_uint::@1: scope:[print_uint] from print_uint
[113] print_uchar::b#2 = byte0 print_uint::w#5
[114] call print_uchar
to:print_uint::@return
print_uint::@return: scope:[print_uint] from print_uint::@1
[115] return
to:@return
void print_sint(int w)
print_sint: scope:[print_sint] from testInt::@3 testInt::@5 testShort::@3 testShort::@5
[116] print_sint::w#10 = phi( testInt::@3/testInt::n, testInt::@5/testInt::s, testShort::@3/testShort::n, testShort::@5/testShort::s )
[117] if(print_sint::w#10<0) goto print_sint::@1
to:print_sint::@3
print_sint::@3: scope:[print_sint] from print_sint
[118] phi()
[119] call print_char
to:print_sint::@2
print_sint::@2: scope:[print_sint] from print_sint::@3 print_sint::@4
[120] print_sint::w#7 = phi( print_sint::@4/print_sint::w#0, print_sint::@3/print_sint::w#10 )
[121] print_uint::w#0 = (unsigned int)print_sint::w#7
[122] call print_uint
to:print_sint::@return
print_sint::@return: scope:[print_sint] from print_sint::@2
[123] return
to:@return
print_sint::@1: scope:[print_sint] from print_sint
[124] phi()
[125] call print_char
to:print_sint::@4
print_sint::@4: scope:[print_sint] from print_sint::@1
[126] print_sint::w#0 = - print_sint::w#10
to:print_sint::@2
void print_ulong(unsigned long dw)
print_ulong: scope:[print_ulong] from print_slong::@2 testLong::@1
[127] print_char_cursor#148 = phi( print_slong::@2/print_char_cursor#25, testLong::@1/print_char_cursor#1 )
[127] print_ulong::dw#2 = phi( print_slong::@2/print_ulong::dw#0, testLong::@1/testLong::u )
[128] print_uint::w#1 = word1 print_ulong::dw#2
[129] call print_uint
to:print_ulong::@1
print_ulong::@1: scope:[print_ulong] from print_ulong
[130] print_uint::w#2 = word0 print_ulong::dw#2
[131] call print_uint
to:print_ulong::@return
print_ulong::@return: scope:[print_ulong] from print_ulong::@1
[132] return
to:@return
void print_slong(long dw)
print_slong: scope:[print_slong] from testLong::@3 testLong::@5
[133] print_slong::dw#3 = phi( testLong::@3/testLong::n, testLong::@5/testLong::s )
[134] if(print_slong::dw#3<0) goto print_slong::@1
to:print_slong::@3
print_slong::@3: scope:[print_slong] from print_slong
[135] phi()
[136] call print_char
to:print_slong::@2
print_slong::@2: scope:[print_slong] from print_slong::@3 print_slong::@4
[137] print_slong::dw#5 = phi( print_slong::@4/print_slong::dw#0, print_slong::@3/print_slong::dw#3 )
[138] print_ulong::dw#0 = (unsigned long)print_slong::dw#5
[139] call print_ulong
to:print_slong::@return
print_slong::@return: scope:[print_slong] from print_slong::@2
[140] return
to:@return
print_slong::@1: scope:[print_slong] from print_slong
[141] phi()
[142] call print_char
to:print_slong::@4
print_slong::@4: scope:[print_slong] from print_slong::@1
[143] print_slong::dw#0 = - print_slong::dw#3
to:print_slong::@2
VARIABLE REGISTER WEIGHTS
void main()
void * memset(void *str , char c , unsigned int num)
char memset::c
char *memset::dst
char *memset::dst#1 // 2002.0
char *memset::dst#2 // 1334.6666666666667
char *memset::end
unsigned int memset::num
void *memset::return
void *memset::str
void print_char(char ch)
char print_char::ch
char print_char::ch#0 // 2002.0
char print_char::ch#17 // 1201004.0
char print_char::ch#7 // 200002.0
char print_char::ch#8 // 200002.0
char *print_char_cursor
char *print_char_cursor#1 // 178.91666666666666
char *print_char_cursor#147 // 6063.0
char *print_char_cursor#148 // 556.5
char *print_char_cursor#152 // 40042.0
char *print_char_cursor#159 // 134.0
char *print_char_cursor#163 // 22.0
char *print_char_cursor#164 // 22.0
char *print_char_cursor#165 // 22.0
char *print_char_cursor#25 // 12515.876404494384
char *print_char_cursor#95 // 1100799.0
void print_cls()
char *print_line_cursor
char *print_line_cursor#0 // 56.833333333333336
char *print_line_cursor#21 // 2103.0
char *print_line_cursor#41 // 134.0
void print_ln()
void print_schar(signed char b)
signed char print_schar::b
char *print_screen
void print_sint(int w)
int print_sint::w
int print_sint::w#0 // 202.0
int print_sint::w#10 // 50.5
int print_sint::w#7 // 202.0
void print_slong(long dw)
long print_slong::dw
long print_slong::dw#0 // 202.0
long print_slong::dw#3 // 50.5
long print_slong::dw#5 // 202.0
void print_str(char *str)
char *print_str::str
char *print_str::str#0 // 2002.0
char *print_str::str#5 // 1026.25
char *print_str::str#8 // 101.0
void print_uchar(char b)
char print_uchar::$0 // 200002.0
char print_uchar::$2 // 200002.0
char print_uchar::b
char print_uchar::b#1 // 20002.0
char print_uchar::b#2 // 20002.0
char print_uchar::b#5 // 55001.0
void print_uint(unsigned int w)
unsigned int print_uint::w
unsigned int print_uint::w#0 // 202.0
unsigned int print_uint::w#1 // 2002.0
unsigned int print_uint::w#2 // 2002.0
unsigned int print_uint::w#5 // 7368.333333333333
void print_ulong(unsigned long dw)
unsigned long print_ulong::dw
unsigned long print_ulong::dw#0 // 202.0
unsigned long print_ulong::dw#2 // 701.0
void testChar()
void testInt()
void testLong()
void testShort()
Initial phi equivalence classes
[ memset::dst#2 memset::dst#1 ]
[ print_str::str#5 print_str::str#8 print_str::str#0 ]
[ print_uchar::b#5 print_uchar::b#1 print_uchar::b#2 ]
[ print_char::ch#17 print_char::ch#0 print_char::ch#7 print_char::ch#8 ]
[ print_char_cursor#95 print_char_cursor#152 print_char_cursor#1 print_char_cursor#159 print_char_cursor#163 print_char_cursor#164 print_char_cursor#165 print_char_cursor#25 print_char_cursor#147 print_char_cursor#148 ]
[ print_line_cursor#21 print_line_cursor#41 print_line_cursor#0 ]
[ print_uint::w#5 print_uint::w#0 print_uint::w#1 print_uint::w#2 ]
[ print_sint::w#7 print_sint::w#0 print_sint::w#10 ]
[ print_ulong::dw#2 print_ulong::dw#0 ]
[ print_slong::dw#5 print_slong::dw#0 print_slong::dw#3 ]
Added variable print_uchar::$0 to live range equivalence class [ print_uchar::$0 ]
Added variable print_uchar::$2 to live range equivalence class [ print_uchar::$2 ]
Complete equivalence classes
[ memset::dst#2 memset::dst#1 ]
[ print_str::str#5 print_str::str#8 print_str::str#0 ]
[ print_uchar::b#5 print_uchar::b#1 print_uchar::b#2 ]
[ print_char::ch#17 print_char::ch#0 print_char::ch#7 print_char::ch#8 ]
[ print_char_cursor#95 print_char_cursor#152 print_char_cursor#1 print_char_cursor#159 print_char_cursor#163 print_char_cursor#164 print_char_cursor#165 print_char_cursor#25 print_char_cursor#147 print_char_cursor#148 ]
[ print_line_cursor#21 print_line_cursor#41 print_line_cursor#0 ]
[ print_uint::w#5 print_uint::w#0 print_uint::w#1 print_uint::w#2 ]
[ print_sint::w#7 print_sint::w#0 print_sint::w#10 ]
[ print_ulong::dw#2 print_ulong::dw#0 ]
[ print_slong::dw#5 print_slong::dw#0 print_slong::dw#3 ]
[ print_uchar::$0 ]
[ print_uchar::$2 ]
Allocated zp[1]:2 [ print_char::ch#17 print_char::ch#0 print_char::ch#7 print_char::ch#8 ]
Allocated zp[2]:3 [ print_char_cursor#95 print_char_cursor#152 print_char_cursor#1 print_char_cursor#159 print_char_cursor#163 print_char_cursor#164 print_char_cursor#165 print_char_cursor#25 print_char_cursor#147 print_char_cursor#148 ]
Allocated zp[1]:5 [ print_uchar::$0 ]
Allocated zp[1]:6 [ print_uchar::$2 ]
Allocated zp[1]:7 [ print_uchar::b#5 print_uchar::b#1 print_uchar::b#2 ]
Allocated zp[2]:8 [ print_uint::w#5 print_uint::w#0 print_uint::w#1 print_uint::w#2 ]
Allocated zp[2]:10 [ memset::dst#2 memset::dst#1 ]
Allocated zp[2]:12 [ print_str::str#5 print_str::str#8 print_str::str#0 ]
Allocated zp[2]:14 [ print_line_cursor#21 print_line_cursor#41 print_line_cursor#0 ]
Allocated zp[4]:16 [ print_ulong::dw#2 print_ulong::dw#0 ]
Allocated zp[2]:20 [ print_sint::w#7 print_sint::w#0 print_sint::w#10 ]
Allocated zp[4]:22 [ print_slong::dw#5 print_slong::dw#0 print_slong::dw#3 ]
REGISTER UPLIFT POTENTIAL REGISTERS
Statement [29] print_char_cursor#165 = print_line_cursor#0 [ print_char_cursor#165 print_line_cursor#0 ] ( testShort:5 [ print_char_cursor#165 print_line_cursor#0 ] { { print_char_cursor#159 = print_char_cursor#165 } } ) always clobbers reg byte a
Statement [44] print_char_cursor#163 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#163 ] ( testInt:7 [ print_line_cursor#0 print_char_cursor#163 ] { { print_char_cursor#159 = print_char_cursor#163 } } ) always clobbers reg byte a
Statement [59] print_char_cursor#164 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#164 ] ( testLong:9 [ print_line_cursor#0 print_char_cursor#164 ] { { print_char_cursor#159 = print_char_cursor#164 } } ) always clobbers reg byte a
Statement [76] if(memset::dst#2!=memset::end#0) goto memset::@2 [ memset::dst#2 ] ( print_cls:1::memset:12 [ memset::dst#2 ] { } ) always clobbers reg byte a
Statement [78] *memset::dst#2 = memset::c#0 [ memset::dst#2 ] ( print_cls:1::memset:12 [ memset::dst#2 ] { } ) always clobbers reg byte a reg byte y
Statement [82] if(0!=*print_str::str#5) goto print_str::@2 [ print_str::str#5 print_char_cursor#1 ] ( testChar:3::print_str:15 [ print_str::str#5 print_char_cursor#1 ] { } testShort:5::print_str:30 [ print_line_cursor#0 print_str::str#5 print_char_cursor#1 ] { { print_char_cursor#159 = print_char_cursor#165 } } testInt:7::print_str:45 [ print_line_cursor#0 print_str::str#5 print_char_cursor#1 ] { { print_char_cursor#159 = print_char_cursor#163 } } testLong:9::print_str:60 [ print_line_cursor#0 print_str::str#5 print_char_cursor#1 ] { { print_char_cursor#159 = print_char_cursor#164 } } ) always clobbers reg byte a reg byte y
Statement [84] print_char::ch#0 = *print_str::str#5 [ print_str::str#5 print_char_cursor#1 print_char::ch#0 ] ( testChar:3::print_str:15 [ print_str::str#5 print_char_cursor#1 print_char::ch#0 ] { { print_char::ch#0 = print_char::ch#17 } { print_char_cursor#1 = print_char_cursor#95 } } testShort:5::print_str:30 [ print_line_cursor#0 print_str::str#5 print_char_cursor#1 print_char::ch#0 ] { { print_char_cursor#159 = print_char_cursor#165 } { print_char::ch#0 = print_char::ch#17 } { print_char_cursor#1 = print_char_cursor#95 } } testInt:7::print_str:45 [ print_line_cursor#0 print_str::str#5 print_char_cursor#1 print_char::ch#0 ] { { print_char_cursor#159 = print_char_cursor#163 } { print_char::ch#0 = print_char::ch#17 } { print_char_cursor#1 = print_char_cursor#95 } } testLong:9::print_str:60 [ print_line_cursor#0 print_str::str#5 print_char_cursor#1 print_char::ch#0 ] { { print_char_cursor#159 = print_char_cursor#164 } { print_char::ch#0 = print_char::ch#17 } { print_char_cursor#1 = print_char_cursor#95 } } ) always clobbers reg byte a reg byte y
Statement [88] print_uchar::$0 = print_uchar::b#5 >> 4 [ print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] ( testChar:3::print_uchar:17 [ print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_char_cursor#1 = print_char_cursor#152 print_char_cursor#95 } { print_char::ch#17 = print_char::ch#7 } } testChar:3::print_uchar:21 [ print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_char_cursor#152 = print_char_cursor#25 print_char_cursor#95 } { print_char::ch#17 = print_char::ch#7 } } testChar:3::print_schar:25::print_uchar:103 [ print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_char_cursor#152 = print_char_cursor#25 print_char_cursor#95 } { print_char::ch#17 = print_char::ch#7 } } testShort:5::print_uint:32::print_uchar:112 [ print_line_cursor#0 print_uint::w#5 print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_char_cursor#1 = print_char_cursor#147 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testInt:7::print_uint:47::print_uchar:112 [ print_line_cursor#0 print_uint::w#5 print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_char_cursor#1 = print_char_cursor#147 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testShort:5::print_sint:36::print_uint:122::print_uchar:112 [ print_line_cursor#0 print_uint::w#5 print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testShort:5::print_sint:40::print_uint:122::print_uchar:112 [ print_line_cursor#0 print_uint::w#5 print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testInt:7::print_sint:51::print_uint:122::print_uchar:112 [ print_line_cursor#0 print_uint::w#5 print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testInt:7::print_sint:55::print_uint:122::print_uchar:112 [ print_line_cursor#0 print_uint::w#5 print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testLong:9::print_ulong:62::print_uint:129::print_uchar:112 [ print_line_cursor#0 print_ulong::dw#2 print_uint::w#5 print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#147 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#1 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testLong:9::print_slong:66::print_ulong:139::print_uint:129::print_uchar:112 [ print_line_cursor#0 print_ulong::dw#2 print_uint::w#5 print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#1 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testLong:9::print_slong:70::print_ulong:139::print_uint:129::print_uchar:112 [ print_line_cursor#0 print_ulong::dw#2 print_uint::w#5 print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#1 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testLong:9::print_ulong:62::print_uint:131::print_uchar:112 [ print_line_cursor#0 print_uint::w#5 print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_char_cursor#1 = print_char_cursor#148 } { print_uint::w#2 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testLong:9::print_slong:66::print_ulong:139::print_uint:131::print_uchar:112 [ print_line_cursor#0 print_uint::w#5 print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testLong:9::print_slong:70::print_ulong:139::print_uint:131::print_uchar:112 [ print_line_cursor#0 print_uint::w#5 print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testShort:5::print_uint:32::print_uchar:114 [ print_line_cursor#0 print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_char_cursor#1 = print_char_cursor#147 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#152 = print_char_cursor#25 print_char_cursor#95 } { print_char::ch#17 = print_char::ch#7 } } testInt:7::print_uint:47::print_uchar:114 [ print_line_cursor#0 print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_char_cursor#1 = print_char_cursor#147 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#152 = print_char_cursor#25 print_char_cursor#95 } { print_char::ch#17 = print_char::ch#7 } } testShort:5::print_sint:36::print_uint:122::print_uchar:114 [ print_line_cursor#0 print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testShort:5::print_sint:40::print_uint:122::print_uchar:114 [ print_line_cursor#0 print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testInt:7::print_sint:51::print_uint:122::print_uchar:114 [ print_line_cursor#0 print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testInt:7::print_sint:55::print_uint:122::print_uchar:114 [ print_line_cursor#0 print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testLong:9::print_ulong:62::print_uint:129::print_uchar:114 [ print_line_cursor#0 print_ulong::dw#2 print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#147 } { print_uint::w#1 = print_uint::w#5 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#152 = print_char_cursor#25 print_char_cursor#95 } { print_char::ch#17 = print_char::ch#7 } } testLong:9::print_slong:66::print_ulong:139::print_uint:129::print_uchar:114 [ print_line_cursor#0 print_ulong::dw#2 print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#1 = print_uint::w#5 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testLong:9::print_slong:70::print_ulong:139::print_uint:129::print_uchar:114 [ print_line_cursor#0 print_ulong::dw#2 print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#1 = print_uint::w#5 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testLong:9::print_ulong:62::print_uint:131::print_uchar:114 [ print_line_cursor#0 print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_char_cursor#1 = print_char_cursor#148 } { print_uint::w#2 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testLong:9::print_slong:66::print_ulong:139::print_uint:131::print_uchar:114 [ print_line_cursor#0 print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testLong:9::print_slong:70::print_ulong:139::print_uint:131::print_uchar:114 [ print_line_cursor#0 print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } ) always clobbers reg byte a
Removing always clobbered register reg byte a as potential for zp[1]:7 [ print_uchar::b#5 print_uchar::b#1 print_uchar::b#2 ]
Statement [91] print_uchar::$2 = print_uchar::b#5 & $f [ print_char_cursor#25 print_uchar::$2 ] ( testChar:3::print_uchar:17 [ print_char_cursor#25 print_uchar::$2 ] { { print_char_cursor#1 = print_char_cursor#152 } { print_char::ch#17 = print_char::ch#8 } { print_char_cursor#25 = print_char_cursor#95 } } testChar:3::print_uchar:21 [ print_char_cursor#25 print_uchar::$2 ] { { print_char_cursor#152 = print_char_cursor#25 print_char_cursor#95 } { print_char::ch#17 = print_char::ch#8 } } testChar:3::print_schar:25::print_uchar:103 [ print_char_cursor#25 print_uchar::$2 ] { { print_char_cursor#152 = print_char_cursor#25 print_char_cursor#95 } { print_char::ch#17 = print_char::ch#8 } } testShort:5::print_uint:32::print_uchar:112 [ print_line_cursor#0 print_uint::w#5 print_char_cursor#25 print_uchar::$2 ] { { print_char_cursor#1 = print_char_cursor#147 print_char_cursor#152 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } { print_char_cursor#25 = print_char_cursor#95 } } testInt:7::print_uint:47::print_uchar:112 [ print_line_cursor#0 print_uint::w#5 print_char_cursor#25 print_uchar::$2 ] { { print_char_cursor#1 = print_char_cursor#147 print_char_cursor#152 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } { print_char_cursor#25 = print_char_cursor#95 } } testShort:5::print_sint:36::print_uint:122::print_uchar:112 [ print_line_cursor#0 print_uint::w#5 print_char_cursor#25 print_uchar::$2 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testShort:5::print_sint:40::print_uint:122::print_uchar:112 [ print_line_cursor#0 print_uint::w#5 print_char_cursor#25 print_uchar::$2 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testInt:7::print_sint:51::print_uint:122::print_uchar:112 [ print_line_cursor#0 print_uint::w#5 print_char_cursor#25 print_uchar::$2 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testInt:7::print_sint:55::print_uint:122::print_uchar:112 [ print_line_cursor#0 print_uint::w#5 print_char_cursor#25 print_uchar::$2 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testLong:9::print_ulong:62::print_uint:129::print_uchar:112 [ print_line_cursor#0 print_ulong::dw#2 print_uint::w#5 print_char_cursor#25 print_uchar::$2 ] { { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#147 print_char_cursor#152 } { print_uint::w#1 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } { print_char_cursor#25 = print_char_cursor#95 } } testLong:9::print_slong:66::print_ulong:139::print_uint:129::print_uchar:112 [ print_line_cursor#0 print_ulong::dw#2 print_uint::w#5 print_char_cursor#25 print_uchar::$2 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#1 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testLong:9::print_slong:70::print_ulong:139::print_uint:129::print_uchar:112 [ print_line_cursor#0 print_ulong::dw#2 print_uint::w#5 print_char_cursor#25 print_uchar::$2 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#1 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testLong:9::print_ulong:62::print_uint:131::print_uchar:112 [ print_line_cursor#0 print_uint::w#5 print_char_cursor#25 print_uchar::$2 ] { { print_char_cursor#1 = print_char_cursor#148 } { print_uint::w#2 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testLong:9::print_slong:66::print_ulong:139::print_uint:131::print_uchar:112 [ print_line_cursor#0 print_uint::w#5 print_char_cursor#25 print_uchar::$2 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testLong:9::print_slong:70::print_ulong:139::print_uint:131::print_uchar:112 [ print_line_cursor#0 print_uint::w#5 print_char_cursor#25 print_uchar::$2 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testShort:5::print_uint:32::print_uchar:114 [ print_line_cursor#0 print_char_cursor#25 print_uchar::$2 ] { { print_char_cursor#1 = print_char_cursor#147 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#152 = print_char_cursor#25 print_char_cursor#95 } { print_char::ch#17 = print_char::ch#8 } } testInt:7::print_uint:47::print_uchar:114 [ print_line_cursor#0 print_char_cursor#25 print_uchar::$2 ] { { print_char_cursor#1 = print_char_cursor#147 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#152 = print_char_cursor#25 print_char_cursor#95 } { print_char::ch#17 = print_char::ch#8 } } testShort:5::print_sint:36::print_uint:122::print_uchar:114 [ print_line_cursor#0 print_char_cursor#25 print_uchar::$2 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testShort:5::print_sint:40::print_uint:122::print_uchar:114 [ print_line_cursor#0 print_char_cursor#25 print_uchar::$2 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testInt:7::print_sint:51::print_uint:122::print_uchar:114 [ print_line_cursor#0 print_char_cursor#25 print_uchar::$2 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testInt:7::print_sint:55::print_uint:122::print_uchar:114 [ print_line_cursor#0 print_char_cursor#25 print_uchar::$2 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testLong:9::print_ulong:62::print_uint:129::print_uchar:114 [ print_line_cursor#0 print_ulong::dw#2 print_char_cursor#25 print_uchar::$2 ] { { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#147 } { print_uint::w#1 = print_uint::w#5 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#152 = print_char_cursor#25 print_char_cursor#95 } { print_char::ch#17 = print_char::ch#8 } } testLong:9::print_slong:66::print_ulong:139::print_uint:129::print_uchar:114 [ print_line_cursor#0 print_ulong::dw#2 print_char_cursor#25 print_uchar::$2 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#1 = print_uint::w#5 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testLong:9::print_slong:70::print_ulong:139::print_uint:129::print_uchar:114 [ print_line_cursor#0 print_ulong::dw#2 print_char_cursor#25 print_uchar::$2 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#1 = print_uint::w#5 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testLong:9::print_ulong:62::print_uint:131::print_uchar:114 [ print_line_cursor#0 print_char_cursor#25 print_uchar::$2 ] { { print_char_cursor#1 = print_char_cursor#148 } { print_uint::w#2 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testLong:9::print_slong:66::print_ulong:139::print_uint:131::print_uchar:114 [ print_line_cursor#0 print_char_cursor#25 print_uchar::$2 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testLong:9::print_slong:70::print_ulong:139::print_uint:131::print_uchar:114 [ print_line_cursor#0 print_char_cursor#25 print_uchar::$2 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } ) always clobbers reg byte a
Statement [96] *print_char_cursor#95 = print_char::ch#17 [ print_char_cursor#95 ] ( testChar:3::print_char:19 [ print_char_cursor#95 ] { { print_char_cursor#25 = print_char_cursor#95 } } testChar:3::print_char:23 [ print_char_cursor#95 ] { { print_char_cursor#25 = print_char_cursor#95 } } testShort:5::print_char:34 [ print_line_cursor#0 print_char_cursor#95 ] { { print_char_cursor#25 = print_char_cursor#95 } } testShort:5::print_char:38 [ print_line_cursor#0 print_char_cursor#95 ] { { print_char_cursor#25 = print_char_cursor#95 } } testInt:7::print_char:49 [ print_line_cursor#0 print_char_cursor#95 ] { { print_char_cursor#25 = print_char_cursor#95 } } testInt:7::print_char:53 [ print_line_cursor#0 print_char_cursor#95 ] { { print_char_cursor#25 = print_char_cursor#95 } } testLong:9::print_char:64 [ print_line_cursor#0 print_char_cursor#95 ] { { print_char_cursor#25 = print_char_cursor#95 } } testLong:9::print_char:68 [ print_line_cursor#0 print_char_cursor#95 ] { { print_char_cursor#25 = print_char_cursor#95 } } testChar:3::print_str:15::print_char:85 [ print_str::str#5 print_char_cursor#95 ] { { print_char::ch#0 = print_char::ch#17 } { print_char_cursor#1 = print_char_cursor#95 } } testShort:5::print_str:30::print_char:85 [ print_line_cursor#0 print_str::str#5 print_char_cursor#95 ] { { print_char_cursor#159 = print_char_cursor#165 } { print_char::ch#0 = print_char::ch#17 } { print_char_cursor#1 = print_char_cursor#95 } } testInt:7::print_str:45::print_char:85 [ print_line_cursor#0 print_str::str#5 print_char_cursor#95 ] { { print_char_cursor#159 = print_char_cursor#163 } { print_char::ch#0 = print_char::ch#17 } { print_char_cursor#1 = print_char_cursor#95 } } testLong:9::print_str:60::print_char:85 [ print_line_cursor#0 print_str::str#5 print_char_cursor#95 ] { { print_char_cursor#159 = print_char_cursor#164 } { print_char::ch#0 = print_char::ch#17 } { print_char_cursor#1 = print_char_cursor#95 } } testChar:3::print_uchar:17::print_char:90 [ print_uchar::b#5 print_char_cursor#95 ] { { print_char_cursor#1 = print_char_cursor#152 print_char_cursor#95 } { print_char::ch#17 = print_char::ch#7 } } testChar:3::print_uchar:21::print_char:90 [ print_uchar::b#5 print_char_cursor#95 ] { { print_char_cursor#152 = print_char_cursor#25 print_char_cursor#95 } { print_char::ch#17 = print_char::ch#7 } } testChar:3::print_schar:25::print_uchar:103::print_char:90 [ print_uchar::b#5 print_char_cursor#95 ] { { print_char_cursor#152 = print_char_cursor#25 print_char_cursor#95 } { print_char::ch#17 = print_char::ch#7 } } testShort:5::print_uint:32::print_uchar:112::print_char:90 [ print_line_cursor#0 print_uint::w#5 print_uchar::b#5 print_char_cursor#95 ] { { print_char_cursor#1 = print_char_cursor#147 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testInt:7::print_uint:47::print_uchar:112::print_char:90 [ print_line_cursor#0 print_uint::w#5 print_uchar::b#5 print_char_cursor#95 ] { { print_char_cursor#1 = print_char_cursor#147 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testShort:5::print_sint:36::print_uint:122::print_uchar:112::print_char:90 [ print_line_cursor#0 print_uint::w#5 print_uchar::b#5 print_char_cursor#95 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testShort:5::print_sint:40::print_uint:122::print_uchar:112::print_char:90 [ print_line_cursor#0 print_uint::w#5 print_uchar::b#5 print_char_cursor#95 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testInt:7::print_sint:51::print_uint:122::print_uchar:112::print_char:90 [ print_line_cursor#0 print_uint::w#5 print_uchar::b#5 print_char_cursor#95 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testInt:7::print_sint:55::print_uint:122::print_uchar:112::print_char:90 [ print_line_cursor#0 print_uint::w#5 print_uchar::b#5 print_char_cursor#95 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testLong:9::print_ulong:62::print_uint:129::print_uchar:112::print_char:90 [ print_line_cursor#0 print_ulong::dw#2 print_uint::w#5 print_uchar::b#5 print_char_cursor#95 ] { { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#147 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#1 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testLong:9::print_slong:66::print_ulong:139::print_uint:129::print_uchar:112::print_char:90 [ print_line_cursor#0 print_ulong::dw#2 print_uint::w#5 print_uchar::b#5 print_char_cursor#95 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#1 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testLong:9::print_slong:70::print_ulong:139::print_uint:129::print_uchar:112::print_char:90 [ print_line_cursor#0 print_ulong::dw#2 print_uint::w#5 print_uchar::b#5 print_char_cursor#95 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#1 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testLong:9::print_ulong:62::print_uint:131::print_uchar:112::print_char:90 [ print_line_cursor#0 print_uint::w#5 print_uchar::b#5 print_char_cursor#95 ] { { print_char_cursor#1 = print_char_cursor#148 } { print_uint::w#2 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testLong:9::print_slong:66::print_ulong:139::print_uint:131::print_uchar:112::print_char:90 [ print_line_cursor#0 print_uint::w#5 print_uchar::b#5 print_char_cursor#95 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testLong:9::print_slong:70::print_ulong:139::print_uint:131::print_uchar:112::print_char:90 [ print_line_cursor#0 print_uint::w#5 print_uchar::b#5 print_char_cursor#95 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testShort:5::print_uint:32::print_uchar:114::print_char:90 [ print_line_cursor#0 print_uchar::b#5 print_char_cursor#95 ] { { print_char_cursor#1 = print_char_cursor#147 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#152 = print_char_cursor#25 print_char_cursor#95 } { print_char::ch#17 = print_char::ch#7 } } testInt:7::print_uint:47::print_uchar:114::print_char:90 [ print_line_cursor#0 print_uchar::b#5 print_char_cursor#95 ] { { print_char_cursor#1 = print_char_cursor#147 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#152 = print_char_cursor#25 print_char_cursor#95 } { print_char::ch#17 = print_char::ch#7 } } testShort:5::print_sint:36::print_uint:122::print_uchar:114::print_char:90 [ print_line_cursor#0 print_uchar::b#5 print_char_cursor#95 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testShort:5::print_sint:40::print_uint:122::print_uchar:114::print_char:90 [ print_line_cursor#0 print_uchar::b#5 print_char_cursor#95 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testInt:7::print_sint:51::print_uint:122::print_uchar:114::print_char:90 [ print_line_cursor#0 print_uchar::b#5 print_char_cursor#95 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testInt:7::print_sint:55::print_uint:122::print_uchar:114::print_char:90 [ print_line_cursor#0 print_uchar::b#5 print_char_cursor#95 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testLong:9::print_ulong:62::print_uint:129::print_uchar:114::print_char:90 [ print_line_cursor#0 print_ulong::dw#2 print_uchar::b#5 print_char_cursor#95 ] { { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#147 } { print_uint::w#1 = print_uint::w#5 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#152 = print_char_cursor#25 print_char_cursor#95 } { print_char::ch#17 = print_char::ch#7 } } testLong:9::print_slong:66::print_ulong:139::print_uint:129::print_uchar:114::print_char:90 [ print_line_cursor#0 print_ulong::dw#2 print_uchar::b#5 print_char_cursor#95 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#1 = print_uint::w#5 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testLong:9::print_slong:70::print_ulong:139::print_uint:129::print_uchar:114::print_char:90 [ print_line_cursor#0 print_ulong::dw#2 print_uchar::b#5 print_char_cursor#95 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#1 = print_uint::w#5 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testLong:9::print_ulong:62::print_uint:131::print_uchar:114::print_char:90 [ print_line_cursor#0 print_uchar::b#5 print_char_cursor#95 ] { { print_char_cursor#1 = print_char_cursor#148 } { print_uint::w#2 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testLong:9::print_slong:66::print_ulong:139::print_uint:131::print_uchar:114::print_char:90 [ print_line_cursor#0 print_uchar::b#5 print_char_cursor#95 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testLong:9::print_slong:70::print_ulong:139::print_uint:131::print_uchar:114::print_char:90 [ print_line_cursor#0 print_uchar::b#5 print_char_cursor#95 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testChar:3::print_uchar:17::print_char:93 [ print_char_cursor#95 ] { { print_char_cursor#1 = print_char_cursor#152 } { print_char::ch#17 = print_char::ch#8 } { print_char_cursor#25 = print_char_cursor#95 } } testChar:3::print_uchar:21::print_char:93 [ print_char_cursor#95 ] { { print_char_cursor#152 = print_char_cursor#25 print_char_cursor#95 } { print_char::ch#17 = print_char::ch#8 } } testChar:3::print_schar:25::print_uchar:103::print_char:93 [ print_char_cursor#95 ] { { print_char_cursor#152 = print_char_cursor#25 print_char_cursor#95 } { print_char::ch#17 = print_char::ch#8 } } testShort:5::print_uint:32::print_uchar:112::print_char:93 [ print_line_cursor#0 print_uint::w#5 print_char_cursor#95 ] { { print_char_cursor#1 = print_char_cursor#147 print_char_cursor#152 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } { print_char_cursor#25 = print_char_cursor#95 } } testInt:7::print_uint:47::print_uchar:112::print_char:93 [ print_line_cursor#0 print_uint::w#5 print_char_cursor#95 ] { { print_char_cursor#1 = print_char_cursor#147 print_char_cursor#152 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } { print_char_cursor#25 = print_char_cursor#95 } } testShort:5::print_sint:36::print_uint:122::print_uchar:112::print_char:93 [ print_line_cursor#0 print_uint::w#5 print_char_cursor#95 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testShort:5::print_sint:40::print_uint:122::print_uchar:112::print_char:93 [ print_line_cursor#0 print_uint::w#5 print_char_cursor#95 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testInt:7::print_sint:51::print_uint:122::print_uchar:112::print_char:93 [ print_line_cursor#0 print_uint::w#5 print_char_cursor#95 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testInt:7::print_sint:55::print_uint:122::print_uchar:112::print_char:93 [ print_line_cursor#0 print_uint::w#5 print_char_cursor#95 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testLong:9::print_ulong:62::print_uint:129::print_uchar:112::print_char:93 [ print_line_cursor#0 print_ulong::dw#2 print_uint::w#5 print_char_cursor#95 ] { { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#147 print_char_cursor#152 } { print_uint::w#1 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } { print_char_cursor#25 = print_char_cursor#95 } } testLong:9::print_slong:66::print_ulong:139::print_uint:129::print_uchar:112::print_char:93 [ print_line_cursor#0 print_ulong::dw#2 print_uint::w#5 print_char_cursor#95 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#1 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testLong:9::print_slong:70::print_ulong:139::print_uint:129::print_uchar:112::print_char:93 [ print_line_cursor#0 print_ulong::dw#2 print_uint::w#5 print_char_cursor#95 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#1 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testLong:9::print_ulong:62::print_uint:131::print_uchar:112::print_char:93 [ print_line_cursor#0 print_uint::w#5 print_char_cursor#95 ] { { print_char_cursor#1 = print_char_cursor#148 } { print_uint::w#2 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testLong:9::print_slong:66::print_ulong:139::print_uint:131::print_uchar:112::print_char:93 [ print_line_cursor#0 print_uint::w#5 print_char_cursor#95 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testLong:9::print_slong:70::print_ulong:139::print_uint:131::print_uchar:112::print_char:93 [ print_line_cursor#0 print_uint::w#5 print_char_cursor#95 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testShort:5::print_uint:32::print_uchar:114::print_char:93 [ print_line_cursor#0 print_char_cursor#95 ] { { print_char_cursor#1 = print_char_cursor#147 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#152 = print_char_cursor#25 print_char_cursor#95 } { print_char::ch#17 = print_char::ch#8 } } testInt:7::print_uint:47::print_uchar:114::print_char:93 [ print_line_cursor#0 print_char_cursor#95 ] { { print_char_cursor#1 = print_char_cursor#147 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#152 = print_char_cursor#25 print_char_cursor#95 } { print_char::ch#17 = print_char::ch#8 } } testShort:5::print_sint:36::print_uint:122::print_uchar:114::print_char:93 [ print_line_cursor#0 print_char_cursor#95 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testShort:5::print_sint:40::print_uint:122::print_uchar:114::print_char:93 [ print_line_cursor#0 print_char_cursor#95 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testInt:7::print_sint:51::print_uint:122::print_uchar:114::print_char:93 [ print_line_cursor#0 print_char_cursor#95 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testInt:7::print_sint:55::print_uint:122::print_uchar:114::print_char:93 [ print_line_cursor#0 print_char_cursor#95 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testLong:9::print_ulong:62::print_uint:129::print_uchar:114::print_char:93 [ print_line_cursor#0 print_ulong::dw#2 print_char_cursor#95 ] { { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#147 } { print_uint::w#1 = print_uint::w#5 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#152 = print_char_cursor#25 print_char_cursor#95 } { print_char::ch#17 = print_char::ch#8 } } testLong:9::print_slong:66::print_ulong:139::print_uint:129::print_uchar:114::print_char:93 [ print_line_cursor#0 print_ulong::dw#2 print_char_cursor#95 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#1 = print_uint::w#5 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testLong:9::print_slong:70::print_ulong:139::print_uint:129::print_uchar:114::print_char:93 [ print_line_cursor#0 print_ulong::dw#2 print_char_cursor#95 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#1 = print_uint::w#5 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testLong:9::print_ulong:62::print_uint:131::print_uchar:114::print_char:93 [ print_line_cursor#0 print_char_cursor#95 ] { { print_char_cursor#1 = print_char_cursor#148 } { print_uint::w#2 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testLong:9::print_slong:66::print_ulong:139::print_uint:131::print_uchar:114::print_char:93 [ print_line_cursor#0 print_char_cursor#95 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testLong:9::print_slong:70::print_ulong:139::print_uint:131::print_uchar:114::print_char:93 [ print_line_cursor#0 print_char_cursor#95 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testChar:3::print_schar:25::print_char:101 [ print_char_cursor#95 ] { { print_char_cursor#25 = print_char_cursor#95 } } testShort:5::print_sint:36::print_char:119 [ print_line_cursor#0 print_sint::w#10 print_char_cursor#95 ] { { print_char_cursor#25 = print_char_cursor#95 } } testShort:5::print_sint:40::print_char:119 [ print_line_cursor#0 print_sint::w#10 print_char_cursor#95 ] { { print_char_cursor#25 = print_char_cursor#95 } } testInt:7::print_sint:51::print_char:119 [ print_line_cursor#0 print_sint::w#10 print_char_cursor#95 ] { { print_char_cursor#25 = print_char_cursor#95 } } testInt:7::print_sint:55::print_char:119 [ print_line_cursor#0 print_sint::w#10 print_char_cursor#95 ] { { print_char_cursor#25 = print_char_cursor#95 } } testShort:5::print_sint:36::print_char:125 [ print_line_cursor#0 print_sint::w#10 print_char_cursor#95 ] { { print_char_cursor#25 = print_char_cursor#95 } } testShort:5::print_sint:40::print_char:125 [ print_line_cursor#0 print_sint::w#10 print_char_cursor#95 ] { { print_char_cursor#25 = print_char_cursor#95 } } testInt:7::print_sint:51::print_char:125 [ print_line_cursor#0 print_sint::w#10 print_char_cursor#95 ] { { print_char_cursor#25 = print_char_cursor#95 } } testInt:7::print_sint:55::print_char:125 [ print_line_cursor#0 print_sint::w#10 print_char_cursor#95 ] { { print_char_cursor#25 = print_char_cursor#95 } } testLong:9::print_slong:66::print_char:136 [ print_line_cursor#0 print_slong::dw#3 print_char_cursor#95 ] { { print_char_cursor#25 = print_char_cursor#95 } } testLong:9::print_slong:70::print_char:136 [ print_line_cursor#0 print_slong::dw#3 print_char_cursor#95 ] { { print_char_cursor#25 = print_char_cursor#95 } } testLong:9::print_slong:66::print_char:142 [ print_line_cursor#0 print_slong::dw#3 print_char_cursor#95 ] { { print_char_cursor#25 = print_char_cursor#95 } } testLong:9::print_slong:70::print_char:142 [ print_line_cursor#0 print_slong::dw#3 print_char_cursor#95 ] { { print_char_cursor#25 = print_char_cursor#95 } } ) always clobbers reg byte y
Removing always clobbered register reg byte y as potential for zp[1]:7 [ print_uchar::b#5 print_uchar::b#1 print_uchar::b#2 ]
Statement [107] print_line_cursor#0 = print_line_cursor#21 + $28 [ print_line_cursor#0 print_char_cursor#25 ] ( testChar:3::print_ln:27 [ print_line_cursor#0 print_char_cursor#25 ] { } testShort:5::print_ln:42 [ print_line_cursor#0 print_char_cursor#25 ] { { print_line_cursor#0 = print_line_cursor#41 } } testInt:7::print_ln:57 [ print_line_cursor#0 print_char_cursor#25 ] { { print_line_cursor#0 = print_line_cursor#41 } } testLong:9::print_ln:72 [ print_line_cursor#0 print_char_cursor#25 ] { { print_line_cursor#0 = print_line_cursor#41 } } ) always clobbers reg byte a
Statement [108] if(print_line_cursor#0<print_char_cursor#25) goto print_ln::@1 [ print_line_cursor#0 print_char_cursor#25 ] ( testChar:3::print_ln:27 [ print_line_cursor#0 print_char_cursor#25 ] { } testShort:5::print_ln:42 [ print_line_cursor#0 print_char_cursor#25 ] { { print_line_cursor#0 = print_line_cursor#41 } } testInt:7::print_ln:57 [ print_line_cursor#0 print_char_cursor#25 ] { { print_line_cursor#0 = print_line_cursor#41 } } testLong:9::print_ln:72 [ print_line_cursor#0 print_char_cursor#25 ] { { print_line_cursor#0 = print_line_cursor#41 } } ) always clobbers reg byte a
Statement [117] if(print_sint::w#10<0) goto print_sint::@1 [ print_char_cursor#25 print_sint::w#10 ] ( testShort:5::print_sint:36 [ print_line_cursor#0 print_char_cursor#25 print_sint::w#10 ] { } testShort:5::print_sint:40 [ print_line_cursor#0 print_char_cursor#25 print_sint::w#10 ] { } testInt:7::print_sint:51 [ print_line_cursor#0 print_char_cursor#25 print_sint::w#10 ] { } testInt:7::print_sint:55 [ print_line_cursor#0 print_char_cursor#25 print_sint::w#10 ] { } ) always clobbers reg byte a
Statement [121] print_uint::w#0 = (unsigned int)print_sint::w#7 [ print_char_cursor#25 print_uint::w#0 ] ( testShort:5::print_sint:36 [ print_line_cursor#0 print_char_cursor#25 print_uint::w#0 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 } } testShort:5::print_sint:40 [ print_line_cursor#0 print_char_cursor#25 print_uint::w#0 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 } } testInt:7::print_sint:51 [ print_line_cursor#0 print_char_cursor#25 print_uint::w#0 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 } } testInt:7::print_sint:55 [ print_line_cursor#0 print_char_cursor#25 print_uint::w#0 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 } } ) always clobbers reg byte a
Statement [126] print_sint::w#0 = - print_sint::w#10 [ print_char_cursor#25 print_sint::w#0 ] ( testShort:5::print_sint:36 [ print_line_cursor#0 print_char_cursor#25 print_sint::w#0 ] { } testShort:5::print_sint:40 [ print_line_cursor#0 print_char_cursor#25 print_sint::w#0 ] { } testInt:7::print_sint:51 [ print_line_cursor#0 print_char_cursor#25 print_sint::w#0 ] { } testInt:7::print_sint:55 [ print_line_cursor#0 print_char_cursor#25 print_sint::w#0 ] { } ) always clobbers reg byte a
Statement [128] print_uint::w#1 = word1 print_ulong::dw#2 [ print_uint::w#1 print_char_cursor#148 print_ulong::dw#2 ] ( testLong:9::print_ulong:62 [ print_line_cursor#0 print_uint::w#1 print_char_cursor#148 print_ulong::dw#2 ] { { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#147 } { print_uint::w#1 = print_uint::w#5 } } testLong:9::print_slong:66::print_ulong:139 [ print_line_cursor#0 print_uint::w#1 print_char_cursor#148 print_ulong::dw#2 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 } { print_uint::w#1 = print_uint::w#5 } } testLong:9::print_slong:70::print_ulong:139 [ print_line_cursor#0 print_uint::w#1 print_char_cursor#148 print_ulong::dw#2 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 } { print_uint::w#1 = print_uint::w#5 } } ) always clobbers reg byte a
Statement [130] print_uint::w#2 = word0 print_ulong::dw#2 [ print_char_cursor#25 print_uint::w#2 ] ( testLong:9::print_ulong:62 [ print_line_cursor#0 print_char_cursor#25 print_uint::w#2 ] { { print_char_cursor#1 = print_char_cursor#148 } { print_uint::w#2 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 } } testLong:9::print_slong:66::print_ulong:139 [ print_line_cursor#0 print_char_cursor#25 print_uint::w#2 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 } { print_uint::w#2 = print_uint::w#5 } } testLong:9::print_slong:70::print_ulong:139 [ print_line_cursor#0 print_char_cursor#25 print_uint::w#2 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 } { print_uint::w#2 = print_uint::w#5 } } ) always clobbers reg byte a
Statement [134] if(print_slong::dw#3<0) goto print_slong::@1 [ print_char_cursor#25 print_slong::dw#3 ] ( testLong:9::print_slong:66 [ print_line_cursor#0 print_char_cursor#25 print_slong::dw#3 ] { } testLong:9::print_slong:70 [ print_line_cursor#0 print_char_cursor#25 print_slong::dw#3 ] { } ) always clobbers reg byte a
Statement [138] print_ulong::dw#0 = (unsigned long)print_slong::dw#5 [ print_char_cursor#25 print_ulong::dw#0 ] ( testLong:9::print_slong:66 [ print_line_cursor#0 print_char_cursor#25 print_ulong::dw#0 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#148 = print_char_cursor#25 } } testLong:9::print_slong:70 [ print_line_cursor#0 print_char_cursor#25 print_ulong::dw#0 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#148 = print_char_cursor#25 } } ) always clobbers reg byte a
Statement [143] print_slong::dw#0 = - print_slong::dw#3 [ print_char_cursor#25 print_slong::dw#0 ] ( testLong:9::print_slong:66 [ print_line_cursor#0 print_char_cursor#25 print_slong::dw#0 ] { } testLong:9::print_slong:70 [ print_line_cursor#0 print_char_cursor#25 print_slong::dw#0 ] { } ) always clobbers reg byte a
Statement [29] print_char_cursor#165 = print_line_cursor#0 [ print_char_cursor#165 print_line_cursor#0 ] ( testShort:5 [ print_char_cursor#165 print_line_cursor#0 ] { { print_char_cursor#159 = print_char_cursor#165 } } ) always clobbers reg byte a
Statement [44] print_char_cursor#163 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#163 ] ( testInt:7 [ print_line_cursor#0 print_char_cursor#163 ] { { print_char_cursor#159 = print_char_cursor#163 } } ) always clobbers reg byte a
Statement [59] print_char_cursor#164 = print_line_cursor#0 [ print_line_cursor#0 print_char_cursor#164 ] ( testLong:9 [ print_line_cursor#0 print_char_cursor#164 ] { { print_char_cursor#159 = print_char_cursor#164 } } ) always clobbers reg byte a
Statement [76] if(memset::dst#2!=memset::end#0) goto memset::@2 [ memset::dst#2 ] ( print_cls:1::memset:12 [ memset::dst#2 ] { } ) always clobbers reg byte a
Statement [78] *memset::dst#2 = memset::c#0 [ memset::dst#2 ] ( print_cls:1::memset:12 [ memset::dst#2 ] { } ) always clobbers reg byte a reg byte y
Statement [82] if(0!=*print_str::str#5) goto print_str::@2 [ print_str::str#5 print_char_cursor#1 ] ( testChar:3::print_str:15 [ print_str::str#5 print_char_cursor#1 ] { } testShort:5::print_str:30 [ print_line_cursor#0 print_str::str#5 print_char_cursor#1 ] { { print_char_cursor#159 = print_char_cursor#165 } } testInt:7::print_str:45 [ print_line_cursor#0 print_str::str#5 print_char_cursor#1 ] { { print_char_cursor#159 = print_char_cursor#163 } } testLong:9::print_str:60 [ print_line_cursor#0 print_str::str#5 print_char_cursor#1 ] { { print_char_cursor#159 = print_char_cursor#164 } } ) always clobbers reg byte a reg byte y
Statement [84] print_char::ch#0 = *print_str::str#5 [ print_str::str#5 print_char_cursor#1 print_char::ch#0 ] ( testChar:3::print_str:15 [ print_str::str#5 print_char_cursor#1 print_char::ch#0 ] { { print_char::ch#0 = print_char::ch#17 } { print_char_cursor#1 = print_char_cursor#95 } } testShort:5::print_str:30 [ print_line_cursor#0 print_str::str#5 print_char_cursor#1 print_char::ch#0 ] { { print_char_cursor#159 = print_char_cursor#165 } { print_char::ch#0 = print_char::ch#17 } { print_char_cursor#1 = print_char_cursor#95 } } testInt:7::print_str:45 [ print_line_cursor#0 print_str::str#5 print_char_cursor#1 print_char::ch#0 ] { { print_char_cursor#159 = print_char_cursor#163 } { print_char::ch#0 = print_char::ch#17 } { print_char_cursor#1 = print_char_cursor#95 } } testLong:9::print_str:60 [ print_line_cursor#0 print_str::str#5 print_char_cursor#1 print_char::ch#0 ] { { print_char_cursor#159 = print_char_cursor#164 } { print_char::ch#0 = print_char::ch#17 } { print_char_cursor#1 = print_char_cursor#95 } } ) always clobbers reg byte a reg byte y
Statement [88] print_uchar::$0 = print_uchar::b#5 >> 4 [ print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] ( testChar:3::print_uchar:17 [ print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_char_cursor#1 = print_char_cursor#152 print_char_cursor#95 } { print_char::ch#17 = print_char::ch#7 } } testChar:3::print_uchar:21 [ print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_char_cursor#152 = print_char_cursor#25 print_char_cursor#95 } { print_char::ch#17 = print_char::ch#7 } } testChar:3::print_schar:25::print_uchar:103 [ print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_char_cursor#152 = print_char_cursor#25 print_char_cursor#95 } { print_char::ch#17 = print_char::ch#7 } } testShort:5::print_uint:32::print_uchar:112 [ print_line_cursor#0 print_uint::w#5 print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_char_cursor#1 = print_char_cursor#147 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testInt:7::print_uint:47::print_uchar:112 [ print_line_cursor#0 print_uint::w#5 print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_char_cursor#1 = print_char_cursor#147 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testShort:5::print_sint:36::print_uint:122::print_uchar:112 [ print_line_cursor#0 print_uint::w#5 print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testShort:5::print_sint:40::print_uint:122::print_uchar:112 [ print_line_cursor#0 print_uint::w#5 print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testInt:7::print_sint:51::print_uint:122::print_uchar:112 [ print_line_cursor#0 print_uint::w#5 print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testInt:7::print_sint:55::print_uint:122::print_uchar:112 [ print_line_cursor#0 print_uint::w#5 print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testLong:9::print_ulong:62::print_uint:129::print_uchar:112 [ print_line_cursor#0 print_ulong::dw#2 print_uint::w#5 print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#147 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#1 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testLong:9::print_slong:66::print_ulong:139::print_uint:129::print_uchar:112 [ print_line_cursor#0 print_ulong::dw#2 print_uint::w#5 print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#1 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testLong:9::print_slong:70::print_ulong:139::print_uint:129::print_uchar:112 [ print_line_cursor#0 print_ulong::dw#2 print_uint::w#5 print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#1 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testLong:9::print_ulong:62::print_uint:131::print_uchar:112 [ print_line_cursor#0 print_uint::w#5 print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_char_cursor#1 = print_char_cursor#148 } { print_uint::w#2 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testLong:9::print_slong:66::print_ulong:139::print_uint:131::print_uchar:112 [ print_line_cursor#0 print_uint::w#5 print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testLong:9::print_slong:70::print_ulong:139::print_uint:131::print_uchar:112 [ print_line_cursor#0 print_uint::w#5 print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testShort:5::print_uint:32::print_uchar:114 [ print_line_cursor#0 print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_char_cursor#1 = print_char_cursor#147 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#152 = print_char_cursor#25 print_char_cursor#95 } { print_char::ch#17 = print_char::ch#7 } } testInt:7::print_uint:47::print_uchar:114 [ print_line_cursor#0 print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_char_cursor#1 = print_char_cursor#147 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#152 = print_char_cursor#25 print_char_cursor#95 } { print_char::ch#17 = print_char::ch#7 } } testShort:5::print_sint:36::print_uint:122::print_uchar:114 [ print_line_cursor#0 print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testShort:5::print_sint:40::print_uint:122::print_uchar:114 [ print_line_cursor#0 print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testInt:7::print_sint:51::print_uint:122::print_uchar:114 [ print_line_cursor#0 print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testInt:7::print_sint:55::print_uint:122::print_uchar:114 [ print_line_cursor#0 print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testLong:9::print_ulong:62::print_uint:129::print_uchar:114 [ print_line_cursor#0 print_ulong::dw#2 print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#147 } { print_uint::w#1 = print_uint::w#5 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#152 = print_char_cursor#25 print_char_cursor#95 } { print_char::ch#17 = print_char::ch#7 } } testLong:9::print_slong:66::print_ulong:139::print_uint:129::print_uchar:114 [ print_line_cursor#0 print_ulong::dw#2 print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#1 = print_uint::w#5 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testLong:9::print_slong:70::print_ulong:139::print_uint:129::print_uchar:114 [ print_line_cursor#0 print_ulong::dw#2 print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#1 = print_uint::w#5 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testLong:9::print_ulong:62::print_uint:131::print_uchar:114 [ print_line_cursor#0 print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_char_cursor#1 = print_char_cursor#148 } { print_uint::w#2 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testLong:9::print_slong:66::print_ulong:139::print_uint:131::print_uchar:114 [ print_line_cursor#0 print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testLong:9::print_slong:70::print_ulong:139::print_uint:131::print_uchar:114 [ print_line_cursor#0 print_uchar::b#5 print_char_cursor#152 print_uchar::$0 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } ) always clobbers reg byte a
Statement [91] print_uchar::$2 = print_uchar::b#5 & $f [ print_char_cursor#25 print_uchar::$2 ] ( testChar:3::print_uchar:17 [ print_char_cursor#25 print_uchar::$2 ] { { print_char_cursor#1 = print_char_cursor#152 } { print_char::ch#17 = print_char::ch#8 } { print_char_cursor#25 = print_char_cursor#95 } } testChar:3::print_uchar:21 [ print_char_cursor#25 print_uchar::$2 ] { { print_char_cursor#152 = print_char_cursor#25 print_char_cursor#95 } { print_char::ch#17 = print_char::ch#8 } } testChar:3::print_schar:25::print_uchar:103 [ print_char_cursor#25 print_uchar::$2 ] { { print_char_cursor#152 = print_char_cursor#25 print_char_cursor#95 } { print_char::ch#17 = print_char::ch#8 } } testShort:5::print_uint:32::print_uchar:112 [ print_line_cursor#0 print_uint::w#5 print_char_cursor#25 print_uchar::$2 ] { { print_char_cursor#1 = print_char_cursor#147 print_char_cursor#152 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } { print_char_cursor#25 = print_char_cursor#95 } } testInt:7::print_uint:47::print_uchar:112 [ print_line_cursor#0 print_uint::w#5 print_char_cursor#25 print_uchar::$2 ] { { print_char_cursor#1 = print_char_cursor#147 print_char_cursor#152 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } { print_char_cursor#25 = print_char_cursor#95 } } testShort:5::print_sint:36::print_uint:122::print_uchar:112 [ print_line_cursor#0 print_uint::w#5 print_char_cursor#25 print_uchar::$2 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testShort:5::print_sint:40::print_uint:122::print_uchar:112 [ print_line_cursor#0 print_uint::w#5 print_char_cursor#25 print_uchar::$2 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testInt:7::print_sint:51::print_uint:122::print_uchar:112 [ print_line_cursor#0 print_uint::w#5 print_char_cursor#25 print_uchar::$2 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testInt:7::print_sint:55::print_uint:122::print_uchar:112 [ print_line_cursor#0 print_uint::w#5 print_char_cursor#25 print_uchar::$2 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testLong:9::print_ulong:62::print_uint:129::print_uchar:112 [ print_line_cursor#0 print_ulong::dw#2 print_uint::w#5 print_char_cursor#25 print_uchar::$2 ] { { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#147 print_char_cursor#152 } { print_uint::w#1 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } { print_char_cursor#25 = print_char_cursor#95 } } testLong:9::print_slong:66::print_ulong:139::print_uint:129::print_uchar:112 [ print_line_cursor#0 print_ulong::dw#2 print_uint::w#5 print_char_cursor#25 print_uchar::$2 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#1 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testLong:9::print_slong:70::print_ulong:139::print_uint:129::print_uchar:112 [ print_line_cursor#0 print_ulong::dw#2 print_uint::w#5 print_char_cursor#25 print_uchar::$2 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#1 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testLong:9::print_ulong:62::print_uint:131::print_uchar:112 [ print_line_cursor#0 print_uint::w#5 print_char_cursor#25 print_uchar::$2 ] { { print_char_cursor#1 = print_char_cursor#148 } { print_uint::w#2 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testLong:9::print_slong:66::print_ulong:139::print_uint:131::print_uchar:112 [ print_line_cursor#0 print_uint::w#5 print_char_cursor#25 print_uchar::$2 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testLong:9::print_slong:70::print_ulong:139::print_uint:131::print_uchar:112 [ print_line_cursor#0 print_uint::w#5 print_char_cursor#25 print_uchar::$2 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testShort:5::print_uint:32::print_uchar:114 [ print_line_cursor#0 print_char_cursor#25 print_uchar::$2 ] { { print_char_cursor#1 = print_char_cursor#147 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#152 = print_char_cursor#25 print_char_cursor#95 } { print_char::ch#17 = print_char::ch#8 } } testInt:7::print_uint:47::print_uchar:114 [ print_line_cursor#0 print_char_cursor#25 print_uchar::$2 ] { { print_char_cursor#1 = print_char_cursor#147 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#152 = print_char_cursor#25 print_char_cursor#95 } { print_char::ch#17 = print_char::ch#8 } } testShort:5::print_sint:36::print_uint:122::print_uchar:114 [ print_line_cursor#0 print_char_cursor#25 print_uchar::$2 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testShort:5::print_sint:40::print_uint:122::print_uchar:114 [ print_line_cursor#0 print_char_cursor#25 print_uchar::$2 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testInt:7::print_sint:51::print_uint:122::print_uchar:114 [ print_line_cursor#0 print_char_cursor#25 print_uchar::$2 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testInt:7::print_sint:55::print_uint:122::print_uchar:114 [ print_line_cursor#0 print_char_cursor#25 print_uchar::$2 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testLong:9::print_ulong:62::print_uint:129::print_uchar:114 [ print_line_cursor#0 print_ulong::dw#2 print_char_cursor#25 print_uchar::$2 ] { { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#147 } { print_uint::w#1 = print_uint::w#5 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#152 = print_char_cursor#25 print_char_cursor#95 } { print_char::ch#17 = print_char::ch#8 } } testLong:9::print_slong:66::print_ulong:139::print_uint:129::print_uchar:114 [ print_line_cursor#0 print_ulong::dw#2 print_char_cursor#25 print_uchar::$2 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#1 = print_uint::w#5 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testLong:9::print_slong:70::print_ulong:139::print_uint:129::print_uchar:114 [ print_line_cursor#0 print_ulong::dw#2 print_char_cursor#25 print_uchar::$2 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#1 = print_uint::w#5 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testLong:9::print_ulong:62::print_uint:131::print_uchar:114 [ print_line_cursor#0 print_char_cursor#25 print_uchar::$2 ] { { print_char_cursor#1 = print_char_cursor#148 } { print_uint::w#2 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testLong:9::print_slong:66::print_ulong:139::print_uint:131::print_uchar:114 [ print_line_cursor#0 print_char_cursor#25 print_uchar::$2 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testLong:9::print_slong:70::print_ulong:139::print_uint:131::print_uchar:114 [ print_line_cursor#0 print_char_cursor#25 print_uchar::$2 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } ) always clobbers reg byte a
Statement [96] *print_char_cursor#95 = print_char::ch#17 [ print_char_cursor#95 ] ( testChar:3::print_char:19 [ print_char_cursor#95 ] { { print_char_cursor#25 = print_char_cursor#95 } } testChar:3::print_char:23 [ print_char_cursor#95 ] { { print_char_cursor#25 = print_char_cursor#95 } } testShort:5::print_char:34 [ print_line_cursor#0 print_char_cursor#95 ] { { print_char_cursor#25 = print_char_cursor#95 } } testShort:5::print_char:38 [ print_line_cursor#0 print_char_cursor#95 ] { { print_char_cursor#25 = print_char_cursor#95 } } testInt:7::print_char:49 [ print_line_cursor#0 print_char_cursor#95 ] { { print_char_cursor#25 = print_char_cursor#95 } } testInt:7::print_char:53 [ print_line_cursor#0 print_char_cursor#95 ] { { print_char_cursor#25 = print_char_cursor#95 } } testLong:9::print_char:64 [ print_line_cursor#0 print_char_cursor#95 ] { { print_char_cursor#25 = print_char_cursor#95 } } testLong:9::print_char:68 [ print_line_cursor#0 print_char_cursor#95 ] { { print_char_cursor#25 = print_char_cursor#95 } } testChar:3::print_str:15::print_char:85 [ print_str::str#5 print_char_cursor#95 ] { { print_char::ch#0 = print_char::ch#17 } { print_char_cursor#1 = print_char_cursor#95 } } testShort:5::print_str:30::print_char:85 [ print_line_cursor#0 print_str::str#5 print_char_cursor#95 ] { { print_char_cursor#159 = print_char_cursor#165 } { print_char::ch#0 = print_char::ch#17 } { print_char_cursor#1 = print_char_cursor#95 } } testInt:7::print_str:45::print_char:85 [ print_line_cursor#0 print_str::str#5 print_char_cursor#95 ] { { print_char_cursor#159 = print_char_cursor#163 } { print_char::ch#0 = print_char::ch#17 } { print_char_cursor#1 = print_char_cursor#95 } } testLong:9::print_str:60::print_char:85 [ print_line_cursor#0 print_str::str#5 print_char_cursor#95 ] { { print_char_cursor#159 = print_char_cursor#164 } { print_char::ch#0 = print_char::ch#17 } { print_char_cursor#1 = print_char_cursor#95 } } testChar:3::print_uchar:17::print_char:90 [ print_uchar::b#5 print_char_cursor#95 ] { { print_char_cursor#1 = print_char_cursor#152 print_char_cursor#95 } { print_char::ch#17 = print_char::ch#7 } } testChar:3::print_uchar:21::print_char:90 [ print_uchar::b#5 print_char_cursor#95 ] { { print_char_cursor#152 = print_char_cursor#25 print_char_cursor#95 } { print_char::ch#17 = print_char::ch#7 } } testChar:3::print_schar:25::print_uchar:103::print_char:90 [ print_uchar::b#5 print_char_cursor#95 ] { { print_char_cursor#152 = print_char_cursor#25 print_char_cursor#95 } { print_char::ch#17 = print_char::ch#7 } } testShort:5::print_uint:32::print_uchar:112::print_char:90 [ print_line_cursor#0 print_uint::w#5 print_uchar::b#5 print_char_cursor#95 ] { { print_char_cursor#1 = print_char_cursor#147 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testInt:7::print_uint:47::print_uchar:112::print_char:90 [ print_line_cursor#0 print_uint::w#5 print_uchar::b#5 print_char_cursor#95 ] { { print_char_cursor#1 = print_char_cursor#147 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testShort:5::print_sint:36::print_uint:122::print_uchar:112::print_char:90 [ print_line_cursor#0 print_uint::w#5 print_uchar::b#5 print_char_cursor#95 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testShort:5::print_sint:40::print_uint:122::print_uchar:112::print_char:90 [ print_line_cursor#0 print_uint::w#5 print_uchar::b#5 print_char_cursor#95 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testInt:7::print_sint:51::print_uint:122::print_uchar:112::print_char:90 [ print_line_cursor#0 print_uint::w#5 print_uchar::b#5 print_char_cursor#95 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testInt:7::print_sint:55::print_uint:122::print_uchar:112::print_char:90 [ print_line_cursor#0 print_uint::w#5 print_uchar::b#5 print_char_cursor#95 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testLong:9::print_ulong:62::print_uint:129::print_uchar:112::print_char:90 [ print_line_cursor#0 print_ulong::dw#2 print_uint::w#5 print_uchar::b#5 print_char_cursor#95 ] { { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#147 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#1 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testLong:9::print_slong:66::print_ulong:139::print_uint:129::print_uchar:112::print_char:90 [ print_line_cursor#0 print_ulong::dw#2 print_uint::w#5 print_uchar::b#5 print_char_cursor#95 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#1 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testLong:9::print_slong:70::print_ulong:139::print_uint:129::print_uchar:112::print_char:90 [ print_line_cursor#0 print_ulong::dw#2 print_uint::w#5 print_uchar::b#5 print_char_cursor#95 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#1 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testLong:9::print_ulong:62::print_uint:131::print_uchar:112::print_char:90 [ print_line_cursor#0 print_uint::w#5 print_uchar::b#5 print_char_cursor#95 ] { { print_char_cursor#1 = print_char_cursor#148 } { print_uint::w#2 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testLong:9::print_slong:66::print_ulong:139::print_uint:131::print_uchar:112::print_char:90 [ print_line_cursor#0 print_uint::w#5 print_uchar::b#5 print_char_cursor#95 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testLong:9::print_slong:70::print_ulong:139::print_uint:131::print_uchar:112::print_char:90 [ print_line_cursor#0 print_uint::w#5 print_uchar::b#5 print_char_cursor#95 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testShort:5::print_uint:32::print_uchar:114::print_char:90 [ print_line_cursor#0 print_uchar::b#5 print_char_cursor#95 ] { { print_char_cursor#1 = print_char_cursor#147 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#152 = print_char_cursor#25 print_char_cursor#95 } { print_char::ch#17 = print_char::ch#7 } } testInt:7::print_uint:47::print_uchar:114::print_char:90 [ print_line_cursor#0 print_uchar::b#5 print_char_cursor#95 ] { { print_char_cursor#1 = print_char_cursor#147 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#152 = print_char_cursor#25 print_char_cursor#95 } { print_char::ch#17 = print_char::ch#7 } } testShort:5::print_sint:36::print_uint:122::print_uchar:114::print_char:90 [ print_line_cursor#0 print_uchar::b#5 print_char_cursor#95 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testShort:5::print_sint:40::print_uint:122::print_uchar:114::print_char:90 [ print_line_cursor#0 print_uchar::b#5 print_char_cursor#95 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testInt:7::print_sint:51::print_uint:122::print_uchar:114::print_char:90 [ print_line_cursor#0 print_uchar::b#5 print_char_cursor#95 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testInt:7::print_sint:55::print_uint:122::print_uchar:114::print_char:90 [ print_line_cursor#0 print_uchar::b#5 print_char_cursor#95 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testLong:9::print_ulong:62::print_uint:129::print_uchar:114::print_char:90 [ print_line_cursor#0 print_ulong::dw#2 print_uchar::b#5 print_char_cursor#95 ] { { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#147 } { print_uint::w#1 = print_uint::w#5 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#152 = print_char_cursor#25 print_char_cursor#95 } { print_char::ch#17 = print_char::ch#7 } } testLong:9::print_slong:66::print_ulong:139::print_uint:129::print_uchar:114::print_char:90 [ print_line_cursor#0 print_ulong::dw#2 print_uchar::b#5 print_char_cursor#95 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#1 = print_uint::w#5 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testLong:9::print_slong:70::print_ulong:139::print_uint:129::print_uchar:114::print_char:90 [ print_line_cursor#0 print_ulong::dw#2 print_uchar::b#5 print_char_cursor#95 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#1 = print_uint::w#5 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testLong:9::print_ulong:62::print_uint:131::print_uchar:114::print_char:90 [ print_line_cursor#0 print_uchar::b#5 print_char_cursor#95 ] { { print_char_cursor#1 = print_char_cursor#148 } { print_uint::w#2 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testLong:9::print_slong:66::print_ulong:139::print_uint:131::print_uchar:114::print_char:90 [ print_line_cursor#0 print_uchar::b#5 print_char_cursor#95 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testLong:9::print_slong:70::print_ulong:139::print_uint:131::print_uchar:114::print_char:90 [ print_line_cursor#0 print_uchar::b#5 print_char_cursor#95 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#7 } } testChar:3::print_uchar:17::print_char:93 [ print_char_cursor#95 ] { { print_char_cursor#1 = print_char_cursor#152 } { print_char::ch#17 = print_char::ch#8 } { print_char_cursor#25 = print_char_cursor#95 } } testChar:3::print_uchar:21::print_char:93 [ print_char_cursor#95 ] { { print_char_cursor#152 = print_char_cursor#25 print_char_cursor#95 } { print_char::ch#17 = print_char::ch#8 } } testChar:3::print_schar:25::print_uchar:103::print_char:93 [ print_char_cursor#95 ] { { print_char_cursor#152 = print_char_cursor#25 print_char_cursor#95 } { print_char::ch#17 = print_char::ch#8 } } testShort:5::print_uint:32::print_uchar:112::print_char:93 [ print_line_cursor#0 print_uint::w#5 print_char_cursor#95 ] { { print_char_cursor#1 = print_char_cursor#147 print_char_cursor#152 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } { print_char_cursor#25 = print_char_cursor#95 } } testInt:7::print_uint:47::print_uchar:112::print_char:93 [ print_line_cursor#0 print_uint::w#5 print_char_cursor#95 ] { { print_char_cursor#1 = print_char_cursor#147 print_char_cursor#152 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } { print_char_cursor#25 = print_char_cursor#95 } } testShort:5::print_sint:36::print_uint:122::print_uchar:112::print_char:93 [ print_line_cursor#0 print_uint::w#5 print_char_cursor#95 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testShort:5::print_sint:40::print_uint:122::print_uchar:112::print_char:93 [ print_line_cursor#0 print_uint::w#5 print_char_cursor#95 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testInt:7::print_sint:51::print_uint:122::print_uchar:112::print_char:93 [ print_line_cursor#0 print_uint::w#5 print_char_cursor#95 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testInt:7::print_sint:55::print_uint:122::print_uchar:112::print_char:93 [ print_line_cursor#0 print_uint::w#5 print_char_cursor#95 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testLong:9::print_ulong:62::print_uint:129::print_uchar:112::print_char:93 [ print_line_cursor#0 print_ulong::dw#2 print_uint::w#5 print_char_cursor#95 ] { { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#147 print_char_cursor#152 } { print_uint::w#1 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } { print_char_cursor#25 = print_char_cursor#95 } } testLong:9::print_slong:66::print_ulong:139::print_uint:129::print_uchar:112::print_char:93 [ print_line_cursor#0 print_ulong::dw#2 print_uint::w#5 print_char_cursor#95 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#1 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testLong:9::print_slong:70::print_ulong:139::print_uint:129::print_uchar:112::print_char:93 [ print_line_cursor#0 print_ulong::dw#2 print_uint::w#5 print_char_cursor#95 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#1 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testLong:9::print_ulong:62::print_uint:131::print_uchar:112::print_char:93 [ print_line_cursor#0 print_uint::w#5 print_char_cursor#95 ] { { print_char_cursor#1 = print_char_cursor#148 } { print_uint::w#2 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testLong:9::print_slong:66::print_ulong:139::print_uint:131::print_uchar:112::print_char:93 [ print_line_cursor#0 print_uint::w#5 print_char_cursor#95 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testLong:9::print_slong:70::print_ulong:139::print_uint:131::print_uchar:112::print_char:93 [ print_line_cursor#0 print_uint::w#5 print_char_cursor#95 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#1 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testShort:5::print_uint:32::print_uchar:114::print_char:93 [ print_line_cursor#0 print_char_cursor#95 ] { { print_char_cursor#1 = print_char_cursor#147 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#152 = print_char_cursor#25 print_char_cursor#95 } { print_char::ch#17 = print_char::ch#8 } } testInt:7::print_uint:47::print_uchar:114::print_char:93 [ print_line_cursor#0 print_char_cursor#95 ] { { print_char_cursor#1 = print_char_cursor#147 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#152 = print_char_cursor#25 print_char_cursor#95 } { print_char::ch#17 = print_char::ch#8 } } testShort:5::print_sint:36::print_uint:122::print_uchar:114::print_char:93 [ print_line_cursor#0 print_char_cursor#95 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testShort:5::print_sint:40::print_uint:122::print_uchar:114::print_char:93 [ print_line_cursor#0 print_char_cursor#95 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testInt:7::print_sint:51::print_uint:122::print_uchar:114::print_char:93 [ print_line_cursor#0 print_char_cursor#95 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testInt:7::print_sint:55::print_uint:122::print_uchar:114::print_char:93 [ print_line_cursor#0 print_char_cursor#95 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testLong:9::print_ulong:62::print_uint:129::print_uchar:114::print_char:93 [ print_line_cursor#0 print_ulong::dw#2 print_char_cursor#95 ] { { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#147 } { print_uint::w#1 = print_uint::w#5 } { print_uchar::b#2 = print_uchar::b#5 } { print_char_cursor#152 = print_char_cursor#25 print_char_cursor#95 } { print_char::ch#17 = print_char::ch#8 } } testLong:9::print_slong:66::print_ulong:139::print_uint:129::print_uchar:114::print_char:93 [ print_line_cursor#0 print_ulong::dw#2 print_char_cursor#95 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#1 = print_uint::w#5 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testLong:9::print_slong:70::print_ulong:139::print_uint:129::print_uchar:114::print_char:93 [ print_line_cursor#0 print_ulong::dw#2 print_char_cursor#95 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#1 = print_uint::w#5 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testLong:9::print_ulong:62::print_uint:131::print_uchar:114::print_char:93 [ print_line_cursor#0 print_char_cursor#95 ] { { print_char_cursor#1 = print_char_cursor#148 } { print_uint::w#2 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testLong:9::print_slong:66::print_ulong:139::print_uint:131::print_uchar:114::print_char:93 [ print_line_cursor#0 print_char_cursor#95 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testLong:9::print_slong:70::print_ulong:139::print_uint:131::print_uchar:114::print_char:93 [ print_line_cursor#0 print_char_cursor#95 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 print_char_cursor#152 print_char_cursor#95 } { print_uint::w#2 = print_uint::w#5 } { print_uchar::b#2 = print_uchar::b#5 } { print_char::ch#17 = print_char::ch#8 } } testChar:3::print_schar:25::print_char:101 [ print_char_cursor#95 ] { { print_char_cursor#25 = print_char_cursor#95 } } testShort:5::print_sint:36::print_char:119 [ print_line_cursor#0 print_sint::w#10 print_char_cursor#95 ] { { print_char_cursor#25 = print_char_cursor#95 } } testShort:5::print_sint:40::print_char:119 [ print_line_cursor#0 print_sint::w#10 print_char_cursor#95 ] { { print_char_cursor#25 = print_char_cursor#95 } } testInt:7::print_sint:51::print_char:119 [ print_line_cursor#0 print_sint::w#10 print_char_cursor#95 ] { { print_char_cursor#25 = print_char_cursor#95 } } testInt:7::print_sint:55::print_char:119 [ print_line_cursor#0 print_sint::w#10 print_char_cursor#95 ] { { print_char_cursor#25 = print_char_cursor#95 } } testShort:5::print_sint:36::print_char:125 [ print_line_cursor#0 print_sint::w#10 print_char_cursor#95 ] { { print_char_cursor#25 = print_char_cursor#95 } } testShort:5::print_sint:40::print_char:125 [ print_line_cursor#0 print_sint::w#10 print_char_cursor#95 ] { { print_char_cursor#25 = print_char_cursor#95 } } testInt:7::print_sint:51::print_char:125 [ print_line_cursor#0 print_sint::w#10 print_char_cursor#95 ] { { print_char_cursor#25 = print_char_cursor#95 } } testInt:7::print_sint:55::print_char:125 [ print_line_cursor#0 print_sint::w#10 print_char_cursor#95 ] { { print_char_cursor#25 = print_char_cursor#95 } } testLong:9::print_slong:66::print_char:136 [ print_line_cursor#0 print_slong::dw#3 print_char_cursor#95 ] { { print_char_cursor#25 = print_char_cursor#95 } } testLong:9::print_slong:70::print_char:136 [ print_line_cursor#0 print_slong::dw#3 print_char_cursor#95 ] { { print_char_cursor#25 = print_char_cursor#95 } } testLong:9::print_slong:66::print_char:142 [ print_line_cursor#0 print_slong::dw#3 print_char_cursor#95 ] { { print_char_cursor#25 = print_char_cursor#95 } } testLong:9::print_slong:70::print_char:142 [ print_line_cursor#0 print_slong::dw#3 print_char_cursor#95 ] { { print_char_cursor#25 = print_char_cursor#95 } } ) always clobbers reg byte y
Statement [107] print_line_cursor#0 = print_line_cursor#21 + $28 [ print_line_cursor#0 print_char_cursor#25 ] ( testChar:3::print_ln:27 [ print_line_cursor#0 print_char_cursor#25 ] { } testShort:5::print_ln:42 [ print_line_cursor#0 print_char_cursor#25 ] { { print_line_cursor#0 = print_line_cursor#41 } } testInt:7::print_ln:57 [ print_line_cursor#0 print_char_cursor#25 ] { { print_line_cursor#0 = print_line_cursor#41 } } testLong:9::print_ln:72 [ print_line_cursor#0 print_char_cursor#25 ] { { print_line_cursor#0 = print_line_cursor#41 } } ) always clobbers reg byte a
Statement [108] if(print_line_cursor#0<print_char_cursor#25) goto print_ln::@1 [ print_line_cursor#0 print_char_cursor#25 ] ( testChar:3::print_ln:27 [ print_line_cursor#0 print_char_cursor#25 ] { } testShort:5::print_ln:42 [ print_line_cursor#0 print_char_cursor#25 ] { { print_line_cursor#0 = print_line_cursor#41 } } testInt:7::print_ln:57 [ print_line_cursor#0 print_char_cursor#25 ] { { print_line_cursor#0 = print_line_cursor#41 } } testLong:9::print_ln:72 [ print_line_cursor#0 print_char_cursor#25 ] { { print_line_cursor#0 = print_line_cursor#41 } } ) always clobbers reg byte a
Statement [117] if(print_sint::w#10<0) goto print_sint::@1 [ print_char_cursor#25 print_sint::w#10 ] ( testShort:5::print_sint:36 [ print_line_cursor#0 print_char_cursor#25 print_sint::w#10 ] { } testShort:5::print_sint:40 [ print_line_cursor#0 print_char_cursor#25 print_sint::w#10 ] { } testInt:7::print_sint:51 [ print_line_cursor#0 print_char_cursor#25 print_sint::w#10 ] { } testInt:7::print_sint:55 [ print_line_cursor#0 print_char_cursor#25 print_sint::w#10 ] { } ) always clobbers reg byte a
Statement [121] print_uint::w#0 = (unsigned int)print_sint::w#7 [ print_char_cursor#25 print_uint::w#0 ] ( testShort:5::print_sint:36 [ print_line_cursor#0 print_char_cursor#25 print_uint::w#0 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 } } testShort:5::print_sint:40 [ print_line_cursor#0 print_char_cursor#25 print_uint::w#0 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 } } testInt:7::print_sint:51 [ print_line_cursor#0 print_char_cursor#25 print_uint::w#0 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 } } testInt:7::print_sint:55 [ print_line_cursor#0 print_char_cursor#25 print_uint::w#0 ] { { print_uint::w#0 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 } } ) always clobbers reg byte a
Statement [126] print_sint::w#0 = - print_sint::w#10 [ print_char_cursor#25 print_sint::w#0 ] ( testShort:5::print_sint:36 [ print_line_cursor#0 print_char_cursor#25 print_sint::w#0 ] { } testShort:5::print_sint:40 [ print_line_cursor#0 print_char_cursor#25 print_sint::w#0 ] { } testInt:7::print_sint:51 [ print_line_cursor#0 print_char_cursor#25 print_sint::w#0 ] { } testInt:7::print_sint:55 [ print_line_cursor#0 print_char_cursor#25 print_sint::w#0 ] { } ) always clobbers reg byte a
Statement [128] print_uint::w#1 = word1 print_ulong::dw#2 [ print_uint::w#1 print_char_cursor#148 print_ulong::dw#2 ] ( testLong:9::print_ulong:62 [ print_line_cursor#0 print_uint::w#1 print_char_cursor#148 print_ulong::dw#2 ] { { print_char_cursor#1 = print_char_cursor#148 print_char_cursor#147 } { print_uint::w#1 = print_uint::w#5 } } testLong:9::print_slong:66::print_ulong:139 [ print_line_cursor#0 print_uint::w#1 print_char_cursor#148 print_ulong::dw#2 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 } { print_uint::w#1 = print_uint::w#5 } } testLong:9::print_slong:70::print_ulong:139 [ print_line_cursor#0 print_uint::w#1 print_char_cursor#148 print_ulong::dw#2 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 } { print_uint::w#1 = print_uint::w#5 } } ) always clobbers reg byte a
Statement [130] print_uint::w#2 = word0 print_ulong::dw#2 [ print_char_cursor#25 print_uint::w#2 ] ( testLong:9::print_ulong:62 [ print_line_cursor#0 print_char_cursor#25 print_uint::w#2 ] { { print_char_cursor#1 = print_char_cursor#148 } { print_uint::w#2 = print_uint::w#5 } { print_char_cursor#147 = print_char_cursor#25 } } testLong:9::print_slong:66::print_ulong:139 [ print_line_cursor#0 print_char_cursor#25 print_uint::w#2 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 } { print_uint::w#2 = print_uint::w#5 } } testLong:9::print_slong:70::print_ulong:139 [ print_line_cursor#0 print_char_cursor#25 print_uint::w#2 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#147 = print_char_cursor#148 print_char_cursor#25 } { print_uint::w#2 = print_uint::w#5 } } ) always clobbers reg byte a
Statement [134] if(print_slong::dw#3<0) goto print_slong::@1 [ print_char_cursor#25 print_slong::dw#3 ] ( testLong:9::print_slong:66 [ print_line_cursor#0 print_char_cursor#25 print_slong::dw#3 ] { } testLong:9::print_slong:70 [ print_line_cursor#0 print_char_cursor#25 print_slong::dw#3 ] { } ) always clobbers reg byte a
Statement [138] print_ulong::dw#0 = (unsigned long)print_slong::dw#5 [ print_char_cursor#25 print_ulong::dw#0 ] ( testLong:9::print_slong:66 [ print_line_cursor#0 print_char_cursor#25 print_ulong::dw#0 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#148 = print_char_cursor#25 } } testLong:9::print_slong:70 [ print_line_cursor#0 print_char_cursor#25 print_ulong::dw#0 ] { { print_ulong::dw#0 = print_ulong::dw#2 } { print_char_cursor#148 = print_char_cursor#25 } } ) always clobbers reg byte a
Statement [143] print_slong::dw#0 = - print_slong::dw#3 [ print_char_cursor#25 print_slong::dw#0 ] ( testLong:9::print_slong:66 [ print_line_cursor#0 print_char_cursor#25 print_slong::dw#0 ] { } testLong:9::print_slong:70 [ print_line_cursor#0 print_char_cursor#25 print_slong::dw#0 ] { } ) always clobbers reg byte a
Potential registers zp[2]:10 [ memset::dst#2 memset::dst#1 ] : zp[2]:10 ,
Potential registers zp[2]:12 [ print_str::str#5 print_str::str#8 print_str::str#0 ] : zp[2]:12 ,
Potential registers zp[1]:7 [ print_uchar::b#5 print_uchar::b#1 print_uchar::b#2 ] : zp[1]:7 , reg byte x ,
Potential registers zp[1]:2 [ print_char::ch#17 print_char::ch#0 print_char::ch#7 print_char::ch#8 ] : zp[1]:2 , reg byte a , reg byte x , reg byte y ,
Potential registers zp[2]:3 [ print_char_cursor#95 print_char_cursor#152 print_char_cursor#1 print_char_cursor#159 print_char_cursor#163 print_char_cursor#164 print_char_cursor#165 print_char_cursor#25 print_char_cursor#147 print_char_cursor#148 ] : zp[2]:3 ,
Potential registers zp[2]:14 [ print_line_cursor#21 print_line_cursor#41 print_line_cursor#0 ] : zp[2]:14 ,
Potential registers zp[2]:8 [ print_uint::w#5 print_uint::w#0 print_uint::w#1 print_uint::w#2 ] : zp[2]:8 ,
Potential registers zp[2]:20 [ print_sint::w#7 print_sint::w#0 print_sint::w#10 ] : zp[2]:20 ,
Potential registers zp[4]:16 [ print_ulong::dw#2 print_ulong::dw#0 ] : zp[4]:16 ,
Potential registers zp[4]:22 [ print_slong::dw#5 print_slong::dw#0 print_slong::dw#3 ] : zp[4]:22 ,
Potential registers zp[1]:5 [ print_uchar::$0 ] : zp[1]:5 , reg byte a , reg byte x , reg byte y ,
Potential registers zp[1]:6 [ print_uchar::$2 ] : zp[1]:6 , reg byte a , reg byte x , reg byte y ,
REGISTER UPLIFT SCOPES
Uplift Scope [print_char] 1,603,010: zp[1]:2 [ print_char::ch#17 print_char::ch#0 print_char::ch#7 print_char::ch#8 ]
Uplift Scope [] 1,160,355.29: zp[2]:3 [ print_char_cursor#95 print_char_cursor#152 print_char_cursor#1 print_char_cursor#159 print_char_cursor#163 print_char_cursor#164 print_char_cursor#165 print_char_cursor#25 print_char_cursor#147 print_char_cursor#148 ] 2,293.83: zp[2]:14 [ print_line_cursor#21 print_line_cursor#41 print_line_cursor#0 ]
Uplift Scope [print_uchar] 200,002: zp[1]:5 [ print_uchar::$0 ] 200,002: zp[1]:6 [ print_uchar::$2 ] 95,005: zp[1]:7 [ print_uchar::b#5 print_uchar::b#1 print_uchar::b#2 ]
Uplift Scope [print_uint] 11,574.33: zp[2]:8 [ print_uint::w#5 print_uint::w#0 print_uint::w#1 print_uint::w#2 ]
Uplift Scope [memset] 3,336.67: zp[2]:10 [ memset::dst#2 memset::dst#1 ]
Uplift Scope [print_str] 3,129.25: zp[2]:12 [ print_str::str#5 print_str::str#8 print_str::str#0 ]
Uplift Scope [print_ulong] 903: zp[4]:16 [ print_ulong::dw#2 print_ulong::dw#0 ]
Uplift Scope [print_sint] 454.5: zp[2]:20 [ print_sint::w#7 print_sint::w#0 print_sint::w#10 ]
Uplift Scope [print_slong] 454.5: zp[4]:22 [ print_slong::dw#5 print_slong::dw#0 print_slong::dw#3 ]
Uplift Scope [print_ln]
Uplift Scope [print_schar]
Uplift Scope [print_cls]
Uplift Scope [RADIX]
Uplift Scope [main]
Uplift Scope [testChar]
Uplift Scope [testShort]
Uplift Scope [testInt]
Uplift Scope [testLong]
Uplifting [print_char] best 2421 combination reg byte a [ print_char::ch#17 print_char::ch#0 print_char::ch#7 print_char::ch#8 ]
Uplifting [] best 2421 combination zp[2]:3 [ print_char_cursor#95 print_char_cursor#152 print_char_cursor#1 print_char_cursor#159 print_char_cursor#163 print_char_cursor#164 print_char_cursor#165 print_char_cursor#25 print_char_cursor#147 print_char_cursor#148 ] zp[2]:14 [ print_line_cursor#21 print_line_cursor#41 print_line_cursor#0 ]
Uplifting [print_uchar] best 2394 combination reg byte a [ print_uchar::$0 ] reg byte x [ print_uchar::$2 ] reg byte x [ print_uchar::b#5 print_uchar::b#1 print_uchar::b#2 ]
Uplifting [print_uint] best 2394 combination zp[2]:8 [ print_uint::w#5 print_uint::w#0 print_uint::w#1 print_uint::w#2 ]
Uplifting [memset] best 2394 combination zp[2]:10 [ memset::dst#2 memset::dst#1 ]
Uplifting [print_str] best 2394 combination zp[2]:12 [ print_str::str#5 print_str::str#8 print_str::str#0 ]
Uplifting [print_ulong] best 2394 combination zp[4]:16 [ print_ulong::dw#2 print_ulong::dw#0 ]
Uplifting [print_sint] best 2394 combination zp[2]:20 [ print_sint::w#7 print_sint::w#0 print_sint::w#10 ]
Uplifting [print_slong] best 2394 combination zp[4]:22 [ print_slong::dw#5 print_slong::dw#0 print_slong::dw#3 ]
Uplifting [print_ln] best 2394 combination
Uplifting [print_schar] best 2394 combination
Uplifting [print_cls] best 2394 combination
Uplifting [RADIX] best 2394 combination
Uplifting [main] best 2394 combination
Uplifting [testChar] best 2394 combination
Uplifting [testShort] best 2394 combination
Uplifting [testInt] best 2394 combination
Uplifting [testLong] best 2394 combination
Coalescing zero page register [ zp[2]:8 [ print_uint::w#5 print_uint::w#0 print_uint::w#1 print_uint::w#2 ] ] with [ zp[2]:20 [ print_sint::w#7 print_sint::w#0 print_sint::w#10 ] ] - score: 1
Coalescing zero page register [ zp[4]:16 [ print_ulong::dw#2 print_ulong::dw#0 ] ] with [ zp[4]:22 [ print_slong::dw#5 print_slong::dw#0 print_slong::dw#3 ] ] - score: 1
Coalescing zero page register [ zp[2]:12 [ print_str::str#5 print_str::str#8 print_str::str#0 ] ] with [ zp[2]:10 [ memset::dst#2 memset::dst#1 ] ]
Coalescing zero page register [ zp[2]:8 [ print_uint::w#5 print_uint::w#0 print_uint::w#1 print_uint::w#2 print_sint::w#7 print_sint::w#0 print_sint::w#10 ] ] with [ zp[2]:12 [ print_str::str#5 print_str::str#8 print_str::str#0 memset::dst#2 memset::dst#1 ] ]
Allocated (was zp[2]:3) zp[2]:2 [ print_char_cursor#95 print_char_cursor#152 print_char_cursor#1 print_char_cursor#159 print_char_cursor#163 print_char_cursor#164 print_char_cursor#165 print_char_cursor#25 print_char_cursor#147 print_char_cursor#148 ]
Allocated (was zp[2]:8) zp[2]:4 [ print_uint::w#5 print_uint::w#0 print_uint::w#1 print_uint::w#2 print_sint::w#7 print_sint::w#0 print_sint::w#10 print_str::str#5 print_str::str#8 print_str::str#0 memset::dst#2 memset::dst#1 ]
Allocated (was zp[2]:14) zp[2]:6 [ print_line_cursor#21 print_line_cursor#41 print_line_cursor#0 ]
Allocated (was zp[4]:16) zp[4]:8 [ print_ulong::dw#2 print_ulong::dw#0 print_slong::dw#5 print_slong::dw#0 print_slong::dw#3 ]
ASSEMBLER BEFORE OPTIMIZATION
// File Comments
// Tests the different standard C types
// Upstart
// Commodore 64 PRG executable file
.file [name="c-types.prg", type="prg", segments="Program"]
.segmentdef Program [segments="Basic, Code, Data"]
.segmentdef Basic [start=$0801]
.segmentdef Code [start=$80d]
.segmentdef Data [startAfter="Code"]
.segment Basic
:BasicUpstart(main)
// Global Constants & labels
.label print_screen = $400
.label print_char_cursor = 2
.label print_line_cursor = 6
.segment Code
// main
main: {
// [1] call print_cls
// [11] phi from main to print_cls [phi:main->print_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 testChar
// [14] phi from main::@1 to testChar [phi:main::@1->testChar]
testChar_from___b1:
jsr testChar
// [4] phi from main::@1 to main::@2 [phi:main::@1->main::@2]
__b2_from___b1:
jmp __b2
// main::@2
__b2:
// [5] call testShort
jsr testShort
// [6] phi from main::@2 to main::@3 [phi:main::@2->main::@3]
__b3_from___b2:
jmp __b3
// main::@3
__b3:
// [7] call testInt
jsr testInt
// [8] phi from main::@3 to main::@4 [phi:main::@3->main::@4]
__b4_from___b3:
jmp __b4
// main::@4
__b4:
// [9] call testLong
jsr testLong
jmp __breturn
// main::@return
__breturn:
// [10] return
rts
}
// print_cls
// Clear the screen. Also resets current line/char cursor.
print_cls: {
// [12] call memset
// [74] phi from print_cls to memset [phi:print_cls->memset]
memset_from_print_cls:
jsr memset
jmp __breturn
// print_cls::@return
__breturn:
// [13] return
rts
}
// testChar
testChar: {
.const u = $e
.const n = $e
.label s = -$e
// [15] call print_str
// [80] phi from testChar to print_str [phi:testChar->print_str]
print_str_from_testChar:
// [80] phi print_char_cursor#159 = print_screen#0 [phi:testChar->print_str#0] -- pbuz1=pbuc1
lda #<print_screen
sta.z print_char_cursor
lda #>print_screen
sta.z print_char_cursor+1
// [80] phi print_str::str#8 = testChar::str [phi:testChar->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
sta.z print_str.str+1
jsr print_str
// [16] phi from testChar to testChar::@1 [phi:testChar->testChar::@1]
__b1_from_testChar:
jmp __b1
// testChar::@1
__b1:
// [17] call print_uchar
// [87] phi from testChar::@1 to print_uchar [phi:testChar::@1->print_uchar]
print_uchar_from___b1:
// [87] phi print_char_cursor#152 = print_char_cursor#1 [phi:testChar::@1->print_uchar#0] -- register_copy
// [87] phi print_uchar::b#5 = testChar::u [phi:testChar::@1->print_uchar#1] -- vbuxx=vbuc1
ldx #u
jsr print_uchar
// [18] phi from testChar::@1 to testChar::@2 [phi:testChar::@1->testChar::@2]
__b2_from___b1:
jmp __b2
// testChar::@2
__b2:
// [19] call print_char
// [95] phi from testChar::@2 to print_char [phi:testChar::@2->print_char]
print_char_from___b2:
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:testChar::@2->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = ' ' [phi:testChar::@2->print_char#1] -- vbuaa=vbuc1
lda #' '
jsr print_char
// [20] phi from testChar::@2 to testChar::@3 [phi:testChar::@2->testChar::@3]
__b3_from___b2:
jmp __b3
// testChar::@3
__b3:
// [21] call print_uchar
// [87] phi from testChar::@3 to print_uchar [phi:testChar::@3->print_uchar]
print_uchar_from___b3:
// [87] phi print_char_cursor#152 = print_char_cursor#25 [phi:testChar::@3->print_uchar#0] -- register_copy
// [87] phi print_uchar::b#5 = testChar::n [phi:testChar::@3->print_uchar#1] -- vbuxx=vbuc1
ldx #n
jsr print_uchar
// [22] phi from testChar::@3 to testChar::@4 [phi:testChar::@3->testChar::@4]
__b4_from___b3:
jmp __b4
// testChar::@4
__b4:
// [23] call print_char
// [95] phi from testChar::@4 to print_char [phi:testChar::@4->print_char]
print_char_from___b4:
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:testChar::@4->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = ' ' [phi:testChar::@4->print_char#1] -- vbuaa=vbuc1
lda #' '
jsr print_char
// [24] phi from testChar::@4 to testChar::@5 [phi:testChar::@4->testChar::@5]
__b5_from___b4:
jmp __b5
// testChar::@5
__b5:
// [25] call print_schar
// [99] phi from testChar::@5 to print_schar [phi:testChar::@5->print_schar]
print_schar_from___b5:
jsr print_schar
// [26] phi from testChar::@5 to testChar::@6 [phi:testChar::@5->testChar::@6]
__b6_from___b5:
jmp __b6
// testChar::@6
__b6:
// [27] call print_ln
// [105] phi from testChar::@6 to print_ln [phi:testChar::@6->print_ln]
print_ln_from___b6:
// [105] phi print_line_cursor#41 = print_screen#0 [phi:testChar::@6->print_ln#0] -- pbuz1=pbuc1
lda #<print_screen
sta.z print_line_cursor
lda #>print_screen
sta.z print_line_cursor+1
jsr print_ln
jmp __breturn
// testChar::@return
__breturn:
// [28] return
rts
.segment Data
str: .text "char: "
.byte 0
}
.segment Code
// testShort
testShort: {
.const u = $578
.const n = -$578
.const s = -$578
// [29] print_char_cursor#165 = 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
// [30] call print_str
// [80] phi from testShort to print_str [phi:testShort->print_str]
print_str_from_testShort:
// [80] phi print_char_cursor#159 = print_char_cursor#165 [phi:testShort->print_str#0] -- register_copy
// [80] phi print_str::str#8 = testShort::str [phi:testShort->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
sta.z print_str.str+1
jsr print_str
// [31] phi from testShort to testShort::@1 [phi:testShort->testShort::@1]
__b1_from_testShort:
jmp __b1
// testShort::@1
__b1:
// [32] call print_uint
// [110] phi from testShort::@1 to print_uint [phi:testShort::@1->print_uint]
print_uint_from___b1:
// [110] phi print_char_cursor#147 = print_char_cursor#1 [phi:testShort::@1->print_uint#0] -- register_copy
// [110] phi print_uint::w#5 = testShort::u [phi:testShort::@1->print_uint#1] -- vwuz1=vwuc1
lda #<u
sta.z print_uint.w
lda #>u
sta.z print_uint.w+1
jsr print_uint
// [33] phi from testShort::@1 to testShort::@2 [phi:testShort::@1->testShort::@2]
__b2_from___b1:
jmp __b2
// testShort::@2
__b2:
// [34] call print_char
// [95] phi from testShort::@2 to print_char [phi:testShort::@2->print_char]
print_char_from___b2:
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:testShort::@2->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = ' ' [phi:testShort::@2->print_char#1] -- vbuaa=vbuc1
lda #' '
jsr print_char
// [35] phi from testShort::@2 to testShort::@3 [phi:testShort::@2->testShort::@3]
__b3_from___b2:
jmp __b3
// testShort::@3
__b3:
// [36] call print_sint
// [116] phi from testShort::@3 to print_sint [phi:testShort::@3->print_sint]
print_sint_from___b3:
// [116] phi print_sint::w#10 = testShort::n [phi:testShort::@3->print_sint#0] -- vwsz1=vwsc1
lda #<n
sta.z print_sint.w
lda #>n
sta.z print_sint.w+1
jsr print_sint
// [37] phi from testShort::@3 to testShort::@4 [phi:testShort::@3->testShort::@4]
__b4_from___b3:
jmp __b4
// testShort::@4
__b4:
// [38] call print_char
// [95] phi from testShort::@4 to print_char [phi:testShort::@4->print_char]
print_char_from___b4:
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:testShort::@4->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = ' ' [phi:testShort::@4->print_char#1] -- vbuaa=vbuc1
lda #' '
jsr print_char
// [39] phi from testShort::@4 to testShort::@5 [phi:testShort::@4->testShort::@5]
__b5_from___b4:
jmp __b5
// testShort::@5
__b5:
// [40] call print_sint
// [116] phi from testShort::@5 to print_sint [phi:testShort::@5->print_sint]
print_sint_from___b5:
// [116] phi print_sint::w#10 = testShort::s [phi:testShort::@5->print_sint#0] -- vwsz1=vwsc1
lda #<s
sta.z print_sint.w
lda #>s
sta.z print_sint.w+1
jsr print_sint
// [41] phi from testShort::@5 to testShort::@6 [phi:testShort::@5->testShort::@6]
__b6_from___b5:
jmp __b6
// testShort::@6
__b6:
// [42] call print_ln
// [105] phi from testShort::@6 to print_ln [phi:testShort::@6->print_ln]
print_ln_from___b6:
// [105] phi print_line_cursor#41 = print_line_cursor#0 [phi:testShort::@6->print_ln#0] -- register_copy
jsr print_ln
jmp __breturn
// testShort::@return
__breturn:
// [43] return
rts
.segment Data
str: .text "short: "
.byte 0
}
.segment Code
// testInt
testInt: {
.const u = $578
.const n = -$578
.const s = -$578
// [44] print_char_cursor#163 = 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
// [45] call print_str
// [80] phi from testInt to print_str [phi:testInt->print_str]
print_str_from_testInt:
// [80] phi print_char_cursor#159 = print_char_cursor#163 [phi:testInt->print_str#0] -- register_copy
// [80] phi print_str::str#8 = testInt::str [phi:testInt->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
sta.z print_str.str+1
jsr print_str
// [46] phi from testInt to testInt::@1 [phi:testInt->testInt::@1]
__b1_from_testInt:
jmp __b1
// testInt::@1
__b1:
// [47] call print_uint
// [110] phi from testInt::@1 to print_uint [phi:testInt::@1->print_uint]
print_uint_from___b1:
// [110] phi print_char_cursor#147 = print_char_cursor#1 [phi:testInt::@1->print_uint#0] -- register_copy
// [110] phi print_uint::w#5 = testInt::u [phi:testInt::@1->print_uint#1] -- vwuz1=vwuc1
lda #<u
sta.z print_uint.w
lda #>u
sta.z print_uint.w+1
jsr print_uint
// [48] phi from testInt::@1 to testInt::@2 [phi:testInt::@1->testInt::@2]
__b2_from___b1:
jmp __b2
// testInt::@2
__b2:
// [49] call print_char
// [95] phi from testInt::@2 to print_char [phi:testInt::@2->print_char]
print_char_from___b2:
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:testInt::@2->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = ' ' [phi:testInt::@2->print_char#1] -- vbuaa=vbuc1
lda #' '
jsr print_char
// [50] phi from testInt::@2 to testInt::@3 [phi:testInt::@2->testInt::@3]
__b3_from___b2:
jmp __b3
// testInt::@3
__b3:
// [51] call print_sint
// [116] phi from testInt::@3 to print_sint [phi:testInt::@3->print_sint]
print_sint_from___b3:
// [116] phi print_sint::w#10 = testInt::n [phi:testInt::@3->print_sint#0] -- vwsz1=vwsc1
lda #<n
sta.z print_sint.w
lda #>n
sta.z print_sint.w+1
jsr print_sint
// [52] phi from testInt::@3 to testInt::@4 [phi:testInt::@3->testInt::@4]
__b4_from___b3:
jmp __b4
// testInt::@4
__b4:
// [53] call print_char
// [95] phi from testInt::@4 to print_char [phi:testInt::@4->print_char]
print_char_from___b4:
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:testInt::@4->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = ' ' [phi:testInt::@4->print_char#1] -- vbuaa=vbuc1
lda #' '
jsr print_char
// [54] phi from testInt::@4 to testInt::@5 [phi:testInt::@4->testInt::@5]
__b5_from___b4:
jmp __b5
// testInt::@5
__b5:
// [55] call print_sint
// [116] phi from testInt::@5 to print_sint [phi:testInt::@5->print_sint]
print_sint_from___b5:
// [116] phi print_sint::w#10 = testInt::s [phi:testInt::@5->print_sint#0] -- vwsz1=vwsc1
lda #<s
sta.z print_sint.w
lda #>s
sta.z print_sint.w+1
jsr print_sint
// [56] phi from testInt::@5 to testInt::@6 [phi:testInt::@5->testInt::@6]
__b6_from___b5:
jmp __b6
// testInt::@6
__b6:
// [57] call print_ln
// [105] phi from testInt::@6 to print_ln [phi:testInt::@6->print_ln]
print_ln_from___b6:
// [105] phi print_line_cursor#41 = print_line_cursor#0 [phi:testInt::@6->print_ln#0] -- register_copy
jsr print_ln
jmp __breturn
// testInt::@return
__breturn:
// [58] return
rts
.segment Data
str: .text "int: "
.byte 0
}
.segment Code
// testLong
testLong: {
.const u = $222e0
.const n = -$222e0
.const s = -$222e0
// [59] print_char_cursor#164 = 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
// [60] call print_str
// [80] phi from testLong to print_str [phi:testLong->print_str]
print_str_from_testLong:
// [80] phi print_char_cursor#159 = print_char_cursor#164 [phi:testLong->print_str#0] -- register_copy
// [80] phi print_str::str#8 = testLong::str [phi:testLong->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
sta.z print_str.str+1
jsr print_str
// [61] phi from testLong to testLong::@1 [phi:testLong->testLong::@1]
__b1_from_testLong:
jmp __b1
// testLong::@1
__b1:
// [62] call print_ulong
// [127] phi from testLong::@1 to print_ulong [phi:testLong::@1->print_ulong]
print_ulong_from___b1:
// [127] phi print_char_cursor#148 = print_char_cursor#1 [phi:testLong::@1->print_ulong#0] -- register_copy
// [127] phi print_ulong::dw#2 = testLong::u [phi:testLong::@1->print_ulong#1] -- vduz1=vduc1
lda #<u
sta.z print_ulong.dw
lda #>u
sta.z print_ulong.dw+1
lda #<u>>$10
sta.z print_ulong.dw+2
lda #>u>>$10
sta.z print_ulong.dw+3
jsr print_ulong
// [63] phi from testLong::@1 to testLong::@2 [phi:testLong::@1->testLong::@2]
__b2_from___b1:
jmp __b2
// testLong::@2
__b2:
// [64] call print_char
// [95] phi from testLong::@2 to print_char [phi:testLong::@2->print_char]
print_char_from___b2:
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:testLong::@2->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = ' ' [phi:testLong::@2->print_char#1] -- vbuaa=vbuc1
lda #' '
jsr print_char
// [65] phi from testLong::@2 to testLong::@3 [phi:testLong::@2->testLong::@3]
__b3_from___b2:
jmp __b3
// testLong::@3
__b3:
// [66] call print_slong
// [133] phi from testLong::@3 to print_slong [phi:testLong::@3->print_slong]
print_slong_from___b3:
// [133] phi print_slong::dw#3 = testLong::n [phi:testLong::@3->print_slong#0] -- vdsz1=vdsc1
lda #<n
sta.z print_slong.dw
lda #>n
sta.z print_slong.dw+1
lda #<n>>$10
sta.z print_slong.dw+2
lda #>n>>$10
sta.z print_slong.dw+3
jsr print_slong
// [67] phi from testLong::@3 to testLong::@4 [phi:testLong::@3->testLong::@4]
__b4_from___b3:
jmp __b4
// testLong::@4
__b4:
// [68] call print_char
// [95] phi from testLong::@4 to print_char [phi:testLong::@4->print_char]
print_char_from___b4:
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:testLong::@4->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = ' ' [phi:testLong::@4->print_char#1] -- vbuaa=vbuc1
lda #' '
jsr print_char
// [69] phi from testLong::@4 to testLong::@5 [phi:testLong::@4->testLong::@5]
__b5_from___b4:
jmp __b5
// testLong::@5
__b5:
// [70] call print_slong
// [133] phi from testLong::@5 to print_slong [phi:testLong::@5->print_slong]
print_slong_from___b5:
// [133] phi print_slong::dw#3 = testLong::s [phi:testLong::@5->print_slong#0] -- vdsz1=vdsc1
lda #<s
sta.z print_slong.dw
lda #>s
sta.z print_slong.dw+1
lda #<s>>$10
sta.z print_slong.dw+2
lda #>s>>$10
sta.z print_slong.dw+3
jsr print_slong
// [71] phi from testLong::@5 to testLong::@6 [phi:testLong::@5->testLong::@6]
__b6_from___b5:
jmp __b6
// testLong::@6
__b6:
// [72] call print_ln
// [105] phi from testLong::@6 to print_ln [phi:testLong::@6->print_ln]
print_ln_from___b6:
// [105] phi print_line_cursor#41 = print_line_cursor#0 [phi:testLong::@6->print_ln#0] -- register_copy
jsr print_ln
jmp __breturn
// testLong::@return
__breturn:
// [73] return
rts
.segment Data
str: .text "long: "
.byte 0
}
.segment Code
// 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 = 4
// [75] phi from memset to memset::@1 [phi:memset->memset::@1]
__b1_from_memset:
// [75] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1
lda #<str
sta.z dst
lda #>str
sta.z dst+1
jmp __b1
// memset::@1
__b1:
// [76] 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 #<end
bne __b2
jmp __breturn
// memset::@return
__breturn:
// [77] return
rts
// memset::@2
__b2:
// [78] *memset::dst#2 = memset::c#0 -- _deref_pbuz1=vbuc1
lda #c
ldy #0
sta (dst),y
// [79] memset::dst#1 = ++ memset::dst#2 -- pbuz1=_inc_pbuz1
inc.z dst
bne !+
inc.z dst+1
!:
// [75] phi from memset::@2 to memset::@1 [phi:memset::@2->memset::@1]
__b1_from___b2:
// [75] phi memset::dst#2 = memset::dst#1 [phi:memset::@2->memset::@1#0] -- register_copy
jmp __b1
}
// print_str
// Print a zero-terminated string
// void print_str(__zp(4) char *str)
print_str: {
.label str = 4
// [81] phi from print_str print_str::@3 to print_str::@1 [phi:print_str/print_str::@3->print_str::@1]
__b1_from_print_str:
__b1_from___b3:
// [81] phi print_char_cursor#1 = print_char_cursor#159 [phi:print_str/print_str::@3->print_str::@1#0] -- register_copy
// [81] phi print_str::str#5 = print_str::str#8 [phi:print_str/print_str::@3->print_str::@1#1] -- register_copy
jmp __b1
// print_str::@1
__b1:
// [82] if(0!=*print_str::str#5) goto print_str::@2 -- 0_neq__deref_pbuz1_then_la1
ldy #0
lda (str),y
cmp #0
bne __b2
jmp __breturn
// print_str::@return
__breturn:
// [83] return
rts
// print_str::@2
__b2:
// [84] print_char::ch#0 = *print_str::str#5 -- vbuaa=_deref_pbuz1
ldy #0
lda (str),y
// [85] call print_char
// [95] phi from print_str::@2 to print_char [phi:print_str::@2->print_char]
print_char_from___b2:
// [95] phi print_char_cursor#95 = print_char_cursor#1 [phi:print_str::@2->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = print_char::ch#0 [phi:print_str::@2->print_char#1] -- register_copy
jsr print_char
jmp __b3
// print_str::@3
__b3:
// [86] print_str::str#0 = ++ print_str::str#5 -- pbuz1=_inc_pbuz1
inc.z str
bne !+
inc.z str+1
!:
jmp __b1_from___b3
}
// print_uchar
// Print a char as HEX
// void print_uchar(__register(X) char b)
print_uchar: {
// [88] print_uchar::$0 = print_uchar::b#5 >> 4 -- vbuaa=vbuxx_ror_4
txa
lsr
lsr
lsr
lsr
// [89] print_char::ch#7 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa
tay
lda print_hextab,y
// [90] call print_char
// Table of hexadecimal digits
// [95] phi from print_uchar to print_char [phi:print_uchar->print_char]
print_char_from_print_uchar:
// [95] phi print_char_cursor#95 = print_char_cursor#152 [phi:print_uchar->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = print_char::ch#7 [phi:print_uchar->print_char#1] -- register_copy
jsr print_char
jmp __b1
// print_uchar::@1
__b1:
// [91] print_uchar::$2 = print_uchar::b#5 & $f -- vbuxx=vbuxx_band_vbuc1
lda #$f
axs #0
// [92] print_char::ch#8 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx
lda print_hextab,x
// [93] call print_char
// [95] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char]
print_char_from___b1:
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:print_uchar::@1->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = print_char::ch#8 [phi:print_uchar::@1->print_char#1] -- register_copy
jsr print_char
jmp __breturn
// print_uchar::@return
__breturn:
// [94] return
rts
}
// print_char
// Print a single char
// void print_char(__register(A) char ch)
print_char: {
// [96] *print_char_cursor#95 = print_char::ch#17 -- _deref_pbuz1=vbuaa
ldy #0
sta (print_char_cursor),y
// [97] print_char_cursor#25 = ++ print_char_cursor#95 -- pbuz1=_inc_pbuz1
inc.z print_char_cursor
bne !+
inc.z print_char_cursor+1
!:
jmp __breturn
// print_char::@return
__breturn:
// [98] return
rts
}
// print_schar
// Print a signed char as HEX
// void print_schar(signed char b)
print_schar: {
.const b = -testChar.s
// [100] phi from print_schar to print_schar::@1 [phi:print_schar->print_schar::@1]
__b1_from_print_schar:
jmp __b1
// print_schar::@1
__b1:
// [101] call print_char
// [95] phi from print_schar::@1 to print_char [phi:print_schar::@1->print_char]
print_char_from___b1:
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:print_schar::@1->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = '-' [phi:print_schar::@1->print_char#1] -- vbuaa=vbuc1
lda #'-'
jsr print_char
// [102] phi from print_schar::@1 to print_schar::@2 [phi:print_schar::@1->print_schar::@2]
__b2_from___b1:
jmp __b2
// print_schar::@2
__b2:
// [103] call print_uchar
// [87] phi from print_schar::@2 to print_uchar [phi:print_schar::@2->print_uchar]
print_uchar_from___b2:
// [87] phi print_char_cursor#152 = print_char_cursor#25 [phi:print_schar::@2->print_uchar#0] -- register_copy
// [87] phi print_uchar::b#5 = (char)print_schar::b#0 [phi:print_schar::@2->print_uchar#1] -- vbuxx=vbuc1
ldx #b
jsr print_uchar
jmp __breturn
// print_schar::@return
__breturn:
// [104] return
rts
}
// print_ln
// Print a newline
print_ln: {
// [106] 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:
// [106] phi print_line_cursor#21 = print_line_cursor#41 [phi:print_ln/print_ln::@1->print_ln::@1#0] -- register_copy
jmp __b1
// print_ln::@1
__b1:
// [107] print_line_cursor#0 = print_line_cursor#21 + $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
!:
// [108] if(print_line_cursor#0<print_char_cursor#25) goto print_ln::@1 -- pbuz1_lt_pbuz2_then_la1
lda.z print_line_cursor+1
cmp.z print_char_cursor+1
bcc __b1_from___b1
bne !+
lda.z print_line_cursor
cmp.z print_char_cursor
bcc __b1_from___b1
!:
jmp __breturn
// print_ln::@return
__breturn:
// [109] return
rts
}
// print_uint
// Print a unsigned int as HEX
// void print_uint(__zp(4) unsigned int w)
print_uint: {
.label w = 4
// [111] print_uchar::b#1 = byte1 print_uint::w#5 -- vbuxx=_byte1_vwuz1
ldx.z w+1
// [112] call print_uchar
// [87] phi from print_uint to print_uchar [phi:print_uint->print_uchar]
print_uchar_from_print_uint:
// [87] phi print_char_cursor#152 = print_char_cursor#147 [phi:print_uint->print_uchar#0] -- register_copy
// [87] phi print_uchar::b#5 = print_uchar::b#1 [phi:print_uint->print_uchar#1] -- register_copy
jsr print_uchar
jmp __b1
// print_uint::@1
__b1:
// [113] print_uchar::b#2 = byte0 print_uint::w#5 -- vbuxx=_byte0_vwuz1
ldx.z w
// [114] call print_uchar
// [87] phi from print_uint::@1 to print_uchar [phi:print_uint::@1->print_uchar]
print_uchar_from___b1:
// [87] phi print_char_cursor#152 = print_char_cursor#25 [phi:print_uint::@1->print_uchar#0] -- register_copy
// [87] phi print_uchar::b#5 = print_uchar::b#2 [phi:print_uint::@1->print_uchar#1] -- register_copy
jsr print_uchar
jmp __breturn
// print_uint::@return
__breturn:
// [115] return
rts
}
// print_sint
// Print a signed int as HEX
// void print_sint(__zp(4) int w)
print_sint: {
.label w = 4
// [117] if(print_sint::w#10<0) goto print_sint::@1 -- vwsz1_lt_0_then_la1
lda.z w+1
bmi __b1_from_print_sint
// [118] phi from print_sint to print_sint::@3 [phi:print_sint->print_sint::@3]
__b3_from_print_sint:
jmp __b3
// print_sint::@3
__b3:
// [119] call print_char
// [95] phi from print_sint::@3 to print_char [phi:print_sint::@3->print_char]
print_char_from___b3:
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:print_sint::@3->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = ' ' [phi:print_sint::@3->print_char#1] -- vbuaa=vbuc1
lda #' '
jsr print_char
// [120] phi from print_sint::@3 print_sint::@4 to print_sint::@2 [phi:print_sint::@3/print_sint::@4->print_sint::@2]
__b2_from___b3:
__b2_from___b4:
// [120] phi print_sint::w#7 = print_sint::w#10 [phi:print_sint::@3/print_sint::@4->print_sint::@2#0] -- register_copy
jmp __b2
// print_sint::@2
__b2:
// [121] print_uint::w#0 = (unsigned int)print_sint::w#7
// [122] call print_uint
// [110] phi from print_sint::@2 to print_uint [phi:print_sint::@2->print_uint]
print_uint_from___b2:
// [110] phi print_char_cursor#147 = print_char_cursor#25 [phi:print_sint::@2->print_uint#0] -- register_copy
// [110] phi print_uint::w#5 = print_uint::w#0 [phi:print_sint::@2->print_uint#1] -- register_copy
jsr print_uint
jmp __breturn
// print_sint::@return
__breturn:
// [123] return
rts
// [124] phi from print_sint to print_sint::@1 [phi:print_sint->print_sint::@1]
__b1_from_print_sint:
jmp __b1
// print_sint::@1
__b1:
// [125] call print_char
// [95] phi from print_sint::@1 to print_char [phi:print_sint::@1->print_char]
print_char_from___b1:
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:print_sint::@1->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = '-' [phi:print_sint::@1->print_char#1] -- vbuaa=vbuc1
lda #'-'
jsr print_char
jmp __b4
// print_sint::@4
__b4:
// [126] print_sint::w#0 = - print_sint::w#10 -- vwsz1=_neg_vwsz1
lda #0
sec
sbc.z w
sta.z w
lda #0
sbc.z w+1
sta.z w+1
jmp __b2_from___b4
}
// print_ulong
// Print a unsigned long as HEX
// void print_ulong(__zp(8) unsigned long dw)
print_ulong: {
.label dw = 8
// [128] print_uint::w#1 = word1 print_ulong::dw#2 -- vwuz1=_word1_vduz2
lda.z dw+2
sta.z print_uint.w
lda.z dw+3
sta.z print_uint.w+1
// [129] call print_uint
// [110] phi from print_ulong to print_uint [phi:print_ulong->print_uint]
print_uint_from_print_ulong:
// [110] phi print_char_cursor#147 = print_char_cursor#148 [phi:print_ulong->print_uint#0] -- register_copy
// [110] phi print_uint::w#5 = print_uint::w#1 [phi:print_ulong->print_uint#1] -- register_copy
jsr print_uint
jmp __b1
// print_ulong::@1
__b1:
// [130] print_uint::w#2 = word0 print_ulong::dw#2 -- vwuz1=_word0_vduz2
lda.z dw
sta.z print_uint.w
lda.z dw+1
sta.z print_uint.w+1
// [131] call print_uint
// [110] phi from print_ulong::@1 to print_uint [phi:print_ulong::@1->print_uint]
print_uint_from___b1:
// [110] phi print_char_cursor#147 = print_char_cursor#25 [phi:print_ulong::@1->print_uint#0] -- register_copy
// [110] phi print_uint::w#5 = print_uint::w#2 [phi:print_ulong::@1->print_uint#1] -- register_copy
jsr print_uint
jmp __breturn
// print_ulong::@return
__breturn:
// [132] return
rts
}
// print_slong
// Print a signed long as HEX
// void print_slong(__zp(8) long dw)
print_slong: {
.label dw = 8
// [134] if(print_slong::dw#3<0) goto print_slong::@1 -- vdsz1_lt_0_then_la1
lda.z dw+3
bmi __b1_from_print_slong
// [135] phi from print_slong to print_slong::@3 [phi:print_slong->print_slong::@3]
__b3_from_print_slong:
jmp __b3
// print_slong::@3
__b3:
// [136] call print_char
// [95] phi from print_slong::@3 to print_char [phi:print_slong::@3->print_char]
print_char_from___b3:
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:print_slong::@3->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = ' ' [phi:print_slong::@3->print_char#1] -- vbuaa=vbuc1
lda #' '
jsr print_char
// [137] phi from print_slong::@3 print_slong::@4 to print_slong::@2 [phi:print_slong::@3/print_slong::@4->print_slong::@2]
__b2_from___b3:
__b2_from___b4:
// [137] phi print_slong::dw#5 = print_slong::dw#3 [phi:print_slong::@3/print_slong::@4->print_slong::@2#0] -- register_copy
jmp __b2
// print_slong::@2
__b2:
// [138] print_ulong::dw#0 = (unsigned long)print_slong::dw#5
// [139] call print_ulong
// [127] phi from print_slong::@2 to print_ulong [phi:print_slong::@2->print_ulong]
print_ulong_from___b2:
// [127] phi print_char_cursor#148 = print_char_cursor#25 [phi:print_slong::@2->print_ulong#0] -- register_copy
// [127] phi print_ulong::dw#2 = print_ulong::dw#0 [phi:print_slong::@2->print_ulong#1] -- register_copy
jsr print_ulong
jmp __breturn
// print_slong::@return
__breturn:
// [140] return
rts
// [141] phi from print_slong to print_slong::@1 [phi:print_slong->print_slong::@1]
__b1_from_print_slong:
jmp __b1
// print_slong::@1
__b1:
// [142] call print_char
// [95] phi from print_slong::@1 to print_char [phi:print_slong::@1->print_char]
print_char_from___b1:
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:print_slong::@1->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = '-' [phi:print_slong::@1->print_char#1] -- vbuaa=vbuc1
lda #'-'
jsr print_char
jmp __b4
// print_slong::@4
__b4:
// [143] print_slong::dw#0 = - print_slong::dw#3 -- vdsz1=_neg_vdsz1
sec
lda.z dw
eor #$ff
adc #0
sta.z dw
lda.z dw+1
eor #$ff
adc #0
sta.z dw+1
lda.z dw+2
eor #$ff
adc #0
sta.z dw+2
lda.z dw+3
eor #$ff
adc #0
sta.z dw+3
jmp __b2_from___b4
}
// File Data
.segment Data
print_hextab: .text "0123456789abcdef"
ASSEMBLER OPTIMIZATIONS
Removing instruction jmp __b1
Removing instruction jmp __b2
Removing instruction jmp __b3
Removing instruction jmp __b4
Removing instruction jmp __breturn
Removing instruction jmp __breturn
Removing instruction jmp __b1
Removing instruction jmp __b2
Removing instruction jmp __b3
Removing instruction jmp __b4
Removing instruction jmp __b5
Removing instruction jmp __b6
Removing instruction jmp __breturn
Removing instruction jmp __b1
Removing instruction jmp __b2
Removing instruction jmp __b3
Removing instruction jmp __b4
Removing instruction jmp __b5
Removing instruction jmp __b6
Removing instruction jmp __breturn
Removing instruction jmp __b1
Removing instruction jmp __b2
Removing instruction jmp __b3
Removing instruction jmp __b4
Removing instruction jmp __b5
Removing instruction jmp __b6
Removing instruction jmp __breturn
Removing instruction jmp __b1
Removing instruction jmp __b2
Removing instruction jmp __b3
Removing instruction jmp __b4
Removing instruction jmp __b5
Removing instruction jmp __b6
Removing instruction jmp __breturn
Removing instruction jmp __b1
Removing instruction jmp __breturn
Removing instruction jmp __b1
Removing instruction jmp __breturn
Removing instruction jmp __b3
Removing instruction jmp __b1
Removing instruction jmp __breturn
Removing instruction jmp __breturn
Removing instruction jmp __b1
Removing instruction jmp __b2
Removing instruction jmp __breturn
Removing instruction jmp __b1
Removing instruction jmp __breturn
Removing instruction jmp __b1
Removing instruction jmp __breturn
Removing instruction jmp __b3
Removing instruction jmp __b2
Removing instruction jmp __breturn
Removing instruction jmp __b1
Removing instruction jmp __b4
Removing instruction jmp __b1
Removing instruction jmp __breturn
Removing instruction jmp __b3
Removing instruction jmp __b2
Removing instruction jmp __breturn
Removing instruction jmp __b1
Removing instruction jmp __b4
Succesful ASM optimization Pass5NextJumpElimination
Replacing label __b1_from___b3 with __b1
Replacing label __b1_from___b1 with __b1
Replacing label __b1_from___b1 with __b1
Replacing label __b1_from_print_sint with __b1
Replacing label __b2_from___b4 with __b2
Replacing label __b1_from_print_slong with __b1
Replacing label __b2_from___b4 with __b2
Removing instruction __b1_from_main:
Removing instruction testChar_from___b1:
Removing instruction __b2_from___b1:
Removing instruction __b3_from___b2:
Removing instruction __b4_from___b3:
Removing instruction __b1_from_testChar:
Removing instruction print_uchar_from___b1:
Removing instruction __b2_from___b1:
Removing instruction print_char_from___b2:
Removing instruction __b3_from___b2:
Removing instruction print_uchar_from___b3:
Removing instruction __b4_from___b3:
Removing instruction print_char_from___b4:
Removing instruction __b5_from___b4:
Removing instruction print_schar_from___b5:
Removing instruction __b6_from___b5:
Removing instruction print_ln_from___b6:
Removing instruction __b1_from_testShort:
Removing instruction print_uint_from___b1:
Removing instruction __b2_from___b1:
Removing instruction print_char_from___b2:
Removing instruction __b3_from___b2:
Removing instruction print_sint_from___b3:
Removing instruction __b4_from___b3:
Removing instruction print_char_from___b4:
Removing instruction __b5_from___b4:
Removing instruction print_sint_from___b5:
Removing instruction __b6_from___b5:
Removing instruction print_ln_from___b6:
Removing instruction __b1_from_testInt:
Removing instruction print_uint_from___b1:
Removing instruction __b2_from___b1:
Removing instruction print_char_from___b2:
Removing instruction __b3_from___b2:
Removing instruction print_sint_from___b3:
Removing instruction __b4_from___b3:
Removing instruction print_char_from___b4:
Removing instruction __b5_from___b4:
Removing instruction print_sint_from___b5:
Removing instruction __b6_from___b5:
Removing instruction print_ln_from___b6:
Removing instruction __b1_from_testLong:
Removing instruction print_ulong_from___b1:
Removing instruction __b2_from___b1:
Removing instruction print_char_from___b2:
Removing instruction __b3_from___b2:
Removing instruction print_slong_from___b3:
Removing instruction __b4_from___b3:
Removing instruction print_char_from___b4:
Removing instruction __b5_from___b4:
Removing instruction print_slong_from___b5:
Removing instruction __b6_from___b5:
Removing instruction print_ln_from___b6:
Removing instruction __b1_from_print_str:
Removing instruction __b1_from___b3:
Removing instruction __b1_from_print_schar:
Removing instruction print_char_from___b1:
Removing instruction __b2_from___b1:
Removing instruction print_uchar_from___b2:
Removing instruction __b1_from_print_ln:
Removing instruction __b1_from___b1:
Removing instruction __b3_from_print_sint:
Removing instruction print_char_from___b3:
Removing instruction __b2_from___b3:
Removing instruction __b2_from___b4:
Removing instruction print_uint_from___b2:
Removing instruction __b1_from_print_sint:
Removing instruction print_char_from___b1:
Removing instruction __b3_from_print_slong:
Removing instruction print_char_from___b3:
Removing instruction __b2_from___b3:
Removing instruction __b2_from___b4:
Removing instruction print_ulong_from___b2:
Removing instruction __b1_from_print_slong:
Removing instruction print_char_from___b1:
Succesful ASM optimization Pass5RedundantLabelElimination
Removing instruction print_cls_from_main:
Removing instruction __b1:
Removing instruction __b2:
Removing instruction __b3:
Removing instruction __b4:
Removing instruction __breturn:
Removing instruction memset_from_print_cls:
Removing instruction __breturn:
Removing instruction print_str_from_testChar:
Removing instruction __b1:
Removing instruction __b2:
Removing instruction __b3:
Removing instruction __b4:
Removing instruction __b5:
Removing instruction __b6:
Removing instruction __breturn:
Removing instruction print_str_from_testShort:
Removing instruction __b1:
Removing instruction __b2:
Removing instruction __b3:
Removing instruction __b4:
Removing instruction __b5:
Removing instruction __b6:
Removing instruction __breturn:
Removing instruction print_str_from_testInt:
Removing instruction __b1:
Removing instruction __b2:
Removing instruction __b3:
Removing instruction __b4:
Removing instruction __b5:
Removing instruction __b6:
Removing instruction __breturn:
Removing instruction print_str_from_testLong:
Removing instruction __b1:
Removing instruction __b2:
Removing instruction __b3:
Removing instruction __b4:
Removing instruction __b5:
Removing instruction __b6:
Removing instruction __breturn:
Removing instruction __b1_from_memset:
Removing instruction __breturn:
Removing instruction __b1_from___b2:
Removing instruction __breturn:
Removing instruction print_char_from___b2:
Removing instruction __b3:
Removing instruction print_char_from_print_uchar:
Removing instruction __b1:
Removing instruction print_char_from___b1:
Removing instruction __breturn:
Removing instruction __breturn:
Removing instruction __b1:
Removing instruction __b2:
Removing instruction __breturn:
Removing instruction __breturn:
Removing instruction print_uchar_from_print_uint:
Removing instruction __b1:
Removing instruction print_uchar_from___b1:
Removing instruction __breturn:
Removing instruction __b3:
Removing instruction __breturn:
Removing instruction __b4:
Removing instruction print_uint_from_print_ulong:
Removing instruction __b1:
Removing instruction print_uint_from___b1:
Removing instruction __breturn:
Removing instruction __b3:
Removing instruction __breturn:
Removing instruction __b4:
Succesful ASM optimization Pass5UnusedLabelElimination
FINAL SYMBOL TABLE
__constant char RADIX::BINARY = 2
__constant char RADIX::DECIMAL = $a
__constant char RADIX::HEXADECIMAL = $10
__constant char RADIX::OCTAL = 8
void main()
void * memset(void *str , char c , unsigned int num)
char memset::c
__constant char memset::c#0 = ' ' // c
char *memset::dst
char *memset::dst#1 // dst zp[2]:4 2002.0
char *memset::dst#2 // dst zp[2]:4 1334.6666666666667
char *memset::end
__constant char *memset::end#0 = (char *)memset::str#0+memset::num#0 // end
unsigned int memset::num
__constant unsigned int memset::num#0 = $3e8 // num
void *memset::return
void *memset::str
__constant void *memset::str#0 = (void *)print_screen#0 // str
void print_char(char ch)
char print_char::ch
char print_char::ch#0 // reg byte a 2002.0
char print_char::ch#17 // reg byte a 1201004.0
char print_char::ch#7 // reg byte a 200002.0
char print_char::ch#8 // reg byte a 200002.0
char *print_char_cursor
char *print_char_cursor#1 // print_char_cursor zp[2]:2 178.91666666666666
char *print_char_cursor#147 // print_char_cursor zp[2]:2 6063.0
char *print_char_cursor#148 // print_char_cursor zp[2]:2 556.5
char *print_char_cursor#152 // print_char_cursor zp[2]:2 40042.0
char *print_char_cursor#159 // print_char_cursor zp[2]:2 134.0
char *print_char_cursor#163 // print_char_cursor zp[2]:2 22.0
char *print_char_cursor#164 // print_char_cursor zp[2]:2 22.0
char *print_char_cursor#165 // print_char_cursor zp[2]:2 22.0
char *print_char_cursor#25 // print_char_cursor zp[2]:2 12515.876404494384
char *print_char_cursor#95 // print_char_cursor zp[2]:2 1100799.0
void print_cls()
__constant const char print_hextab[] = "0123456789abcdef"z
char *print_line_cursor
char *print_line_cursor#0 // print_line_cursor zp[2]:6 56.833333333333336
char *print_line_cursor#21 // print_line_cursor zp[2]:6 2103.0
char *print_line_cursor#41 // print_line_cursor zp[2]:6 134.0
void print_ln()
void print_schar(signed char b)
signed char print_schar::b
__constant signed char print_schar::b#0 = -testChar::s // b
char *print_screen
__constant char *print_screen#0 = (char *) 1024 // print_screen
void print_sint(int w)
int print_sint::w
int print_sint::w#0 // w zp[2]:4 202.0
int print_sint::w#10 // w zp[2]:4 50.5
int print_sint::w#7 // w zp[2]:4 202.0
void print_slong(long dw)
long print_slong::dw
long print_slong::dw#0 // dw zp[4]:8 202.0
long print_slong::dw#3 // dw zp[4]:8 50.5
long print_slong::dw#5 // dw zp[4]:8 202.0
void print_str(char *str)
char *print_str::str
char *print_str::str#0 // str zp[2]:4 2002.0
char *print_str::str#5 // str zp[2]:4 1026.25
char *print_str::str#8 // str zp[2]:4 101.0
void print_uchar(char b)
char print_uchar::$0 // reg byte a 200002.0
char print_uchar::$2 // reg byte x 200002.0
char print_uchar::b
char print_uchar::b#1 // reg byte x 20002.0
char print_uchar::b#2 // reg byte x 20002.0
char print_uchar::b#5 // reg byte x 55001.0
void print_uint(unsigned int w)
unsigned int print_uint::w
unsigned int print_uint::w#0 // w zp[2]:4 202.0
unsigned int print_uint::w#1 // w zp[2]:4 2002.0
unsigned int print_uint::w#2 // w zp[2]:4 2002.0
unsigned int print_uint::w#5 // w zp[2]:4 7368.333333333333
void print_ulong(unsigned long dw)
unsigned long print_ulong::dw
unsigned long print_ulong::dw#0 // dw zp[4]:8 202.0
unsigned long print_ulong::dw#2 // dw zp[4]:8 701.0
void testChar()
__constant char testChar::n = $e
__constant signed char testChar::s = -$e
__constant char testChar::str[7] = "char: "
__constant char testChar::u = $e
void testInt()
__constant int testInt::n = -$578
__constant int testInt::s = -$578
__constant char testInt::str[6] = "int: "
__constant unsigned int testInt::u = $578
void testLong()
__constant long testLong::n = -$222e0
__constant long testLong::s = -$222e0
__constant char testLong::str[7] = "long: "
__constant unsigned long testLong::u = $222e0
void testShort()
__constant int testShort::n = -$578
__constant int testShort::s = -$578
__constant char testShort::str[8] = "short: "
__constant unsigned int testShort::u = $578
reg byte x [ print_uchar::b#5 print_uchar::b#1 print_uchar::b#2 ]
reg byte a [ print_char::ch#17 print_char::ch#0 print_char::ch#7 print_char::ch#8 ]
zp[2]:2 [ print_char_cursor#95 print_char_cursor#152 print_char_cursor#1 print_char_cursor#159 print_char_cursor#163 print_char_cursor#164 print_char_cursor#165 print_char_cursor#25 print_char_cursor#147 print_char_cursor#148 ]
zp[2]:6 [ print_line_cursor#21 print_line_cursor#41 print_line_cursor#0 ]
zp[2]:4 [ print_uint::w#5 print_uint::w#0 print_uint::w#1 print_uint::w#2 print_sint::w#7 print_sint::w#0 print_sint::w#10 print_str::str#5 print_str::str#8 print_str::str#0 memset::dst#2 memset::dst#1 ]
zp[4]:8 [ print_ulong::dw#2 print_ulong::dw#0 print_slong::dw#5 print_slong::dw#0 print_slong::dw#3 ]
reg byte a [ print_uchar::$0 ]
reg byte x [ print_uchar::$2 ]
FINAL ASSEMBLER
Score: 2013
// File Comments
// Tests the different standard C types
// Upstart
// Commodore 64 PRG executable file
.file [name="c-types.prg", type="prg", segments="Program"]
.segmentdef Program [segments="Basic, Code, Data"]
.segmentdef Basic [start=$0801]
.segmentdef Code [start=$80d]
.segmentdef Data [startAfter="Code"]
.segment Basic
:BasicUpstart(main)
// Global Constants & labels
.label print_screen = $400
.label print_char_cursor = 2
.label print_line_cursor = 6
.segment Code
// main
main: {
// print_cls()
// [1] call print_cls
// [11] phi from main to print_cls [phi:main->print_cls]
jsr print_cls
// [2] phi from main to main::@1 [phi:main->main::@1]
// main::@1
// testChar()
// [3] call testChar
// [14] phi from main::@1 to testChar [phi:main::@1->testChar]
jsr testChar
// [4] phi from main::@1 to main::@2 [phi:main::@1->main::@2]
// main::@2
// testShort()
// [5] call testShort
jsr testShort
// [6] phi from main::@2 to main::@3 [phi:main::@2->main::@3]
// main::@3
// testInt()
// [7] call testInt
jsr testInt
// [8] phi from main::@3 to main::@4 [phi:main::@3->main::@4]
// main::@4
// testLong()
// [9] call testLong
jsr testLong
// main::@return
// }
// [10] return
rts
}
// print_cls
// Clear the screen. Also resets current line/char cursor.
print_cls: {
// memset(print_screen, ' ', 1000)
// [12] call memset
// [74] phi from print_cls to memset [phi:print_cls->memset]
jsr memset
// print_cls::@return
// }
// [13] return
rts
}
// testChar
testChar: {
.const u = $e
.const n = $e
.label s = -$e
// print_str("char: ")
// [15] call print_str
// [80] phi from testChar to print_str [phi:testChar->print_str]
// [80] phi print_char_cursor#159 = print_screen#0 [phi:testChar->print_str#0] -- pbuz1=pbuc1
lda #<print_screen
sta.z print_char_cursor
lda #>print_screen
sta.z print_char_cursor+1
// [80] phi print_str::str#8 = testChar::str [phi:testChar->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
sta.z print_str.str+1
jsr print_str
// [16] phi from testChar to testChar::@1 [phi:testChar->testChar::@1]
// testChar::@1
// print_uchar(u)
// [17] call print_uchar
// [87] phi from testChar::@1 to print_uchar [phi:testChar::@1->print_uchar]
// [87] phi print_char_cursor#152 = print_char_cursor#1 [phi:testChar::@1->print_uchar#0] -- register_copy
// [87] phi print_uchar::b#5 = testChar::u [phi:testChar::@1->print_uchar#1] -- vbuxx=vbuc1
ldx #u
jsr print_uchar
// [18] phi from testChar::@1 to testChar::@2 [phi:testChar::@1->testChar::@2]
// testChar::@2
// print_char(' ')
// [19] call print_char
// [95] phi from testChar::@2 to print_char [phi:testChar::@2->print_char]
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:testChar::@2->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = ' ' [phi:testChar::@2->print_char#1] -- vbuaa=vbuc1
lda #' '
jsr print_char
// [20] phi from testChar::@2 to testChar::@3 [phi:testChar::@2->testChar::@3]
// testChar::@3
// print_uchar(n)
// [21] call print_uchar
// [87] phi from testChar::@3 to print_uchar [phi:testChar::@3->print_uchar]
// [87] phi print_char_cursor#152 = print_char_cursor#25 [phi:testChar::@3->print_uchar#0] -- register_copy
// [87] phi print_uchar::b#5 = testChar::n [phi:testChar::@3->print_uchar#1] -- vbuxx=vbuc1
ldx #n
jsr print_uchar
// [22] phi from testChar::@3 to testChar::@4 [phi:testChar::@3->testChar::@4]
// testChar::@4
// print_char(' ')
// [23] call print_char
// [95] phi from testChar::@4 to print_char [phi:testChar::@4->print_char]
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:testChar::@4->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = ' ' [phi:testChar::@4->print_char#1] -- vbuaa=vbuc1
lda #' '
jsr print_char
// [24] phi from testChar::@4 to testChar::@5 [phi:testChar::@4->testChar::@5]
// testChar::@5
// print_schar(s)
// [25] call print_schar
// [99] phi from testChar::@5 to print_schar [phi:testChar::@5->print_schar]
jsr print_schar
// [26] phi from testChar::@5 to testChar::@6 [phi:testChar::@5->testChar::@6]
// testChar::@6
// print_ln()
// [27] call print_ln
// [105] phi from testChar::@6 to print_ln [phi:testChar::@6->print_ln]
// [105] phi print_line_cursor#41 = print_screen#0 [phi:testChar::@6->print_ln#0] -- pbuz1=pbuc1
lda #<print_screen
sta.z print_line_cursor
lda #>print_screen
sta.z print_line_cursor+1
jsr print_ln
// testChar::@return
// }
// [28] return
rts
.segment Data
str: .text "char: "
.byte 0
}
.segment Code
// testShort
testShort: {
.const u = $578
.const n = -$578
.const s = -$578
// [29] print_char_cursor#165 = 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_str("short: ")
// [30] call print_str
// [80] phi from testShort to print_str [phi:testShort->print_str]
// [80] phi print_char_cursor#159 = print_char_cursor#165 [phi:testShort->print_str#0] -- register_copy
// [80] phi print_str::str#8 = testShort::str [phi:testShort->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
sta.z print_str.str+1
jsr print_str
// [31] phi from testShort to testShort::@1 [phi:testShort->testShort::@1]
// testShort::@1
// print_uint(u)
// [32] call print_uint
// [110] phi from testShort::@1 to print_uint [phi:testShort::@1->print_uint]
// [110] phi print_char_cursor#147 = print_char_cursor#1 [phi:testShort::@1->print_uint#0] -- register_copy
// [110] phi print_uint::w#5 = testShort::u [phi:testShort::@1->print_uint#1] -- vwuz1=vwuc1
lda #<u
sta.z print_uint.w
lda #>u
sta.z print_uint.w+1
jsr print_uint
// [33] phi from testShort::@1 to testShort::@2 [phi:testShort::@1->testShort::@2]
// testShort::@2
// print_char(' ')
// [34] call print_char
// [95] phi from testShort::@2 to print_char [phi:testShort::@2->print_char]
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:testShort::@2->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = ' ' [phi:testShort::@2->print_char#1] -- vbuaa=vbuc1
lda #' '
jsr print_char
// [35] phi from testShort::@2 to testShort::@3 [phi:testShort::@2->testShort::@3]
// testShort::@3
// print_sint(n)
// [36] call print_sint
// [116] phi from testShort::@3 to print_sint [phi:testShort::@3->print_sint]
// [116] phi print_sint::w#10 = testShort::n [phi:testShort::@3->print_sint#0] -- vwsz1=vwsc1
lda #<n
sta.z print_sint.w
lda #>n
sta.z print_sint.w+1
jsr print_sint
// [37] phi from testShort::@3 to testShort::@4 [phi:testShort::@3->testShort::@4]
// testShort::@4
// print_char(' ')
// [38] call print_char
// [95] phi from testShort::@4 to print_char [phi:testShort::@4->print_char]
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:testShort::@4->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = ' ' [phi:testShort::@4->print_char#1] -- vbuaa=vbuc1
lda #' '
jsr print_char
// [39] phi from testShort::@4 to testShort::@5 [phi:testShort::@4->testShort::@5]
// testShort::@5
// print_sint(s)
// [40] call print_sint
// [116] phi from testShort::@5 to print_sint [phi:testShort::@5->print_sint]
// [116] phi print_sint::w#10 = testShort::s [phi:testShort::@5->print_sint#0] -- vwsz1=vwsc1
lda #<s
sta.z print_sint.w
lda #>s
sta.z print_sint.w+1
jsr print_sint
// [41] phi from testShort::@5 to testShort::@6 [phi:testShort::@5->testShort::@6]
// testShort::@6
// print_ln()
// [42] call print_ln
// [105] phi from testShort::@6 to print_ln [phi:testShort::@6->print_ln]
// [105] phi print_line_cursor#41 = print_line_cursor#0 [phi:testShort::@6->print_ln#0] -- register_copy
jsr print_ln
// testShort::@return
// }
// [43] return
rts
.segment Data
str: .text "short: "
.byte 0
}
.segment Code
// testInt
testInt: {
.const u = $578
.const n = -$578
.const s = -$578
// [44] print_char_cursor#163 = 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_str("int: ")
// [45] call print_str
// [80] phi from testInt to print_str [phi:testInt->print_str]
// [80] phi print_char_cursor#159 = print_char_cursor#163 [phi:testInt->print_str#0] -- register_copy
// [80] phi print_str::str#8 = testInt::str [phi:testInt->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
sta.z print_str.str+1
jsr print_str
// [46] phi from testInt to testInt::@1 [phi:testInt->testInt::@1]
// testInt::@1
// print_uint(u)
// [47] call print_uint
// [110] phi from testInt::@1 to print_uint [phi:testInt::@1->print_uint]
// [110] phi print_char_cursor#147 = print_char_cursor#1 [phi:testInt::@1->print_uint#0] -- register_copy
// [110] phi print_uint::w#5 = testInt::u [phi:testInt::@1->print_uint#1] -- vwuz1=vwuc1
lda #<u
sta.z print_uint.w
lda #>u
sta.z print_uint.w+1
jsr print_uint
// [48] phi from testInt::@1 to testInt::@2 [phi:testInt::@1->testInt::@2]
// testInt::@2
// print_char(' ')
// [49] call print_char
// [95] phi from testInt::@2 to print_char [phi:testInt::@2->print_char]
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:testInt::@2->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = ' ' [phi:testInt::@2->print_char#1] -- vbuaa=vbuc1
lda #' '
jsr print_char
// [50] phi from testInt::@2 to testInt::@3 [phi:testInt::@2->testInt::@3]
// testInt::@3
// print_sint(n)
// [51] call print_sint
// [116] phi from testInt::@3 to print_sint [phi:testInt::@3->print_sint]
// [116] phi print_sint::w#10 = testInt::n [phi:testInt::@3->print_sint#0] -- vwsz1=vwsc1
lda #<n
sta.z print_sint.w
lda #>n
sta.z print_sint.w+1
jsr print_sint
// [52] phi from testInt::@3 to testInt::@4 [phi:testInt::@3->testInt::@4]
// testInt::@4
// print_char(' ')
// [53] call print_char
// [95] phi from testInt::@4 to print_char [phi:testInt::@4->print_char]
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:testInt::@4->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = ' ' [phi:testInt::@4->print_char#1] -- vbuaa=vbuc1
lda #' '
jsr print_char
// [54] phi from testInt::@4 to testInt::@5 [phi:testInt::@4->testInt::@5]
// testInt::@5
// print_sint(s)
// [55] call print_sint
// [116] phi from testInt::@5 to print_sint [phi:testInt::@5->print_sint]
// [116] phi print_sint::w#10 = testInt::s [phi:testInt::@5->print_sint#0] -- vwsz1=vwsc1
lda #<s
sta.z print_sint.w
lda #>s
sta.z print_sint.w+1
jsr print_sint
// [56] phi from testInt::@5 to testInt::@6 [phi:testInt::@5->testInt::@6]
// testInt::@6
// print_ln()
// [57] call print_ln
// [105] phi from testInt::@6 to print_ln [phi:testInt::@6->print_ln]
// [105] phi print_line_cursor#41 = print_line_cursor#0 [phi:testInt::@6->print_ln#0] -- register_copy
jsr print_ln
// testInt::@return
// }
// [58] return
rts
.segment Data
str: .text "int: "
.byte 0
}
.segment Code
// testLong
testLong: {
.const u = $222e0
.const n = -$222e0
.const s = -$222e0
// [59] print_char_cursor#164 = 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_str("long: ")
// [60] call print_str
// [80] phi from testLong to print_str [phi:testLong->print_str]
// [80] phi print_char_cursor#159 = print_char_cursor#164 [phi:testLong->print_str#0] -- register_copy
// [80] phi print_str::str#8 = testLong::str [phi:testLong->print_str#1] -- pbuz1=pbuc1
lda #<str
sta.z print_str.str
lda #>str
sta.z print_str.str+1
jsr print_str
// [61] phi from testLong to testLong::@1 [phi:testLong->testLong::@1]
// testLong::@1
// print_ulong(u)
// [62] call print_ulong
// [127] phi from testLong::@1 to print_ulong [phi:testLong::@1->print_ulong]
// [127] phi print_char_cursor#148 = print_char_cursor#1 [phi:testLong::@1->print_ulong#0] -- register_copy
// [127] phi print_ulong::dw#2 = testLong::u [phi:testLong::@1->print_ulong#1] -- vduz1=vduc1
lda #<u
sta.z print_ulong.dw
lda #>u
sta.z print_ulong.dw+1
lda #<u>>$10
sta.z print_ulong.dw+2
lda #>u>>$10
sta.z print_ulong.dw+3
jsr print_ulong
// [63] phi from testLong::@1 to testLong::@2 [phi:testLong::@1->testLong::@2]
// testLong::@2
// print_char(' ')
// [64] call print_char
// [95] phi from testLong::@2 to print_char [phi:testLong::@2->print_char]
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:testLong::@2->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = ' ' [phi:testLong::@2->print_char#1] -- vbuaa=vbuc1
lda #' '
jsr print_char
// [65] phi from testLong::@2 to testLong::@3 [phi:testLong::@2->testLong::@3]
// testLong::@3
// print_slong(n)
// [66] call print_slong
// [133] phi from testLong::@3 to print_slong [phi:testLong::@3->print_slong]
// [133] phi print_slong::dw#3 = testLong::n [phi:testLong::@3->print_slong#0] -- vdsz1=vdsc1
lda #<n
sta.z print_slong.dw
lda #>n
sta.z print_slong.dw+1
lda #<n>>$10
sta.z print_slong.dw+2
lda #>n>>$10
sta.z print_slong.dw+3
jsr print_slong
// [67] phi from testLong::@3 to testLong::@4 [phi:testLong::@3->testLong::@4]
// testLong::@4
// print_char(' ')
// [68] call print_char
// [95] phi from testLong::@4 to print_char [phi:testLong::@4->print_char]
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:testLong::@4->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = ' ' [phi:testLong::@4->print_char#1] -- vbuaa=vbuc1
lda #' '
jsr print_char
// [69] phi from testLong::@4 to testLong::@5 [phi:testLong::@4->testLong::@5]
// testLong::@5
// print_slong(s)
// [70] call print_slong
// [133] phi from testLong::@5 to print_slong [phi:testLong::@5->print_slong]
// [133] phi print_slong::dw#3 = testLong::s [phi:testLong::@5->print_slong#0] -- vdsz1=vdsc1
lda #<s
sta.z print_slong.dw
lda #>s
sta.z print_slong.dw+1
lda #<s>>$10
sta.z print_slong.dw+2
lda #>s>>$10
sta.z print_slong.dw+3
jsr print_slong
// [71] phi from testLong::@5 to testLong::@6 [phi:testLong::@5->testLong::@6]
// testLong::@6
// print_ln()
// [72] call print_ln
// [105] phi from testLong::@6 to print_ln [phi:testLong::@6->print_ln]
// [105] phi print_line_cursor#41 = print_line_cursor#0 [phi:testLong::@6->print_ln#0] -- register_copy
jsr print_ln
// testLong::@return
// }
// [73] return
rts
.segment Data
str: .text "long: "
.byte 0
}
.segment Code
// 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 = 4
// [75] phi from memset to memset::@1 [phi:memset->memset::@1]
// [75] phi memset::dst#2 = (char *)memset::str#0 [phi:memset->memset::@1#0] -- pbuz1=pbuc1
lda #<str
sta.z dst
lda #>str
sta.z dst+1
// memset::@1
__b1:
// for(char* dst = str; dst!=end; dst++)
// [76] 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 #<end
bne __b2
// memset::@return
// }
// [77] return
rts
// memset::@2
__b2:
// *dst = c
// [78] *memset::dst#2 = memset::c#0 -- _deref_pbuz1=vbuc1
lda #c
ldy #0
sta (dst),y
// for(char* dst = str; dst!=end; dst++)
// [79] memset::dst#1 = ++ memset::dst#2 -- pbuz1=_inc_pbuz1
inc.z dst
bne !+
inc.z dst+1
!:
// [75] phi from memset::@2 to memset::@1 [phi:memset::@2->memset::@1]
// [75] phi memset::dst#2 = memset::dst#1 [phi:memset::@2->memset::@1#0] -- register_copy
jmp __b1
}
// print_str
// Print a zero-terminated string
// void print_str(__zp(4) char *str)
print_str: {
.label str = 4
// [81] phi from print_str print_str::@3 to print_str::@1 [phi:print_str/print_str::@3->print_str::@1]
// [81] phi print_char_cursor#1 = print_char_cursor#159 [phi:print_str/print_str::@3->print_str::@1#0] -- register_copy
// [81] phi print_str::str#5 = print_str::str#8 [phi:print_str/print_str::@3->print_str::@1#1] -- register_copy
// print_str::@1
__b1:
// while(*str)
// [82] if(0!=*print_str::str#5) goto print_str::@2 -- 0_neq__deref_pbuz1_then_la1
ldy #0
lda (str),y
cmp #0
bne __b2
// print_str::@return
// }
// [83] return
rts
// print_str::@2
__b2:
// print_char(*(str++))
// [84] print_char::ch#0 = *print_str::str#5 -- vbuaa=_deref_pbuz1
ldy #0
lda (str),y
// [85] call print_char
// [95] phi from print_str::@2 to print_char [phi:print_str::@2->print_char]
// [95] phi print_char_cursor#95 = print_char_cursor#1 [phi:print_str::@2->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = print_char::ch#0 [phi:print_str::@2->print_char#1] -- register_copy
jsr print_char
// print_str::@3
// print_char(*(str++));
// [86] print_str::str#0 = ++ print_str::str#5 -- pbuz1=_inc_pbuz1
inc.z str
bne !+
inc.z str+1
!:
jmp __b1
}
// print_uchar
// Print a char as HEX
// void print_uchar(__register(X) char b)
print_uchar: {
// b>>4
// [88] print_uchar::$0 = print_uchar::b#5 >> 4 -- vbuaa=vbuxx_ror_4
txa
lsr
lsr
lsr
lsr
// print_char(print_hextab[b>>4])
// [89] print_char::ch#7 = print_hextab[print_uchar::$0] -- vbuaa=pbuc1_derefidx_vbuaa
tay
lda print_hextab,y
// [90] call print_char
// Table of hexadecimal digits
// [95] phi from print_uchar to print_char [phi:print_uchar->print_char]
// [95] phi print_char_cursor#95 = print_char_cursor#152 [phi:print_uchar->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = print_char::ch#7 [phi:print_uchar->print_char#1] -- register_copy
jsr print_char
// print_uchar::@1
// b&0xf
// [91] print_uchar::$2 = print_uchar::b#5 & $f -- vbuxx=vbuxx_band_vbuc1
lda #$f
axs #0
// print_char(print_hextab[b&0xf])
// [92] print_char::ch#8 = print_hextab[print_uchar::$2] -- vbuaa=pbuc1_derefidx_vbuxx
lda print_hextab,x
// [93] call print_char
// [95] phi from print_uchar::@1 to print_char [phi:print_uchar::@1->print_char]
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:print_uchar::@1->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = print_char::ch#8 [phi:print_uchar::@1->print_char#1] -- register_copy
jsr print_char
// print_uchar::@return
// }
// [94] return
rts
}
// print_char
// Print a single char
// void print_char(__register(A) char ch)
print_char: {
// *(print_char_cursor++) = ch
// [96] *print_char_cursor#95 = print_char::ch#17 -- _deref_pbuz1=vbuaa
ldy #0
sta (print_char_cursor),y
// *(print_char_cursor++) = ch;
// [97] print_char_cursor#25 = ++ print_char_cursor#95 -- pbuz1=_inc_pbuz1
inc.z print_char_cursor
bne !+
inc.z print_char_cursor+1
!:
// print_char::@return
// }
// [98] return
rts
}
// print_schar
// Print a signed char as HEX
// void print_schar(signed char b)
print_schar: {
.const b = -testChar.s
// [100] phi from print_schar to print_schar::@1 [phi:print_schar->print_schar::@1]
// print_schar::@1
// print_char('-')
// [101] call print_char
// [95] phi from print_schar::@1 to print_char [phi:print_schar::@1->print_char]
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:print_schar::@1->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = '-' [phi:print_schar::@1->print_char#1] -- vbuaa=vbuc1
lda #'-'
jsr print_char
// [102] phi from print_schar::@1 to print_schar::@2 [phi:print_schar::@1->print_schar::@2]
// print_schar::@2
// print_uchar((char)b)
// [103] call print_uchar
// [87] phi from print_schar::@2 to print_uchar [phi:print_schar::@2->print_uchar]
// [87] phi print_char_cursor#152 = print_char_cursor#25 [phi:print_schar::@2->print_uchar#0] -- register_copy
// [87] phi print_uchar::b#5 = (char)print_schar::b#0 [phi:print_schar::@2->print_uchar#1] -- vbuxx=vbuc1
ldx #b
jsr print_uchar
// print_schar::@return
// }
// [104] return
rts
}
// print_ln
// Print a newline
print_ln: {
// [106] phi from print_ln print_ln::@1 to print_ln::@1 [phi:print_ln/print_ln::@1->print_ln::@1]
// [106] phi print_line_cursor#21 = print_line_cursor#41 [phi:print_ln/print_ln::@1->print_ln::@1#0] -- register_copy
// print_ln::@1
__b1:
// print_line_cursor + 0x28
// [107] print_line_cursor#0 = print_line_cursor#21 + $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<print_char_cursor)
// [108] if(print_line_cursor#0<print_char_cursor#25) goto print_ln::@1 -- pbuz1_lt_pbuz2_then_la1
lda.z print_line_cursor+1
cmp.z print_char_cursor+1
bcc __b1
bne !+
lda.z print_line_cursor
cmp.z print_char_cursor
bcc __b1
!:
// print_ln::@return
// }
// [109] return
rts
}
// print_uint
// Print a unsigned int as HEX
// void print_uint(__zp(4) unsigned int w)
print_uint: {
.label w = 4
// print_uchar(BYTE1(w))
// [111] print_uchar::b#1 = byte1 print_uint::w#5 -- vbuxx=_byte1_vwuz1
ldx.z w+1
// [112] call print_uchar
// [87] phi from print_uint to print_uchar [phi:print_uint->print_uchar]
// [87] phi print_char_cursor#152 = print_char_cursor#147 [phi:print_uint->print_uchar#0] -- register_copy
// [87] phi print_uchar::b#5 = print_uchar::b#1 [phi:print_uint->print_uchar#1] -- register_copy
jsr print_uchar
// print_uint::@1
// print_uchar(BYTE0(w))
// [113] print_uchar::b#2 = byte0 print_uint::w#5 -- vbuxx=_byte0_vwuz1
ldx.z w
// [114] call print_uchar
// [87] phi from print_uint::@1 to print_uchar [phi:print_uint::@1->print_uchar]
// [87] phi print_char_cursor#152 = print_char_cursor#25 [phi:print_uint::@1->print_uchar#0] -- register_copy
// [87] phi print_uchar::b#5 = print_uchar::b#2 [phi:print_uint::@1->print_uchar#1] -- register_copy
jsr print_uchar
// print_uint::@return
// }
// [115] return
rts
}
// print_sint
// Print a signed int as HEX
// void print_sint(__zp(4) int w)
print_sint: {
.label w = 4
// if(w<0)
// [117] if(print_sint::w#10<0) goto print_sint::@1 -- vwsz1_lt_0_then_la1
lda.z w+1
bmi __b1
// [118] phi from print_sint to print_sint::@3 [phi:print_sint->print_sint::@3]
// print_sint::@3
// print_char(' ')
// [119] call print_char
// [95] phi from print_sint::@3 to print_char [phi:print_sint::@3->print_char]
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:print_sint::@3->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = ' ' [phi:print_sint::@3->print_char#1] -- vbuaa=vbuc1
lda #' '
jsr print_char
// [120] phi from print_sint::@3 print_sint::@4 to print_sint::@2 [phi:print_sint::@3/print_sint::@4->print_sint::@2]
// [120] phi print_sint::w#7 = print_sint::w#10 [phi:print_sint::@3/print_sint::@4->print_sint::@2#0] -- register_copy
// print_sint::@2
__b2:
// print_uint((unsigned int)w)
// [121] print_uint::w#0 = (unsigned int)print_sint::w#7
// [122] call print_uint
// [110] phi from print_sint::@2 to print_uint [phi:print_sint::@2->print_uint]
// [110] phi print_char_cursor#147 = print_char_cursor#25 [phi:print_sint::@2->print_uint#0] -- register_copy
// [110] phi print_uint::w#5 = print_uint::w#0 [phi:print_sint::@2->print_uint#1] -- register_copy
jsr print_uint
// print_sint::@return
// }
// [123] return
rts
// [124] phi from print_sint to print_sint::@1 [phi:print_sint->print_sint::@1]
// print_sint::@1
__b1:
// print_char('-')
// [125] call print_char
// [95] phi from print_sint::@1 to print_char [phi:print_sint::@1->print_char]
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:print_sint::@1->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = '-' [phi:print_sint::@1->print_char#1] -- vbuaa=vbuc1
lda #'-'
jsr print_char
// print_sint::@4
// w = -w
// [126] print_sint::w#0 = - print_sint::w#10 -- vwsz1=_neg_vwsz1
lda #0
sec
sbc.z w
sta.z w
lda #0
sbc.z w+1
sta.z w+1
jmp __b2
}
// print_ulong
// Print a unsigned long as HEX
// void print_ulong(__zp(8) unsigned long dw)
print_ulong: {
.label dw = 8
// print_uint(WORD1(dw))
// [128] print_uint::w#1 = word1 print_ulong::dw#2 -- vwuz1=_word1_vduz2
lda.z dw+2
sta.z print_uint.w
lda.z dw+3
sta.z print_uint.w+1
// [129] call print_uint
// [110] phi from print_ulong to print_uint [phi:print_ulong->print_uint]
// [110] phi print_char_cursor#147 = print_char_cursor#148 [phi:print_ulong->print_uint#0] -- register_copy
// [110] phi print_uint::w#5 = print_uint::w#1 [phi:print_ulong->print_uint#1] -- register_copy
jsr print_uint
// print_ulong::@1
// print_uint(WORD0(dw))
// [130] print_uint::w#2 = word0 print_ulong::dw#2 -- vwuz1=_word0_vduz2
lda.z dw
sta.z print_uint.w
lda.z dw+1
sta.z print_uint.w+1
// [131] call print_uint
// [110] phi from print_ulong::@1 to print_uint [phi:print_ulong::@1->print_uint]
// [110] phi print_char_cursor#147 = print_char_cursor#25 [phi:print_ulong::@1->print_uint#0] -- register_copy
// [110] phi print_uint::w#5 = print_uint::w#2 [phi:print_ulong::@1->print_uint#1] -- register_copy
jsr print_uint
// print_ulong::@return
// }
// [132] return
rts
}
// print_slong
// Print a signed long as HEX
// void print_slong(__zp(8) long dw)
print_slong: {
.label dw = 8
// if(dw<0)
// [134] if(print_slong::dw#3<0) goto print_slong::@1 -- vdsz1_lt_0_then_la1
lda.z dw+3
bmi __b1
// [135] phi from print_slong to print_slong::@3 [phi:print_slong->print_slong::@3]
// print_slong::@3
// print_char(' ')
// [136] call print_char
// [95] phi from print_slong::@3 to print_char [phi:print_slong::@3->print_char]
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:print_slong::@3->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = ' ' [phi:print_slong::@3->print_char#1] -- vbuaa=vbuc1
lda #' '
jsr print_char
// [137] phi from print_slong::@3 print_slong::@4 to print_slong::@2 [phi:print_slong::@3/print_slong::@4->print_slong::@2]
// [137] phi print_slong::dw#5 = print_slong::dw#3 [phi:print_slong::@3/print_slong::@4->print_slong::@2#0] -- register_copy
// print_slong::@2
__b2:
// print_ulong((unsigned long)dw)
// [138] print_ulong::dw#0 = (unsigned long)print_slong::dw#5
// [139] call print_ulong
// [127] phi from print_slong::@2 to print_ulong [phi:print_slong::@2->print_ulong]
// [127] phi print_char_cursor#148 = print_char_cursor#25 [phi:print_slong::@2->print_ulong#0] -- register_copy
// [127] phi print_ulong::dw#2 = print_ulong::dw#0 [phi:print_slong::@2->print_ulong#1] -- register_copy
jsr print_ulong
// print_slong::@return
// }
// [140] return
rts
// [141] phi from print_slong to print_slong::@1 [phi:print_slong->print_slong::@1]
// print_slong::@1
__b1:
// print_char('-')
// [142] call print_char
// [95] phi from print_slong::@1 to print_char [phi:print_slong::@1->print_char]
// [95] phi print_char_cursor#95 = print_char_cursor#25 [phi:print_slong::@1->print_char#0] -- register_copy
// [95] phi print_char::ch#17 = '-' [phi:print_slong::@1->print_char#1] -- vbuaa=vbuc1
lda #'-'
jsr print_char
// print_slong::@4
// dw = -dw
// [143] print_slong::dw#0 = - print_slong::dw#3 -- vdsz1=_neg_vdsz1
sec
lda.z dw
eor #$ff
adc #0
sta.z dw
lda.z dw+1
eor #$ff
adc #0
sta.z dw+1
lda.z dw+2
eor #$ff
adc #0
sta.z dw+2
lda.z dw+3
eor #$ff
adc #0
sta.z dw+3
jmp __b2
}
// File Data
.segment Data
print_hextab: .text "0123456789abcdef"