mirror of
https://gitlab.com/camelot/kickc.git
synced 2024-11-20 02:32:36 +00:00
482 lines
26 KiB
INI
482 lines
26 KiB
INI
@begin: scope:[] from
|
|
[0] phi()
|
|
to:@1
|
|
@1: scope:[] from @begin
|
|
[1] phi()
|
|
[2] call main
|
|
to:@end
|
|
@end: scope:[] from @1
|
|
[3] phi()
|
|
|
|
(signed word()) main()
|
|
main: scope:[main] from @1
|
|
[4] *((const byte*) VICBANK) ← (byte) $17
|
|
[5] *((const byte*) zp1) ← (byte) 0
|
|
to:main::@1
|
|
main::@1: scope:[main] from main main::@14
|
|
[6] (word) main::v#12 ← phi( main/(word) 0 main::@14/(word) main::v#11 )
|
|
[6] (word) main::u#15 ← phi( main/(word) $6e85 main::@14/(word) main::u#3 )
|
|
[7] if(*((const byte*) zp1)<(byte) $a) goto main::@2
|
|
to:main::@3
|
|
main::@3: scope:[main] from main::@1
|
|
[8] *((const byte*) zp1) ← (byte) 0
|
|
to:main::@7
|
|
main::@7: scope:[main] from main::@17 main::@3
|
|
[9] (word) main::v#10 ← phi( main::@3/(word) main::v#12 main::@17/(word) main::v#13 )
|
|
[9] (word) main::u#17 ← phi( main::@3/(word) $6e85 main::@17/(word) main::u#4 )
|
|
[10] if(*((const byte*) zp1)<(byte) $a) goto main::@8
|
|
to:main::@return
|
|
main::@return: scope:[main] from main::@7
|
|
[11] return
|
|
to:@return
|
|
main::@8: scope:[main] from main::@7
|
|
[12] *((const byte*) TIMEHI) ← (byte) 0
|
|
[13] *((const byte*) TIMELO) ← (byte) 0
|
|
[14] *((const byte*) zp2) ← (byte) 0
|
|
to:main::@9
|
|
main::@9: scope:[main] from main::@15 main::@8
|
|
[15] (word) main::v#13 ← phi( main::@8/(word) main::v#10 main::@15/(word) main::v#2 )
|
|
[16] if(*((const byte*) zp2)<(byte) $c8) goto main::@10
|
|
to:main::@11
|
|
main::@11: scope:[main] from main::@9
|
|
[17] (word~) main::$12 ← (word)*((const byte*) TIMEHI)
|
|
[18] (word~) main::$13 ← (word~) main::$12 << (byte) 8
|
|
[19] (word~) main::$14 ← (word)*((const byte*) TIMELO)
|
|
[20] (word) myprintf::w3#1 ← (word~) main::$13 + (word~) main::$14
|
|
[21] (word) myprintf::w1#1 ← (word) main::u#17
|
|
[22] (word) myprintf::w2#1 ← (word) main::v#13
|
|
[23] call myprintf
|
|
to:main::@16
|
|
main::@16: scope:[main] from main::@11
|
|
[24] phi()
|
|
[25] call Print
|
|
to:main::@17
|
|
main::@17: scope:[main] from main::@16
|
|
[26] (word) main::u#4 ← (word) main::u#17 - (word) $4d2
|
|
[27] *((const byte*) zp1) ← ++ *((const byte*) zp1)
|
|
to:main::@7
|
|
main::@10: scope:[main] from main::@9
|
|
[28] (word) div10::val#4 ← (word) main::u#17
|
|
[29] call div10
|
|
[30] (word) div10::return#2 ← (word) div10::return#0
|
|
to:main::@15
|
|
main::@15: scope:[main] from main::@10
|
|
[31] (word) main::v#2 ← (word) div10::return#2
|
|
[32] *((const byte*) zp2) ← ++ *((const byte*) zp2)
|
|
to:main::@9
|
|
main::@2: scope:[main] from main::@1
|
|
[33] *((const byte*) TIMEHI) ← (byte) 0
|
|
[34] *((const byte*) TIMELO) ← (byte) 0
|
|
[35] *((const byte*) zp2) ← (byte) 0
|
|
to:main::@4
|
|
main::@4: scope:[main] from main::@12 main::@2
|
|
[36] (word) main::v#11 ← phi( main::@2/(word) main::v#12 main::@12/(word) main::v#1 )
|
|
[37] if(*((const byte*) zp2)<(byte) $c8) goto main::@5
|
|
to:main::@6
|
|
main::@6: scope:[main] from main::@4
|
|
[38] (word~) main::$3 ← (word)*((const byte*) TIMEHI)
|
|
[39] (word~) main::$4 ← (word~) main::$3 << (byte) 8
|
|
[40] (word~) main::$5 ← (word)*((const byte*) TIMELO)
|
|
[41] (word) myprintf::w3#0 ← (word~) main::$4 + (word~) main::$5
|
|
[42] (word) myprintf::w1#0 ← (word) main::u#15
|
|
[43] (word) myprintf::w2#0 ← (word) main::v#11
|
|
[44] call myprintf
|
|
to:main::@13
|
|
main::@13: scope:[main] from main::@6
|
|
[45] phi()
|
|
[46] call Print
|
|
to:main::@14
|
|
main::@14: scope:[main] from main::@13
|
|
[47] (word) main::u#3 ← (word) main::u#15 - (word) $4d2
|
|
[48] *((const byte*) zp1) ← ++ *((const byte*) zp1)
|
|
to:main::@1
|
|
main::@5: scope:[main] from main::@4
|
|
[49] (word) div16u::dividend#0 ← (word) main::u#15
|
|
[50] call div16u
|
|
[51] (word) div16u::return#2 ← (word) div16u::return#0
|
|
to:main::@12
|
|
main::@12: scope:[main] from main::@5
|
|
[52] (word) main::v#1 ← (word) div16u::return#2
|
|
[53] *((const byte*) zp2) ← ++ *((const byte*) zp2)
|
|
to:main::@4
|
|
|
|
(word()) div16u((word) div16u::dividend , (word) div16u::divisor)
|
|
div16u: scope:[div16u] from main::@5
|
|
[54] (word) divr16u::dividend#1 ← (word) div16u::dividend#0
|
|
[55] call divr16u
|
|
[56] (word) divr16u::return#2 ← (word) divr16u::return#0
|
|
to:div16u::@1
|
|
div16u::@1: scope:[div16u] from div16u
|
|
[57] (word) div16u::return#0 ← (word) divr16u::return#2
|
|
to:div16u::@return
|
|
div16u::@return: scope:[div16u] from div16u::@1
|
|
[58] return
|
|
to:@return
|
|
|
|
(word()) divr16u((word) divr16u::dividend , (word) divr16u::divisor , (word) divr16u::rem)
|
|
divr16u: scope:[divr16u] from div16u
|
|
[59] phi()
|
|
to:divr16u::@1
|
|
divr16u::@1: scope:[divr16u] from divr16u divr16u::@3
|
|
[60] (byte) divr16u::i#2 ← phi( divr16u/(byte) 0 divr16u::@3/(byte) divr16u::i#1 )
|
|
[60] (word) divr16u::quotient#3 ← phi( divr16u/(byte) 0 divr16u::@3/(word) divr16u::return#0 )
|
|
[60] (word) divr16u::dividend#2 ← phi( divr16u/(word) divr16u::dividend#1 divr16u::@3/(word) divr16u::dividend#0 )
|
|
[60] (word) divr16u::rem#4 ← phi( divr16u/(byte) 0 divr16u::@3/(word) divr16u::rem#9 )
|
|
[61] (word) divr16u::rem#0 ← (word) divr16u::rem#4 << (byte) 1
|
|
[62] (byte~) divr16u::$1 ← > (word) divr16u::dividend#2
|
|
[63] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte) $80
|
|
[64] if((byte~) divr16u::$2==(byte) 0) goto divr16u::@2
|
|
to:divr16u::@4
|
|
divr16u::@4: scope:[divr16u] from divr16u::@1
|
|
[65] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte) 1
|
|
to:divr16u::@2
|
|
divr16u::@2: scope:[divr16u] from divr16u::@1 divr16u::@4
|
|
[66] (word) divr16u::rem#5 ← phi( divr16u::@1/(word) divr16u::rem#0 divr16u::@4/(word) divr16u::rem#1 )
|
|
[67] (word) divr16u::dividend#0 ← (word) divr16u::dividend#2 << (byte) 1
|
|
[68] (word) divr16u::quotient#1 ← (word) divr16u::quotient#3 << (byte) 1
|
|
[69] if((word) divr16u::rem#5<(const word) div16u::divisor#0) goto divr16u::@3
|
|
to:divr16u::@5
|
|
divr16u::@5: scope:[divr16u] from divr16u::@2
|
|
[70] (word) divr16u::quotient#2 ← ++ (word) divr16u::quotient#1
|
|
[71] (word) divr16u::rem#2 ← (word) divr16u::rem#5 - (const word) div16u::divisor#0
|
|
to:divr16u::@3
|
|
divr16u::@3: scope:[divr16u] from divr16u::@2 divr16u::@5
|
|
[72] (word) divr16u::return#0 ← phi( divr16u::@2/(word) divr16u::quotient#1 divr16u::@5/(word) divr16u::quotient#2 )
|
|
[72] (word) divr16u::rem#9 ← phi( divr16u::@2/(word) divr16u::rem#5 divr16u::@5/(word) divr16u::rem#2 )
|
|
[73] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2
|
|
[74] if((byte) divr16u::i#1!=(byte) $10) goto divr16u::@1
|
|
to:divr16u::@return
|
|
divr16u::@return: scope:[divr16u] from divr16u::@3
|
|
[75] return
|
|
to:@return
|
|
|
|
(void()) Print()
|
|
Print: scope:[Print] from main::@13 main::@16
|
|
asm { ldy#0 loop: ldastrTemp,y beqdone jsr$FFD2 iny jmploop done: }
|
|
to:Print::@return
|
|
Print::@return: scope:[Print] from Print
|
|
[77] return
|
|
to:@return
|
|
|
|
(byte()) myprintf((byte*) myprintf::dst , (byte*) myprintf::str , (word) myprintf::w1 , (word) myprintf::w2 , (word) myprintf::w3)
|
|
myprintf: scope:[myprintf] from main::@11 main::@6
|
|
[78] (word) myprintf::w3#8 ← phi( main::@11/(word) myprintf::w3#1 main::@6/(word) myprintf::w3#0 )
|
|
[78] (word) myprintf::w2#8 ← phi( main::@11/(word) myprintf::w2#1 main::@6/(word) myprintf::w2#0 )
|
|
[78] (word) myprintf::w1#7 ← phi( main::@11/(word) myprintf::w1#1 main::@6/(word) myprintf::w1#0 )
|
|
[78] (byte*) myprintf::str#6 ← phi( main::@11/(const string) main::str1 main::@6/(const string) main::str )
|
|
to:myprintf::@1
|
|
myprintf::@1: scope:[myprintf] from myprintf myprintf::@32
|
|
[79] (byte) myprintf::bLeadZero#11 ← phi( myprintf/(byte) 0 myprintf::@32/(byte) myprintf::bLeadZero#20 )
|
|
[79] (byte) myprintf::bDigits#16 ← phi( myprintf/(byte) 0 myprintf::@32/(byte) myprintf::bDigits#28 )
|
|
[79] (byte) myprintf::bTrailing#11 ← phi( myprintf/(byte) 0 myprintf::@32/(byte) myprintf::bTrailing#24 )
|
|
[79] (word) myprintf::w#10 ← phi( myprintf/(word) 0 myprintf::@32/(word) myprintf::w#18 )
|
|
[79] (byte) myprintf::bArg#10 ← phi( myprintf/(byte) 0 myprintf::@32/(byte) myprintf::bArg#11 )
|
|
[79] (byte) myprintf::bLen#10 ← phi( myprintf/(byte) 0 myprintf::@32/(byte) myprintf::bLen#28 )
|
|
[79] (byte) myprintf::bFormat#10 ← phi( myprintf/(byte) 0 myprintf::@32/(byte) myprintf::bFormat#5 )
|
|
[79] (byte*) myprintf::str#10 ← phi( myprintf/(byte*) myprintf::str#6 myprintf::@32/(byte*) myprintf::str#0 )
|
|
[80] if(*((byte*) myprintf::str#10)!=(byte) 0) goto myprintf::@2
|
|
to:myprintf::@3
|
|
myprintf::@3: scope:[myprintf] from myprintf::@1
|
|
[81] *((const byte[$64]) strTemp + (byte) myprintf::bLen#10) ← (byte) 0
|
|
to:myprintf::@return
|
|
myprintf::@return: scope:[myprintf] from myprintf::@3
|
|
[82] return
|
|
to:@return
|
|
myprintf::@2: scope:[myprintf] from myprintf::@1
|
|
[83] (byte) myprintf::b#1 ← *((byte*) myprintf::str#10)
|
|
[84] if((byte) myprintf::bFormat#10==(byte) 0) goto myprintf::@4
|
|
to:myprintf::@38
|
|
myprintf::@38: scope:[myprintf] from myprintf::@2
|
|
[85] if((byte) myprintf::b#1!=(byte) '0') goto myprintf::@5
|
|
to:myprintf::@32
|
|
myprintf::@32: scope:[myprintf] from myprintf::@27 myprintf::@28 myprintf::@36 myprintf::@37 myprintf::@38 myprintf::@6
|
|
[86] (byte) myprintf::bLeadZero#20 ← phi( myprintf::@27/(byte) myprintf::bLeadZero#11 myprintf::@28/(byte) myprintf::bLeadZero#11 myprintf::@6/(byte) myprintf::bLeadZero#11 myprintf::@36/(byte) 0 myprintf::@37/(byte) myprintf::bLeadZero#11 myprintf::@38/(byte) 1 )
|
|
[86] (byte) myprintf::bDigits#28 ← phi( myprintf::@27/(byte) myprintf::bDigits#29 myprintf::@28/(byte) myprintf::bDigits#1 myprintf::@6/(byte) myprintf::bDigits#16 myprintf::@36/(byte) 1 myprintf::@37/(byte) myprintf::bDigits#16 myprintf::@38/(byte) myprintf::bDigits#16 )
|
|
[86] (byte) myprintf::bTrailing#24 ← phi( myprintf::@27/(byte) myprintf::bTrailing#11 myprintf::@28/(byte) myprintf::bTrailing#11 myprintf::@6/(byte) 1 myprintf::@36/(byte) 0 myprintf::@37/(byte) myprintf::bTrailing#11 myprintf::@38/(byte) myprintf::bTrailing#11 )
|
|
[86] (word) myprintf::w#18 ← phi( myprintf::@27/(word) myprintf::w#10 myprintf::@28/(word) myprintf::w#10 myprintf::@6/(word) myprintf::w#10 myprintf::@36/(word) myprintf::w#22 myprintf::@37/(word) myprintf::w#10 myprintf::@38/(word) myprintf::w#10 )
|
|
[86] (byte) myprintf::bArg#11 ← phi( myprintf::@27/(byte) myprintf::bArg#10 myprintf::@28/(byte) myprintf::bArg#10 myprintf::@6/(byte) myprintf::bArg#10 myprintf::@36/(byte) myprintf::bArg#1 myprintf::@37/(byte) myprintf::bArg#10 myprintf::@38/(byte) myprintf::bArg#10 )
|
|
[86] (byte) myprintf::bLen#28 ← phi( myprintf::@27/(byte) myprintf::bLen#36 myprintf::@28/(byte) myprintf::bLen#10 myprintf::@6/(byte) myprintf::bLen#10 myprintf::@36/(byte) myprintf::bLen#10 myprintf::@37/(byte) myprintf::bLen#7 myprintf::@38/(byte) myprintf::bLen#10 )
|
|
[86] (byte) myprintf::bFormat#5 ← phi( myprintf::@27/(byte) 0 myprintf::@28/(byte) myprintf::bFormat#10 myprintf::@6/(byte) myprintf::bFormat#10 myprintf::@36/(byte) 1 myprintf::@37/(byte) myprintf::bFormat#10 myprintf::@38/(byte) myprintf::bFormat#10 )
|
|
[87] (byte*) myprintf::str#0 ← ++ (byte*) myprintf::str#10
|
|
to:myprintf::@1
|
|
myprintf::@5: scope:[myprintf] from myprintf::@38
|
|
[88] if((byte) myprintf::b#1<(byte) '1') goto myprintf::@6
|
|
to:myprintf::@43
|
|
myprintf::@43: scope:[myprintf] from myprintf::@5
|
|
[89] if((byte) myprintf::b#1<=(byte) '9') goto myprintf::@28
|
|
to:myprintf::@6
|
|
myprintf::@6: scope:[myprintf] from myprintf::@43 myprintf::@5
|
|
[90] if((byte) myprintf::b#1!=(byte) '-') goto myprintf::@7
|
|
to:myprintf::@32
|
|
myprintf::@7: scope:[myprintf] from myprintf::@6
|
|
[91] if((byte) myprintf::b#1==(byte) 'c') goto myprintf::@8
|
|
to:myprintf::@29
|
|
myprintf::@29: scope:[myprintf] from myprintf::@7
|
|
[92] if((byte) myprintf::b#1==(byte) 'd') goto myprintf::@9
|
|
to:myprintf::@30
|
|
myprintf::@30: scope:[myprintf] from myprintf::@29
|
|
[93] if((byte) myprintf::b#1==(byte) 'x') goto myprintf::@31
|
|
to:myprintf::@44
|
|
myprintf::@44: scope:[myprintf] from myprintf::@30
|
|
[94] if((byte) myprintf::b#1==(byte) 'X') goto myprintf::@31
|
|
to:myprintf::@27
|
|
myprintf::@27: scope:[myprintf] from myprintf::@13 myprintf::@24 myprintf::@25 myprintf::@44 myprintf::@46 myprintf::@8
|
|
[95] (byte) myprintf::bDigits#29 ← phi( myprintf::@13/(byte) myprintf::bDigits#16 myprintf::@24/(byte) myprintf::bDigits#18 myprintf::@25/(byte) myprintf::bDigits#10 myprintf::@44/(byte) myprintf::bDigits#16 myprintf::@8/(byte) myprintf::bDigits#16 )
|
|
[95] (byte) myprintf::bLen#36 ← phi( myprintf::@13/(byte) myprintf::bLen#3 myprintf::@24/(byte) myprintf::bLen#13 myprintf::@25/(byte) myprintf::bLen#14 myprintf::@44/(byte) myprintf::bLen#10 myprintf::@8/(byte) myprintf::bLen#1 )
|
|
to:myprintf::@32
|
|
myprintf::@31: scope:[myprintf] from myprintf::@30 myprintf::@44
|
|
[96] (byte~) myprintf::$18 ← (byte)(word) myprintf::w#10
|
|
[97] (byte~) myprintf::$19 ← (byte~) myprintf::$18 >> (byte) 4
|
|
[98] (byte) myprintf::b#15 ← (byte~) myprintf::$19 & (byte) $f
|
|
[99] if((byte) myprintf::b#15<(byte) $a) goto myprintf::@10
|
|
to:myprintf::@11
|
|
myprintf::@10: scope:[myprintf] from myprintf::@31
|
|
[100] phi()
|
|
to:myprintf::@11
|
|
myprintf::@11: scope:[myprintf] from myprintf::@10 myprintf::@31
|
|
[101] (byte~) myprintf::$24 ← phi( myprintf::@10/(byte) '0' myprintf::@31/(byte) $57 )
|
|
[102] (byte~) myprintf::$25 ← (byte~) myprintf::$24 + (byte) myprintf::b#15
|
|
[103] *((const byte[$64]) strTemp + (byte) myprintf::bLen#10) ← (byte~) myprintf::$25
|
|
[104] (byte) myprintf::bLen#11 ← ++ (byte) myprintf::bLen#10
|
|
[105] (byte~) myprintf::$26 ← (byte)(word) myprintf::w#10
|
|
[106] (byte) myprintf::b#16 ← (byte~) myprintf::$26 & (byte) $f
|
|
[107] if((byte) myprintf::b#16<(byte) $a) goto myprintf::@12
|
|
to:myprintf::@13
|
|
myprintf::@12: scope:[myprintf] from myprintf::@11
|
|
[108] phi()
|
|
to:myprintf::@13
|
|
myprintf::@13: scope:[myprintf] from myprintf::@11 myprintf::@12
|
|
[109] (byte~) myprintf::$31 ← phi( myprintf::@12/(byte) '0' myprintf::@11/(byte) $57 )
|
|
[110] (byte~) myprintf::$32 ← (byte~) myprintf::$31 + (byte) myprintf::b#16
|
|
[111] *((const byte[$64]) strTemp + (byte) myprintf::bLen#11) ← (byte~) myprintf::$32
|
|
[112] (byte) myprintf::bLen#3 ← ++ (byte) myprintf::bLen#11
|
|
to:myprintf::@27
|
|
myprintf::@9: scope:[myprintf] from myprintf::@29
|
|
[113] (word) utoa::value#4 ← (word) myprintf::w#10
|
|
[114] call utoa
|
|
to:myprintf::@14
|
|
myprintf::@14: scope:[myprintf] from myprintf::@15 myprintf::@9
|
|
[115] (byte) myprintf::b#17 ← phi( myprintf::@15/(byte) myprintf::b#5 myprintf::@9/(byte) 1 )
|
|
[116] if(*((const byte[6]) myprintf::buf6 + (byte) myprintf::b#17)!=(byte) 0) goto myprintf::@15
|
|
to:myprintf::@16
|
|
myprintf::@16: scope:[myprintf] from myprintf::@14
|
|
[117] if((byte) myprintf::bTrailing#11!=(byte) 0) goto myprintf::@17
|
|
to:myprintf::@45
|
|
myprintf::@45: scope:[myprintf] from myprintf::@16
|
|
[118] if((byte) myprintf::bDigits#16<=(byte) myprintf::b#17) goto myprintf::@17
|
|
to:myprintf::@18
|
|
myprintf::@18: scope:[myprintf] from myprintf::@21 myprintf::@45
|
|
[119] (byte) myprintf::bLen#12 ← phi( myprintf::@45/(byte) myprintf::bLen#10 myprintf::@21/(byte) myprintf::bLen#4 )
|
|
[119] (byte) myprintf::bDigits#12 ← phi( myprintf::@45/(byte) myprintf::bDigits#16 myprintf::@21/(byte) myprintf::bDigits#2 )
|
|
[120] if((byte) myprintf::bDigits#12>(byte) myprintf::b#17) goto myprintf::@19
|
|
to:myprintf::@17
|
|
myprintf::@17: scope:[myprintf] from myprintf::@16 myprintf::@18 myprintf::@45
|
|
[121] (byte) myprintf::bDigits#18 ← phi( myprintf::@16/(byte) myprintf::bDigits#16 myprintf::@18/(byte) myprintf::bDigits#12 )
|
|
[121] (byte) myprintf::bLen#32 ← phi( myprintf::@16/(byte) myprintf::bLen#10 myprintf::@18/(byte) myprintf::bLen#12 )
|
|
to:myprintf::@22
|
|
myprintf::@22: scope:[myprintf] from myprintf::@17 myprintf::@23
|
|
[122] (byte) myprintf::bLen#13 ← phi( myprintf::@17/(byte) myprintf::bLen#32 myprintf::@23/(byte) myprintf::bLen#5 )
|
|
[122] (byte) myprintf::digit#3 ← phi( myprintf::@17/(byte) 0 myprintf::@23/(byte) myprintf::digit#2 )
|
|
[123] if((byte) myprintf::digit#3<(byte) myprintf::b#17) goto myprintf::@23
|
|
to:myprintf::@24
|
|
myprintf::@24: scope:[myprintf] from myprintf::@22
|
|
[124] if((byte) myprintf::bTrailing#11==(byte) 0) goto myprintf::@27
|
|
to:myprintf::@46
|
|
myprintf::@46: scope:[myprintf] from myprintf::@24
|
|
[125] if((byte) myprintf::bDigits#18<=(byte) myprintf::b#17) goto myprintf::@27
|
|
to:myprintf::@25
|
|
myprintf::@25: scope:[myprintf] from myprintf::@26 myprintf::@46
|
|
[126] (byte) myprintf::bLen#14 ← phi( myprintf::@46/(byte) myprintf::bLen#13 myprintf::@26/(byte) myprintf::bLen#6 )
|
|
[126] (byte) myprintf::bDigits#10 ← phi( myprintf::@46/(byte) myprintf::bDigits#18 myprintf::@26/(byte) myprintf::bDigits#3 )
|
|
[127] if((byte) myprintf::bDigits#10>(byte) myprintf::b#17) goto myprintf::@26
|
|
to:myprintf::@27
|
|
myprintf::@26: scope:[myprintf] from myprintf::@25
|
|
[128] *((const byte[$64]) strTemp + (byte) myprintf::bLen#14) ← (byte) ' '
|
|
[129] (byte) myprintf::bLen#6 ← ++ (byte) myprintf::bLen#14
|
|
[130] (byte) myprintf::bDigits#3 ← -- (byte) myprintf::bDigits#10
|
|
to:myprintf::@25
|
|
myprintf::@23: scope:[myprintf] from myprintf::@22
|
|
[131] *((const byte[$64]) strTemp + (byte) myprintf::bLen#13) ← *((const byte[6]) myprintf::buf6 + (byte) myprintf::digit#3)
|
|
[132] (byte) myprintf::bLen#5 ← ++ (byte) myprintf::bLen#13
|
|
[133] (byte) myprintf::digit#2 ← ++ (byte) myprintf::digit#3
|
|
to:myprintf::@22
|
|
myprintf::@19: scope:[myprintf] from myprintf::@18
|
|
[134] if((byte) myprintf::bLeadZero#11==(byte) 0) goto myprintf::@20
|
|
to:myprintf::@21
|
|
myprintf::@20: scope:[myprintf] from myprintf::@19
|
|
[135] phi()
|
|
to:myprintf::@21
|
|
myprintf::@21: scope:[myprintf] from myprintf::@19 myprintf::@20
|
|
[136] (byte~) myprintf::$43 ← phi( myprintf::@20/(byte) ' ' myprintf::@19/(byte) '0' )
|
|
[137] *((const byte[$64]) strTemp + (byte) myprintf::bLen#12) ← (byte~) myprintf::$43
|
|
[138] (byte) myprintf::bLen#4 ← ++ (byte) myprintf::bLen#12
|
|
[139] (byte) myprintf::bDigits#2 ← -- (byte) myprintf::bDigits#12
|
|
to:myprintf::@18
|
|
myprintf::@15: scope:[myprintf] from myprintf::@14
|
|
[140] (byte) myprintf::b#5 ← ++ (byte) myprintf::b#17
|
|
to:myprintf::@14
|
|
myprintf::@8: scope:[myprintf] from myprintf::@7
|
|
[141] (byte~) myprintf::$50 ← (byte)(word) myprintf::w#10
|
|
[142] *((const byte[$64]) strTemp + (byte) myprintf::bLen#10) ← (byte~) myprintf::$50
|
|
[143] (byte) myprintf::bLen#1 ← ++ (byte) myprintf::bLen#10
|
|
to:myprintf::@27
|
|
myprintf::@28: scope:[myprintf] from myprintf::@43
|
|
[144] (byte) myprintf::bDigits#1 ← (byte) myprintf::b#1 - (byte) '0'
|
|
to:myprintf::@32
|
|
myprintf::@4: scope:[myprintf] from myprintf::@2
|
|
[145] if((byte) myprintf::b#1!=(byte) '%') goto myprintf::@33
|
|
to:myprintf::@39
|
|
myprintf::@39: scope:[myprintf] from myprintf::@4
|
|
[146] if((byte) myprintf::bArg#10==(byte) 0) goto myprintf::@34
|
|
to:myprintf::@40
|
|
myprintf::@40: scope:[myprintf] from myprintf::@39
|
|
[147] if((byte) myprintf::bArg#10==(byte) 1) goto myprintf::@35
|
|
to:myprintf::@41
|
|
myprintf::@41: scope:[myprintf] from myprintf::@40
|
|
[148] (word~) myprintf::w#55 ← (word) myprintf::w3#8
|
|
to:myprintf::@36
|
|
myprintf::@36: scope:[myprintf] from myprintf::@34 myprintf::@35 myprintf::@41
|
|
[149] (word) myprintf::w#22 ← phi( myprintf::@34/(word~) myprintf::w#53 myprintf::@35/(word~) myprintf::w#54 myprintf::@41/(word~) myprintf::w#55 )
|
|
[150] (byte) myprintf::bArg#1 ← ++ (byte) myprintf::bArg#10
|
|
to:myprintf::@32
|
|
myprintf::@35: scope:[myprintf] from myprintf::@40
|
|
[151] (word~) myprintf::w#54 ← (word) myprintf::w2#8
|
|
to:myprintf::@36
|
|
myprintf::@34: scope:[myprintf] from myprintf::@39
|
|
[152] (word~) myprintf::w#53 ← (word) myprintf::w1#7
|
|
to:myprintf::@36
|
|
myprintf::@33: scope:[myprintf] from myprintf::@4
|
|
[153] if((byte) myprintf::b#1<(byte) $41) goto myprintf::@37
|
|
to:myprintf::@47
|
|
myprintf::@47: scope:[myprintf] from myprintf::@33
|
|
[154] if((byte) myprintf::b#1>=(byte) $5a+(byte) 1) goto myprintf::@37
|
|
to:myprintf::@42
|
|
myprintf::@42: scope:[myprintf] from myprintf::@47
|
|
[155] (byte) myprintf::b#6 ← (byte) myprintf::b#1 + (byte) $20
|
|
to:myprintf::@37
|
|
myprintf::@37: scope:[myprintf] from myprintf::@33 myprintf::@42 myprintf::@47
|
|
[156] (byte) myprintf::b#25 ← phi( myprintf::@33/(byte) myprintf::b#1 myprintf::@42/(byte) myprintf::b#6 )
|
|
[157] *((const byte[$64]) strTemp + (byte) myprintf::bLen#10) ← (byte) myprintf::b#25
|
|
[158] (byte) myprintf::bLen#7 ← ++ (byte) myprintf::bLen#10
|
|
to:myprintf::@32
|
|
|
|
(void()) utoa((word) utoa::value , (byte*) utoa::dst)
|
|
utoa: scope:[utoa] from myprintf::@9
|
|
[159] phi()
|
|
to:utoa::@13
|
|
utoa::@13: scope:[utoa] from utoa
|
|
[160] if((word) utoa::value#4>=(word) $2710) goto utoa::@5
|
|
to:utoa::@1
|
|
utoa::@1: scope:[utoa] from utoa::@13 utoa::@9
|
|
[161] (byte*) utoa::dst#16 ← phi( utoa::@13/(const byte[6]) myprintf::buf6 utoa::@9/++(const byte[6]) myprintf::buf6 )
|
|
[161] (word) utoa::value#6 ← phi( utoa::@13/(word) utoa::value#4 utoa::@9/(word) utoa::value#0 )
|
|
[161] (byte) utoa::bStarted#5 ← phi( utoa::@13/(byte) 0 utoa::@9/(byte) 1 )
|
|
[162] if((byte) utoa::bStarted#5==(byte) 1) goto utoa::@6
|
|
to:utoa::@14
|
|
utoa::@14: scope:[utoa] from utoa::@1
|
|
[163] if((word) utoa::value#6>=(word) $3e8) goto utoa::@6
|
|
to:utoa::@2
|
|
utoa::@2: scope:[utoa] from utoa::@10 utoa::@14
|
|
[164] (byte*) utoa::dst#10 ← phi( utoa::@14/(byte*) utoa::dst#16 utoa::@10/(byte*) utoa::dst#1 )
|
|
[164] (word) utoa::value#11 ← phi( utoa::@14/(word) utoa::value#6 utoa::@10/(word) utoa::value#1 )
|
|
[164] (byte) utoa::bStarted#6 ← phi( utoa::@14/(byte) utoa::bStarted#5 utoa::@10/(byte) 1 )
|
|
[165] if((byte) utoa::bStarted#6==(byte) 1) goto utoa::@7
|
|
to:utoa::@15
|
|
utoa::@15: scope:[utoa] from utoa::@2
|
|
[166] if((word) utoa::value#11>=(byte) $64) goto utoa::@7
|
|
to:utoa::@3
|
|
utoa::@3: scope:[utoa] from utoa::@11 utoa::@15
|
|
[167] (byte*) utoa::dst#13 ← phi( utoa::@11/(byte*) utoa::dst#2 utoa::@15/(byte*) utoa::dst#10 )
|
|
[167] (word) utoa::value#10 ← phi( utoa::@11/(word) utoa::value#2 utoa::@15/(word) utoa::value#11 )
|
|
[167] (byte) utoa::bStarted#7 ← phi( utoa::@11/(byte) 1 utoa::@15/(byte) utoa::bStarted#6 )
|
|
[168] if((byte) utoa::bStarted#7==(byte) 1) goto utoa::@8
|
|
to:utoa::@16
|
|
utoa::@16: scope:[utoa] from utoa::@3
|
|
[169] if((word) utoa::value#10>=(byte) $a) goto utoa::@8
|
|
to:utoa::@4
|
|
utoa::@4: scope:[utoa] from utoa::@12 utoa::@16
|
|
[170] (byte*) utoa::dst#12 ← phi( utoa::@12/(byte*) utoa::dst#4 utoa::@16/(byte*) utoa::dst#13 )
|
|
[170] (word) utoa::value#12 ← phi( utoa::@12/(word) utoa::value#3 utoa::@16/(word) utoa::value#10 )
|
|
[171] (byte~) utoa::$16 ← (byte)(word) utoa::value#12
|
|
[172] (byte~) utoa::$17 ← (byte) '0' + (byte~) utoa::$16
|
|
[173] *((byte*) utoa::dst#12) ← (byte~) utoa::$17
|
|
[174] (byte*) utoa::dst#3 ← ++ (byte*) utoa::dst#12
|
|
[175] *((byte*) utoa::dst#3) ← (byte) 0
|
|
to:utoa::@return
|
|
utoa::@return: scope:[utoa] from utoa::@4
|
|
[176] return
|
|
to:@return
|
|
utoa::@8: scope:[utoa] from utoa::@16 utoa::@3
|
|
[177] (byte*) append::dst#3 ← (byte*) utoa::dst#13
|
|
[178] (word) append::value#4 ← (word) utoa::value#10
|
|
[179] call append
|
|
[180] (word) append::return#10 ← (word) append::value#5
|
|
to:utoa::@12
|
|
utoa::@12: scope:[utoa] from utoa::@8
|
|
[181] (word) utoa::value#3 ← (word) append::return#10
|
|
[182] (byte*) utoa::dst#4 ← ++ (byte*) utoa::dst#13
|
|
to:utoa::@4
|
|
utoa::@7: scope:[utoa] from utoa::@15 utoa::@2
|
|
[183] (byte*) append::dst#2 ← (byte*) utoa::dst#10
|
|
[184] (word) append::value#3 ← (word) utoa::value#11
|
|
[185] call append
|
|
[186] (word) append::return#4 ← (word) append::value#5
|
|
to:utoa::@11
|
|
utoa::@11: scope:[utoa] from utoa::@7
|
|
[187] (word) utoa::value#2 ← (word) append::return#4
|
|
[188] (byte*) utoa::dst#2 ← ++ (byte*) utoa::dst#10
|
|
to:utoa::@3
|
|
utoa::@6: scope:[utoa] from utoa::@1 utoa::@14
|
|
[189] (byte*) append::dst#1 ← (byte*) utoa::dst#16
|
|
[190] (word) append::value#2 ← (word) utoa::value#6
|
|
[191] call append
|
|
[192] (word) append::return#3 ← (word) append::value#5
|
|
to:utoa::@10
|
|
utoa::@10: scope:[utoa] from utoa::@6
|
|
[193] (word) utoa::value#1 ← (word) append::return#3
|
|
[194] (byte*) utoa::dst#1 ← ++ (byte*) utoa::dst#16
|
|
to:utoa::@2
|
|
utoa::@5: scope:[utoa] from utoa::@13
|
|
[195] (word) append::value#1 ← (word) utoa::value#4
|
|
[196] call append
|
|
[197] (word) append::return#2 ← (word) append::value#5
|
|
to:utoa::@9
|
|
utoa::@9: scope:[utoa] from utoa::@5
|
|
[198] (word) utoa::value#0 ← (word) append::return#2
|
|
to:utoa::@1
|
|
|
|
(word()) append((byte*) append::dst , (word) append::value , (word) append::sub)
|
|
append: scope:[append] from utoa::@5 utoa::@6 utoa::@7 utoa::@8
|
|
[199] (word) append::sub#6 ← phi( utoa::@5/(word) $2710 utoa::@6/(word) $3e8 utoa::@7/(byte) $64 utoa::@8/(byte) $a )
|
|
[199] (word) append::value#8 ← phi( utoa::@5/(word) append::value#1 utoa::@6/(word) append::value#2 utoa::@7/(word) append::value#3 utoa::@8/(word) append::value#4 )
|
|
[199] (byte*) append::dst#4 ← phi( utoa::@5/(const byte[6]) myprintf::buf6 utoa::@6/(byte*) append::dst#1 utoa::@7/(byte*) append::dst#2 utoa::@8/(byte*) append::dst#3 )
|
|
[200] *((byte*) append::dst#4) ← (byte) '0'
|
|
to:append::@1
|
|
append::@1: scope:[append] from append append::@2
|
|
[201] (word) append::value#5 ← phi( append/(word) append::value#8 append::@2/(word) append::value#0 )
|
|
[202] if((word) append::value#5>=(word) append::sub#6) goto append::@2
|
|
to:append::@return
|
|
append::@return: scope:[append] from append::@1
|
|
[203] return
|
|
to:@return
|
|
append::@2: scope:[append] from append::@1
|
|
[204] *((byte*) append::dst#4) ← ++ *((byte*) append::dst#4)
|
|
[205] (word) append::value#0 ← (word) append::value#5 - (word) append::sub#6
|
|
to:append::@1
|
|
|
|
(word()) div10((word) div10::val)
|
|
div10: scope:[div10] from main::@10
|
|
[206] (word~) div10::$0 ← (word) div10::val#4 >> (byte) 1
|
|
[207] (word) div10::val#0 ← (word~) div10::$0 + (byte) 1
|
|
[208] (word~) div10::$2 ← (word) div10::val#0 << (byte) 1
|
|
[209] (word) div10::val#1 ← (word) div10::val#0 + (word~) div10::$2
|
|
[210] (word~) div10::$3 ← (word) div10::val#1 >> (byte) 4
|
|
[211] (word) div10::val#2 ← (word) div10::val#1 + (word~) div10::$3
|
|
[212] (word~) div10::$4 ← (word) div10::val#2 >> (byte) 8
|
|
[213] (word) div10::val#3 ← (word) div10::val#2 + (word~) div10::$4
|
|
[214] (word) div10::return#0 ← (word) div10::val#3 >> (byte) 4
|
|
to:div10::@return
|
|
div10::@return: scope:[div10] from div10
|
|
[215] return
|
|
to:@return
|