mirror of
https://gitlab.com/camelot/kickc.git
synced 2025-08-09 04:25:12 +00:00
9026 lines
524 KiB
Plaintext
9026 lines
524 KiB
Plaintext
|
|
CONTROL FLOW GRAPH SSA
|
|
@begin: scope:[] from
|
|
to:@8
|
|
divr16u: scope:[divr16u] from div16u
|
|
(word) divr16u::divisor#5 ← phi( div16u/(word) divr16u::divisor#0 )
|
|
(word) divr16u::dividend#4 ← phi( div16u/(word) divr16u::dividend#1 )
|
|
(word) divr16u::rem#8 ← phi( div16u/(word) divr16u::rem#3 )
|
|
(word) divr16u::quotient#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
(byte) divr16u::i#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
to:divr16u::@1
|
|
divr16u::@1: scope:[divr16u] from divr16u divr16u::@3
|
|
(byte) divr16u::i#5 ← phi( divr16u/(byte) divr16u::i#0 divr16u::@3/(byte) divr16u::i#1 )
|
|
(word) divr16u::divisor#3 ← phi( divr16u/(word) divr16u::divisor#5 divr16u::@3/(word) divr16u::divisor#6 )
|
|
(word) divr16u::quotient#6 ← phi( divr16u/(word) divr16u::quotient#0 divr16u::@3/(word) divr16u::quotient#8 )
|
|
(word) divr16u::dividend#2 ← phi( divr16u/(word) divr16u::dividend#4 divr16u::@3/(word) divr16u::dividend#5 )
|
|
(word) divr16u::rem#4 ← phi( divr16u/(word) divr16u::rem#8 divr16u::@3/(word) divr16u::rem#9 )
|
|
(word~) divr16u::$0 ← (word) divr16u::rem#4 << (byte/signed byte/word/signed word/dword/signed dword) 1
|
|
(word) divr16u::rem#0 ← (word~) divr16u::$0
|
|
(byte~) divr16u::$1 ← > (word) divr16u::dividend#2
|
|
(byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80
|
|
(bool~) divr16u::$3 ← (byte~) divr16u::$2 != (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
(bool~) divr16u::$4 ← ! (bool~) divr16u::$3
|
|
if((bool~) divr16u::$4) goto divr16u::@2
|
|
to:divr16u::@4
|
|
divr16u::@2: scope:[divr16u] from divr16u::@1 divr16u::@4
|
|
(byte) divr16u::i#3 ← phi( divr16u::@1/(byte) divr16u::i#5 divr16u::@4/(byte) divr16u::i#6 )
|
|
(word) divr16u::divisor#1 ← phi( divr16u::@1/(word) divr16u::divisor#3 divr16u::@4/(word) divr16u::divisor#4 )
|
|
(word) divr16u::rem#5 ← phi( divr16u::@1/(word) divr16u::rem#0 divr16u::@4/(word) divr16u::rem#1 )
|
|
(word) divr16u::quotient#3 ← phi( divr16u::@1/(word) divr16u::quotient#6 divr16u::@4/(word) divr16u::quotient#7 )
|
|
(word) divr16u::dividend#3 ← phi( divr16u::@1/(word) divr16u::dividend#2 divr16u::@4/(word) divr16u::dividend#6 )
|
|
(word~) divr16u::$6 ← (word) divr16u::dividend#3 << (byte/signed byte/word/signed word/dword/signed dword) 1
|
|
(word) divr16u::dividend#0 ← (word~) divr16u::$6
|
|
(word~) divr16u::$7 ← (word) divr16u::quotient#3 << (byte/signed byte/word/signed word/dword/signed dword) 1
|
|
(word) divr16u::quotient#1 ← (word~) divr16u::$7
|
|
(bool~) divr16u::$8 ← (word) divr16u::rem#5 >= (word) divr16u::divisor#1
|
|
(bool~) divr16u::$9 ← ! (bool~) divr16u::$8
|
|
if((bool~) divr16u::$9) goto divr16u::@3
|
|
to:divr16u::@5
|
|
divr16u::@4: scope:[divr16u] from divr16u::@1
|
|
(byte) divr16u::i#6 ← phi( divr16u::@1/(byte) divr16u::i#5 )
|
|
(word) divr16u::divisor#4 ← phi( divr16u::@1/(word) divr16u::divisor#3 )
|
|
(word) divr16u::quotient#7 ← phi( divr16u::@1/(word) divr16u::quotient#6 )
|
|
(word) divr16u::dividend#6 ← phi( divr16u::@1/(word) divr16u::dividend#2 )
|
|
(word) divr16u::rem#6 ← phi( divr16u::@1/(word) divr16u::rem#0 )
|
|
(word/dword~) divr16u::$5 ← (word) divr16u::rem#6 | (byte/signed byte/word/signed word/dword/signed dword) 1
|
|
(word) divr16u::rem#1 ← (word/dword~) divr16u::$5
|
|
to:divr16u::@2
|
|
divr16u::@3: scope:[divr16u] from divr16u::@2 divr16u::@5
|
|
(word) divr16u::divisor#6 ← phi( divr16u::@2/(word) divr16u::divisor#1 divr16u::@5/(word) divr16u::divisor#2 )
|
|
(word) divr16u::quotient#8 ← phi( divr16u::@2/(word) divr16u::quotient#1 divr16u::@5/(word) divr16u::quotient#2 )
|
|
(word) divr16u::dividend#5 ← phi( divr16u::@2/(word) divr16u::dividend#0 divr16u::@5/(word) divr16u::dividend#7 )
|
|
(word) divr16u::rem#9 ← phi( divr16u::@2/(word) divr16u::rem#5 divr16u::@5/(word) divr16u::rem#2 )
|
|
(byte) divr16u::i#2 ← phi( divr16u::@2/(byte) divr16u::i#3 divr16u::@5/(byte) divr16u::i#4 )
|
|
(byte) divr16u::i#1 ← (byte) divr16u::i#2 + rangenext(0,$f)
|
|
(bool~) divr16u::$11 ← (byte) divr16u::i#1 != rangelast(0,$f)
|
|
if((bool~) divr16u::$11) goto divr16u::@1
|
|
to:divr16u::@6
|
|
divr16u::@5: scope:[divr16u] from divr16u::@2
|
|
(word) divr16u::dividend#7 ← phi( divr16u::@2/(word) divr16u::dividend#0 )
|
|
(byte) divr16u::i#4 ← phi( divr16u::@2/(byte) divr16u::i#3 )
|
|
(word) divr16u::divisor#2 ← phi( divr16u::@2/(word) divr16u::divisor#1 )
|
|
(word) divr16u::rem#7 ← phi( divr16u::@2/(word) divr16u::rem#5 )
|
|
(word) divr16u::quotient#4 ← phi( divr16u::@2/(word) divr16u::quotient#1 )
|
|
(word) divr16u::quotient#2 ← ++ (word) divr16u::quotient#4
|
|
(word~) divr16u::$10 ← (word) divr16u::rem#7 - (word) divr16u::divisor#2
|
|
(word) divr16u::rem#2 ← (word~) divr16u::$10
|
|
to:divr16u::@3
|
|
divr16u::@6: scope:[divr16u] from divr16u::@3
|
|
(word) divr16u::quotient#5 ← phi( divr16u::@3/(word) divr16u::quotient#8 )
|
|
(word) divr16u::return#0 ← (word) divr16u::quotient#5
|
|
to:divr16u::@return
|
|
divr16u::@return: scope:[divr16u] from divr16u::@6
|
|
(word) divr16u::return#3 ← phi( divr16u::@6/(word) divr16u::return#0 )
|
|
(word) divr16u::return#1 ← (word) divr16u::return#3
|
|
return
|
|
to:@return
|
|
div16u: scope:[div16u] from main::@2
|
|
(word) div16u::divisor#1 ← phi( main::@2/(word) div16u::divisor#0 )
|
|
(word) div16u::dividend#1 ← phi( main::@2/(word) div16u::dividend#0 )
|
|
(word) divr16u::dividend#1 ← (word) div16u::dividend#1
|
|
(word) divr16u::divisor#0 ← (word) div16u::divisor#1
|
|
(word) divr16u::rem#3 ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
call divr16u
|
|
(word) divr16u::return#2 ← (word) divr16u::return#1
|
|
to:div16u::@2
|
|
div16u::@2: scope:[div16u] from div16u
|
|
(word) divr16u::return#4 ← phi( div16u/(word) divr16u::return#2 )
|
|
(word~) div16u::$0 ← (word) divr16u::return#4
|
|
(word) div16u::return#0 ← (word~) div16u::$0
|
|
to:div16u::@return
|
|
div16u::@return: scope:[div16u] from div16u::@2
|
|
(word) div16u::return#3 ← phi( div16u::@2/(word) div16u::return#0 )
|
|
(word) div16u::return#1 ← (word) div16u::return#3
|
|
return
|
|
to:@return
|
|
@8: scope:[] from @begin
|
|
(byte*) zp1#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) $61
|
|
(byte*) zp2#0 ← ((byte*)) (byte/signed byte/word/signed word/dword/signed dword) $62
|
|
(byte*) TIMEHI#0 ← ((byte*)) (byte/word/signed word/dword/signed dword) $a1
|
|
(byte*) TIMELO#0 ← ((byte*)) (byte/word/signed word/dword/signed dword) $a2
|
|
(byte*) VICBANK#0 ← ((byte*)) (word/dword/signed dword) $d018
|
|
(byte[$64]) strTemp#0 ← { fill( $64, 0) }
|
|
to:@14
|
|
append: scope:[append] from utoa::@5 utoa::@6 utoa::@7 utoa::@8
|
|
(word) append::sub#6 ← phi( utoa::@5/(word) append::sub#0 utoa::@6/(word) append::sub#1 utoa::@7/(word) append::sub#2 utoa::@8/(word) append::sub#3 )
|
|
(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 )
|
|
(byte*) append::dst#4 ← phi( utoa::@5/(byte*) append::dst#0 utoa::@6/(byte*) append::dst#1 utoa::@7/(byte*) append::dst#2 utoa::@8/(byte*) append::dst#3 )
|
|
*((byte*) append::dst#4) ← (byte) '0'
|
|
to:append::@1
|
|
append::@1: scope:[append] from append append::@2
|
|
(byte*) append::dst#6 ← phi( append/(byte*) append::dst#4 append::@2/(byte*) append::dst#5 )
|
|
(word) append::sub#4 ← phi( append/(word) append::sub#6 append::@2/(word) append::sub#5 )
|
|
(word) append::value#5 ← phi( append/(word) append::value#8 append::@2/(word) append::value#0 )
|
|
(bool~) append::$0 ← (word) append::value#5 >= (word) append::sub#4
|
|
if((bool~) append::$0) goto append::@2
|
|
to:append::@3
|
|
append::@2: scope:[append] from append::@1
|
|
(word) append::sub#5 ← phi( append::@1/(word) append::sub#4 )
|
|
(word) append::value#6 ← phi( append::@1/(word) append::value#5 )
|
|
(byte*) append::dst#5 ← phi( append::@1/(byte*) append::dst#6 )
|
|
*((byte*) append::dst#5) ← ++ *((byte*) append::dst#5)
|
|
(word) append::value#0 ← (word) append::value#6 - (word) append::sub#5
|
|
to:append::@1
|
|
append::@3: scope:[append] from append::@1
|
|
(word) append::value#7 ← phi( append::@1/(word) append::value#5 )
|
|
(word) append::return#0 ← (word) append::value#7
|
|
to:append::@return
|
|
append::@return: scope:[append] from append::@3
|
|
(word) append::return#6 ← phi( append::@3/(word) append::return#0 )
|
|
(word) append::return#1 ← (word) append::return#6
|
|
return
|
|
to:@return
|
|
utoa: scope:[utoa] from myprintf::@7
|
|
(byte*) utoa::dst#15 ← phi( myprintf::@7/(byte*) utoa::dst#5 )
|
|
(word) utoa::value#5 ← phi( myprintf::@7/(word) utoa::value#4 )
|
|
(byte) utoa::bStarted#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
(bool~) utoa::$0 ← (byte) utoa::bStarted#0 == (byte/signed byte/word/signed word/dword/signed dword) 1
|
|
(bool~) utoa::$1 ← (word) utoa::value#5 >= (word/signed word/dword/signed dword) $2710
|
|
(bool~) utoa::$2 ← (bool~) utoa::$0 || (bool~) utoa::$1
|
|
(bool~) utoa::$3 ← ! (bool~) utoa::$2
|
|
if((bool~) utoa::$3) goto utoa::@1
|
|
to:utoa::@5
|
|
utoa::@1: scope:[utoa] from utoa utoa::@9
|
|
(byte*) utoa::dst#16 ← phi( utoa/(byte*) utoa::dst#15 utoa::@9/(byte*) utoa::dst#0 )
|
|
(word) utoa::value#6 ← phi( utoa/(word) utoa::value#5 utoa::@9/(word) utoa::value#0 )
|
|
(byte) utoa::bStarted#5 ← phi( utoa/(byte) utoa::bStarted#0 utoa::@9/(byte) utoa::bStarted#1 )
|
|
(bool~) utoa::$4 ← (byte) utoa::bStarted#5 == (byte/signed byte/word/signed word/dword/signed dword) 1
|
|
(bool~) utoa::$5 ← (word) utoa::value#6 >= (word/signed word/dword/signed dword) $3e8
|
|
(bool~) utoa::$6 ← (bool~) utoa::$4 || (bool~) utoa::$5
|
|
(bool~) utoa::$7 ← ! (bool~) utoa::$6
|
|
if((bool~) utoa::$7) goto utoa::@2
|
|
to:utoa::@6
|
|
utoa::@5: scope:[utoa] from utoa
|
|
(word) utoa::value#7 ← phi( utoa/(word) utoa::value#5 )
|
|
(byte*) utoa::dst#6 ← phi( utoa/(byte*) utoa::dst#15 )
|
|
(byte*) append::dst#0 ← (byte*) utoa::dst#6
|
|
(word) append::value#1 ← (word) utoa::value#7
|
|
(word) append::sub#0 ← (word/signed word/dword/signed dword) $2710
|
|
call append
|
|
(word) append::return#2 ← (word) append::return#1
|
|
to:utoa::@9
|
|
utoa::@9: scope:[utoa] from utoa::@5
|
|
(byte*) utoa::dst#7 ← phi( utoa::@5/(byte*) utoa::dst#6 )
|
|
(word) append::return#7 ← phi( utoa::@5/(word) append::return#2 )
|
|
(word~) utoa::$18 ← (word) append::return#7
|
|
(word) utoa::value#0 ← (word~) utoa::$18
|
|
(byte*) utoa::dst#0 ← ++ (byte*) utoa::dst#7
|
|
(byte) utoa::bStarted#1 ← (byte/signed byte/word/signed word/dword/signed dword) 1
|
|
to:utoa::@1
|
|
utoa::@2: scope:[utoa] from utoa::@1 utoa::@10
|
|
(byte*) utoa::dst#17 ← phi( utoa::@1/(byte*) utoa::dst#16 utoa::@10/(byte*) utoa::dst#1 )
|
|
(word) utoa::value#8 ← phi( utoa::@1/(word) utoa::value#6 utoa::@10/(word) utoa::value#1 )
|
|
(byte) utoa::bStarted#6 ← phi( utoa::@1/(byte) utoa::bStarted#5 utoa::@10/(byte) utoa::bStarted#2 )
|
|
(bool~) utoa::$8 ← (byte) utoa::bStarted#6 == (byte/signed byte/word/signed word/dword/signed dword) 1
|
|
(bool~) utoa::$9 ← (word) utoa::value#8 >= (byte/signed byte/word/signed word/dword/signed dword) $64
|
|
(bool~) utoa::$10 ← (bool~) utoa::$8 || (bool~) utoa::$9
|
|
(bool~) utoa::$11 ← ! (bool~) utoa::$10
|
|
if((bool~) utoa::$11) goto utoa::@3
|
|
to:utoa::@7
|
|
utoa::@6: scope:[utoa] from utoa::@1
|
|
(word) utoa::value#9 ← phi( utoa::@1/(word) utoa::value#6 )
|
|
(byte*) utoa::dst#8 ← phi( utoa::@1/(byte*) utoa::dst#16 )
|
|
(byte*) append::dst#1 ← (byte*) utoa::dst#8
|
|
(word) append::value#2 ← (word) utoa::value#9
|
|
(word) append::sub#1 ← (word/signed word/dword/signed dword) $3e8
|
|
call append
|
|
(word) append::return#3 ← (word) append::return#1
|
|
to:utoa::@10
|
|
utoa::@10: scope:[utoa] from utoa::@6
|
|
(byte*) utoa::dst#9 ← phi( utoa::@6/(byte*) utoa::dst#8 )
|
|
(word) append::return#8 ← phi( utoa::@6/(word) append::return#3 )
|
|
(word~) utoa::$19 ← (word) append::return#8
|
|
(word) utoa::value#1 ← (word~) utoa::$19
|
|
(byte*) utoa::dst#1 ← ++ (byte*) utoa::dst#9
|
|
(byte) utoa::bStarted#2 ← (byte/signed byte/word/signed word/dword/signed dword) 1
|
|
to:utoa::@2
|
|
utoa::@3: scope:[utoa] from utoa::@11 utoa::@2
|
|
(byte*) utoa::dst#18 ← phi( utoa::@11/(byte*) utoa::dst#2 utoa::@2/(byte*) utoa::dst#17 )
|
|
(word) utoa::value#10 ← phi( utoa::@11/(word) utoa::value#2 utoa::@2/(word) utoa::value#8 )
|
|
(byte) utoa::bStarted#7 ← phi( utoa::@11/(byte) utoa::bStarted#3 utoa::@2/(byte) utoa::bStarted#6 )
|
|
(bool~) utoa::$12 ← (byte) utoa::bStarted#7 == (byte/signed byte/word/signed word/dword/signed dword) 1
|
|
(bool~) utoa::$13 ← (word) utoa::value#10 >= (byte/signed byte/word/signed word/dword/signed dword) $a
|
|
(bool~) utoa::$14 ← (bool~) utoa::$12 || (bool~) utoa::$13
|
|
(bool~) utoa::$15 ← ! (bool~) utoa::$14
|
|
if((bool~) utoa::$15) goto utoa::@4
|
|
to:utoa::@8
|
|
utoa::@7: scope:[utoa] from utoa::@2
|
|
(word) utoa::value#11 ← phi( utoa::@2/(word) utoa::value#8 )
|
|
(byte*) utoa::dst#10 ← phi( utoa::@2/(byte*) utoa::dst#17 )
|
|
(byte*) append::dst#2 ← (byte*) utoa::dst#10
|
|
(word) append::value#3 ← (word) utoa::value#11
|
|
(word) append::sub#2 ← (byte/signed byte/word/signed word/dword/signed dword) $64
|
|
call append
|
|
(word) append::return#4 ← (word) append::return#1
|
|
to:utoa::@11
|
|
utoa::@11: scope:[utoa] from utoa::@7
|
|
(byte*) utoa::dst#11 ← phi( utoa::@7/(byte*) utoa::dst#10 )
|
|
(word) append::return#9 ← phi( utoa::@7/(word) append::return#4 )
|
|
(word~) utoa::$20 ← (word) append::return#9
|
|
(word) utoa::value#2 ← (word~) utoa::$20
|
|
(byte*) utoa::dst#2 ← ++ (byte*) utoa::dst#11
|
|
(byte) utoa::bStarted#3 ← (byte/signed byte/word/signed word/dword/signed dword) 1
|
|
to:utoa::@3
|
|
utoa::@4: scope:[utoa] from utoa::@12 utoa::@3
|
|
(byte*) utoa::dst#12 ← phi( utoa::@12/(byte*) utoa::dst#4 utoa::@3/(byte*) utoa::dst#18 )
|
|
(word) utoa::value#12 ← phi( utoa::@12/(word) utoa::value#3 utoa::@3/(word) utoa::value#10 )
|
|
(byte~) utoa::$16 ← ((byte)) (word) utoa::value#12
|
|
(byte~) utoa::$17 ← (byte) '0' + (byte~) utoa::$16
|
|
*((byte*) utoa::dst#12) ← (byte~) utoa::$17
|
|
(byte*) utoa::dst#3 ← ++ (byte*) utoa::dst#12
|
|
*((byte*) utoa::dst#3) ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
to:utoa::@return
|
|
utoa::@8: scope:[utoa] from utoa::@3
|
|
(word) utoa::value#13 ← phi( utoa::@3/(word) utoa::value#10 )
|
|
(byte*) utoa::dst#13 ← phi( utoa::@3/(byte*) utoa::dst#18 )
|
|
(byte*) append::dst#3 ← (byte*) utoa::dst#13
|
|
(word) append::value#4 ← (word) utoa::value#13
|
|
(word) append::sub#3 ← (byte/signed byte/word/signed word/dword/signed dword) $a
|
|
call append
|
|
(word) append::return#5 ← (word) append::return#1
|
|
to:utoa::@12
|
|
utoa::@12: scope:[utoa] from utoa::@8
|
|
(byte*) utoa::dst#14 ← phi( utoa::@8/(byte*) utoa::dst#13 )
|
|
(word) append::return#10 ← phi( utoa::@8/(word) append::return#5 )
|
|
(word~) utoa::$21 ← (word) append::return#10
|
|
(word) utoa::value#3 ← (word~) utoa::$21
|
|
(byte*) utoa::dst#4 ← ++ (byte*) utoa::dst#14
|
|
(byte) utoa::bStarted#4 ← (byte/signed byte/word/signed word/dword/signed dword) 1
|
|
to:utoa::@4
|
|
utoa::@return: scope:[utoa] from utoa::@4
|
|
return
|
|
to:@return
|
|
myprintf: scope:[myprintf] from main::@3 main::@7
|
|
(word) myprintf::w3#7 ← phi( main::@3/(word) myprintf::w3#0 main::@7/(word) myprintf::w3#1 )
|
|
(word) myprintf::w2#7 ← phi( main::@3/(word) myprintf::w2#0 main::@7/(word) myprintf::w2#1 )
|
|
(word) myprintf::w1#6 ← phi( main::@3/(word) myprintf::w1#0 main::@7/(word) myprintf::w1#1 )
|
|
(byte*) myprintf::dst#42 ← phi( main::@3/(byte*) myprintf::dst#0 main::@7/(byte*) myprintf::dst#1 )
|
|
(byte*) myprintf::str#5 ← phi( main::@3/(byte*) myprintf::str#1 main::@7/(byte*) myprintf::str#2 )
|
|
(byte) myprintf::bArg#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
(byte) myprintf::bFormat#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
(byte) myprintf::bLen#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
(byte) myprintf::bLeadZero#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
(byte) myprintf::bDigits#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
(byte) myprintf::bTrailing#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
(byte) myprintf::b#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
(byte) myprintf::digit#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
(byte[6]) myprintf::buf6#0 ← { fill( 6, 0) }
|
|
(word) myprintf::w#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
to:myprintf::@1
|
|
myprintf::@1: scope:[myprintf] from myprintf myprintf::@52
|
|
(byte) myprintf::bLeadZero#17 ← phi( myprintf/(byte) myprintf::bLeadZero#0 myprintf::@52/(byte) myprintf::bLeadZero#18 )
|
|
(byte) myprintf::bDigits#23 ← phi( myprintf/(byte) myprintf::bDigits#0 myprintf::@52/(byte) myprintf::bDigits#24 )
|
|
(byte) myprintf::bTrailing#20 ← phi( myprintf/(byte) myprintf::bTrailing#0 myprintf::@52/(byte) myprintf::bTrailing#21 )
|
|
(word) myprintf::w#16 ← phi( myprintf/(word) myprintf::w#0 myprintf::@52/(word) myprintf::w#17 )
|
|
(word) myprintf::w3#6 ← phi( myprintf/(word) myprintf::w3#7 myprintf::@52/(word) myprintf::w3#8 )
|
|
(word) myprintf::w2#6 ← phi( myprintf/(word) myprintf::w2#7 myprintf::@52/(word) myprintf::w2#8 )
|
|
(word) myprintf::w1#5 ← phi( myprintf/(word) myprintf::w1#6 myprintf::@52/(word) myprintf::w1#7 )
|
|
(byte) myprintf::bLen#38 ← phi( myprintf/(byte) myprintf::bLen#0 myprintf::@52/(byte) myprintf::bLen#27 )
|
|
(byte*) myprintf::dst#32 ← phi( myprintf/(byte*) myprintf::dst#42 myprintf::@52/(byte*) myprintf::dst#21 )
|
|
(byte) myprintf::bArg#9 ← phi( myprintf/(byte) myprintf::bArg#0 myprintf::@52/(byte) myprintf::bArg#10 )
|
|
(byte) myprintf::bFormat#3 ← phi( myprintf/(byte) myprintf::bFormat#0 myprintf::@52/(byte) myprintf::bFormat#4 )
|
|
(byte*) myprintf::str#3 ← phi( myprintf/(byte*) myprintf::str#5 myprintf::@52/(byte*) myprintf::str#0 )
|
|
(byte) myprintf::b#1 ← *((byte*) myprintf::str#3)
|
|
(bool~) myprintf::$0 ← (byte) myprintf::bFormat#3 != (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
(bool~) myprintf::$1 ← ! (bool~) myprintf::$0
|
|
if((bool~) myprintf::$1) goto myprintf::@2
|
|
to:myprintf::@61
|
|
myprintf::@2: scope:[myprintf] from myprintf::@1
|
|
(byte) myprintf::bLeadZero#38 ← phi( myprintf::@1/(byte) myprintf::bLeadZero#17 )
|
|
(byte) myprintf::bDigits#42 ← phi( myprintf::@1/(byte) myprintf::bDigits#23 )
|
|
(byte) myprintf::bTrailing#40 ← phi( myprintf::@1/(byte) myprintf::bTrailing#20 )
|
|
(word) myprintf::w#33 ← phi( myprintf::@1/(word) myprintf::w#16 )
|
|
(byte) myprintf::bFormat#18 ← phi( myprintf::@1/(byte) myprintf::bFormat#3 )
|
|
(word) myprintf::w3#5 ← phi( myprintf::@1/(word) myprintf::w3#6 )
|
|
(word) myprintf::w2#5 ← phi( myprintf::@1/(word) myprintf::w2#6 )
|
|
(byte*) myprintf::str#30 ← phi( myprintf::@1/(byte*) myprintf::str#3 )
|
|
(word) myprintf::w1#4 ← phi( myprintf::@1/(word) myprintf::w1#5 )
|
|
(byte) myprintf::bLen#37 ← phi( myprintf::@1/(byte) myprintf::bLen#38 )
|
|
(byte*) myprintf::dst#31 ← phi( myprintf::@1/(byte*) myprintf::dst#32 )
|
|
(byte) myprintf::bArg#5 ← phi( myprintf::@1/(byte) myprintf::bArg#9 )
|
|
(byte) myprintf::b#7 ← phi( myprintf::@1/(byte) myprintf::b#1 )
|
|
(bool~) myprintf::$48 ← (byte) myprintf::b#7 == (byte) '%'
|
|
(bool~) myprintf::$49 ← ! (bool~) myprintf::$48
|
|
if((bool~) myprintf::$49) goto myprintf::@53
|
|
to:myprintf::@64
|
|
myprintf::@61: scope:[myprintf] from myprintf::@1
|
|
(byte) myprintf::bLeadZero#16 ← phi( myprintf::@1/(byte) myprintf::bLeadZero#17 )
|
|
(byte) myprintf::bDigits#22 ← phi( myprintf::@1/(byte) myprintf::bDigits#23 )
|
|
(byte) myprintf::bTrailing#19 ← phi( myprintf::@1/(byte) myprintf::bTrailing#20 )
|
|
(word) myprintf::w3#15 ← phi( myprintf::@1/(word) myprintf::w3#6 )
|
|
(word) myprintf::w2#15 ← phi( myprintf::@1/(word) myprintf::w2#6 )
|
|
(word) myprintf::w1#14 ← phi( myprintf::@1/(word) myprintf::w1#5 )
|
|
(byte) myprintf::bArg#16 ← phi( myprintf::@1/(byte) myprintf::bArg#9 )
|
|
(word) myprintf::w#15 ← phi( myprintf::@1/(word) myprintf::w#16 )
|
|
(byte) myprintf::bLen#39 ← phi( myprintf::@1/(byte) myprintf::bLen#38 )
|
|
(byte*) myprintf::dst#33 ← phi( myprintf::@1/(byte*) myprintf::dst#32 )
|
|
(byte) myprintf::bFormat#10 ← phi( myprintf::@1/(byte) myprintf::bFormat#3 )
|
|
(byte*) myprintf::str#12 ← phi( myprintf::@1/(byte*) myprintf::str#3 )
|
|
(byte) myprintf::b#8 ← phi( myprintf::@1/(byte) myprintf::b#1 )
|
|
(bool~) myprintf::$2 ← (byte) myprintf::b#8 == (byte) '0'
|
|
(bool~) myprintf::$3 ← ! (bool~) myprintf::$2
|
|
if((bool~) myprintf::$3) goto myprintf::@3
|
|
to:myprintf::@62
|
|
myprintf::@3: scope:[myprintf] from myprintf::@61
|
|
(byte) myprintf::bLeadZero#15 ← phi( myprintf::@61/(byte) myprintf::bLeadZero#16 )
|
|
(word) myprintf::w3#16 ← phi( myprintf::@61/(word) myprintf::w3#15 )
|
|
(word) myprintf::w2#16 ← phi( myprintf::@61/(word) myprintf::w2#15 )
|
|
(byte) myprintf::bDigits#21 ← phi( myprintf::@61/(byte) myprintf::bDigits#22 )
|
|
(byte) myprintf::bTrailing#18 ← phi( myprintf::@61/(byte) myprintf::bTrailing#19 )
|
|
(word) myprintf::w1#15 ← phi( myprintf::@61/(word) myprintf::w1#14 )
|
|
(byte) myprintf::bArg#17 ← phi( myprintf::@61/(byte) myprintf::bArg#16 )
|
|
(byte) myprintf::bFormat#11 ← phi( myprintf::@61/(byte) myprintf::bFormat#10 )
|
|
(byte) myprintf::bLen#40 ← phi( myprintf::@61/(byte) myprintf::bLen#39 )
|
|
(byte*) myprintf::dst#34 ← phi( myprintf::@61/(byte*) myprintf::dst#33 )
|
|
(word) myprintf::w#14 ← phi( myprintf::@61/(word) myprintf::w#15 )
|
|
(byte*) myprintf::str#13 ← phi( myprintf::@61/(byte*) myprintf::str#12 )
|
|
(byte) myprintf::b#9 ← phi( myprintf::@61/(byte) myprintf::b#8 )
|
|
(bool~) myprintf::$4 ← (byte) myprintf::b#9 >= (byte) '1'
|
|
(bool~) myprintf::$5 ← (byte) myprintf::b#9 <= (byte) '9'
|
|
(bool~) myprintf::$6 ← (bool~) myprintf::$4 && (bool~) myprintf::$5
|
|
(bool~) myprintf::$7 ← ! (bool~) myprintf::$6
|
|
if((bool~) myprintf::$7) goto myprintf::@4
|
|
to:myprintf::@41
|
|
myprintf::@62: scope:[myprintf] from myprintf::@61
|
|
(byte) myprintf::bDigits#29 ← phi( myprintf::@61/(byte) myprintf::bDigits#22 )
|
|
(byte) myprintf::bTrailing#26 ← phi( myprintf::@61/(byte) myprintf::bTrailing#19 )
|
|
(word) myprintf::w#23 ← phi( myprintf::@61/(word) myprintf::w#15 )
|
|
(word) myprintf::w3#14 ← phi( myprintf::@61/(word) myprintf::w3#15 )
|
|
(word) myprintf::w2#14 ← phi( myprintf::@61/(word) myprintf::w2#15 )
|
|
(word) myprintf::w1#13 ← phi( myprintf::@61/(word) myprintf::w1#14 )
|
|
(byte) myprintf::bArg#15 ← phi( myprintf::@61/(byte) myprintf::bArg#16 )
|
|
(byte) myprintf::bLen#32 ← phi( myprintf::@61/(byte) myprintf::bLen#39 )
|
|
(byte*) myprintf::dst#26 ← phi( myprintf::@61/(byte*) myprintf::dst#33 )
|
|
(byte) myprintf::bFormat#9 ← phi( myprintf::@61/(byte) myprintf::bFormat#10 )
|
|
(byte*) myprintf::str#11 ← phi( myprintf::@61/(byte*) myprintf::str#12 )
|
|
(byte) myprintf::bLeadZero#1 ← (byte/signed byte/word/signed word/dword/signed dword) 1
|
|
to:myprintf::@52
|
|
myprintf::@52: scope:[myprintf] from myprintf::@40 myprintf::@41 myprintf::@43 myprintf::@57 myprintf::@60 myprintf::@62
|
|
(byte) myprintf::bLeadZero#18 ← phi( myprintf::@40/(byte) myprintf::bLeadZero#19 myprintf::@41/(byte) myprintf::bLeadZero#20 myprintf::@43/(byte) myprintf::bLeadZero#21 myprintf::@57/(byte) myprintf::bLeadZero#22 myprintf::@60/(byte) myprintf::bLeadZero#23 myprintf::@62/(byte) myprintf::bLeadZero#1 )
|
|
(byte) myprintf::bDigits#24 ← phi( myprintf::@40/(byte) myprintf::bDigits#25 myprintf::@41/(byte) myprintf::bDigits#1 myprintf::@43/(byte) myprintf::bDigits#26 myprintf::@57/(byte) myprintf::bDigits#27 myprintf::@60/(byte) myprintf::bDigits#28 myprintf::@62/(byte) myprintf::bDigits#29 )
|
|
(byte) myprintf::bTrailing#21 ← phi( myprintf::@40/(byte) myprintf::bTrailing#22 myprintf::@41/(byte) myprintf::bTrailing#23 myprintf::@43/(byte) myprintf::bTrailing#1 myprintf::@57/(byte) myprintf::bTrailing#24 myprintf::@60/(byte) myprintf::bTrailing#25 myprintf::@62/(byte) myprintf::bTrailing#26 )
|
|
(word) myprintf::w#17 ← phi( myprintf::@40/(word) myprintf::w#18 myprintf::@41/(word) myprintf::w#19 myprintf::@43/(word) myprintf::w#20 myprintf::@57/(word) myprintf::w#21 myprintf::@60/(word) myprintf::w#22 myprintf::@62/(word) myprintf::w#23 )
|
|
(word) myprintf::w3#8 ← phi( myprintf::@40/(word) myprintf::w3#9 myprintf::@41/(word) myprintf::w3#10 myprintf::@43/(word) myprintf::w3#11 myprintf::@57/(word) myprintf::w3#12 myprintf::@60/(word) myprintf::w3#13 myprintf::@62/(word) myprintf::w3#14 )
|
|
(word) myprintf::w2#8 ← phi( myprintf::@40/(word) myprintf::w2#9 myprintf::@41/(word) myprintf::w2#10 myprintf::@43/(word) myprintf::w2#11 myprintf::@57/(word) myprintf::w2#12 myprintf::@60/(word) myprintf::w2#13 myprintf::@62/(word) myprintf::w2#14 )
|
|
(word) myprintf::w1#7 ← phi( myprintf::@40/(word) myprintf::w1#8 myprintf::@41/(word) myprintf::w1#9 myprintf::@43/(word) myprintf::w1#10 myprintf::@57/(word) myprintf::w1#11 myprintf::@60/(word) myprintf::w1#12 myprintf::@62/(word) myprintf::w1#13 )
|
|
(byte) myprintf::bArg#10 ← phi( myprintf::@40/(byte) myprintf::bArg#11 myprintf::@41/(byte) myprintf::bArg#12 myprintf::@43/(byte) myprintf::bArg#13 myprintf::@57/(byte) myprintf::bArg#1 myprintf::@60/(byte) myprintf::bArg#14 myprintf::@62/(byte) myprintf::bArg#15 )
|
|
(byte) myprintf::bLen#27 ← phi( myprintf::@40/(byte) myprintf::bLen#28 myprintf::@41/(byte) myprintf::bLen#29 myprintf::@43/(byte) myprintf::bLen#30 myprintf::@57/(byte) myprintf::bLen#31 myprintf::@60/(byte) myprintf::bLen#7 myprintf::@62/(byte) myprintf::bLen#32 )
|
|
(byte*) myprintf::dst#21 ← phi( myprintf::@40/(byte*) myprintf::dst#22 myprintf::@41/(byte*) myprintf::dst#23 myprintf::@43/(byte*) myprintf::dst#24 myprintf::@57/(byte*) myprintf::dst#25 myprintf::@60/(byte*) myprintf::dst#8 myprintf::@62/(byte*) myprintf::dst#26 )
|
|
(byte) myprintf::bFormat#4 ← phi( myprintf::@40/(byte) myprintf::bFormat#1 myprintf::@41/(byte) myprintf::bFormat#5 myprintf::@43/(byte) myprintf::bFormat#6 myprintf::@57/(byte) myprintf::bFormat#7 myprintf::@60/(byte) myprintf::bFormat#8 myprintf::@62/(byte) myprintf::bFormat#9 )
|
|
(byte*) myprintf::str#4 ← phi( myprintf::@40/(byte*) myprintf::str#6 myprintf::@41/(byte*) myprintf::str#7 myprintf::@43/(byte*) myprintf::str#8 myprintf::@57/(byte*) myprintf::str#9 myprintf::@60/(byte*) myprintf::str#10 myprintf::@62/(byte*) myprintf::str#11 )
|
|
(byte*) myprintf::str#0 ← ++ (byte*) myprintf::str#4
|
|
(bool~) myprintf::$56 ← *((byte*) myprintf::str#0) != (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
if((bool~) myprintf::$56) goto myprintf::@1
|
|
to:myprintf::@69
|
|
myprintf::@4: scope:[myprintf] from myprintf::@3
|
|
(word) myprintf::w3#17 ← phi( myprintf::@3/(word) myprintf::w3#16 )
|
|
(word) myprintf::w2#17 ← phi( myprintf::@3/(word) myprintf::w2#16 )
|
|
(byte) myprintf::bLeadZero#14 ← phi( myprintf::@3/(byte) myprintf::bLeadZero#15 )
|
|
(word) myprintf::w1#16 ← phi( myprintf::@3/(word) myprintf::w1#15 )
|
|
(byte) myprintf::bDigits#20 ← phi( myprintf::@3/(byte) myprintf::bDigits#21 )
|
|
(byte) myprintf::bTrailing#17 ← phi( myprintf::@3/(byte) myprintf::bTrailing#18 )
|
|
(byte) myprintf::bArg#18 ← phi( myprintf::@3/(byte) myprintf::bArg#17 )
|
|
(byte) myprintf::bFormat#12 ← phi( myprintf::@3/(byte) myprintf::bFormat#11 )
|
|
(byte*) myprintf::str#14 ← phi( myprintf::@3/(byte*) myprintf::str#13 )
|
|
(byte) myprintf::bLen#33 ← phi( myprintf::@3/(byte) myprintf::bLen#40 )
|
|
(byte*) myprintf::dst#27 ← phi( myprintf::@3/(byte*) myprintf::dst#34 )
|
|
(word) myprintf::w#13 ← phi( myprintf::@3/(word) myprintf::w#14 )
|
|
(byte) myprintf::b#10 ← phi( myprintf::@3/(byte) myprintf::b#9 )
|
|
(bool~) myprintf::$9 ← (byte) myprintf::b#10 == (byte) '-'
|
|
(bool~) myprintf::$10 ← ! (bool~) myprintf::$9
|
|
if((bool~) myprintf::$10) goto myprintf::@5
|
|
to:myprintf::@43
|
|
myprintf::@41: scope:[myprintf] from myprintf::@3
|
|
(byte) myprintf::bLeadZero#20 ← phi( myprintf::@3/(byte) myprintf::bLeadZero#15 )
|
|
(byte) myprintf::bTrailing#23 ← phi( myprintf::@3/(byte) myprintf::bTrailing#18 )
|
|
(word) myprintf::w#19 ← phi( myprintf::@3/(word) myprintf::w#14 )
|
|
(word) myprintf::w3#10 ← phi( myprintf::@3/(word) myprintf::w3#16 )
|
|
(word) myprintf::w2#10 ← phi( myprintf::@3/(word) myprintf::w2#16 )
|
|
(word) myprintf::w1#9 ← phi( myprintf::@3/(word) myprintf::w1#15 )
|
|
(byte) myprintf::bArg#12 ← phi( myprintf::@3/(byte) myprintf::bArg#17 )
|
|
(byte) myprintf::bLen#29 ← phi( myprintf::@3/(byte) myprintf::bLen#40 )
|
|
(byte*) myprintf::dst#23 ← phi( myprintf::@3/(byte*) myprintf::dst#34 )
|
|
(byte) myprintf::bFormat#5 ← phi( myprintf::@3/(byte) myprintf::bFormat#11 )
|
|
(byte*) myprintf::str#7 ← phi( myprintf::@3/(byte*) myprintf::str#13 )
|
|
(byte) myprintf::b#11 ← phi( myprintf::@3/(byte) myprintf::b#9 )
|
|
(byte~) myprintf::$8 ← (byte) myprintf::b#11 - (byte) '0'
|
|
(byte) myprintf::bDigits#1 ← (byte~) myprintf::$8
|
|
to:myprintf::@52
|
|
myprintf::@5: scope:[myprintf] from myprintf::@4
|
|
(word) myprintf::w3#27 ← phi( myprintf::@4/(word) myprintf::w3#17 )
|
|
(word) myprintf::w2#27 ← phi( myprintf::@4/(word) myprintf::w2#17 )
|
|
(word) myprintf::w1#26 ← phi( myprintf::@4/(word) myprintf::w1#16 )
|
|
(byte) myprintf::bLeadZero#13 ← phi( myprintf::@4/(byte) myprintf::bLeadZero#14 )
|
|
(byte) myprintf::bArg#26 ← phi( myprintf::@4/(byte) myprintf::bArg#18 )
|
|
(byte) myprintf::bDigits#19 ← phi( myprintf::@4/(byte) myprintf::bDigits#20 )
|
|
(byte) myprintf::bTrailing#15 ← phi( myprintf::@4/(byte) myprintf::bTrailing#17 )
|
|
(byte*) myprintf::str#25 ← phi( myprintf::@4/(byte*) myprintf::str#14 )
|
|
(byte) myprintf::bLen#16 ← phi( myprintf::@4/(byte) myprintf::bLen#33 )
|
|
(byte*) myprintf::dst#10 ← phi( myprintf::@4/(byte*) myprintf::dst#27 )
|
|
(word) myprintf::w#8 ← phi( myprintf::@4/(word) myprintf::w#13 )
|
|
(byte) myprintf::b#12 ← phi( myprintf::@4/(byte) myprintf::b#10 )
|
|
(bool~) myprintf::$11 ← (byte) myprintf::b#12 == (byte) 'c'
|
|
if((bool~) myprintf::$11) goto myprintf::@6
|
|
to:myprintf::@45
|
|
myprintf::@43: scope:[myprintf] from myprintf::@4
|
|
(byte) myprintf::bLeadZero#21 ← phi( myprintf::@4/(byte) myprintf::bLeadZero#14 )
|
|
(byte) myprintf::bDigits#26 ← phi( myprintf::@4/(byte) myprintf::bDigits#20 )
|
|
(word) myprintf::w#20 ← phi( myprintf::@4/(word) myprintf::w#13 )
|
|
(word) myprintf::w3#11 ← phi( myprintf::@4/(word) myprintf::w3#17 )
|
|
(word) myprintf::w2#11 ← phi( myprintf::@4/(word) myprintf::w2#17 )
|
|
(word) myprintf::w1#10 ← phi( myprintf::@4/(word) myprintf::w1#16 )
|
|
(byte) myprintf::bArg#13 ← phi( myprintf::@4/(byte) myprintf::bArg#18 )
|
|
(byte) myprintf::bLen#30 ← phi( myprintf::@4/(byte) myprintf::bLen#33 )
|
|
(byte*) myprintf::dst#24 ← phi( myprintf::@4/(byte*) myprintf::dst#27 )
|
|
(byte) myprintf::bFormat#6 ← phi( myprintf::@4/(byte) myprintf::bFormat#12 )
|
|
(byte*) myprintf::str#8 ← phi( myprintf::@4/(byte*) myprintf::str#14 )
|
|
(byte) myprintf::bTrailing#1 ← (byte/signed byte/word/signed word/dword/signed dword) 1
|
|
to:myprintf::@52
|
|
myprintf::@6: scope:[myprintf] from myprintf::@5
|
|
(byte) myprintf::bLeadZero#27 ← phi( myprintf::@5/(byte) myprintf::bLeadZero#13 )
|
|
(byte) myprintf::bDigits#32 ← phi( myprintf::@5/(byte) myprintf::bDigits#19 )
|
|
(byte) myprintf::bTrailing#30 ← phi( myprintf::@5/(byte) myprintf::bTrailing#15 )
|
|
(word) myprintf::w3#21 ← phi( myprintf::@5/(word) myprintf::w3#27 )
|
|
(word) myprintf::w2#21 ← phi( myprintf::@5/(word) myprintf::w2#27 )
|
|
(word) myprintf::w1#20 ← phi( myprintf::@5/(word) myprintf::w1#26 )
|
|
(byte) myprintf::bArg#22 ← phi( myprintf::@5/(byte) myprintf::bArg#26 )
|
|
(byte*) myprintf::str#18 ← phi( myprintf::@5/(byte*) myprintf::str#25 )
|
|
(byte) myprintf::bLen#8 ← phi( myprintf::@5/(byte) myprintf::bLen#16 )
|
|
(byte*) myprintf::dst#2 ← phi( myprintf::@5/(byte*) myprintf::dst#10 )
|
|
(word) myprintf::w#4 ← phi( myprintf::@5/(word) myprintf::w#8 )
|
|
(byte~) myprintf::$47 ← ((byte)) (word) myprintf::w#4
|
|
*((byte*) myprintf::dst#2 + (byte) myprintf::bLen#8) ← (byte~) myprintf::$47
|
|
(byte) myprintf::bLen#1 ← ++ (byte) myprintf::bLen#8
|
|
to:myprintf::@40
|
|
myprintf::@45: scope:[myprintf] from myprintf::@5
|
|
(word) myprintf::w3#32 ← phi( myprintf::@5/(word) myprintf::w3#27 )
|
|
(word) myprintf::w2#32 ← phi( myprintf::@5/(word) myprintf::w2#27 )
|
|
(word) myprintf::w1#32 ← phi( myprintf::@5/(word) myprintf::w1#26 )
|
|
(byte) myprintf::bArg#31 ← phi( myprintf::@5/(byte) myprintf::bArg#26 )
|
|
(byte) myprintf::bLeadZero#12 ← phi( myprintf::@5/(byte) myprintf::bLeadZero#13 )
|
|
(byte) myprintf::bLen#48 ← phi( myprintf::@5/(byte) myprintf::bLen#16 )
|
|
(byte*) myprintf::dst#43 ← phi( myprintf::@5/(byte*) myprintf::dst#10 )
|
|
(byte*) myprintf::str#33 ← phi( myprintf::@5/(byte*) myprintf::str#25 )
|
|
(byte) myprintf::bDigits#18 ← phi( myprintf::@5/(byte) myprintf::bDigits#19 )
|
|
(byte) myprintf::bTrailing#12 ← phi( myprintf::@5/(byte) myprintf::bTrailing#15 )
|
|
(word) myprintf::w#9 ← phi( myprintf::@5/(word) myprintf::w#8 )
|
|
(byte) myprintf::b#13 ← phi( myprintf::@5/(byte) myprintf::b#12 )
|
|
(bool~) myprintf::$12 ← (byte) myprintf::b#13 == (byte) 'd'
|
|
if((bool~) myprintf::$12) goto myprintf::@7
|
|
to:myprintf::@46
|
|
myprintf::@7: scope:[myprintf] from myprintf::@45
|
|
(word) myprintf::w3#47 ← phi( myprintf::@45/(word) myprintf::w3#32 )
|
|
(word) myprintf::w2#47 ← phi( myprintf::@45/(word) myprintf::w2#32 )
|
|
(word) myprintf::w1#47 ← phi( myprintf::@45/(word) myprintf::w1#32 )
|
|
(byte) myprintf::bArg#46 ← phi( myprintf::@45/(byte) myprintf::bArg#31 )
|
|
(byte*) myprintf::str#48 ← phi( myprintf::@45/(byte*) myprintf::str#33 )
|
|
(byte) myprintf::bLen#53 ← phi( myprintf::@45/(byte) myprintf::bLen#48 )
|
|
(byte*) myprintf::dst#48 ← phi( myprintf::@45/(byte*) myprintf::dst#43 )
|
|
(byte) myprintf::bLeadZero#11 ← phi( myprintf::@45/(byte) myprintf::bLeadZero#12 )
|
|
(byte) myprintf::bDigits#17 ← phi( myprintf::@45/(byte) myprintf::bDigits#18 )
|
|
(byte) myprintf::bTrailing#10 ← phi( myprintf::@45/(byte) myprintf::bTrailing#12 )
|
|
(word) myprintf::w#5 ← phi( myprintf::@45/(word) myprintf::w#9 )
|
|
(word) utoa::value#4 ← (word) myprintf::w#5
|
|
(byte*) utoa::dst#5 ← (byte[6]) myprintf::buf6#0
|
|
call utoa
|
|
to:myprintf::@71
|
|
myprintf::@71: scope:[myprintf] from myprintf::@7
|
|
(word) myprintf::w#42 ← phi( myprintf::@7/(word) myprintf::w#5 )
|
|
(word) myprintf::w3#45 ← phi( myprintf::@7/(word) myprintf::w3#47 )
|
|
(word) myprintf::w2#45 ← phi( myprintf::@7/(word) myprintf::w2#47 )
|
|
(word) myprintf::w1#45 ← phi( myprintf::@7/(word) myprintf::w1#47 )
|
|
(byte) myprintf::bArg#44 ← phi( myprintf::@7/(byte) myprintf::bArg#46 )
|
|
(byte*) myprintf::str#46 ← phi( myprintf::@7/(byte*) myprintf::str#48 )
|
|
(byte) myprintf::bLen#50 ← phi( myprintf::@7/(byte) myprintf::bLen#53 )
|
|
(byte*) myprintf::dst#45 ← phi( myprintf::@7/(byte*) myprintf::dst#48 )
|
|
(byte) myprintf::bLeadZero#10 ← phi( myprintf::@7/(byte) myprintf::bLeadZero#11 )
|
|
(byte) myprintf::bDigits#14 ← phi( myprintf::@7/(byte) myprintf::bDigits#17 )
|
|
(byte) myprintf::bTrailing#8 ← phi( myprintf::@7/(byte) myprintf::bTrailing#10 )
|
|
(byte) myprintf::b#2 ← (byte/signed byte/word/signed word/dword/signed dword) 1
|
|
to:myprintf::@19
|
|
myprintf::@46: scope:[myprintf] from myprintf::@45
|
|
(byte) myprintf::bLeadZero#34 ← phi( myprintf::@45/(byte) myprintf::bLeadZero#12 )
|
|
(byte) myprintf::bDigits#39 ← phi( myprintf::@45/(byte) myprintf::bDigits#18 )
|
|
(byte) myprintf::bTrailing#37 ← phi( myprintf::@45/(byte) myprintf::bTrailing#12 )
|
|
(word) myprintf::w3#28 ← phi( myprintf::@45/(word) myprintf::w3#32 )
|
|
(word) myprintf::w2#28 ← phi( myprintf::@45/(word) myprintf::w2#32 )
|
|
(word) myprintf::w1#27 ← phi( myprintf::@45/(word) myprintf::w1#32 )
|
|
(byte) myprintf::bArg#27 ← phi( myprintf::@45/(byte) myprintf::bArg#31 )
|
|
(byte) myprintf::bLen#41 ← phi( myprintf::@45/(byte) myprintf::bLen#48 )
|
|
(byte*) myprintf::dst#35 ← phi( myprintf::@45/(byte*) myprintf::dst#43 )
|
|
(byte*) myprintf::str#26 ← phi( myprintf::@45/(byte*) myprintf::str#33 )
|
|
(word) myprintf::w#10 ← phi( myprintf::@45/(word) myprintf::w#9 )
|
|
(byte) myprintf::b#14 ← phi( myprintf::@45/(byte) myprintf::b#13 )
|
|
(bool~) myprintf::$13 ← (byte) myprintf::b#14 == (byte) 'x'
|
|
(bool~) myprintf::$14 ← (byte) myprintf::b#14 == (byte) 'X'
|
|
(bool~) myprintf::$15 ← (bool~) myprintf::$13 || (bool~) myprintf::$14
|
|
(bool~) myprintf::$16 ← ! (bool~) myprintf::$15
|
|
if((bool~) myprintf::$16) goto myprintf::@8
|
|
to:myprintf::@47
|
|
myprintf::@8: scope:[myprintf] from myprintf::@46
|
|
(byte) myprintf::bLeadZero#28 ← phi( myprintf::@46/(byte) myprintf::bLeadZero#34 )
|
|
(byte) myprintf::bDigits#33 ← phi( myprintf::@46/(byte) myprintf::bDigits#39 )
|
|
(byte) myprintf::bTrailing#31 ← phi( myprintf::@46/(byte) myprintf::bTrailing#37 )
|
|
(word) myprintf::w#27 ← phi( myprintf::@46/(word) myprintf::w#10 )
|
|
(word) myprintf::w3#22 ← phi( myprintf::@46/(word) myprintf::w3#28 )
|
|
(word) myprintf::w2#22 ← phi( myprintf::@46/(word) myprintf::w2#28 )
|
|
(word) myprintf::w1#21 ← phi( myprintf::@46/(word) myprintf::w1#27 )
|
|
(byte) myprintf::bArg#23 ← phi( myprintf::@46/(byte) myprintf::bArg#27 )
|
|
(byte) myprintf::bLen#44 ← phi( myprintf::@46/(byte) myprintf::bLen#41 )
|
|
(byte*) myprintf::dst#38 ← phi( myprintf::@46/(byte*) myprintf::dst#35 )
|
|
(byte*) myprintf::str#19 ← phi( myprintf::@46/(byte*) myprintf::str#26 )
|
|
to:myprintf::@40
|
|
myprintf::@47: scope:[myprintf] from myprintf::@46
|
|
(byte) myprintf::bLeadZero#45 ← phi( myprintf::@46/(byte) myprintf::bLeadZero#34 )
|
|
(byte) myprintf::bDigits#47 ← phi( myprintf::@46/(byte) myprintf::bDigits#39 )
|
|
(byte) myprintf::bTrailing#45 ← phi( myprintf::@46/(byte) myprintf::bTrailing#37 )
|
|
(word) myprintf::w3#38 ← phi( myprintf::@46/(word) myprintf::w3#28 )
|
|
(word) myprintf::w2#38 ← phi( myprintf::@46/(word) myprintf::w2#28 )
|
|
(word) myprintf::w1#38 ← phi( myprintf::@46/(word) myprintf::w1#27 )
|
|
(byte) myprintf::bArg#37 ← phi( myprintf::@46/(byte) myprintf::bArg#27 )
|
|
(byte*) myprintf::str#39 ← phi( myprintf::@46/(byte*) myprintf::str#26 )
|
|
(byte) myprintf::bLen#34 ← phi( myprintf::@46/(byte) myprintf::bLen#41 )
|
|
(byte*) myprintf::dst#28 ← phi( myprintf::@46/(byte*) myprintf::dst#35 )
|
|
(word) myprintf::w#6 ← phi( myprintf::@46/(word) myprintf::w#10 )
|
|
(word~) myprintf::$17 ← (word) myprintf::w#6 >> (byte/signed byte/word/signed word/dword/signed dword) 4
|
|
(byte/word~) myprintf::$18 ← (word~) myprintf::$17 & (byte/signed byte/word/signed word/dword/signed dword) $f
|
|
(byte) myprintf::b#3 ← (byte/word~) myprintf::$18
|
|
(bool~) myprintf::$19 ← (byte) myprintf::b#3 < (byte/signed byte/word/signed word/dword/signed dword) $a
|
|
if((bool~) myprintf::$19) goto myprintf::@9
|
|
to:myprintf::@10
|
|
myprintf::@9: scope:[myprintf] from myprintf::@47
|
|
(byte) myprintf::bLeadZero#43 ← phi( myprintf::@47/(byte) myprintf::bLeadZero#45 )
|
|
(byte) myprintf::bDigits#46 ← phi( myprintf::@47/(byte) myprintf::bDigits#47 )
|
|
(byte) myprintf::bTrailing#44 ← phi( myprintf::@47/(byte) myprintf::bTrailing#45 )
|
|
(word) myprintf::w3#36 ← phi( myprintf::@47/(word) myprintf::w3#38 )
|
|
(word) myprintf::w2#36 ← phi( myprintf::@47/(word) myprintf::w2#38 )
|
|
(word) myprintf::w1#36 ← phi( myprintf::@47/(word) myprintf::w1#38 )
|
|
(byte) myprintf::bArg#35 ← phi( myprintf::@47/(byte) myprintf::bArg#37 )
|
|
(byte*) myprintf::str#37 ← phi( myprintf::@47/(byte*) myprintf::str#39 )
|
|
(word) myprintf::w#12 ← phi( myprintf::@47/(word) myprintf::w#6 )
|
|
(byte) myprintf::bLen#18 ← phi( myprintf::@47/(byte) myprintf::bLen#34 )
|
|
(byte*) myprintf::dst#12 ← phi( myprintf::@47/(byte*) myprintf::dst#28 )
|
|
(byte) myprintf::b#28 ← phi( myprintf::@47/(byte) myprintf::b#3 )
|
|
(byte~) myprintf::$21 ← (byte) '0'
|
|
to:myprintf::@11
|
|
myprintf::@10: scope:[myprintf] from myprintf::@47
|
|
(byte) myprintf::bLeadZero#42 ← phi( myprintf::@47/(byte) myprintf::bLeadZero#45 )
|
|
(byte) myprintf::bDigits#45 ← phi( myprintf::@47/(byte) myprintf::bDigits#47 )
|
|
(byte) myprintf::bTrailing#43 ← phi( myprintf::@47/(byte) myprintf::bTrailing#45 )
|
|
(word) myprintf::w3#35 ← phi( myprintf::@47/(word) myprintf::w3#38 )
|
|
(word) myprintf::w2#35 ← phi( myprintf::@47/(word) myprintf::w2#38 )
|
|
(word) myprintf::w1#35 ← phi( myprintf::@47/(word) myprintf::w1#38 )
|
|
(byte) myprintf::bArg#34 ← phi( myprintf::@47/(byte) myprintf::bArg#37 )
|
|
(byte*) myprintf::str#36 ← phi( myprintf::@47/(byte*) myprintf::str#39 )
|
|
(word) myprintf::w#11 ← phi( myprintf::@47/(word) myprintf::w#6 )
|
|
(byte) myprintf::bLen#17 ← phi( myprintf::@47/(byte) myprintf::bLen#34 )
|
|
(byte*) myprintf::dst#11 ← phi( myprintf::@47/(byte*) myprintf::dst#28 )
|
|
(byte) myprintf::b#27 ← phi( myprintf::@47/(byte) myprintf::b#3 )
|
|
(byte/signed byte/word/signed word/dword/signed dword~) myprintf::$20 ← (byte/signed byte/word/signed word/dword/signed dword) $57
|
|
to:myprintf::@11
|
|
myprintf::@11: scope:[myprintf] from myprintf::@10 myprintf::@9
|
|
(byte) myprintf::bLeadZero#40 ← phi( myprintf::@10/(byte) myprintf::bLeadZero#42 myprintf::@9/(byte) myprintf::bLeadZero#43 )
|
|
(byte) myprintf::bDigits#44 ← phi( myprintf::@10/(byte) myprintf::bDigits#45 myprintf::@9/(byte) myprintf::bDigits#46 )
|
|
(byte) myprintf::bTrailing#42 ← phi( myprintf::@10/(byte) myprintf::bTrailing#43 myprintf::@9/(byte) myprintf::bTrailing#44 )
|
|
(word) myprintf::w3#33 ← phi( myprintf::@10/(word) myprintf::w3#35 myprintf::@9/(word) myprintf::w3#36 )
|
|
(word) myprintf::w2#33 ← phi( myprintf::@10/(word) myprintf::w2#35 myprintf::@9/(word) myprintf::w2#36 )
|
|
(word) myprintf::w1#33 ← phi( myprintf::@10/(word) myprintf::w1#35 myprintf::@9/(word) myprintf::w1#36 )
|
|
(byte) myprintf::bArg#32 ← phi( myprintf::@10/(byte) myprintf::bArg#34 myprintf::@9/(byte) myprintf::bArg#35 )
|
|
(byte*) myprintf::str#34 ← phi( myprintf::@10/(byte*) myprintf::str#36 myprintf::@9/(byte*) myprintf::str#37 )
|
|
(word) myprintf::w#7 ← phi( myprintf::@10/(word) myprintf::w#11 myprintf::@9/(word) myprintf::w#12 )
|
|
(byte) myprintf::bLen#9 ← phi( myprintf::@10/(byte) myprintf::bLen#17 myprintf::@9/(byte) myprintf::bLen#18 )
|
|
(byte*) myprintf::dst#3 ← phi( myprintf::@10/(byte*) myprintf::dst#11 myprintf::@9/(byte*) myprintf::dst#12 )
|
|
(byte) myprintf::b#15 ← phi( myprintf::@10/(byte) myprintf::b#27 myprintf::@9/(byte) myprintf::b#28 )
|
|
(byte~) myprintf::$22 ← phi( myprintf::@9/(byte~) myprintf::$21 myprintf::@10/(byte/signed byte/word/signed word/dword/signed dword~) myprintf::$20 )
|
|
(byte~) myprintf::$23 ← (byte~) myprintf::$22 + (byte) myprintf::b#15
|
|
*((byte*) myprintf::dst#3 + (byte) myprintf::bLen#9) ← (byte~) myprintf::$23
|
|
(byte) myprintf::bLen#2 ← ++ (byte) myprintf::bLen#9
|
|
(byte/word~) myprintf::$24 ← (word) myprintf::w#7 & (byte/signed byte/word/signed word/dword/signed dword) $f
|
|
(byte) myprintf::b#4 ← (byte/word~) myprintf::$24
|
|
(bool~) myprintf::$25 ← (byte) myprintf::b#4 < (byte/signed byte/word/signed word/dword/signed dword) $a
|
|
if((bool~) myprintf::$25) goto myprintf::@12
|
|
to:myprintf::@13
|
|
myprintf::@12: scope:[myprintf] from myprintf::@11
|
|
(byte) myprintf::bLeadZero#35 ← phi( myprintf::@11/(byte) myprintf::bLeadZero#40 )
|
|
(byte) myprintf::bDigits#40 ← phi( myprintf::@11/(byte) myprintf::bDigits#44 )
|
|
(byte) myprintf::bTrailing#38 ← phi( myprintf::@11/(byte) myprintf::bTrailing#42 )
|
|
(word) myprintf::w#30 ← phi( myprintf::@11/(word) myprintf::w#7 )
|
|
(word) myprintf::w3#29 ← phi( myprintf::@11/(word) myprintf::w3#33 )
|
|
(word) myprintf::w2#29 ← phi( myprintf::@11/(word) myprintf::w2#33 )
|
|
(word) myprintf::w1#28 ← phi( myprintf::@11/(word) myprintf::w1#33 )
|
|
(byte) myprintf::bArg#28 ← phi( myprintf::@11/(byte) myprintf::bArg#32 )
|
|
(byte*) myprintf::str#27 ← phi( myprintf::@11/(byte*) myprintf::str#34 )
|
|
(byte) myprintf::bLen#19 ← phi( myprintf::@11/(byte) myprintf::bLen#2 )
|
|
(byte*) myprintf::dst#13 ← phi( myprintf::@11/(byte*) myprintf::dst#3 )
|
|
(byte) myprintf::b#29 ← phi( myprintf::@11/(byte) myprintf::b#4 )
|
|
(byte~) myprintf::$27 ← (byte) '0'
|
|
to:myprintf::@14
|
|
myprintf::@13: scope:[myprintf] from myprintf::@11
|
|
(byte) myprintf::bLeadZero#36 ← phi( myprintf::@11/(byte) myprintf::bLeadZero#40 )
|
|
(byte) myprintf::bDigits#41 ← phi( myprintf::@11/(byte) myprintf::bDigits#44 )
|
|
(byte) myprintf::bTrailing#39 ← phi( myprintf::@11/(byte) myprintf::bTrailing#42 )
|
|
(word) myprintf::w#31 ← phi( myprintf::@11/(word) myprintf::w#7 )
|
|
(word) myprintf::w3#30 ← phi( myprintf::@11/(word) myprintf::w3#33 )
|
|
(word) myprintf::w2#30 ← phi( myprintf::@11/(word) myprintf::w2#33 )
|
|
(word) myprintf::w1#29 ← phi( myprintf::@11/(word) myprintf::w1#33 )
|
|
(byte) myprintf::bArg#29 ← phi( myprintf::@11/(byte) myprintf::bArg#32 )
|
|
(byte*) myprintf::str#28 ← phi( myprintf::@11/(byte*) myprintf::str#34 )
|
|
(byte) myprintf::bLen#20 ← phi( myprintf::@11/(byte) myprintf::bLen#2 )
|
|
(byte*) myprintf::dst#14 ← phi( myprintf::@11/(byte*) myprintf::dst#3 )
|
|
(byte) myprintf::b#30 ← phi( myprintf::@11/(byte) myprintf::b#4 )
|
|
(byte/signed byte/word/signed word/dword/signed dword~) myprintf::$26 ← (byte/signed byte/word/signed word/dword/signed dword) $57
|
|
to:myprintf::@14
|
|
myprintf::@14: scope:[myprintf] from myprintf::@12 myprintf::@13
|
|
(byte) myprintf::bLeadZero#24 ← phi( myprintf::@12/(byte) myprintf::bLeadZero#35 myprintf::@13/(byte) myprintf::bLeadZero#36 )
|
|
(byte) myprintf::bDigits#30 ← phi( myprintf::@12/(byte) myprintf::bDigits#40 myprintf::@13/(byte) myprintf::bDigits#41 )
|
|
(byte) myprintf::bTrailing#27 ← phi( myprintf::@12/(byte) myprintf::bTrailing#38 myprintf::@13/(byte) myprintf::bTrailing#39 )
|
|
(word) myprintf::w#24 ← phi( myprintf::@12/(word) myprintf::w#30 myprintf::@13/(word) myprintf::w#31 )
|
|
(word) myprintf::w3#18 ← phi( myprintf::@12/(word) myprintf::w3#29 myprintf::@13/(word) myprintf::w3#30 )
|
|
(word) myprintf::w2#18 ← phi( myprintf::@12/(word) myprintf::w2#29 myprintf::@13/(word) myprintf::w2#30 )
|
|
(word) myprintf::w1#17 ← phi( myprintf::@12/(word) myprintf::w1#28 myprintf::@13/(word) myprintf::w1#29 )
|
|
(byte) myprintf::bArg#19 ← phi( myprintf::@12/(byte) myprintf::bArg#28 myprintf::@13/(byte) myprintf::bArg#29 )
|
|
(byte*) myprintf::str#15 ← phi( myprintf::@12/(byte*) myprintf::str#27 myprintf::@13/(byte*) myprintf::str#28 )
|
|
(byte) myprintf::bLen#10 ← phi( myprintf::@12/(byte) myprintf::bLen#19 myprintf::@13/(byte) myprintf::bLen#20 )
|
|
(byte*) myprintf::dst#4 ← phi( myprintf::@12/(byte*) myprintf::dst#13 myprintf::@13/(byte*) myprintf::dst#14 )
|
|
(byte) myprintf::b#16 ← phi( myprintf::@12/(byte) myprintf::b#29 myprintf::@13/(byte) myprintf::b#30 )
|
|
(byte~) myprintf::$28 ← phi( myprintf::@12/(byte~) myprintf::$27 myprintf::@13/(byte/signed byte/word/signed word/dword/signed dword~) myprintf::$26 )
|
|
(byte~) myprintf::$29 ← (byte~) myprintf::$28 + (byte) myprintf::b#16
|
|
*((byte*) myprintf::dst#4 + (byte) myprintf::bLen#10) ← (byte~) myprintf::$29
|
|
(byte) myprintf::bLen#3 ← ++ (byte) myprintf::bLen#10
|
|
to:myprintf::@40
|
|
myprintf::@19: scope:[myprintf] from myprintf::@20 myprintf::@71
|
|
(word) myprintf::w#38 ← phi( myprintf::@20/(word) myprintf::w#41 myprintf::@71/(word) myprintf::w#42 )
|
|
(word) myprintf::w3#41 ← phi( myprintf::@20/(word) myprintf::w3#44 myprintf::@71/(word) myprintf::w3#45 )
|
|
(word) myprintf::w2#41 ← phi( myprintf::@20/(word) myprintf::w2#44 myprintf::@71/(word) myprintf::w2#45 )
|
|
(word) myprintf::w1#41 ← phi( myprintf::@20/(word) myprintf::w1#44 myprintf::@71/(word) myprintf::w1#45 )
|
|
(byte) myprintf::bArg#40 ← phi( myprintf::@20/(byte) myprintf::bArg#43 myprintf::@71/(byte) myprintf::bArg#44 )
|
|
(byte*) myprintf::str#42 ← phi( myprintf::@20/(byte*) myprintf::str#45 myprintf::@71/(byte*) myprintf::str#46 )
|
|
(byte) myprintf::bLen#42 ← phi( myprintf::@20/(byte) myprintf::bLen#49 myprintf::@71/(byte) myprintf::bLen#50 )
|
|
(byte*) myprintf::dst#36 ← phi( myprintf::@20/(byte*) myprintf::dst#44 myprintf::@71/(byte*) myprintf::dst#45 )
|
|
(byte) myprintf::bLeadZero#6 ← phi( myprintf::@20/(byte) myprintf::bLeadZero#9 myprintf::@71/(byte) myprintf::bLeadZero#10 )
|
|
(byte) myprintf::bDigits#9 ← phi( myprintf::@20/(byte) myprintf::bDigits#13 myprintf::@71/(byte) myprintf::bDigits#14 )
|
|
(byte) myprintf::bTrailing#5 ← phi( myprintf::@20/(byte) myprintf::bTrailing#7 myprintf::@71/(byte) myprintf::bTrailing#8 )
|
|
(byte) myprintf::b#17 ← phi( myprintf::@20/(byte) myprintf::b#5 myprintf::@71/(byte) myprintf::b#2 )
|
|
(bool~) myprintf::$31 ← *((byte[6]) myprintf::buf6#0 + (byte) myprintf::b#17) != (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
if((bool~) myprintf::$31) goto myprintf::@20
|
|
to:myprintf::@21
|
|
myprintf::@20: scope:[myprintf] from myprintf::@19
|
|
(word) myprintf::w#41 ← phi( myprintf::@19/(word) myprintf::w#38 )
|
|
(word) myprintf::w3#44 ← phi( myprintf::@19/(word) myprintf::w3#41 )
|
|
(word) myprintf::w2#44 ← phi( myprintf::@19/(word) myprintf::w2#41 )
|
|
(word) myprintf::w1#44 ← phi( myprintf::@19/(word) myprintf::w1#41 )
|
|
(byte) myprintf::bArg#43 ← phi( myprintf::@19/(byte) myprintf::bArg#40 )
|
|
(byte*) myprintf::str#45 ← phi( myprintf::@19/(byte*) myprintf::str#42 )
|
|
(byte) myprintf::bLen#49 ← phi( myprintf::@19/(byte) myprintf::bLen#42 )
|
|
(byte*) myprintf::dst#44 ← phi( myprintf::@19/(byte*) myprintf::dst#36 )
|
|
(byte) myprintf::bLeadZero#9 ← phi( myprintf::@19/(byte) myprintf::bLeadZero#6 )
|
|
(byte) myprintf::bDigits#13 ← phi( myprintf::@19/(byte) myprintf::bDigits#9 )
|
|
(byte) myprintf::bTrailing#7 ← phi( myprintf::@19/(byte) myprintf::bTrailing#5 )
|
|
(byte) myprintf::b#18 ← phi( myprintf::@19/(byte) myprintf::b#17 )
|
|
(byte) myprintf::b#5 ← ++ (byte) myprintf::b#18
|
|
to:myprintf::@19
|
|
myprintf::@21: scope:[myprintf] from myprintf::@19
|
|
(word) myprintf::w#36 ← phi( myprintf::@19/(word) myprintf::w#38 )
|
|
(word) myprintf::w3#39 ← phi( myprintf::@19/(word) myprintf::w3#41 )
|
|
(word) myprintf::w2#39 ← phi( myprintf::@19/(word) myprintf::w2#41 )
|
|
(word) myprintf::w1#39 ← phi( myprintf::@19/(word) myprintf::w1#41 )
|
|
(byte) myprintf::bArg#38 ← phi( myprintf::@19/(byte) myprintf::bArg#40 )
|
|
(byte*) myprintf::str#40 ← phi( myprintf::@19/(byte*) myprintf::str#42 )
|
|
(byte) myprintf::bLen#35 ← phi( myprintf::@19/(byte) myprintf::bLen#42 )
|
|
(byte*) myprintf::dst#29 ← phi( myprintf::@19/(byte*) myprintf::dst#36 )
|
|
(byte) myprintf::bLeadZero#4 ← phi( myprintf::@19/(byte) myprintf::bLeadZero#6 )
|
|
(byte) myprintf::b#19 ← phi( myprintf::@19/(byte) myprintf::b#17 )
|
|
(byte) myprintf::bDigits#5 ← phi( myprintf::@19/(byte) myprintf::bDigits#9 )
|
|
(byte) myprintf::bTrailing#3 ← phi( myprintf::@19/(byte) myprintf::bTrailing#5 )
|
|
(bool~) myprintf::$32 ← (byte) myprintf::bTrailing#3 == (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
(bool~) myprintf::$33 ← (byte) myprintf::bDigits#5 > (byte) myprintf::b#19
|
|
(bool~) myprintf::$34 ← (bool~) myprintf::$32 && (bool~) myprintf::$33
|
|
(bool~) myprintf::$35 ← ! (bool~) myprintf::$34
|
|
if((bool~) myprintf::$35) goto myprintf::@26
|
|
to:myprintf::@27
|
|
myprintf::@26: scope:[myprintf] from myprintf::@21 myprintf::@30
|
|
(byte) myprintf::bLeadZero#44 ← phi( myprintf::@21/(byte) myprintf::bLeadZero#4 myprintf::@30/(byte) myprintf::bLeadZero#5 )
|
|
(word) myprintf::w#35 ← phi( myprintf::@21/(word) myprintf::w#36 myprintf::@30/(word) myprintf::w#37 )
|
|
(word) myprintf::w3#37 ← phi( myprintf::@21/(word) myprintf::w3#39 myprintf::@30/(word) myprintf::w3#40 )
|
|
(word) myprintf::w2#37 ← phi( myprintf::@21/(word) myprintf::w2#39 myprintf::@30/(word) myprintf::w2#40 )
|
|
(word) myprintf::w1#37 ← phi( myprintf::@21/(word) myprintf::w1#39 myprintf::@30/(word) myprintf::w1#40 )
|
|
(byte) myprintf::bArg#36 ← phi( myprintf::@21/(byte) myprintf::bArg#38 myprintf::@30/(byte) myprintf::bArg#39 )
|
|
(byte*) myprintf::str#38 ← phi( myprintf::@21/(byte*) myprintf::str#40 myprintf::@30/(byte*) myprintf::str#41 )
|
|
(byte) myprintf::bDigits#16 ← phi( myprintf::@21/(byte) myprintf::bDigits#5 myprintf::@30/(byte) myprintf::bDigits#2 )
|
|
(byte) myprintf::bTrailing#9 ← phi( myprintf::@21/(byte) myprintf::bTrailing#3 myprintf::@30/(byte) myprintf::bTrailing#11 )
|
|
(byte) myprintf::b#33 ← phi( myprintf::@21/(byte) myprintf::b#19 myprintf::@30/(byte) myprintf::b#20 )
|
|
(byte) myprintf::bLen#23 ← phi( myprintf::@21/(byte) myprintf::bLen#35 myprintf::@30/(byte) myprintf::bLen#4 )
|
|
(byte*) myprintf::dst#17 ← phi( myprintf::@21/(byte*) myprintf::dst#29 myprintf::@30/(byte*) myprintf::dst#5 )
|
|
(byte) myprintf::digit#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
to:myprintf::@34
|
|
myprintf::@27: scope:[myprintf] from myprintf::@21 myprintf::@30
|
|
(word) myprintf::w#43 ← phi( myprintf::@21/(word) myprintf::w#36 myprintf::@30/(word) myprintf::w#37 )
|
|
(word) myprintf::w3#46 ← phi( myprintf::@21/(word) myprintf::w3#39 myprintf::@30/(word) myprintf::w3#40 )
|
|
(word) myprintf::w2#46 ← phi( myprintf::@21/(word) myprintf::w2#39 myprintf::@30/(word) myprintf::w2#40 )
|
|
(word) myprintf::w1#46 ← phi( myprintf::@21/(word) myprintf::w1#39 myprintf::@30/(word) myprintf::w1#40 )
|
|
(byte) myprintf::bArg#45 ← phi( myprintf::@21/(byte) myprintf::bArg#38 myprintf::@30/(byte) myprintf::bArg#39 )
|
|
(byte*) myprintf::str#47 ← phi( myprintf::@21/(byte*) myprintf::str#40 myprintf::@30/(byte*) myprintf::str#41 )
|
|
(byte) myprintf::bTrailing#16 ← phi( myprintf::@21/(byte) myprintf::bTrailing#3 myprintf::@30/(byte) myprintf::bTrailing#11 )
|
|
(byte) myprintf::b#34 ← phi( myprintf::@21/(byte) myprintf::b#19 myprintf::@30/(byte) myprintf::b#20 )
|
|
(byte) myprintf::bDigits#15 ← phi( myprintf::@21/(byte) myprintf::bDigits#5 myprintf::@30/(byte) myprintf::bDigits#2 )
|
|
(byte) myprintf::bLen#36 ← phi( myprintf::@21/(byte) myprintf::bLen#35 myprintf::@30/(byte) myprintf::bLen#4 )
|
|
(byte*) myprintf::dst#30 ← phi( myprintf::@21/(byte*) myprintf::dst#29 myprintf::@30/(byte*) myprintf::dst#5 )
|
|
(byte) myprintf::bLeadZero#3 ← phi( myprintf::@21/(byte) myprintf::bLeadZero#4 myprintf::@30/(byte) myprintf::bLeadZero#5 )
|
|
(bool~) myprintf::$36 ← (byte) myprintf::bLeadZero#3 == (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
if((bool~) myprintf::$36) goto myprintf::@28
|
|
to:myprintf::@29
|
|
myprintf::@28: scope:[myprintf] from myprintf::@27
|
|
(word) myprintf::w#39 ← phi( myprintf::@27/(word) myprintf::w#43 )
|
|
(word) myprintf::w3#42 ← phi( myprintf::@27/(word) myprintf::w3#46 )
|
|
(word) myprintf::w2#42 ← phi( myprintf::@27/(word) myprintf::w2#46 )
|
|
(word) myprintf::w1#42 ← phi( myprintf::@27/(word) myprintf::w1#46 )
|
|
(byte) myprintf::bArg#41 ← phi( myprintf::@27/(byte) myprintf::bArg#45 )
|
|
(byte*) myprintf::str#43 ← phi( myprintf::@27/(byte*) myprintf::str#47 )
|
|
(byte) myprintf::bTrailing#13 ← phi( myprintf::@27/(byte) myprintf::bTrailing#16 )
|
|
(byte) myprintf::bLeadZero#7 ← phi( myprintf::@27/(byte) myprintf::bLeadZero#3 )
|
|
(byte) myprintf::b#31 ← phi( myprintf::@27/(byte) myprintf::b#34 )
|
|
(byte) myprintf::bDigits#10 ← phi( myprintf::@27/(byte) myprintf::bDigits#15 )
|
|
(byte) myprintf::bLen#21 ← phi( myprintf::@27/(byte) myprintf::bLen#36 )
|
|
(byte*) myprintf::dst#15 ← phi( myprintf::@27/(byte*) myprintf::dst#30 )
|
|
(byte~) myprintf::$38 ← (byte) ' '
|
|
to:myprintf::@30
|
|
myprintf::@29: scope:[myprintf] from myprintf::@27
|
|
(word) myprintf::w#40 ← phi( myprintf::@27/(word) myprintf::w#43 )
|
|
(word) myprintf::w3#43 ← phi( myprintf::@27/(word) myprintf::w3#46 )
|
|
(word) myprintf::w2#43 ← phi( myprintf::@27/(word) myprintf::w2#46 )
|
|
(word) myprintf::w1#43 ← phi( myprintf::@27/(word) myprintf::w1#46 )
|
|
(byte) myprintf::bArg#42 ← phi( myprintf::@27/(byte) myprintf::bArg#45 )
|
|
(byte*) myprintf::str#44 ← phi( myprintf::@27/(byte*) myprintf::str#47 )
|
|
(byte) myprintf::bTrailing#14 ← phi( myprintf::@27/(byte) myprintf::bTrailing#16 )
|
|
(byte) myprintf::bLeadZero#8 ← phi( myprintf::@27/(byte) myprintf::bLeadZero#3 )
|
|
(byte) myprintf::b#32 ← phi( myprintf::@27/(byte) myprintf::b#34 )
|
|
(byte) myprintf::bDigits#11 ← phi( myprintf::@27/(byte) myprintf::bDigits#15 )
|
|
(byte) myprintf::bLen#22 ← phi( myprintf::@27/(byte) myprintf::bLen#36 )
|
|
(byte*) myprintf::dst#16 ← phi( myprintf::@27/(byte*) myprintf::dst#30 )
|
|
(byte~) myprintf::$37 ← (byte) '0'
|
|
to:myprintf::@30
|
|
myprintf::@30: scope:[myprintf] from myprintf::@28 myprintf::@29
|
|
(word) myprintf::w#37 ← phi( myprintf::@28/(word) myprintf::w#39 myprintf::@29/(word) myprintf::w#40 )
|
|
(word) myprintf::w3#40 ← phi( myprintf::@28/(word) myprintf::w3#42 myprintf::@29/(word) myprintf::w3#43 )
|
|
(word) myprintf::w2#40 ← phi( myprintf::@28/(word) myprintf::w2#42 myprintf::@29/(word) myprintf::w2#43 )
|
|
(word) myprintf::w1#40 ← phi( myprintf::@28/(word) myprintf::w1#42 myprintf::@29/(word) myprintf::w1#43 )
|
|
(byte) myprintf::bArg#39 ← phi( myprintf::@28/(byte) myprintf::bArg#41 myprintf::@29/(byte) myprintf::bArg#42 )
|
|
(byte*) myprintf::str#41 ← phi( myprintf::@28/(byte*) myprintf::str#43 myprintf::@29/(byte*) myprintf::str#44 )
|
|
(byte) myprintf::bTrailing#11 ← phi( myprintf::@28/(byte) myprintf::bTrailing#13 myprintf::@29/(byte) myprintf::bTrailing#14 )
|
|
(byte) myprintf::bLeadZero#5 ← phi( myprintf::@28/(byte) myprintf::bLeadZero#7 myprintf::@29/(byte) myprintf::bLeadZero#8 )
|
|
(byte) myprintf::b#20 ← phi( myprintf::@28/(byte) myprintf::b#31 myprintf::@29/(byte) myprintf::b#32 )
|
|
(byte) myprintf::bDigits#6 ← phi( myprintf::@28/(byte) myprintf::bDigits#10 myprintf::@29/(byte) myprintf::bDigits#11 )
|
|
(byte) myprintf::bLen#11 ← phi( myprintf::@28/(byte) myprintf::bLen#21 myprintf::@29/(byte) myprintf::bLen#22 )
|
|
(byte*) myprintf::dst#5 ← phi( myprintf::@28/(byte*) myprintf::dst#15 myprintf::@29/(byte*) myprintf::dst#16 )
|
|
(byte~) myprintf::$39 ← phi( myprintf::@28/(byte~) myprintf::$38 myprintf::@29/(byte~) myprintf::$37 )
|
|
*((byte*) myprintf::dst#5 + (byte) myprintf::bLen#11) ← (byte~) myprintf::$39
|
|
(byte) myprintf::bLen#4 ← ++ (byte) myprintf::bLen#11
|
|
(byte) myprintf::bDigits#2 ← -- (byte) myprintf::bDigits#6
|
|
(bool~) myprintf::$40 ← (byte) myprintf::bDigits#2 > (byte) myprintf::b#20
|
|
if((bool~) myprintf::$40) goto myprintf::@27
|
|
to:myprintf::@26
|
|
myprintf::@34: scope:[myprintf] from myprintf::@26 myprintf::@34
|
|
(byte) myprintf::bLeadZero#41 ← phi( myprintf::@26/(byte) myprintf::bLeadZero#44 myprintf::@34/(byte) myprintf::bLeadZero#41 )
|
|
(word) myprintf::w#34 ← phi( myprintf::@26/(word) myprintf::w#35 myprintf::@34/(word) myprintf::w#34 )
|
|
(word) myprintf::w3#34 ← phi( myprintf::@26/(word) myprintf::w3#37 myprintf::@34/(word) myprintf::w3#34 )
|
|
(word) myprintf::w2#34 ← phi( myprintf::@26/(word) myprintf::w2#37 myprintf::@34/(word) myprintf::w2#34 )
|
|
(word) myprintf::w1#34 ← phi( myprintf::@26/(word) myprintf::w1#37 myprintf::@34/(word) myprintf::w1#34 )
|
|
(byte) myprintf::bArg#33 ← phi( myprintf::@26/(byte) myprintf::bArg#36 myprintf::@34/(byte) myprintf::bArg#33 )
|
|
(byte*) myprintf::str#35 ← phi( myprintf::@26/(byte*) myprintf::str#38 myprintf::@34/(byte*) myprintf::str#35 )
|
|
(byte) myprintf::bDigits#12 ← phi( myprintf::@26/(byte) myprintf::bDigits#16 myprintf::@34/(byte) myprintf::bDigits#12 )
|
|
(byte) myprintf::bTrailing#6 ← phi( myprintf::@26/(byte) myprintf::bTrailing#9 myprintf::@34/(byte) myprintf::bTrailing#6 )
|
|
(byte) myprintf::b#21 ← phi( myprintf::@26/(byte) myprintf::b#33 myprintf::@34/(byte) myprintf::b#21 )
|
|
(byte) myprintf::bLen#12 ← phi( myprintf::@26/(byte) myprintf::bLen#23 myprintf::@34/(byte) myprintf::bLen#5 )
|
|
(byte*) myprintf::dst#6 ← phi( myprintf::@26/(byte*) myprintf::dst#17 myprintf::@34/(byte*) myprintf::dst#6 )
|
|
(byte) myprintf::digit#3 ← phi( myprintf::@26/(byte) myprintf::digit#1 myprintf::@34/(byte) myprintf::digit#2 )
|
|
*((byte*) myprintf::dst#6 + (byte) myprintf::bLen#12) ← *((byte[6]) myprintf::buf6#0 + (byte) myprintf::digit#3)
|
|
(byte) myprintf::bLen#5 ← ++ (byte) myprintf::bLen#12
|
|
(byte) myprintf::digit#2 ← ++ (byte) myprintf::digit#3
|
|
(bool~) myprintf::$41 ← (byte) myprintf::digit#2 < (byte) myprintf::b#21
|
|
if((bool~) myprintf::$41) goto myprintf::@34
|
|
to:myprintf::@35
|
|
myprintf::@35: scope:[myprintf] from myprintf::@34
|
|
(byte) myprintf::bLeadZero#37 ← phi( myprintf::@34/(byte) myprintf::bLeadZero#41 )
|
|
(word) myprintf::w#32 ← phi( myprintf::@34/(word) myprintf::w#34 )
|
|
(word) myprintf::w3#31 ← phi( myprintf::@34/(word) myprintf::w3#34 )
|
|
(word) myprintf::w2#31 ← phi( myprintf::@34/(word) myprintf::w2#34 )
|
|
(word) myprintf::w1#30 ← phi( myprintf::@34/(word) myprintf::w1#34 )
|
|
(byte) myprintf::bArg#30 ← phi( myprintf::@34/(byte) myprintf::bArg#33 )
|
|
(byte*) myprintf::str#29 ← phi( myprintf::@34/(byte*) myprintf::str#35 )
|
|
(byte) myprintf::bLen#24 ← phi( myprintf::@34/(byte) myprintf::bLen#5 )
|
|
(byte*) myprintf::dst#18 ← phi( myprintf::@34/(byte*) myprintf::dst#6 )
|
|
(byte) myprintf::b#22 ← phi( myprintf::@34/(byte) myprintf::b#21 )
|
|
(byte) myprintf::bDigits#7 ← phi( myprintf::@34/(byte) myprintf::bDigits#12 )
|
|
(byte) myprintf::bTrailing#4 ← phi( myprintf::@34/(byte) myprintf::bTrailing#6 )
|
|
(bool~) myprintf::$42 ← (byte) myprintf::bTrailing#4 != (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
(bool~) myprintf::$43 ← (byte) myprintf::bDigits#7 > (byte) myprintf::b#22
|
|
(bool~) myprintf::$44 ← (bool~) myprintf::$42 && (bool~) myprintf::$43
|
|
(bool~) myprintf::$45 ← ! (bool~) myprintf::$44
|
|
if((bool~) myprintf::$45) goto myprintf::@37
|
|
to:myprintf::@38
|
|
myprintf::@37: scope:[myprintf] from myprintf::@35
|
|
(byte) myprintf::bLeadZero#25 ← phi( myprintf::@35/(byte) myprintf::bLeadZero#37 )
|
|
(byte) myprintf::bDigits#31 ← phi( myprintf::@35/(byte) myprintf::bDigits#7 )
|
|
(byte) myprintf::bTrailing#28 ← phi( myprintf::@35/(byte) myprintf::bTrailing#4 )
|
|
(word) myprintf::w#25 ← phi( myprintf::@35/(word) myprintf::w#32 )
|
|
(word) myprintf::w3#19 ← phi( myprintf::@35/(word) myprintf::w3#31 )
|
|
(word) myprintf::w2#19 ← phi( myprintf::@35/(word) myprintf::w2#31 )
|
|
(word) myprintf::w1#18 ← phi( myprintf::@35/(word) myprintf::w1#30 )
|
|
(byte) myprintf::bArg#20 ← phi( myprintf::@35/(byte) myprintf::bArg#30 )
|
|
(byte) myprintf::bLen#43 ← phi( myprintf::@35/(byte) myprintf::bLen#24 )
|
|
(byte*) myprintf::dst#37 ← phi( myprintf::@35/(byte*) myprintf::dst#18 )
|
|
(byte*) myprintf::str#16 ← phi( myprintf::@35/(byte*) myprintf::str#29 )
|
|
to:myprintf::@40
|
|
myprintf::@38: scope:[myprintf] from myprintf::@35 myprintf::@38
|
|
(byte) myprintf::bLeadZero#26 ← phi( myprintf::@35/(byte) myprintf::bLeadZero#37 myprintf::@38/(byte) myprintf::bLeadZero#26 )
|
|
(byte) myprintf::bTrailing#29 ← phi( myprintf::@35/(byte) myprintf::bTrailing#4 myprintf::@38/(byte) myprintf::bTrailing#29 )
|
|
(word) myprintf::w#26 ← phi( myprintf::@35/(word) myprintf::w#32 myprintf::@38/(word) myprintf::w#26 )
|
|
(word) myprintf::w3#20 ← phi( myprintf::@35/(word) myprintf::w3#31 myprintf::@38/(word) myprintf::w3#20 )
|
|
(word) myprintf::w2#20 ← phi( myprintf::@35/(word) myprintf::w2#31 myprintf::@38/(word) myprintf::w2#20 )
|
|
(word) myprintf::w1#19 ← phi( myprintf::@35/(word) myprintf::w1#30 myprintf::@38/(word) myprintf::w1#19 )
|
|
(byte) myprintf::bArg#21 ← phi( myprintf::@35/(byte) myprintf::bArg#30 myprintf::@38/(byte) myprintf::bArg#21 )
|
|
(byte*) myprintf::str#17 ← phi( myprintf::@35/(byte*) myprintf::str#29 myprintf::@38/(byte*) myprintf::str#17 )
|
|
(byte) myprintf::b#23 ← phi( myprintf::@35/(byte) myprintf::b#22 myprintf::@38/(byte) myprintf::b#23 )
|
|
(byte) myprintf::bDigits#8 ← phi( myprintf::@35/(byte) myprintf::bDigits#7 myprintf::@38/(byte) myprintf::bDigits#3 )
|
|
(byte) myprintf::bLen#13 ← phi( myprintf::@35/(byte) myprintf::bLen#24 myprintf::@38/(byte) myprintf::bLen#6 )
|
|
(byte*) myprintf::dst#7 ← phi( myprintf::@35/(byte*) myprintf::dst#18 myprintf::@38/(byte*) myprintf::dst#7 )
|
|
*((byte*) myprintf::dst#7 + (byte) myprintf::bLen#13) ← (byte) ' '
|
|
(byte) myprintf::bLen#6 ← ++ (byte) myprintf::bLen#13
|
|
(byte) myprintf::bDigits#3 ← -- (byte) myprintf::bDigits#8
|
|
(bool~) myprintf::$46 ← (byte) myprintf::bDigits#3 > (byte) myprintf::b#23
|
|
if((bool~) myprintf::$46) goto myprintf::@38
|
|
to:myprintf::@40
|
|
myprintf::@40: scope:[myprintf] from myprintf::@14 myprintf::@37 myprintf::@38 myprintf::@6 myprintf::@8
|
|
(byte) myprintf::bLeadZero#19 ← phi( myprintf::@14/(byte) myprintf::bLeadZero#24 myprintf::@37/(byte) myprintf::bLeadZero#25 myprintf::@38/(byte) myprintf::bLeadZero#26 myprintf::@6/(byte) myprintf::bLeadZero#27 myprintf::@8/(byte) myprintf::bLeadZero#28 )
|
|
(byte) myprintf::bDigits#25 ← phi( myprintf::@14/(byte) myprintf::bDigits#30 myprintf::@37/(byte) myprintf::bDigits#31 myprintf::@38/(byte) myprintf::bDigits#3 myprintf::@6/(byte) myprintf::bDigits#32 myprintf::@8/(byte) myprintf::bDigits#33 )
|
|
(byte) myprintf::bTrailing#22 ← phi( myprintf::@14/(byte) myprintf::bTrailing#27 myprintf::@37/(byte) myprintf::bTrailing#28 myprintf::@38/(byte) myprintf::bTrailing#29 myprintf::@6/(byte) myprintf::bTrailing#30 myprintf::@8/(byte) myprintf::bTrailing#31 )
|
|
(word) myprintf::w#18 ← phi( myprintf::@14/(word) myprintf::w#24 myprintf::@37/(word) myprintf::w#25 myprintf::@38/(word) myprintf::w#26 myprintf::@6/(word) myprintf::w#4 myprintf::@8/(word) myprintf::w#27 )
|
|
(word) myprintf::w3#9 ← phi( myprintf::@14/(word) myprintf::w3#18 myprintf::@37/(word) myprintf::w3#19 myprintf::@38/(word) myprintf::w3#20 myprintf::@6/(word) myprintf::w3#21 myprintf::@8/(word) myprintf::w3#22 )
|
|
(word) myprintf::w2#9 ← phi( myprintf::@14/(word) myprintf::w2#18 myprintf::@37/(word) myprintf::w2#19 myprintf::@38/(word) myprintf::w2#20 myprintf::@6/(word) myprintf::w2#21 myprintf::@8/(word) myprintf::w2#22 )
|
|
(word) myprintf::w1#8 ← phi( myprintf::@14/(word) myprintf::w1#17 myprintf::@37/(word) myprintf::w1#18 myprintf::@38/(word) myprintf::w1#19 myprintf::@6/(word) myprintf::w1#20 myprintf::@8/(word) myprintf::w1#21 )
|
|
(byte) myprintf::bArg#11 ← phi( myprintf::@14/(byte) myprintf::bArg#19 myprintf::@37/(byte) myprintf::bArg#20 myprintf::@38/(byte) myprintf::bArg#21 myprintf::@6/(byte) myprintf::bArg#22 myprintf::@8/(byte) myprintf::bArg#23 )
|
|
(byte) myprintf::bLen#28 ← phi( myprintf::@14/(byte) myprintf::bLen#3 myprintf::@37/(byte) myprintf::bLen#43 myprintf::@38/(byte) myprintf::bLen#6 myprintf::@6/(byte) myprintf::bLen#1 myprintf::@8/(byte) myprintf::bLen#44 )
|
|
(byte*) myprintf::dst#22 ← phi( myprintf::@14/(byte*) myprintf::dst#4 myprintf::@37/(byte*) myprintf::dst#37 myprintf::@38/(byte*) myprintf::dst#7 myprintf::@6/(byte*) myprintf::dst#2 myprintf::@8/(byte*) myprintf::dst#38 )
|
|
(byte*) myprintf::str#6 ← phi( myprintf::@14/(byte*) myprintf::str#15 myprintf::@37/(byte*) myprintf::str#16 myprintf::@38/(byte*) myprintf::str#17 myprintf::@6/(byte*) myprintf::str#18 myprintf::@8/(byte*) myprintf::str#19 )
|
|
(byte) myprintf::bFormat#1 ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
to:myprintf::@52
|
|
myprintf::@53: scope:[myprintf] from myprintf::@2
|
|
(byte) myprintf::bLeadZero#32 ← phi( myprintf::@2/(byte) myprintf::bLeadZero#38 )
|
|
(byte) myprintf::bDigits#37 ← phi( myprintf::@2/(byte) myprintf::bDigits#42 )
|
|
(byte) myprintf::bTrailing#35 ← phi( myprintf::@2/(byte) myprintf::bTrailing#40 )
|
|
(word) myprintf::w#28 ← phi( myprintf::@2/(word) myprintf::w#33 )
|
|
(word) myprintf::w3#25 ← phi( myprintf::@2/(word) myprintf::w3#5 )
|
|
(word) myprintf::w2#25 ← phi( myprintf::@2/(word) myprintf::w2#5 )
|
|
(word) myprintf::w1#24 ← phi( myprintf::@2/(word) myprintf::w1#4 )
|
|
(byte) myprintf::bArg#24 ← phi( myprintf::@2/(byte) myprintf::bArg#5 )
|
|
(byte) myprintf::bFormat#16 ← phi( myprintf::@2/(byte) myprintf::bFormat#18 )
|
|
(byte*) myprintf::str#23 ← phi( myprintf::@2/(byte*) myprintf::str#30 )
|
|
(byte) myprintf::bLen#25 ← phi( myprintf::@2/(byte) myprintf::bLen#37 )
|
|
(byte*) myprintf::dst#19 ← phi( myprintf::@2/(byte*) myprintf::dst#31 )
|
|
(byte) myprintf::b#24 ← phi( myprintf::@2/(byte) myprintf::b#7 )
|
|
(bool~) myprintf::$52 ← (byte) myprintf::b#24 >= (byte/signed byte/word/signed word/dword/signed dword) $41
|
|
(bool~) myprintf::$53 ← (byte) myprintf::b#24 <= (byte/signed byte/word/signed word/dword/signed dword) $5a
|
|
(bool~) myprintf::$54 ← (bool~) myprintf::$52 && (bool~) myprintf::$53
|
|
(bool~) myprintf::$55 ← ! (bool~) myprintf::$54
|
|
if((bool~) myprintf::$55) goto myprintf::@60
|
|
to:myprintf::@68
|
|
myprintf::@64: scope:[myprintf] from myprintf::@2
|
|
(byte) myprintf::bLen#51 ← phi( myprintf::@2/(byte) myprintf::bLen#37 )
|
|
(byte*) myprintf::dst#46 ← phi( myprintf::@2/(byte*) myprintf::dst#31 )
|
|
(byte*) myprintf::str#31 ← phi( myprintf::@2/(byte*) myprintf::str#30 )
|
|
(word) myprintf::w3#4 ← phi( myprintf::@2/(word) myprintf::w3#5 )
|
|
(word) myprintf::w2#4 ← phi( myprintf::@2/(word) myprintf::w2#5 )
|
|
(word) myprintf::w1#3 ← phi( myprintf::@2/(word) myprintf::w1#4 )
|
|
(byte) myprintf::bArg#2 ← phi( myprintf::@2/(byte) myprintf::bArg#5 )
|
|
(byte) myprintf::bFormat#2 ← (byte/signed byte/word/signed word/dword/signed dword) 1
|
|
(byte) myprintf::bLeadZero#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
(byte) myprintf::bDigits#4 ← (byte/signed byte/word/signed word/dword/signed dword) 1
|
|
(byte) myprintf::bTrailing#2 ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
(bool~) myprintf::$50 ← (byte) myprintf::bArg#2 == (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
if((bool~) myprintf::$50) goto myprintf::@54
|
|
to:myprintf::@65
|
|
myprintf::@54: scope:[myprintf] from myprintf::@64
|
|
(byte) myprintf::bLeadZero#29 ← phi( myprintf::@64/(byte) myprintf::bLeadZero#2 )
|
|
(byte) myprintf::bDigits#34 ← phi( myprintf::@64/(byte) myprintf::bDigits#4 )
|
|
(byte) myprintf::bTrailing#32 ← phi( myprintf::@64/(byte) myprintf::bTrailing#2 )
|
|
(word) myprintf::w3#23 ← phi( myprintf::@64/(word) myprintf::w3#4 )
|
|
(word) myprintf::w2#23 ← phi( myprintf::@64/(word) myprintf::w2#4 )
|
|
(byte) myprintf::bLen#45 ← phi( myprintf::@64/(byte) myprintf::bLen#51 )
|
|
(byte*) myprintf::dst#39 ← phi( myprintf::@64/(byte*) myprintf::dst#46 )
|
|
(byte) myprintf::bFormat#13 ← phi( myprintf::@64/(byte) myprintf::bFormat#2 )
|
|
(byte*) myprintf::str#20 ← phi( myprintf::@64/(byte*) myprintf::str#31 )
|
|
(byte) myprintf::bArg#6 ← phi( myprintf::@64/(byte) myprintf::bArg#2 )
|
|
(word) myprintf::w1#2 ← phi( myprintf::@64/(word) myprintf::w1#3 )
|
|
(word) myprintf::w#1 ← (word) myprintf::w1#2
|
|
to:myprintf::@57
|
|
myprintf::@65: scope:[myprintf] from myprintf::@64
|
|
(byte) myprintf::bLeadZero#39 ← phi( myprintf::@64/(byte) myprintf::bLeadZero#2 )
|
|
(byte) myprintf::bDigits#43 ← phi( myprintf::@64/(byte) myprintf::bDigits#4 )
|
|
(byte) myprintf::bTrailing#41 ← phi( myprintf::@64/(byte) myprintf::bTrailing#2 )
|
|
(word) myprintf::w1#31 ← phi( myprintf::@64/(word) myprintf::w1#3 )
|
|
(byte) myprintf::bLen#52 ← phi( myprintf::@64/(byte) myprintf::bLen#51 )
|
|
(byte*) myprintf::dst#47 ← phi( myprintf::@64/(byte*) myprintf::dst#46 )
|
|
(byte) myprintf::bFormat#19 ← phi( myprintf::@64/(byte) myprintf::bFormat#2 )
|
|
(byte*) myprintf::str#32 ← phi( myprintf::@64/(byte*) myprintf::str#31 )
|
|
(word) myprintf::w3#3 ← phi( myprintf::@64/(word) myprintf::w3#4 )
|
|
(word) myprintf::w2#3 ← phi( myprintf::@64/(word) myprintf::w2#4 )
|
|
(byte) myprintf::bArg#3 ← phi( myprintf::@64/(byte) myprintf::bArg#2 )
|
|
(bool~) myprintf::$51 ← (byte) myprintf::bArg#3 == (byte/signed byte/word/signed word/dword/signed dword) 1
|
|
if((bool~) myprintf::$51) goto myprintf::@55
|
|
to:myprintf::@66
|
|
myprintf::@55: scope:[myprintf] from myprintf::@65
|
|
(byte) myprintf::bLeadZero#30 ← phi( myprintf::@65/(byte) myprintf::bLeadZero#39 )
|
|
(byte) myprintf::bDigits#35 ← phi( myprintf::@65/(byte) myprintf::bDigits#43 )
|
|
(byte) myprintf::bTrailing#33 ← phi( myprintf::@65/(byte) myprintf::bTrailing#41 )
|
|
(word) myprintf::w3#24 ← phi( myprintf::@65/(word) myprintf::w3#3 )
|
|
(word) myprintf::w1#22 ← phi( myprintf::@65/(word) myprintf::w1#31 )
|
|
(byte) myprintf::bLen#46 ← phi( myprintf::@65/(byte) myprintf::bLen#52 )
|
|
(byte*) myprintf::dst#40 ← phi( myprintf::@65/(byte*) myprintf::dst#47 )
|
|
(byte) myprintf::bFormat#14 ← phi( myprintf::@65/(byte) myprintf::bFormat#19 )
|
|
(byte*) myprintf::str#21 ← phi( myprintf::@65/(byte*) myprintf::str#32 )
|
|
(byte) myprintf::bArg#7 ← phi( myprintf::@65/(byte) myprintf::bArg#3 )
|
|
(word) myprintf::w2#2 ← phi( myprintf::@65/(word) myprintf::w2#3 )
|
|
(word) myprintf::w#2 ← (word) myprintf::w2#2
|
|
to:myprintf::@57
|
|
myprintf::@66: scope:[myprintf] from myprintf::@65
|
|
(byte) myprintf::bLeadZero#31 ← phi( myprintf::@65/(byte) myprintf::bLeadZero#39 )
|
|
(byte) myprintf::bDigits#36 ← phi( myprintf::@65/(byte) myprintf::bDigits#43 )
|
|
(byte) myprintf::bTrailing#34 ← phi( myprintf::@65/(byte) myprintf::bTrailing#41 )
|
|
(word) myprintf::w2#24 ← phi( myprintf::@65/(word) myprintf::w2#3 )
|
|
(word) myprintf::w1#23 ← phi( myprintf::@65/(word) myprintf::w1#31 )
|
|
(byte) myprintf::bLen#47 ← phi( myprintf::@65/(byte) myprintf::bLen#52 )
|
|
(byte*) myprintf::dst#41 ← phi( myprintf::@65/(byte*) myprintf::dst#47 )
|
|
(byte) myprintf::bFormat#15 ← phi( myprintf::@65/(byte) myprintf::bFormat#19 )
|
|
(byte*) myprintf::str#22 ← phi( myprintf::@65/(byte*) myprintf::str#32 )
|
|
(byte) myprintf::bArg#8 ← phi( myprintf::@65/(byte) myprintf::bArg#3 )
|
|
(word) myprintf::w3#2 ← phi( myprintf::@65/(word) myprintf::w3#3 )
|
|
(word) myprintf::w#3 ← (word) myprintf::w3#2
|
|
to:myprintf::@57
|
|
myprintf::@57: scope:[myprintf] from myprintf::@54 myprintf::@55 myprintf::@66
|
|
(byte) myprintf::bLeadZero#22 ← phi( myprintf::@54/(byte) myprintf::bLeadZero#29 myprintf::@55/(byte) myprintf::bLeadZero#30 myprintf::@66/(byte) myprintf::bLeadZero#31 )
|
|
(byte) myprintf::bDigits#27 ← phi( myprintf::@54/(byte) myprintf::bDigits#34 myprintf::@55/(byte) myprintf::bDigits#35 myprintf::@66/(byte) myprintf::bDigits#36 )
|
|
(byte) myprintf::bTrailing#24 ← phi( myprintf::@54/(byte) myprintf::bTrailing#32 myprintf::@55/(byte) myprintf::bTrailing#33 myprintf::@66/(byte) myprintf::bTrailing#34 )
|
|
(word) myprintf::w#21 ← phi( myprintf::@54/(word) myprintf::w#1 myprintf::@55/(word) myprintf::w#2 myprintf::@66/(word) myprintf::w#3 )
|
|
(word) myprintf::w3#12 ← phi( myprintf::@54/(word) myprintf::w3#23 myprintf::@55/(word) myprintf::w3#24 myprintf::@66/(word) myprintf::w3#2 )
|
|
(word) myprintf::w2#12 ← phi( myprintf::@54/(word) myprintf::w2#23 myprintf::@55/(word) myprintf::w2#2 myprintf::@66/(word) myprintf::w2#24 )
|
|
(word) myprintf::w1#11 ← phi( myprintf::@54/(word) myprintf::w1#2 myprintf::@55/(word) myprintf::w1#22 myprintf::@66/(word) myprintf::w1#23 )
|
|
(byte) myprintf::bLen#31 ← phi( myprintf::@54/(byte) myprintf::bLen#45 myprintf::@55/(byte) myprintf::bLen#46 myprintf::@66/(byte) myprintf::bLen#47 )
|
|
(byte*) myprintf::dst#25 ← phi( myprintf::@54/(byte*) myprintf::dst#39 myprintf::@55/(byte*) myprintf::dst#40 myprintf::@66/(byte*) myprintf::dst#41 )
|
|
(byte) myprintf::bFormat#7 ← phi( myprintf::@54/(byte) myprintf::bFormat#13 myprintf::@55/(byte) myprintf::bFormat#14 myprintf::@66/(byte) myprintf::bFormat#15 )
|
|
(byte*) myprintf::str#9 ← phi( myprintf::@54/(byte*) myprintf::str#20 myprintf::@55/(byte*) myprintf::str#21 myprintf::@66/(byte*) myprintf::str#22 )
|
|
(byte) myprintf::bArg#4 ← phi( myprintf::@54/(byte) myprintf::bArg#6 myprintf::@55/(byte) myprintf::bArg#7 myprintf::@66/(byte) myprintf::bArg#8 )
|
|
(byte) myprintf::bArg#1 ← ++ (byte) myprintf::bArg#4
|
|
to:myprintf::@52
|
|
myprintf::@60: scope:[myprintf] from myprintf::@53 myprintf::@68
|
|
(byte) myprintf::bLeadZero#23 ← phi( myprintf::@53/(byte) myprintf::bLeadZero#32 myprintf::@68/(byte) myprintf::bLeadZero#33 )
|
|
(byte) myprintf::bDigits#28 ← phi( myprintf::@53/(byte) myprintf::bDigits#37 myprintf::@68/(byte) myprintf::bDigits#38 )
|
|
(byte) myprintf::bTrailing#25 ← phi( myprintf::@53/(byte) myprintf::bTrailing#35 myprintf::@68/(byte) myprintf::bTrailing#36 )
|
|
(word) myprintf::w#22 ← phi( myprintf::@53/(word) myprintf::w#28 myprintf::@68/(word) myprintf::w#29 )
|
|
(word) myprintf::w3#13 ← phi( myprintf::@53/(word) myprintf::w3#25 myprintf::@68/(word) myprintf::w3#26 )
|
|
(word) myprintf::w2#13 ← phi( myprintf::@53/(word) myprintf::w2#25 myprintf::@68/(word) myprintf::w2#26 )
|
|
(word) myprintf::w1#12 ← phi( myprintf::@53/(word) myprintf::w1#24 myprintf::@68/(word) myprintf::w1#25 )
|
|
(byte) myprintf::bArg#14 ← phi( myprintf::@53/(byte) myprintf::bArg#24 myprintf::@68/(byte) myprintf::bArg#25 )
|
|
(byte) myprintf::bFormat#8 ← phi( myprintf::@53/(byte) myprintf::bFormat#16 myprintf::@68/(byte) myprintf::bFormat#17 )
|
|
(byte*) myprintf::str#10 ← phi( myprintf::@53/(byte*) myprintf::str#23 myprintf::@68/(byte*) myprintf::str#24 )
|
|
(byte) myprintf::bLen#14 ← phi( myprintf::@53/(byte) myprintf::bLen#25 myprintf::@68/(byte) myprintf::bLen#26 )
|
|
(byte*) myprintf::dst#8 ← phi( myprintf::@53/(byte*) myprintf::dst#19 myprintf::@68/(byte*) myprintf::dst#20 )
|
|
(byte) myprintf::b#25 ← phi( myprintf::@53/(byte) myprintf::b#24 myprintf::@68/(byte) myprintf::b#6 )
|
|
*((byte*) myprintf::dst#8 + (byte) myprintf::bLen#14) ← (byte) myprintf::b#25
|
|
(byte) myprintf::bLen#7 ← ++ (byte) myprintf::bLen#14
|
|
to:myprintf::@52
|
|
myprintf::@68: scope:[myprintf] from myprintf::@53
|
|
(byte) myprintf::bLeadZero#33 ← phi( myprintf::@53/(byte) myprintf::bLeadZero#32 )
|
|
(byte) myprintf::bDigits#38 ← phi( myprintf::@53/(byte) myprintf::bDigits#37 )
|
|
(byte) myprintf::bTrailing#36 ← phi( myprintf::@53/(byte) myprintf::bTrailing#35 )
|
|
(word) myprintf::w#29 ← phi( myprintf::@53/(word) myprintf::w#28 )
|
|
(word) myprintf::w3#26 ← phi( myprintf::@53/(word) myprintf::w3#25 )
|
|
(word) myprintf::w2#26 ← phi( myprintf::@53/(word) myprintf::w2#25 )
|
|
(word) myprintf::w1#25 ← phi( myprintf::@53/(word) myprintf::w1#24 )
|
|
(byte) myprintf::bArg#25 ← phi( myprintf::@53/(byte) myprintf::bArg#24 )
|
|
(byte) myprintf::bFormat#17 ← phi( myprintf::@53/(byte) myprintf::bFormat#16 )
|
|
(byte*) myprintf::str#24 ← phi( myprintf::@53/(byte*) myprintf::str#23 )
|
|
(byte) myprintf::bLen#26 ← phi( myprintf::@53/(byte) myprintf::bLen#25 )
|
|
(byte*) myprintf::dst#20 ← phi( myprintf::@53/(byte*) myprintf::dst#19 )
|
|
(byte) myprintf::b#26 ← phi( myprintf::@53/(byte) myprintf::b#24 )
|
|
(byte) myprintf::b#6 ← (byte) myprintf::b#26 + (byte/signed byte/word/signed word/dword/signed dword) $20
|
|
to:myprintf::@60
|
|
myprintf::@69: scope:[myprintf] from myprintf::@52
|
|
(byte) myprintf::bLen#15 ← phi( myprintf::@52/(byte) myprintf::bLen#27 )
|
|
(byte*) myprintf::dst#9 ← phi( myprintf::@52/(byte*) myprintf::dst#21 )
|
|
*((byte*) myprintf::dst#9 + (byte) myprintf::bLen#15) ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
(byte) myprintf::return#0 ← (byte) myprintf::bLen#15
|
|
to:myprintf::@return
|
|
myprintf::@return: scope:[myprintf] from myprintf::@69
|
|
(byte) myprintf::return#4 ← phi( myprintf::@69/(byte) myprintf::return#0 )
|
|
(byte) myprintf::return#1 ← (byte) myprintf::return#4
|
|
return
|
|
to:@return
|
|
Print: scope:[Print] from main::@11 main::@14
|
|
asm { ldy#0 loop: ldastrTemp,y beqdone jsr$FFD2 iny jmploop done: }
|
|
to:Print::@return
|
|
Print::@return: scope:[Print] from Print
|
|
return
|
|
to:@return
|
|
div10: scope:[div10] from main::@6
|
|
(word) div10::val#5 ← phi( main::@6/(word) div10::val#4 )
|
|
(word~) div10::$0 ← (word) div10::val#5 >> (byte/signed byte/word/signed word/dword/signed dword) 1
|
|
(word/signed dword/dword~) div10::$1 ← (word~) div10::$0 + (byte/signed byte/word/signed word/dword/signed dword) 1
|
|
(word) div10::val#0 ← (word/signed dword/dword~) div10::$1
|
|
(word~) div10::$2 ← (word) div10::val#0 << (byte/signed byte/word/signed word/dword/signed dword) 1
|
|
(word) div10::val#1 ← (word) div10::val#0 + (word~) div10::$2
|
|
(word~) div10::$3 ← (word) div10::val#1 >> (byte/signed byte/word/signed word/dword/signed dword) 4
|
|
(word) div10::val#2 ← (word) div10::val#1 + (word~) div10::$3
|
|
(word~) div10::$4 ← (word) div10::val#2 >> (byte/signed byte/word/signed word/dword/signed dword) 4
|
|
(word~) div10::$5 ← (word~) div10::$4 >> (byte/signed byte/word/signed word/dword/signed dword) 4
|
|
(word) div10::val#3 ← (word) div10::val#2 + (word~) div10::$5
|
|
(word~) div10::$6 ← (word) div10::val#3 >> (byte/signed byte/word/signed word/dword/signed dword) 4
|
|
(word) div10::return#0 ← (word~) div10::$6
|
|
to:div10::@return
|
|
div10::@return: scope:[div10] from div10
|
|
(word) div10::return#3 ← phi( div10/(word) div10::return#0 )
|
|
(word) div10::return#1 ← (word) div10::return#3
|
|
return
|
|
to:@return
|
|
main: scope:[main] from @14
|
|
(word) main::u#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
(word) main::v#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
*((byte*) VICBANK#0) ← (byte/signed byte/word/signed word/dword/signed dword) $17
|
|
(word) main::u#1 ← (word/signed word/dword/signed dword) $6e85
|
|
*((byte*) zp1#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
to:main::@1
|
|
main::@1: scope:[main] from main main::@12
|
|
(word) main::u#11 ← phi( main/(word) main::u#1 main::@12/(word) main::u#2 )
|
|
*((byte*) TIMEHI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
*((byte*) TIMELO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
*((byte*) zp2#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
to:main::@2
|
|
main::@2: scope:[main] from main::@1 main::@10
|
|
(word) main::u#5 ← phi( main::@1/(word) main::u#11 main::@10/(word) main::u#12 )
|
|
(word) div16u::dividend#0 ← (word) main::u#5
|
|
(word) div16u::divisor#0 ← (byte/signed byte/word/signed word/dword/signed dword) $a
|
|
call div16u
|
|
(word) div16u::return#2 ← (word) div16u::return#1
|
|
to:main::@10
|
|
main::@10: scope:[main] from main::@2
|
|
(word) main::u#12 ← phi( main::@2/(word) main::u#5 )
|
|
(word) div16u::return#4 ← phi( main::@2/(word) div16u::return#2 )
|
|
(word~) main::$0 ← (word) div16u::return#4
|
|
(word) main::v#1 ← (word~) main::$0
|
|
*((byte*) zp2#0) ← ++ *((byte*) zp2#0)
|
|
(bool~) main::$1 ← *((byte*) zp2#0) < (byte/word/signed word/dword/signed dword) $c8
|
|
if((bool~) main::$1) goto main::@2
|
|
to:main::@3
|
|
main::@3: scope:[main] from main::@10
|
|
(word) main::v#3 ← phi( main::@10/(word) main::v#1 )
|
|
(word) main::u#6 ← phi( main::@10/(word) main::u#12 )
|
|
(word~) main::$2 ← ((word)) *((byte*) TIMEHI#0)
|
|
(word~) main::$3 ← (word~) main::$2 << (byte/signed byte/word/signed word/dword/signed dword) 8
|
|
(word~) main::$4 ← ((word)) *((byte*) TIMELO#0)
|
|
(word~) main::$5 ← (word~) main::$3 + (word~) main::$4
|
|
(byte*) myprintf::dst#0 ← (byte[$64]) strTemp#0
|
|
(byte*) myprintf::str#1 ← (const string) main::str
|
|
(word) myprintf::w1#0 ← (word) main::u#6
|
|
(word) myprintf::w2#0 ← (word) main::v#3
|
|
(word) myprintf::w3#0 ← (word~) main::$5
|
|
call myprintf
|
|
(byte) myprintf::return#2 ← (byte) myprintf::return#1
|
|
to:main::@11
|
|
main::@11: scope:[main] from main::@3
|
|
(word) main::u#13 ← phi( main::@3/(word) main::u#6 )
|
|
call Print
|
|
to:main::@12
|
|
main::@12: scope:[main] from main::@11
|
|
(word) main::u#7 ← phi( main::@11/(word) main::u#13 )
|
|
(word) main::u#2 ← (word) main::u#7 - (word/signed word/dword/signed dword) $4d2
|
|
*((byte*) zp1#0) ← ++ *((byte*) zp1#0)
|
|
(bool~) main::$8 ← *((byte*) zp1#0) < (byte/signed byte/word/signed word/dword/signed dword) $a
|
|
if((bool~) main::$8) goto main::@1
|
|
to:main::@4
|
|
main::@4: scope:[main] from main::@12
|
|
(word) main::u#3 ← (word/signed word/dword/signed dword) $6e85
|
|
*((byte*) zp1#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
to:main::@5
|
|
main::@5: scope:[main] from main::@15 main::@4
|
|
(word) main::u#15 ← phi( main::@15/(word) main::u#4 main::@4/(word) main::u#3 )
|
|
*((byte*) TIMEHI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
*((byte*) TIMELO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
*((byte*) zp2#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
to:main::@6
|
|
main::@6: scope:[main] from main::@13 main::@5
|
|
(word) main::u#8 ← phi( main::@13/(word) main::u#14 main::@5/(word) main::u#15 )
|
|
(word) div10::val#4 ← (word) main::u#8
|
|
call div10
|
|
(word) div10::return#2 ← (word) div10::return#1
|
|
to:main::@13
|
|
main::@13: scope:[main] from main::@6
|
|
(word) main::u#14 ← phi( main::@6/(word) main::u#8 )
|
|
(word) div10::return#4 ← phi( main::@6/(word) div10::return#2 )
|
|
(word~) main::$9 ← (word) div10::return#4
|
|
(word) main::v#2 ← (word~) main::$9
|
|
*((byte*) zp2#0) ← ++ *((byte*) zp2#0)
|
|
(bool~) main::$10 ← *((byte*) zp2#0) < (byte/word/signed word/dword/signed dword) $c8
|
|
if((bool~) main::$10) goto main::@6
|
|
to:main::@7
|
|
main::@7: scope:[main] from main::@13
|
|
(word) main::v#4 ← phi( main::@13/(word) main::v#2 )
|
|
(word) main::u#9 ← phi( main::@13/(word) main::u#14 )
|
|
(word~) main::$11 ← ((word)) *((byte*) TIMEHI#0)
|
|
(word~) main::$12 ← (word~) main::$11 << (byte/signed byte/word/signed word/dword/signed dword) 8
|
|
(word~) main::$13 ← ((word)) *((byte*) TIMELO#0)
|
|
(word~) main::$14 ← (word~) main::$12 + (word~) main::$13
|
|
(byte*) myprintf::dst#1 ← (byte[$64]) strTemp#0
|
|
(byte*) myprintf::str#2 ← (const string) main::str1
|
|
(word) myprintf::w1#1 ← (word) main::u#9
|
|
(word) myprintf::w2#1 ← (word) main::v#4
|
|
(word) myprintf::w3#1 ← (word~) main::$14
|
|
call myprintf
|
|
(byte) myprintf::return#3 ← (byte) myprintf::return#1
|
|
to:main::@14
|
|
main::@14: scope:[main] from main::@7
|
|
(word) main::u#16 ← phi( main::@7/(word) main::u#9 )
|
|
call Print
|
|
to:main::@15
|
|
main::@15: scope:[main] from main::@14
|
|
(word) main::u#10 ← phi( main::@14/(word) main::u#16 )
|
|
(word) main::u#4 ← (word) main::u#10 - (word/signed word/dword/signed dword) $4d2
|
|
*((byte*) zp1#0) ← ++ *((byte*) zp1#0)
|
|
(bool~) main::$17 ← *((byte*) zp1#0) < (byte/signed byte/word/signed word/dword/signed dword) $a
|
|
if((bool~) main::$17) goto main::@5
|
|
to:main::@8
|
|
main::@8: scope:[main] from main::@15
|
|
(signed word) main::return#0 ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
to:main::@return
|
|
main::@return: scope:[main] from main::@8
|
|
(signed word) main::return#3 ← phi( main::@8/(signed word) main::return#0 )
|
|
(signed word) main::return#1 ← (signed word) main::return#3
|
|
return
|
|
to:@return
|
|
@14: scope:[] from @8
|
|
call main
|
|
(signed word) main::return#2 ← (signed word) main::return#1
|
|
to:@15
|
|
@15: scope:[] from @14
|
|
to:@end
|
|
@end: scope:[] from @15
|
|
|
|
SYMBOL TABLE SSA
|
|
(label) @14
|
|
(label) @15
|
|
(label) @8
|
|
(label) @begin
|
|
(label) @end
|
|
(void()) Print()
|
|
(label) Print::@return
|
|
(byte*) TIMEHI
|
|
(byte*) TIMEHI#0
|
|
(byte*) TIMELO
|
|
(byte*) TIMELO#0
|
|
(byte*) VICBANK
|
|
(byte*) VICBANK#0
|
|
(word()) append((byte*) append::dst , (word) append::value , (word) append::sub)
|
|
(bool~) append::$0
|
|
(label) append::@1
|
|
(label) append::@2
|
|
(label) append::@3
|
|
(label) append::@return
|
|
(byte*) append::dst
|
|
(byte*) append::dst#0
|
|
(byte*) append::dst#1
|
|
(byte*) append::dst#2
|
|
(byte*) append::dst#3
|
|
(byte*) append::dst#4
|
|
(byte*) append::dst#5
|
|
(byte*) append::dst#6
|
|
(word) append::return
|
|
(word) append::return#0
|
|
(word) append::return#1
|
|
(word) append::return#10
|
|
(word) append::return#2
|
|
(word) append::return#3
|
|
(word) append::return#4
|
|
(word) append::return#5
|
|
(word) append::return#6
|
|
(word) append::return#7
|
|
(word) append::return#8
|
|
(word) append::return#9
|
|
(word) append::sub
|
|
(word) append::sub#0
|
|
(word) append::sub#1
|
|
(word) append::sub#2
|
|
(word) append::sub#3
|
|
(word) append::sub#4
|
|
(word) append::sub#5
|
|
(word) append::sub#6
|
|
(word) append::value
|
|
(word) append::value#0
|
|
(word) append::value#1
|
|
(word) append::value#2
|
|
(word) append::value#3
|
|
(word) append::value#4
|
|
(word) append::value#5
|
|
(word) append::value#6
|
|
(word) append::value#7
|
|
(word) append::value#8
|
|
(word()) div10((word) div10::val)
|
|
(word~) div10::$0
|
|
(word/signed dword/dword~) div10::$1
|
|
(word~) div10::$2
|
|
(word~) div10::$3
|
|
(word~) div10::$4
|
|
(word~) div10::$5
|
|
(word~) div10::$6
|
|
(label) div10::@return
|
|
(word) div10::return
|
|
(word) div10::return#0
|
|
(word) div10::return#1
|
|
(word) div10::return#2
|
|
(word) div10::return#3
|
|
(word) div10::return#4
|
|
(word) div10::val
|
|
(word) div10::val#0
|
|
(word) div10::val#1
|
|
(word) div10::val#2
|
|
(word) div10::val#3
|
|
(word) div10::val#4
|
|
(word) div10::val#5
|
|
(word()) div16u((word) div16u::dividend , (word) div16u::divisor)
|
|
(word~) div16u::$0
|
|
(label) div16u::@2
|
|
(label) div16u::@return
|
|
(word) div16u::dividend
|
|
(word) div16u::dividend#0
|
|
(word) div16u::dividend#1
|
|
(word) div16u::divisor
|
|
(word) div16u::divisor#0
|
|
(word) div16u::divisor#1
|
|
(word) div16u::return
|
|
(word) div16u::return#0
|
|
(word) div16u::return#1
|
|
(word) div16u::return#2
|
|
(word) div16u::return#3
|
|
(word) div16u::return#4
|
|
(word()) divr16u((word) divr16u::dividend , (word) divr16u::divisor , (word) divr16u::rem)
|
|
(word~) divr16u::$0
|
|
(byte~) divr16u::$1
|
|
(word~) divr16u::$10
|
|
(bool~) divr16u::$11
|
|
(byte~) divr16u::$2
|
|
(bool~) divr16u::$3
|
|
(bool~) divr16u::$4
|
|
(word/dword~) divr16u::$5
|
|
(word~) divr16u::$6
|
|
(word~) divr16u::$7
|
|
(bool~) divr16u::$8
|
|
(bool~) divr16u::$9
|
|
(label) divr16u::@1
|
|
(label) divr16u::@2
|
|
(label) divr16u::@3
|
|
(label) divr16u::@4
|
|
(label) divr16u::@5
|
|
(label) divr16u::@6
|
|
(label) divr16u::@return
|
|
(word) divr16u::dividend
|
|
(word) divr16u::dividend#0
|
|
(word) divr16u::dividend#1
|
|
(word) divr16u::dividend#2
|
|
(word) divr16u::dividend#3
|
|
(word) divr16u::dividend#4
|
|
(word) divr16u::dividend#5
|
|
(word) divr16u::dividend#6
|
|
(word) divr16u::dividend#7
|
|
(word) divr16u::divisor
|
|
(word) divr16u::divisor#0
|
|
(word) divr16u::divisor#1
|
|
(word) divr16u::divisor#2
|
|
(word) divr16u::divisor#3
|
|
(word) divr16u::divisor#4
|
|
(word) divr16u::divisor#5
|
|
(word) divr16u::divisor#6
|
|
(byte) divr16u::i
|
|
(byte) divr16u::i#0
|
|
(byte) divr16u::i#1
|
|
(byte) divr16u::i#2
|
|
(byte) divr16u::i#3
|
|
(byte) divr16u::i#4
|
|
(byte) divr16u::i#5
|
|
(byte) divr16u::i#6
|
|
(word) divr16u::quotient
|
|
(word) divr16u::quotient#0
|
|
(word) divr16u::quotient#1
|
|
(word) divr16u::quotient#2
|
|
(word) divr16u::quotient#3
|
|
(word) divr16u::quotient#4
|
|
(word) divr16u::quotient#5
|
|
(word) divr16u::quotient#6
|
|
(word) divr16u::quotient#7
|
|
(word) divr16u::quotient#8
|
|
(word) divr16u::rem
|
|
(word) divr16u::rem#0
|
|
(word) divr16u::rem#1
|
|
(word) divr16u::rem#2
|
|
(word) divr16u::rem#3
|
|
(word) divr16u::rem#4
|
|
(word) divr16u::rem#5
|
|
(word) divr16u::rem#6
|
|
(word) divr16u::rem#7
|
|
(word) divr16u::rem#8
|
|
(word) divr16u::rem#9
|
|
(word) divr16u::return
|
|
(word) divr16u::return#0
|
|
(word) divr16u::return#1
|
|
(word) divr16u::return#2
|
|
(word) divr16u::return#3
|
|
(word) divr16u::return#4
|
|
(signed word()) main()
|
|
(word~) main::$0
|
|
(bool~) main::$1
|
|
(bool~) main::$10
|
|
(word~) main::$11
|
|
(word~) main::$12
|
|
(word~) main::$13
|
|
(word~) main::$14
|
|
(bool~) main::$17
|
|
(word~) main::$2
|
|
(word~) main::$3
|
|
(word~) main::$4
|
|
(word~) main::$5
|
|
(bool~) main::$8
|
|
(word~) main::$9
|
|
(label) main::@1
|
|
(label) main::@10
|
|
(label) main::@11
|
|
(label) main::@12
|
|
(label) main::@13
|
|
(label) main::@14
|
|
(label) main::@15
|
|
(label) main::@2
|
|
(label) main::@3
|
|
(label) main::@4
|
|
(label) main::@5
|
|
(label) main::@6
|
|
(label) main::@7
|
|
(label) main::@8
|
|
(label) main::@return
|
|
(signed word) main::return
|
|
(signed word) main::return#0
|
|
(signed word) main::return#1
|
|
(signed word) main::return#2
|
|
(signed word) main::return#3
|
|
(const string) main::str = (string) "200 DIV16U: %5d,%4d IN %04d FRAMESm@"
|
|
(const string) main::str1 = (string) "200 DIV10 : %5d,%4d IN %04d FRAMESm@"
|
|
(word) main::u
|
|
(word) main::u#0
|
|
(word) main::u#1
|
|
(word) main::u#10
|
|
(word) main::u#11
|
|
(word) main::u#12
|
|
(word) main::u#13
|
|
(word) main::u#14
|
|
(word) main::u#15
|
|
(word) main::u#16
|
|
(word) main::u#2
|
|
(word) main::u#3
|
|
(word) main::u#4
|
|
(word) main::u#5
|
|
(word) main::u#6
|
|
(word) main::u#7
|
|
(word) main::u#8
|
|
(word) main::u#9
|
|
(word) main::v
|
|
(word) main::v#0
|
|
(word) main::v#1
|
|
(word) main::v#2
|
|
(word) main::v#3
|
|
(word) main::v#4
|
|
(byte()) myprintf((byte*) myprintf::dst , (byte*) myprintf::str , (word) myprintf::w1 , (word) myprintf::w2 , (word) myprintf::w3)
|
|
(bool~) myprintf::$0
|
|
(bool~) myprintf::$1
|
|
(bool~) myprintf::$10
|
|
(bool~) myprintf::$11
|
|
(bool~) myprintf::$12
|
|
(bool~) myprintf::$13
|
|
(bool~) myprintf::$14
|
|
(bool~) myprintf::$15
|
|
(bool~) myprintf::$16
|
|
(word~) myprintf::$17
|
|
(byte/word~) myprintf::$18
|
|
(bool~) myprintf::$19
|
|
(bool~) myprintf::$2
|
|
(byte/signed byte/word/signed word/dword/signed dword~) myprintf::$20
|
|
(byte~) myprintf::$21
|
|
(byte~) myprintf::$22
|
|
(byte~) myprintf::$23
|
|
(byte/word~) myprintf::$24
|
|
(bool~) myprintf::$25
|
|
(byte/signed byte/word/signed word/dword/signed dword~) myprintf::$26
|
|
(byte~) myprintf::$27
|
|
(byte~) myprintf::$28
|
|
(byte~) myprintf::$29
|
|
(bool~) myprintf::$3
|
|
(bool~) myprintf::$31
|
|
(bool~) myprintf::$32
|
|
(bool~) myprintf::$33
|
|
(bool~) myprintf::$34
|
|
(bool~) myprintf::$35
|
|
(bool~) myprintf::$36
|
|
(byte~) myprintf::$37
|
|
(byte~) myprintf::$38
|
|
(byte~) myprintf::$39
|
|
(bool~) myprintf::$4
|
|
(bool~) myprintf::$40
|
|
(bool~) myprintf::$41
|
|
(bool~) myprintf::$42
|
|
(bool~) myprintf::$43
|
|
(bool~) myprintf::$44
|
|
(bool~) myprintf::$45
|
|
(bool~) myprintf::$46
|
|
(byte~) myprintf::$47
|
|
(bool~) myprintf::$48
|
|
(bool~) myprintf::$49
|
|
(bool~) myprintf::$5
|
|
(bool~) myprintf::$50
|
|
(bool~) myprintf::$51
|
|
(bool~) myprintf::$52
|
|
(bool~) myprintf::$53
|
|
(bool~) myprintf::$54
|
|
(bool~) myprintf::$55
|
|
(bool~) myprintf::$56
|
|
(bool~) myprintf::$6
|
|
(bool~) myprintf::$7
|
|
(byte~) myprintf::$8
|
|
(bool~) myprintf::$9
|
|
(label) myprintf::@1
|
|
(label) myprintf::@10
|
|
(label) myprintf::@11
|
|
(label) myprintf::@12
|
|
(label) myprintf::@13
|
|
(label) myprintf::@14
|
|
(label) myprintf::@19
|
|
(label) myprintf::@2
|
|
(label) myprintf::@20
|
|
(label) myprintf::@21
|
|
(label) myprintf::@26
|
|
(label) myprintf::@27
|
|
(label) myprintf::@28
|
|
(label) myprintf::@29
|
|
(label) myprintf::@3
|
|
(label) myprintf::@30
|
|
(label) myprintf::@34
|
|
(label) myprintf::@35
|
|
(label) myprintf::@37
|
|
(label) myprintf::@38
|
|
(label) myprintf::@4
|
|
(label) myprintf::@40
|
|
(label) myprintf::@41
|
|
(label) myprintf::@43
|
|
(label) myprintf::@45
|
|
(label) myprintf::@46
|
|
(label) myprintf::@47
|
|
(label) myprintf::@5
|
|
(label) myprintf::@52
|
|
(label) myprintf::@53
|
|
(label) myprintf::@54
|
|
(label) myprintf::@55
|
|
(label) myprintf::@57
|
|
(label) myprintf::@6
|
|
(label) myprintf::@60
|
|
(label) myprintf::@61
|
|
(label) myprintf::@62
|
|
(label) myprintf::@64
|
|
(label) myprintf::@65
|
|
(label) myprintf::@66
|
|
(label) myprintf::@68
|
|
(label) myprintf::@69
|
|
(label) myprintf::@7
|
|
(label) myprintf::@71
|
|
(label) myprintf::@8
|
|
(label) myprintf::@9
|
|
(label) myprintf::@return
|
|
(byte) myprintf::b
|
|
(byte) myprintf::b#0
|
|
(byte) myprintf::b#1
|
|
(byte) myprintf::b#10
|
|
(byte) myprintf::b#11
|
|
(byte) myprintf::b#12
|
|
(byte) myprintf::b#13
|
|
(byte) myprintf::b#14
|
|
(byte) myprintf::b#15
|
|
(byte) myprintf::b#16
|
|
(byte) myprintf::b#17
|
|
(byte) myprintf::b#18
|
|
(byte) myprintf::b#19
|
|
(byte) myprintf::b#2
|
|
(byte) myprintf::b#20
|
|
(byte) myprintf::b#21
|
|
(byte) myprintf::b#22
|
|
(byte) myprintf::b#23
|
|
(byte) myprintf::b#24
|
|
(byte) myprintf::b#25
|
|
(byte) myprintf::b#26
|
|
(byte) myprintf::b#27
|
|
(byte) myprintf::b#28
|
|
(byte) myprintf::b#29
|
|
(byte) myprintf::b#3
|
|
(byte) myprintf::b#30
|
|
(byte) myprintf::b#31
|
|
(byte) myprintf::b#32
|
|
(byte) myprintf::b#33
|
|
(byte) myprintf::b#34
|
|
(byte) myprintf::b#4
|
|
(byte) myprintf::b#5
|
|
(byte) myprintf::b#6
|
|
(byte) myprintf::b#7
|
|
(byte) myprintf::b#8
|
|
(byte) myprintf::b#9
|
|
(byte) myprintf::bArg
|
|
(byte) myprintf::bArg#0
|
|
(byte) myprintf::bArg#1
|
|
(byte) myprintf::bArg#10
|
|
(byte) myprintf::bArg#11
|
|
(byte) myprintf::bArg#12
|
|
(byte) myprintf::bArg#13
|
|
(byte) myprintf::bArg#14
|
|
(byte) myprintf::bArg#15
|
|
(byte) myprintf::bArg#16
|
|
(byte) myprintf::bArg#17
|
|
(byte) myprintf::bArg#18
|
|
(byte) myprintf::bArg#19
|
|
(byte) myprintf::bArg#2
|
|
(byte) myprintf::bArg#20
|
|
(byte) myprintf::bArg#21
|
|
(byte) myprintf::bArg#22
|
|
(byte) myprintf::bArg#23
|
|
(byte) myprintf::bArg#24
|
|
(byte) myprintf::bArg#25
|
|
(byte) myprintf::bArg#26
|
|
(byte) myprintf::bArg#27
|
|
(byte) myprintf::bArg#28
|
|
(byte) myprintf::bArg#29
|
|
(byte) myprintf::bArg#3
|
|
(byte) myprintf::bArg#30
|
|
(byte) myprintf::bArg#31
|
|
(byte) myprintf::bArg#32
|
|
(byte) myprintf::bArg#33
|
|
(byte) myprintf::bArg#34
|
|
(byte) myprintf::bArg#35
|
|
(byte) myprintf::bArg#36
|
|
(byte) myprintf::bArg#37
|
|
(byte) myprintf::bArg#38
|
|
(byte) myprintf::bArg#39
|
|
(byte) myprintf::bArg#4
|
|
(byte) myprintf::bArg#40
|
|
(byte) myprintf::bArg#41
|
|
(byte) myprintf::bArg#42
|
|
(byte) myprintf::bArg#43
|
|
(byte) myprintf::bArg#44
|
|
(byte) myprintf::bArg#45
|
|
(byte) myprintf::bArg#46
|
|
(byte) myprintf::bArg#5
|
|
(byte) myprintf::bArg#6
|
|
(byte) myprintf::bArg#7
|
|
(byte) myprintf::bArg#8
|
|
(byte) myprintf::bArg#9
|
|
(byte) myprintf::bDigits
|
|
(byte) myprintf::bDigits#0
|
|
(byte) myprintf::bDigits#1
|
|
(byte) myprintf::bDigits#10
|
|
(byte) myprintf::bDigits#11
|
|
(byte) myprintf::bDigits#12
|
|
(byte) myprintf::bDigits#13
|
|
(byte) myprintf::bDigits#14
|
|
(byte) myprintf::bDigits#15
|
|
(byte) myprintf::bDigits#16
|
|
(byte) myprintf::bDigits#17
|
|
(byte) myprintf::bDigits#18
|
|
(byte) myprintf::bDigits#19
|
|
(byte) myprintf::bDigits#2
|
|
(byte) myprintf::bDigits#20
|
|
(byte) myprintf::bDigits#21
|
|
(byte) myprintf::bDigits#22
|
|
(byte) myprintf::bDigits#23
|
|
(byte) myprintf::bDigits#24
|
|
(byte) myprintf::bDigits#25
|
|
(byte) myprintf::bDigits#26
|
|
(byte) myprintf::bDigits#27
|
|
(byte) myprintf::bDigits#28
|
|
(byte) myprintf::bDigits#29
|
|
(byte) myprintf::bDigits#3
|
|
(byte) myprintf::bDigits#30
|
|
(byte) myprintf::bDigits#31
|
|
(byte) myprintf::bDigits#32
|
|
(byte) myprintf::bDigits#33
|
|
(byte) myprintf::bDigits#34
|
|
(byte) myprintf::bDigits#35
|
|
(byte) myprintf::bDigits#36
|
|
(byte) myprintf::bDigits#37
|
|
(byte) myprintf::bDigits#38
|
|
(byte) myprintf::bDigits#39
|
|
(byte) myprintf::bDigits#4
|
|
(byte) myprintf::bDigits#40
|
|
(byte) myprintf::bDigits#41
|
|
(byte) myprintf::bDigits#42
|
|
(byte) myprintf::bDigits#43
|
|
(byte) myprintf::bDigits#44
|
|
(byte) myprintf::bDigits#45
|
|
(byte) myprintf::bDigits#46
|
|
(byte) myprintf::bDigits#47
|
|
(byte) myprintf::bDigits#5
|
|
(byte) myprintf::bDigits#6
|
|
(byte) myprintf::bDigits#7
|
|
(byte) myprintf::bDigits#8
|
|
(byte) myprintf::bDigits#9
|
|
(byte) myprintf::bFormat
|
|
(byte) myprintf::bFormat#0
|
|
(byte) myprintf::bFormat#1
|
|
(byte) myprintf::bFormat#10
|
|
(byte) myprintf::bFormat#11
|
|
(byte) myprintf::bFormat#12
|
|
(byte) myprintf::bFormat#13
|
|
(byte) myprintf::bFormat#14
|
|
(byte) myprintf::bFormat#15
|
|
(byte) myprintf::bFormat#16
|
|
(byte) myprintf::bFormat#17
|
|
(byte) myprintf::bFormat#18
|
|
(byte) myprintf::bFormat#19
|
|
(byte) myprintf::bFormat#2
|
|
(byte) myprintf::bFormat#3
|
|
(byte) myprintf::bFormat#4
|
|
(byte) myprintf::bFormat#5
|
|
(byte) myprintf::bFormat#6
|
|
(byte) myprintf::bFormat#7
|
|
(byte) myprintf::bFormat#8
|
|
(byte) myprintf::bFormat#9
|
|
(byte) myprintf::bLeadZero
|
|
(byte) myprintf::bLeadZero#0
|
|
(byte) myprintf::bLeadZero#1
|
|
(byte) myprintf::bLeadZero#10
|
|
(byte) myprintf::bLeadZero#11
|
|
(byte) myprintf::bLeadZero#12
|
|
(byte) myprintf::bLeadZero#13
|
|
(byte) myprintf::bLeadZero#14
|
|
(byte) myprintf::bLeadZero#15
|
|
(byte) myprintf::bLeadZero#16
|
|
(byte) myprintf::bLeadZero#17
|
|
(byte) myprintf::bLeadZero#18
|
|
(byte) myprintf::bLeadZero#19
|
|
(byte) myprintf::bLeadZero#2
|
|
(byte) myprintf::bLeadZero#20
|
|
(byte) myprintf::bLeadZero#21
|
|
(byte) myprintf::bLeadZero#22
|
|
(byte) myprintf::bLeadZero#23
|
|
(byte) myprintf::bLeadZero#24
|
|
(byte) myprintf::bLeadZero#25
|
|
(byte) myprintf::bLeadZero#26
|
|
(byte) myprintf::bLeadZero#27
|
|
(byte) myprintf::bLeadZero#28
|
|
(byte) myprintf::bLeadZero#29
|
|
(byte) myprintf::bLeadZero#3
|
|
(byte) myprintf::bLeadZero#30
|
|
(byte) myprintf::bLeadZero#31
|
|
(byte) myprintf::bLeadZero#32
|
|
(byte) myprintf::bLeadZero#33
|
|
(byte) myprintf::bLeadZero#34
|
|
(byte) myprintf::bLeadZero#35
|
|
(byte) myprintf::bLeadZero#36
|
|
(byte) myprintf::bLeadZero#37
|
|
(byte) myprintf::bLeadZero#38
|
|
(byte) myprintf::bLeadZero#39
|
|
(byte) myprintf::bLeadZero#4
|
|
(byte) myprintf::bLeadZero#40
|
|
(byte) myprintf::bLeadZero#41
|
|
(byte) myprintf::bLeadZero#42
|
|
(byte) myprintf::bLeadZero#43
|
|
(byte) myprintf::bLeadZero#44
|
|
(byte) myprintf::bLeadZero#45
|
|
(byte) myprintf::bLeadZero#5
|
|
(byte) myprintf::bLeadZero#6
|
|
(byte) myprintf::bLeadZero#7
|
|
(byte) myprintf::bLeadZero#8
|
|
(byte) myprintf::bLeadZero#9
|
|
(byte) myprintf::bLen
|
|
(byte) myprintf::bLen#0
|
|
(byte) myprintf::bLen#1
|
|
(byte) myprintf::bLen#10
|
|
(byte) myprintf::bLen#11
|
|
(byte) myprintf::bLen#12
|
|
(byte) myprintf::bLen#13
|
|
(byte) myprintf::bLen#14
|
|
(byte) myprintf::bLen#15
|
|
(byte) myprintf::bLen#16
|
|
(byte) myprintf::bLen#17
|
|
(byte) myprintf::bLen#18
|
|
(byte) myprintf::bLen#19
|
|
(byte) myprintf::bLen#2
|
|
(byte) myprintf::bLen#20
|
|
(byte) myprintf::bLen#21
|
|
(byte) myprintf::bLen#22
|
|
(byte) myprintf::bLen#23
|
|
(byte) myprintf::bLen#24
|
|
(byte) myprintf::bLen#25
|
|
(byte) myprintf::bLen#26
|
|
(byte) myprintf::bLen#27
|
|
(byte) myprintf::bLen#28
|
|
(byte) myprintf::bLen#29
|
|
(byte) myprintf::bLen#3
|
|
(byte) myprintf::bLen#30
|
|
(byte) myprintf::bLen#31
|
|
(byte) myprintf::bLen#32
|
|
(byte) myprintf::bLen#33
|
|
(byte) myprintf::bLen#34
|
|
(byte) myprintf::bLen#35
|
|
(byte) myprintf::bLen#36
|
|
(byte) myprintf::bLen#37
|
|
(byte) myprintf::bLen#38
|
|
(byte) myprintf::bLen#39
|
|
(byte) myprintf::bLen#4
|
|
(byte) myprintf::bLen#40
|
|
(byte) myprintf::bLen#41
|
|
(byte) myprintf::bLen#42
|
|
(byte) myprintf::bLen#43
|
|
(byte) myprintf::bLen#44
|
|
(byte) myprintf::bLen#45
|
|
(byte) myprintf::bLen#46
|
|
(byte) myprintf::bLen#47
|
|
(byte) myprintf::bLen#48
|
|
(byte) myprintf::bLen#49
|
|
(byte) myprintf::bLen#5
|
|
(byte) myprintf::bLen#50
|
|
(byte) myprintf::bLen#51
|
|
(byte) myprintf::bLen#52
|
|
(byte) myprintf::bLen#53
|
|
(byte) myprintf::bLen#6
|
|
(byte) myprintf::bLen#7
|
|
(byte) myprintf::bLen#8
|
|
(byte) myprintf::bLen#9
|
|
(byte) myprintf::bTrailing
|
|
(byte) myprintf::bTrailing#0
|
|
(byte) myprintf::bTrailing#1
|
|
(byte) myprintf::bTrailing#10
|
|
(byte) myprintf::bTrailing#11
|
|
(byte) myprintf::bTrailing#12
|
|
(byte) myprintf::bTrailing#13
|
|
(byte) myprintf::bTrailing#14
|
|
(byte) myprintf::bTrailing#15
|
|
(byte) myprintf::bTrailing#16
|
|
(byte) myprintf::bTrailing#17
|
|
(byte) myprintf::bTrailing#18
|
|
(byte) myprintf::bTrailing#19
|
|
(byte) myprintf::bTrailing#2
|
|
(byte) myprintf::bTrailing#20
|
|
(byte) myprintf::bTrailing#21
|
|
(byte) myprintf::bTrailing#22
|
|
(byte) myprintf::bTrailing#23
|
|
(byte) myprintf::bTrailing#24
|
|
(byte) myprintf::bTrailing#25
|
|
(byte) myprintf::bTrailing#26
|
|
(byte) myprintf::bTrailing#27
|
|
(byte) myprintf::bTrailing#28
|
|
(byte) myprintf::bTrailing#29
|
|
(byte) myprintf::bTrailing#3
|
|
(byte) myprintf::bTrailing#30
|
|
(byte) myprintf::bTrailing#31
|
|
(byte) myprintf::bTrailing#32
|
|
(byte) myprintf::bTrailing#33
|
|
(byte) myprintf::bTrailing#34
|
|
(byte) myprintf::bTrailing#35
|
|
(byte) myprintf::bTrailing#36
|
|
(byte) myprintf::bTrailing#37
|
|
(byte) myprintf::bTrailing#38
|
|
(byte) myprintf::bTrailing#39
|
|
(byte) myprintf::bTrailing#4
|
|
(byte) myprintf::bTrailing#40
|
|
(byte) myprintf::bTrailing#41
|
|
(byte) myprintf::bTrailing#42
|
|
(byte) myprintf::bTrailing#43
|
|
(byte) myprintf::bTrailing#44
|
|
(byte) myprintf::bTrailing#45
|
|
(byte) myprintf::bTrailing#5
|
|
(byte) myprintf::bTrailing#6
|
|
(byte) myprintf::bTrailing#7
|
|
(byte) myprintf::bTrailing#8
|
|
(byte) myprintf::bTrailing#9
|
|
(byte[6]) myprintf::buf6
|
|
(byte[6]) myprintf::buf6#0
|
|
(byte) myprintf::digit
|
|
(byte) myprintf::digit#0
|
|
(byte) myprintf::digit#1
|
|
(byte) myprintf::digit#2
|
|
(byte) myprintf::digit#3
|
|
(byte*) myprintf::dst
|
|
(byte*) myprintf::dst#0
|
|
(byte*) myprintf::dst#1
|
|
(byte*) myprintf::dst#10
|
|
(byte*) myprintf::dst#11
|
|
(byte*) myprintf::dst#12
|
|
(byte*) myprintf::dst#13
|
|
(byte*) myprintf::dst#14
|
|
(byte*) myprintf::dst#15
|
|
(byte*) myprintf::dst#16
|
|
(byte*) myprintf::dst#17
|
|
(byte*) myprintf::dst#18
|
|
(byte*) myprintf::dst#19
|
|
(byte*) myprintf::dst#2
|
|
(byte*) myprintf::dst#20
|
|
(byte*) myprintf::dst#21
|
|
(byte*) myprintf::dst#22
|
|
(byte*) myprintf::dst#23
|
|
(byte*) myprintf::dst#24
|
|
(byte*) myprintf::dst#25
|
|
(byte*) myprintf::dst#26
|
|
(byte*) myprintf::dst#27
|
|
(byte*) myprintf::dst#28
|
|
(byte*) myprintf::dst#29
|
|
(byte*) myprintf::dst#3
|
|
(byte*) myprintf::dst#30
|
|
(byte*) myprintf::dst#31
|
|
(byte*) myprintf::dst#32
|
|
(byte*) myprintf::dst#33
|
|
(byte*) myprintf::dst#34
|
|
(byte*) myprintf::dst#35
|
|
(byte*) myprintf::dst#36
|
|
(byte*) myprintf::dst#37
|
|
(byte*) myprintf::dst#38
|
|
(byte*) myprintf::dst#39
|
|
(byte*) myprintf::dst#4
|
|
(byte*) myprintf::dst#40
|
|
(byte*) myprintf::dst#41
|
|
(byte*) myprintf::dst#42
|
|
(byte*) myprintf::dst#43
|
|
(byte*) myprintf::dst#44
|
|
(byte*) myprintf::dst#45
|
|
(byte*) myprintf::dst#46
|
|
(byte*) myprintf::dst#47
|
|
(byte*) myprintf::dst#48
|
|
(byte*) myprintf::dst#5
|
|
(byte*) myprintf::dst#6
|
|
(byte*) myprintf::dst#7
|
|
(byte*) myprintf::dst#8
|
|
(byte*) myprintf::dst#9
|
|
(byte) myprintf::return
|
|
(byte) myprintf::return#0
|
|
(byte) myprintf::return#1
|
|
(byte) myprintf::return#2
|
|
(byte) myprintf::return#3
|
|
(byte) myprintf::return#4
|
|
(byte*) myprintf::str
|
|
(byte*) myprintf::str#0
|
|
(byte*) myprintf::str#1
|
|
(byte*) myprintf::str#10
|
|
(byte*) myprintf::str#11
|
|
(byte*) myprintf::str#12
|
|
(byte*) myprintf::str#13
|
|
(byte*) myprintf::str#14
|
|
(byte*) myprintf::str#15
|
|
(byte*) myprintf::str#16
|
|
(byte*) myprintf::str#17
|
|
(byte*) myprintf::str#18
|
|
(byte*) myprintf::str#19
|
|
(byte*) myprintf::str#2
|
|
(byte*) myprintf::str#20
|
|
(byte*) myprintf::str#21
|
|
(byte*) myprintf::str#22
|
|
(byte*) myprintf::str#23
|
|
(byte*) myprintf::str#24
|
|
(byte*) myprintf::str#25
|
|
(byte*) myprintf::str#26
|
|
(byte*) myprintf::str#27
|
|
(byte*) myprintf::str#28
|
|
(byte*) myprintf::str#29
|
|
(byte*) myprintf::str#3
|
|
(byte*) myprintf::str#30
|
|
(byte*) myprintf::str#31
|
|
(byte*) myprintf::str#32
|
|
(byte*) myprintf::str#33
|
|
(byte*) myprintf::str#34
|
|
(byte*) myprintf::str#35
|
|
(byte*) myprintf::str#36
|
|
(byte*) myprintf::str#37
|
|
(byte*) myprintf::str#38
|
|
(byte*) myprintf::str#39
|
|
(byte*) myprintf::str#4
|
|
(byte*) myprintf::str#40
|
|
(byte*) myprintf::str#41
|
|
(byte*) myprintf::str#42
|
|
(byte*) myprintf::str#43
|
|
(byte*) myprintf::str#44
|
|
(byte*) myprintf::str#45
|
|
(byte*) myprintf::str#46
|
|
(byte*) myprintf::str#47
|
|
(byte*) myprintf::str#48
|
|
(byte*) myprintf::str#5
|
|
(byte*) myprintf::str#6
|
|
(byte*) myprintf::str#7
|
|
(byte*) myprintf::str#8
|
|
(byte*) myprintf::str#9
|
|
(word) myprintf::w
|
|
(word) myprintf::w#0
|
|
(word) myprintf::w#1
|
|
(word) myprintf::w#10
|
|
(word) myprintf::w#11
|
|
(word) myprintf::w#12
|
|
(word) myprintf::w#13
|
|
(word) myprintf::w#14
|
|
(word) myprintf::w#15
|
|
(word) myprintf::w#16
|
|
(word) myprintf::w#17
|
|
(word) myprintf::w#18
|
|
(word) myprintf::w#19
|
|
(word) myprintf::w#2
|
|
(word) myprintf::w#20
|
|
(word) myprintf::w#21
|
|
(word) myprintf::w#22
|
|
(word) myprintf::w#23
|
|
(word) myprintf::w#24
|
|
(word) myprintf::w#25
|
|
(word) myprintf::w#26
|
|
(word) myprintf::w#27
|
|
(word) myprintf::w#28
|
|
(word) myprintf::w#29
|
|
(word) myprintf::w#3
|
|
(word) myprintf::w#30
|
|
(word) myprintf::w#31
|
|
(word) myprintf::w#32
|
|
(word) myprintf::w#33
|
|
(word) myprintf::w#34
|
|
(word) myprintf::w#35
|
|
(word) myprintf::w#36
|
|
(word) myprintf::w#37
|
|
(word) myprintf::w#38
|
|
(word) myprintf::w#39
|
|
(word) myprintf::w#4
|
|
(word) myprintf::w#40
|
|
(word) myprintf::w#41
|
|
(word) myprintf::w#42
|
|
(word) myprintf::w#43
|
|
(word) myprintf::w#5
|
|
(word) myprintf::w#6
|
|
(word) myprintf::w#7
|
|
(word) myprintf::w#8
|
|
(word) myprintf::w#9
|
|
(word) myprintf::w1
|
|
(word) myprintf::w1#0
|
|
(word) myprintf::w1#1
|
|
(word) myprintf::w1#10
|
|
(word) myprintf::w1#11
|
|
(word) myprintf::w1#12
|
|
(word) myprintf::w1#13
|
|
(word) myprintf::w1#14
|
|
(word) myprintf::w1#15
|
|
(word) myprintf::w1#16
|
|
(word) myprintf::w1#17
|
|
(word) myprintf::w1#18
|
|
(word) myprintf::w1#19
|
|
(word) myprintf::w1#2
|
|
(word) myprintf::w1#20
|
|
(word) myprintf::w1#21
|
|
(word) myprintf::w1#22
|
|
(word) myprintf::w1#23
|
|
(word) myprintf::w1#24
|
|
(word) myprintf::w1#25
|
|
(word) myprintf::w1#26
|
|
(word) myprintf::w1#27
|
|
(word) myprintf::w1#28
|
|
(word) myprintf::w1#29
|
|
(word) myprintf::w1#3
|
|
(word) myprintf::w1#30
|
|
(word) myprintf::w1#31
|
|
(word) myprintf::w1#32
|
|
(word) myprintf::w1#33
|
|
(word) myprintf::w1#34
|
|
(word) myprintf::w1#35
|
|
(word) myprintf::w1#36
|
|
(word) myprintf::w1#37
|
|
(word) myprintf::w1#38
|
|
(word) myprintf::w1#39
|
|
(word) myprintf::w1#4
|
|
(word) myprintf::w1#40
|
|
(word) myprintf::w1#41
|
|
(word) myprintf::w1#42
|
|
(word) myprintf::w1#43
|
|
(word) myprintf::w1#44
|
|
(word) myprintf::w1#45
|
|
(word) myprintf::w1#46
|
|
(word) myprintf::w1#47
|
|
(word) myprintf::w1#5
|
|
(word) myprintf::w1#6
|
|
(word) myprintf::w1#7
|
|
(word) myprintf::w1#8
|
|
(word) myprintf::w1#9
|
|
(word) myprintf::w2
|
|
(word) myprintf::w2#0
|
|
(word) myprintf::w2#1
|
|
(word) myprintf::w2#10
|
|
(word) myprintf::w2#11
|
|
(word) myprintf::w2#12
|
|
(word) myprintf::w2#13
|
|
(word) myprintf::w2#14
|
|
(word) myprintf::w2#15
|
|
(word) myprintf::w2#16
|
|
(word) myprintf::w2#17
|
|
(word) myprintf::w2#18
|
|
(word) myprintf::w2#19
|
|
(word) myprintf::w2#2
|
|
(word) myprintf::w2#20
|
|
(word) myprintf::w2#21
|
|
(word) myprintf::w2#22
|
|
(word) myprintf::w2#23
|
|
(word) myprintf::w2#24
|
|
(word) myprintf::w2#25
|
|
(word) myprintf::w2#26
|
|
(word) myprintf::w2#27
|
|
(word) myprintf::w2#28
|
|
(word) myprintf::w2#29
|
|
(word) myprintf::w2#3
|
|
(word) myprintf::w2#30
|
|
(word) myprintf::w2#31
|
|
(word) myprintf::w2#32
|
|
(word) myprintf::w2#33
|
|
(word) myprintf::w2#34
|
|
(word) myprintf::w2#35
|
|
(word) myprintf::w2#36
|
|
(word) myprintf::w2#37
|
|
(word) myprintf::w2#38
|
|
(word) myprintf::w2#39
|
|
(word) myprintf::w2#4
|
|
(word) myprintf::w2#40
|
|
(word) myprintf::w2#41
|
|
(word) myprintf::w2#42
|
|
(word) myprintf::w2#43
|
|
(word) myprintf::w2#44
|
|
(word) myprintf::w2#45
|
|
(word) myprintf::w2#46
|
|
(word) myprintf::w2#47
|
|
(word) myprintf::w2#5
|
|
(word) myprintf::w2#6
|
|
(word) myprintf::w2#7
|
|
(word) myprintf::w2#8
|
|
(word) myprintf::w2#9
|
|
(word) myprintf::w3
|
|
(word) myprintf::w3#0
|
|
(word) myprintf::w3#1
|
|
(word) myprintf::w3#10
|
|
(word) myprintf::w3#11
|
|
(word) myprintf::w3#12
|
|
(word) myprintf::w3#13
|
|
(word) myprintf::w3#14
|
|
(word) myprintf::w3#15
|
|
(word) myprintf::w3#16
|
|
(word) myprintf::w3#17
|
|
(word) myprintf::w3#18
|
|
(word) myprintf::w3#19
|
|
(word) myprintf::w3#2
|
|
(word) myprintf::w3#20
|
|
(word) myprintf::w3#21
|
|
(word) myprintf::w3#22
|
|
(word) myprintf::w3#23
|
|
(word) myprintf::w3#24
|
|
(word) myprintf::w3#25
|
|
(word) myprintf::w3#26
|
|
(word) myprintf::w3#27
|
|
(word) myprintf::w3#28
|
|
(word) myprintf::w3#29
|
|
(word) myprintf::w3#3
|
|
(word) myprintf::w3#30
|
|
(word) myprintf::w3#31
|
|
(word) myprintf::w3#32
|
|
(word) myprintf::w3#33
|
|
(word) myprintf::w3#34
|
|
(word) myprintf::w3#35
|
|
(word) myprintf::w3#36
|
|
(word) myprintf::w3#37
|
|
(word) myprintf::w3#38
|
|
(word) myprintf::w3#39
|
|
(word) myprintf::w3#4
|
|
(word) myprintf::w3#40
|
|
(word) myprintf::w3#41
|
|
(word) myprintf::w3#42
|
|
(word) myprintf::w3#43
|
|
(word) myprintf::w3#44
|
|
(word) myprintf::w3#45
|
|
(word) myprintf::w3#46
|
|
(word) myprintf::w3#47
|
|
(word) myprintf::w3#5
|
|
(word) myprintf::w3#6
|
|
(word) myprintf::w3#7
|
|
(word) myprintf::w3#8
|
|
(word) myprintf::w3#9
|
|
(byte[$64]) strTemp
|
|
(byte[$64]) strTemp#0
|
|
(void()) utoa((word) utoa::value , (byte*) utoa::dst)
|
|
(bool~) utoa::$0
|
|
(bool~) utoa::$1
|
|
(bool~) utoa::$10
|
|
(bool~) utoa::$11
|
|
(bool~) utoa::$12
|
|
(bool~) utoa::$13
|
|
(bool~) utoa::$14
|
|
(bool~) utoa::$15
|
|
(byte~) utoa::$16
|
|
(byte~) utoa::$17
|
|
(word~) utoa::$18
|
|
(word~) utoa::$19
|
|
(bool~) utoa::$2
|
|
(word~) utoa::$20
|
|
(word~) utoa::$21
|
|
(bool~) utoa::$3
|
|
(bool~) utoa::$4
|
|
(bool~) utoa::$5
|
|
(bool~) utoa::$6
|
|
(bool~) utoa::$7
|
|
(bool~) utoa::$8
|
|
(bool~) utoa::$9
|
|
(label) utoa::@1
|
|
(label) utoa::@10
|
|
(label) utoa::@11
|
|
(label) utoa::@12
|
|
(label) utoa::@2
|
|
(label) utoa::@3
|
|
(label) utoa::@4
|
|
(label) utoa::@5
|
|
(label) utoa::@6
|
|
(label) utoa::@7
|
|
(label) utoa::@8
|
|
(label) utoa::@9
|
|
(label) utoa::@return
|
|
(byte) utoa::bStarted
|
|
(byte) utoa::bStarted#0
|
|
(byte) utoa::bStarted#1
|
|
(byte) utoa::bStarted#2
|
|
(byte) utoa::bStarted#3
|
|
(byte) utoa::bStarted#4
|
|
(byte) utoa::bStarted#5
|
|
(byte) utoa::bStarted#6
|
|
(byte) utoa::bStarted#7
|
|
(byte*) utoa::dst
|
|
(byte*) utoa::dst#0
|
|
(byte*) utoa::dst#1
|
|
(byte*) utoa::dst#10
|
|
(byte*) utoa::dst#11
|
|
(byte*) utoa::dst#12
|
|
(byte*) utoa::dst#13
|
|
(byte*) utoa::dst#14
|
|
(byte*) utoa::dst#15
|
|
(byte*) utoa::dst#16
|
|
(byte*) utoa::dst#17
|
|
(byte*) utoa::dst#18
|
|
(byte*) utoa::dst#2
|
|
(byte*) utoa::dst#3
|
|
(byte*) utoa::dst#4
|
|
(byte*) utoa::dst#5
|
|
(byte*) utoa::dst#6
|
|
(byte*) utoa::dst#7
|
|
(byte*) utoa::dst#8
|
|
(byte*) utoa::dst#9
|
|
(word) utoa::value
|
|
(word) utoa::value#0
|
|
(word) utoa::value#1
|
|
(word) utoa::value#10
|
|
(word) utoa::value#11
|
|
(word) utoa::value#12
|
|
(word) utoa::value#13
|
|
(word) utoa::value#2
|
|
(word) utoa::value#3
|
|
(word) utoa::value#4
|
|
(word) utoa::value#5
|
|
(word) utoa::value#6
|
|
(word) utoa::value#7
|
|
(word) utoa::value#8
|
|
(word) utoa::value#9
|
|
(byte*) zp1
|
|
(byte*) zp1#0
|
|
(byte*) zp2
|
|
(byte*) zp2#0
|
|
|
|
Culled Empty Block (label) @15
|
|
Successful SSA optimization Pass2CullEmptyBlocks
|
|
Inversing boolean not [9] (bool~) divr16u::$4 ← (byte~) divr16u::$2 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [8] (bool~) divr16u::$3 ← (byte~) divr16u::$2 != (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
Inversing boolean not [17] (bool~) divr16u::$9 ← (word) divr16u::rem#5 < (word) divr16u::divisor#1 from [16] (bool~) divr16u::$8 ← (word) divr16u::rem#5 >= (word) divr16u::divisor#1
|
|
Inversing boolean not [156] (bool~) myprintf::$1 ← (byte) myprintf::bFormat#3 == (byte/signed byte/word/signed word/dword/signed dword) 0 from [155] (bool~) myprintf::$0 ← (byte) myprintf::bFormat#3 != (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
Inversing boolean not [160] (bool~) myprintf::$49 ← (byte) myprintf::b#7 != (byte) '%' from [159] (bool~) myprintf::$48 ← (byte) myprintf::b#7 == (byte) '%'
|
|
Inversing boolean not [164] (bool~) myprintf::$3 ← (byte) myprintf::b#8 != (byte) '0' from [163] (bool~) myprintf::$2 ← (byte) myprintf::b#8 == (byte) '0'
|
|
Inversing boolean not [180] (bool~) myprintf::$10 ← (byte) myprintf::b#10 != (byte) '-' from [179] (bool~) myprintf::$9 ← (byte) myprintf::b#10 == (byte) '-'
|
|
Successful SSA optimization Pass2UnaryNotSimplification
|
|
Alias (word) divr16u::rem#0 = (word~) divr16u::$0 (word) divr16u::rem#6
|
|
Alias (word) divr16u::dividend#0 = (word~) divr16u::$6 (word) divr16u::dividend#7
|
|
Alias (word) divr16u::quotient#1 = (word~) divr16u::$7 (word) divr16u::quotient#4
|
|
Alias (word) divr16u::dividend#2 = (word) divr16u::dividend#6
|
|
Alias (word) divr16u::quotient#6 = (word) divr16u::quotient#7
|
|
Alias (word) divr16u::divisor#3 = (word) divr16u::divisor#4
|
|
Alias (byte) divr16u::i#5 = (byte) divr16u::i#6
|
|
Alias (word) divr16u::rem#1 = (word/dword~) divr16u::$5
|
|
Alias (word) divr16u::rem#5 = (word) divr16u::rem#7
|
|
Alias (word) divr16u::divisor#1 = (word) divr16u::divisor#2
|
|
Alias (byte) divr16u::i#3 = (byte) divr16u::i#4
|
|
Alias (word) divr16u::rem#2 = (word~) divr16u::$10
|
|
Alias (word) divr16u::return#0 = (word) divr16u::quotient#5 (word) divr16u::quotient#8 (word) divr16u::return#3 (word) divr16u::return#1
|
|
Alias (word) divr16u::return#2 = (word) divr16u::return#4
|
|
Alias (word) div16u::return#0 = (word~) div16u::$0 (word) div16u::return#3 (word) div16u::return#1
|
|
Alias (byte*) append::dst#5 = (byte*) append::dst#6
|
|
Alias (word) append::value#5 = (word) append::value#6 (word) append::value#7 (word) append::return#0 (word) append::return#6 (word) append::return#1
|
|
Alias (word) append::sub#4 = (word) append::sub#5
|
|
Alias (byte*) utoa::dst#15 = (byte*) utoa::dst#6 (byte*) utoa::dst#7
|
|
Alias (word) utoa::value#5 = (word) utoa::value#7
|
|
Alias (word) append::return#2 = (word) append::return#7
|
|
Alias (word) utoa::value#0 = (word~) utoa::$18
|
|
Alias (byte*) utoa::dst#16 = (byte*) utoa::dst#8 (byte*) utoa::dst#9
|
|
Alias (word) utoa::value#6 = (word) utoa::value#9
|
|
Alias (word) append::return#3 = (word) append::return#8
|
|
Alias (word) utoa::value#1 = (word~) utoa::$19
|
|
Alias (byte*) utoa::dst#10 = (byte*) utoa::dst#17 (byte*) utoa::dst#11
|
|
Alias (word) utoa::value#11 = (word) utoa::value#8
|
|
Alias (word) append::return#4 = (word) append::return#9
|
|
Alias (word) utoa::value#2 = (word~) utoa::$20
|
|
Alias (byte*) utoa::dst#13 = (byte*) utoa::dst#18 (byte*) utoa::dst#14
|
|
Alias (word) utoa::value#10 = (word) utoa::value#13
|
|
Alias (word) append::return#10 = (word) append::return#5
|
|
Alias (word) utoa::value#3 = (word~) utoa::$21
|
|
Alias (byte) myprintf::b#1 = (byte) myprintf::b#7 (byte) myprintf::b#8 (byte) myprintf::b#9 (byte) myprintf::b#10 (byte) myprintf::b#11 (byte) myprintf::b#12 (byte) myprintf::b#13 (byte) myprintf::b#14 (byte) myprintf::b#24 (byte) myprintf::b#26
|
|
Alias (byte) myprintf::bArg#12 = (byte) myprintf::bArg#5 (byte) myprintf::bArg#9 (byte) myprintf::bArg#16 (byte) myprintf::bArg#17 (byte) myprintf::bArg#15 (byte) myprintf::bArg#18 (byte) myprintf::bArg#26 (byte) myprintf::bArg#13 (byte) myprintf::bArg#22 (byte) myprintf::bArg#31 (byte) myprintf::bArg#46 (byte) myprintf::bArg#44 (byte) myprintf::bArg#27 (byte) myprintf::bArg#23 (byte) myprintf::bArg#37 (byte) myprintf::bArg#35 (byte) myprintf::bArg#34 (byte) myprintf::bArg#24 (byte) myprintf::bArg#2 (byte) myprintf::bArg#6 (byte) myprintf::bArg#3 (byte) myprintf::bArg#7 (byte) myprintf::bArg#8 (byte) myprintf::bArg#25
|
|
Alias (byte*) myprintf::dst#10 = (byte*) myprintf::dst#31 (byte*) myprintf::dst#32 (byte*) myprintf::dst#33 (byte*) myprintf::dst#34 (byte*) myprintf::dst#26 (byte*) myprintf::dst#27 (byte*) myprintf::dst#23 (byte*) myprintf::dst#24 (byte*) myprintf::dst#2 (byte*) myprintf::dst#43 (byte*) myprintf::dst#48 (byte*) myprintf::dst#45 (byte*) myprintf::dst#35 (byte*) myprintf::dst#38 (byte*) myprintf::dst#28 (byte*) myprintf::dst#12 (byte*) myprintf::dst#11 (byte*) myprintf::dst#19 (byte*) myprintf::dst#46 (byte*) myprintf::dst#39 (byte*) myprintf::dst#47 (byte*) myprintf::dst#40 (byte*) myprintf::dst#41 (byte*) myprintf::dst#20
|
|
Alias (byte) myprintf::bLen#16 = (byte) myprintf::bLen#37 (byte) myprintf::bLen#38 (byte) myprintf::bLen#39 (byte) myprintf::bLen#40 (byte) myprintf::bLen#32 (byte) myprintf::bLen#33 (byte) myprintf::bLen#29 (byte) myprintf::bLen#30 (byte) myprintf::bLen#8 (byte) myprintf::bLen#48 (byte) myprintf::bLen#53 (byte) myprintf::bLen#50 (byte) myprintf::bLen#41 (byte) myprintf::bLen#44 (byte) myprintf::bLen#34 (byte) myprintf::bLen#18 (byte) myprintf::bLen#17 (byte) myprintf::bLen#25 (byte) myprintf::bLen#51 (byte) myprintf::bLen#45 (byte) myprintf::bLen#52 (byte) myprintf::bLen#46 (byte) myprintf::bLen#47 (byte) myprintf::bLen#26
|
|
Alias (word) myprintf::w1#10 = (word) myprintf::w1#4 (word) myprintf::w1#5 (word) myprintf::w1#14 (word) myprintf::w1#15 (word) myprintf::w1#13 (word) myprintf::w1#16 (word) myprintf::w1#9 (word) myprintf::w1#26 (word) myprintf::w1#20 (word) myprintf::w1#32 (word) myprintf::w1#47 (word) myprintf::w1#45 (word) myprintf::w1#27 (word) myprintf::w1#21 (word) myprintf::w1#38 (word) myprintf::w1#36 (word) myprintf::w1#35 (word) myprintf::w1#24 (word) myprintf::w1#3 (word) myprintf::w1#2 (word) myprintf::w#1 (word) myprintf::w1#31 (word) myprintf::w1#22 (word) myprintf::w1#23 (word) myprintf::w1#25
|
|
Alias (byte*) myprintf::str#11 = (byte*) myprintf::str#30 (byte*) myprintf::str#3 (byte*) myprintf::str#12 (byte*) myprintf::str#13 (byte*) myprintf::str#14 (byte*) myprintf::str#7 (byte*) myprintf::str#25 (byte*) myprintf::str#8 (byte*) myprintf::str#18 (byte*) myprintf::str#33 (byte*) myprintf::str#48 (byte*) myprintf::str#46 (byte*) myprintf::str#26 (byte*) myprintf::str#19 (byte*) myprintf::str#39 (byte*) myprintf::str#37 (byte*) myprintf::str#36 (byte*) myprintf::str#23 (byte*) myprintf::str#31 (byte*) myprintf::str#20 (byte*) myprintf::str#32 (byte*) myprintf::str#21 (byte*) myprintf::str#22 (byte*) myprintf::str#24
|
|
Alias (word) myprintf::w2#10 = (word) myprintf::w2#5 (word) myprintf::w2#6 (word) myprintf::w2#15 (word) myprintf::w2#16 (word) myprintf::w2#14 (word) myprintf::w2#17 (word) myprintf::w2#27 (word) myprintf::w2#11 (word) myprintf::w2#21 (word) myprintf::w2#32 (word) myprintf::w2#47 (word) myprintf::w2#45 (word) myprintf::w2#28 (word) myprintf::w2#22 (word) myprintf::w2#38 (word) myprintf::w2#36 (word) myprintf::w2#35 (word) myprintf::w2#25 (word) myprintf::w2#4 (word) myprintf::w2#23 (word) myprintf::w2#3 (word) myprintf::w2#2 (word) myprintf::w#2 (word) myprintf::w2#24 (word) myprintf::w2#26
|
|
Alias (word) myprintf::w3#10 = (word) myprintf::w3#5 (word) myprintf::w3#6 (word) myprintf::w3#15 (word) myprintf::w3#16 (word) myprintf::w3#14 (word) myprintf::w3#17 (word) myprintf::w3#27 (word) myprintf::w3#11 (word) myprintf::w3#21 (word) myprintf::w3#32 (word) myprintf::w3#47 (word) myprintf::w3#45 (word) myprintf::w3#28 (word) myprintf::w3#22 (word) myprintf::w3#38 (word) myprintf::w3#36 (word) myprintf::w3#35 (word) myprintf::w3#25 (word) myprintf::w3#4 (word) myprintf::w3#23 (word) myprintf::w3#3 (word) myprintf::w3#24 (word) myprintf::w3#2 (word) myprintf::w#3 (word) myprintf::w3#26
|
|
Alias (byte) myprintf::bFormat#10 = (byte) myprintf::bFormat#18 (byte) myprintf::bFormat#3 (byte) myprintf::bFormat#11 (byte) myprintf::bFormat#9 (byte) myprintf::bFormat#12 (byte) myprintf::bFormat#5 (byte) myprintf::bFormat#6 (byte) myprintf::bFormat#16 (byte) myprintf::bFormat#17
|
|
Alias (word) myprintf::w#10 = (word) myprintf::w#33 (word) myprintf::w#16 (word) myprintf::w#15 (word) myprintf::w#14 (word) myprintf::w#23 (word) myprintf::w#13 (word) myprintf::w#19 (word) myprintf::w#8 (word) myprintf::w#20 (word) myprintf::w#4 (word) myprintf::w#9 (word) myprintf::w#5 (word) myprintf::w#42 (word) myprintf::w#27 (word) myprintf::w#6 (word) myprintf::w#12 (word) myprintf::w#11 (word) myprintf::w#28 (word) myprintf::w#29
|
|
Alias (byte) myprintf::bTrailing#10 = (byte) myprintf::bTrailing#40 (byte) myprintf::bTrailing#20 (byte) myprintf::bTrailing#19 (byte) myprintf::bTrailing#18 (byte) myprintf::bTrailing#26 (byte) myprintf::bTrailing#17 (byte) myprintf::bTrailing#23 (byte) myprintf::bTrailing#15 (byte) myprintf::bTrailing#30 (byte) myprintf::bTrailing#12 (byte) myprintf::bTrailing#8 (byte) myprintf::bTrailing#37 (byte) myprintf::bTrailing#31 (byte) myprintf::bTrailing#45 (byte) myprintf::bTrailing#44 (byte) myprintf::bTrailing#43 (byte) myprintf::bTrailing#35 (byte) myprintf::bTrailing#36
|
|
Alias (byte) myprintf::bDigits#14 = (byte) myprintf::bDigits#42 (byte) myprintf::bDigits#23 (byte) myprintf::bDigits#22 (byte) myprintf::bDigits#21 (byte) myprintf::bDigits#29 (byte) myprintf::bDigits#20 (byte) myprintf::bDigits#19 (byte) myprintf::bDigits#26 (byte) myprintf::bDigits#32 (byte) myprintf::bDigits#18 (byte) myprintf::bDigits#17 (byte) myprintf::bDigits#39 (byte) myprintf::bDigits#33 (byte) myprintf::bDigits#47 (byte) myprintf::bDigits#46 (byte) myprintf::bDigits#45 (byte) myprintf::bDigits#37 (byte) myprintf::bDigits#38
|
|
Alias (byte) myprintf::bLeadZero#10 = (byte) myprintf::bLeadZero#38 (byte) myprintf::bLeadZero#17 (byte) myprintf::bLeadZero#16 (byte) myprintf::bLeadZero#15 (byte) myprintf::bLeadZero#14 (byte) myprintf::bLeadZero#20 (byte) myprintf::bLeadZero#13 (byte) myprintf::bLeadZero#21 (byte) myprintf::bLeadZero#27 (byte) myprintf::bLeadZero#12 (byte) myprintf::bLeadZero#11 (byte) myprintf::bLeadZero#34 (byte) myprintf::bLeadZero#28 (byte) myprintf::bLeadZero#45 (byte) myprintf::bLeadZero#43 (byte) myprintf::bLeadZero#42 (byte) myprintf::bLeadZero#32 (byte) myprintf::bLeadZero#33
|
|
Alias (byte) myprintf::bDigits#1 = (byte~) myprintf::$8
|
|
Alias (byte) myprintf::b#27 = (byte) myprintf::b#3 (byte/word~) myprintf::$18 (byte) myprintf::b#28
|
|
Alias (byte) myprintf::b#29 = (byte) myprintf::b#4 (byte/word~) myprintf::$24 (byte) myprintf::b#30
|
|
Alias (byte*) myprintf::dst#13 = (byte*) myprintf::dst#3 (byte*) myprintf::dst#14
|
|
Alias (byte) myprintf::bLen#19 = (byte) myprintf::bLen#2 (byte) myprintf::bLen#20
|
|
Alias (byte*) myprintf::str#27 = (byte*) myprintf::str#34 (byte*) myprintf::str#28
|
|
Alias (byte) myprintf::bArg#28 = (byte) myprintf::bArg#32 (byte) myprintf::bArg#29
|
|
Alias (word) myprintf::w1#28 = (word) myprintf::w1#33 (word) myprintf::w1#29
|
|
Alias (word) myprintf::w2#29 = (word) myprintf::w2#33 (word) myprintf::w2#30
|
|
Alias (word) myprintf::w3#29 = (word) myprintf::w3#33 (word) myprintf::w3#30
|
|
Alias (word) myprintf::w#30 = (word) myprintf::w#7 (word) myprintf::w#31
|
|
Alias (byte) myprintf::bTrailing#38 = (byte) myprintf::bTrailing#42 (byte) myprintf::bTrailing#39
|
|
Alias (byte) myprintf::bDigits#40 = (byte) myprintf::bDigits#44 (byte) myprintf::bDigits#41
|
|
Alias (byte) myprintf::bLeadZero#35 = (byte) myprintf::bLeadZero#40 (byte) myprintf::bLeadZero#36
|
|
Alias (byte) myprintf::b#17 = (byte) myprintf::b#18 (byte) myprintf::b#19
|
|
Alias (byte) myprintf::bTrailing#3 = (byte) myprintf::bTrailing#7 (byte) myprintf::bTrailing#5
|
|
Alias (byte) myprintf::bDigits#13 = (byte) myprintf::bDigits#9 (byte) myprintf::bDigits#5
|
|
Alias (byte) myprintf::bLeadZero#4 = (byte) myprintf::bLeadZero#9 (byte) myprintf::bLeadZero#6
|
|
Alias (byte*) myprintf::dst#29 = (byte*) myprintf::dst#44 (byte*) myprintf::dst#36
|
|
Alias (byte) myprintf::bLen#35 = (byte) myprintf::bLen#49 (byte) myprintf::bLen#42
|
|
Alias (byte*) myprintf::str#40 = (byte*) myprintf::str#45 (byte*) myprintf::str#42
|
|
Alias (byte) myprintf::bArg#38 = (byte) myprintf::bArg#43 (byte) myprintf::bArg#40
|
|
Alias (word) myprintf::w1#39 = (word) myprintf::w1#44 (word) myprintf::w1#41
|
|
Alias (word) myprintf::w2#39 = (word) myprintf::w2#44 (word) myprintf::w2#41
|
|
Alias (word) myprintf::w3#39 = (word) myprintf::w3#44 (word) myprintf::w3#41
|
|
Alias (word) myprintf::w#36 = (word) myprintf::w#41 (word) myprintf::w#38
|
|
Alias (byte*) myprintf::dst#15 = (byte*) myprintf::dst#30 (byte*) myprintf::dst#16
|
|
Alias (byte) myprintf::bLen#21 = (byte) myprintf::bLen#36 (byte) myprintf::bLen#22
|
|
Alias (byte) myprintf::bDigits#10 = (byte) myprintf::bDigits#15 (byte) myprintf::bDigits#11
|
|
Alias (byte) myprintf::b#31 = (byte) myprintf::b#34 (byte) myprintf::b#32
|
|
Alias (byte) myprintf::bLeadZero#3 = (byte) myprintf::bLeadZero#7 (byte) myprintf::bLeadZero#8
|
|
Alias (byte) myprintf::bTrailing#13 = (byte) myprintf::bTrailing#16 (byte) myprintf::bTrailing#14
|
|
Alias (byte*) myprintf::str#43 = (byte*) myprintf::str#47 (byte*) myprintf::str#44
|
|
Alias (byte) myprintf::bArg#41 = (byte) myprintf::bArg#45 (byte) myprintf::bArg#42
|
|
Alias (word) myprintf::w1#42 = (word) myprintf::w1#46 (word) myprintf::w1#43
|
|
Alias (word) myprintf::w2#42 = (word) myprintf::w2#46 (word) myprintf::w2#43
|
|
Alias (word) myprintf::w3#42 = (word) myprintf::w3#46 (word) myprintf::w3#43
|
|
Alias (word) myprintf::w#39 = (word) myprintf::w#43 (word) myprintf::w#40
|
|
Alias (byte) myprintf::bTrailing#28 = (byte) myprintf::bTrailing#4 (byte) myprintf::bTrailing#6
|
|
Alias (byte) myprintf::bDigits#12 = (byte) myprintf::bDigits#7 (byte) myprintf::bDigits#31
|
|
Alias (byte) myprintf::b#21 = (byte) myprintf::b#22
|
|
Alias (byte*) myprintf::dst#18 = (byte*) myprintf::dst#6 (byte*) myprintf::dst#37
|
|
Alias (byte) myprintf::bLen#24 = (byte) myprintf::bLen#5 (byte) myprintf::bLen#43
|
|
Alias (byte*) myprintf::str#16 = (byte*) myprintf::str#29 (byte*) myprintf::str#35
|
|
Alias (byte) myprintf::bArg#20 = (byte) myprintf::bArg#30 (byte) myprintf::bArg#33
|
|
Alias (word) myprintf::w1#18 = (word) myprintf::w1#30 (word) myprintf::w1#34
|
|
Alias (word) myprintf::w2#19 = (word) myprintf::w2#31 (word) myprintf::w2#34
|
|
Alias (word) myprintf::w3#19 = (word) myprintf::w3#31 (word) myprintf::w3#34
|
|
Alias (word) myprintf::w#25 = (word) myprintf::w#32 (word) myprintf::w#34
|
|
Alias (byte) myprintf::bLeadZero#25 = (byte) myprintf::bLeadZero#37 (byte) myprintf::bLeadZero#41
|
|
Alias (byte) myprintf::bFormat#13 = (byte) myprintf::bFormat#2 (byte) myprintf::bFormat#19 (byte) myprintf::bFormat#14 (byte) myprintf::bFormat#15
|
|
Alias (byte) myprintf::bTrailing#2 = (byte) myprintf::bTrailing#32 (byte) myprintf::bTrailing#41 (byte) myprintf::bTrailing#33 (byte) myprintf::bTrailing#34
|
|
Alias (byte) myprintf::bDigits#34 = (byte) myprintf::bDigits#4 (byte) myprintf::bDigits#43 (byte) myprintf::bDigits#35 (byte) myprintf::bDigits#36
|
|
Alias (byte) myprintf::bLeadZero#2 = (byte) myprintf::bLeadZero#29 (byte) myprintf::bLeadZero#39 (byte) myprintf::bLeadZero#30 (byte) myprintf::bLeadZero#31
|
|
Alias (byte*) myprintf::dst#21 = (byte*) myprintf::dst#9
|
|
Alias (byte) myprintf::return#0 = (byte) myprintf::bLen#15 (byte) myprintf::bLen#27 (byte) myprintf::return#4 (byte) myprintf::return#1
|
|
Alias (word) div10::val#0 = (word/signed dword/dword~) div10::$1
|
|
Alias (word) div10::return#0 = (word~) div10::$6 (word) div10::return#3 (word) div10::return#1
|
|
Alias (word) div16u::return#2 = (word) div16u::return#4
|
|
Alias (word) main::u#12 = (word) main::u#5 (word) main::u#6 (word) main::u#13 (word) main::u#7
|
|
Alias (word) main::v#1 = (word~) main::$0 (word) main::v#3
|
|
Alias (word) myprintf::w3#0 = (word~) main::$5
|
|
Alias (word) div10::return#2 = (word) div10::return#4
|
|
Alias (word) main::u#10 = (word) main::u#14 (word) main::u#8 (word) main::u#9 (word) main::u#16
|
|
Alias (word) main::v#2 = (word~) main::$9 (word) main::v#4
|
|
Alias (word) myprintf::w3#1 = (word~) main::$14
|
|
Alias (signed word) main::return#0 = (signed word) main::return#3 (signed word) main::return#1
|
|
Successful SSA optimization Pass2AliasElimination
|
|
Alias candidate removed (phi-usage) (word) myprintf::w1#10
|
|
Alias candidate removed (phi-usage) (word) myprintf::w2#10
|
|
Alias candidate removed (phi-usage) (word) myprintf::w3#10
|
|
Alias (word) divr16u::dividend#2 = (word) divr16u::dividend#3
|
|
Alias (word) divr16u::quotient#3 = (word) divr16u::quotient#6
|
|
Alias (word) divr16u::divisor#1 = (word) divr16u::divisor#3 (word) divr16u::divisor#6
|
|
Alias (byte) divr16u::i#2 = (byte) divr16u::i#3 (byte) divr16u::i#5
|
|
Alias (word) divr16u::dividend#0 = (word) divr16u::dividend#5
|
|
Alias (byte) myprintf::b#15 = (byte) myprintf::b#27
|
|
Alias (byte*) myprintf::dst#10 = (byte*) myprintf::dst#13 (byte*) myprintf::dst#4 (byte*) myprintf::dst#25 (byte*) myprintf::dst#8
|
|
Alias (byte) myprintf::bLen#14 = (byte) myprintf::bLen#9 (byte) myprintf::bLen#16 (byte) myprintf::bLen#31
|
|
Alias (word) myprintf::w#10 = (word) myprintf::w#30 (word) myprintf::w#24 (word) myprintf::w#22
|
|
Alias (byte*) myprintf::str#10 = (byte*) myprintf::str#27 (byte*) myprintf::str#11 (byte*) myprintf::str#15 (byte*) myprintf::str#9
|
|
Alias (byte) myprintf::bArg#12 = (byte) myprintf::bArg#28 (byte) myprintf::bArg#19 (byte) myprintf::bArg#4 (byte) myprintf::bArg#14
|
|
Alias (word) myprintf::w1#11 = (word) myprintf::w1#28 (word) myprintf::w1#17 (word) myprintf::w1#12
|
|
Alias (word) myprintf::w2#12 = (word) myprintf::w2#29 (word) myprintf::w2#18 (word) myprintf::w2#13
|
|
Alias (word) myprintf::w3#12 = (word) myprintf::w3#29 (word) myprintf::w3#18 (word) myprintf::w3#13
|
|
Alias (byte) myprintf::bTrailing#10 = (byte) myprintf::bTrailing#38 (byte) myprintf::bTrailing#27 (byte) myprintf::bTrailing#25
|
|
Alias (byte) myprintf::bDigits#14 = (byte) myprintf::bDigits#40 (byte) myprintf::bDigits#30 (byte) myprintf::bDigits#28
|
|
Alias (byte) myprintf::bLeadZero#10 = (byte) myprintf::bLeadZero#35 (byte) myprintf::bLeadZero#24 (byte) myprintf::bLeadZero#23
|
|
Alias (byte) myprintf::b#16 = (byte) myprintf::b#29
|
|
Alias (byte) myprintf::bLen#10 = (byte) myprintf::bLen#19
|
|
Alias (byte*) myprintf::dst#15 = (byte*) myprintf::dst#5
|
|
Alias (byte) myprintf::bLen#11 = (byte) myprintf::bLen#21
|
|
Alias (byte) myprintf::bDigits#10 = (byte) myprintf::bDigits#6
|
|
Alias (byte) myprintf::b#20 = (byte) myprintf::b#31
|
|
Alias (byte) myprintf::bLeadZero#3 = (byte) myprintf::bLeadZero#5
|
|
Alias (byte) myprintf::bTrailing#11 = (byte) myprintf::bTrailing#13
|
|
Alias (byte*) myprintf::str#41 = (byte*) myprintf::str#43
|
|
Alias (byte) myprintf::bArg#39 = (byte) myprintf::bArg#41
|
|
Alias (word) myprintf::w1#40 = (word) myprintf::w1#42
|
|
Alias (word) myprintf::w2#40 = (word) myprintf::w2#42
|
|
Alias (word) myprintf::w3#40 = (word) myprintf::w3#42
|
|
Alias (word) myprintf::w#37 = (word) myprintf::w#39
|
|
Alias (byte) myprintf::bFormat#13 = (byte) myprintf::bFormat#7
|
|
Alias (byte) myprintf::bTrailing#2 = (byte) myprintf::bTrailing#24
|
|
Alias (byte) myprintf::bDigits#27 = (byte) myprintf::bDigits#34
|
|
Alias (byte) myprintf::bLeadZero#2 = (byte) myprintf::bLeadZero#22
|
|
Alias (byte) myprintf::bFormat#10 = (byte) myprintf::bFormat#8
|
|
Successful SSA optimization Pass2AliasElimination
|
|
Alias candidate removed (phi-usage) (word) myprintf::w1#10
|
|
Alias candidate removed (phi-usage) (word) myprintf::w2#10
|
|
Alias candidate removed (phi-usage) (word) myprintf::w3#10
|
|
Alias candidate removed (solo) (word) myprintf::w1#11 =
|
|
Alias candidate removed (solo) (word) myprintf::w2#12 =
|
|
Alias candidate removed (solo) (word) myprintf::w3#12 =
|
|
Self Phi Eliminated (word) divr16u::divisor#1
|
|
Self Phi Eliminated (word) append::sub#4
|
|
Self Phi Eliminated (byte*) append::dst#5
|
|
Self Phi Eliminated (byte) myprintf::bTrailing#3
|
|
Self Phi Eliminated (byte) myprintf::bDigits#13
|
|
Self Phi Eliminated (byte) myprintf::bLeadZero#4
|
|
Self Phi Eliminated (byte*) myprintf::dst#29
|
|
Self Phi Eliminated (byte) myprintf::bLen#35
|
|
Self Phi Eliminated (byte*) myprintf::str#40
|
|
Self Phi Eliminated (byte) myprintf::bArg#38
|
|
Self Phi Eliminated (word) myprintf::w1#39
|
|
Self Phi Eliminated (word) myprintf::w2#39
|
|
Self Phi Eliminated (word) myprintf::w3#39
|
|
Self Phi Eliminated (word) myprintf::w#36
|
|
Self Phi Eliminated (byte) myprintf::bLeadZero#3
|
|
Self Phi Eliminated (byte*) myprintf::dst#15
|
|
Self Phi Eliminated (byte) myprintf::b#20
|
|
Self Phi Eliminated (byte) myprintf::bTrailing#11
|
|
Self Phi Eliminated (byte*) myprintf::str#41
|
|
Self Phi Eliminated (byte) myprintf::bArg#39
|
|
Self Phi Eliminated (word) myprintf::w1#40
|
|
Self Phi Eliminated (word) myprintf::w2#40
|
|
Self Phi Eliminated (word) myprintf::w3#40
|
|
Self Phi Eliminated (word) myprintf::w#37
|
|
Self Phi Eliminated (byte*) myprintf::dst#18
|
|
Self Phi Eliminated (byte) myprintf::b#21
|
|
Self Phi Eliminated (byte) myprintf::bTrailing#28
|
|
Self Phi Eliminated (byte) myprintf::bDigits#12
|
|
Self Phi Eliminated (byte*) myprintf::str#16
|
|
Self Phi Eliminated (byte) myprintf::bArg#20
|
|
Self Phi Eliminated (word) myprintf::w1#18
|
|
Self Phi Eliminated (word) myprintf::w2#19
|
|
Self Phi Eliminated (word) myprintf::w3#19
|
|
Self Phi Eliminated (word) myprintf::w#25
|
|
Self Phi Eliminated (byte) myprintf::bLeadZero#25
|
|
Self Phi Eliminated (byte*) myprintf::dst#7
|
|
Self Phi Eliminated (byte) myprintf::b#23
|
|
Self Phi Eliminated (byte*) myprintf::str#17
|
|
Self Phi Eliminated (byte) myprintf::bArg#21
|
|
Self Phi Eliminated (word) myprintf::w1#19
|
|
Self Phi Eliminated (word) myprintf::w2#20
|
|
Self Phi Eliminated (word) myprintf::w3#20
|
|
Self Phi Eliminated (word) myprintf::w#26
|
|
Self Phi Eliminated (byte) myprintf::bTrailing#29
|
|
Self Phi Eliminated (byte) myprintf::bLeadZero#26
|
|
Self Phi Eliminated (word) main::u#12
|
|
Self Phi Eliminated (word) main::u#10
|
|
Successful SSA optimization Pass2SelfPhiElimination
|
|
Redundant Phi (word) divr16u::rem#8 (word) divr16u::rem#3
|
|
Redundant Phi (word) divr16u::dividend#4 (word) divr16u::dividend#1
|
|
Redundant Phi (word) divr16u::divisor#5 (word) divr16u::divisor#0
|
|
Redundant Phi (word) divr16u::divisor#1 (word) divr16u::divisor#5
|
|
Redundant Phi (word) div16u::dividend#1 (word) div16u::dividend#0
|
|
Redundant Phi (word) div16u::divisor#1 (word) div16u::divisor#0
|
|
Redundant Phi (word) append::sub#4 (word) append::sub#6
|
|
Redundant Phi (byte*) append::dst#5 (byte*) append::dst#4
|
|
Redundant Phi (word) utoa::value#5 (word) utoa::value#4
|
|
Redundant Phi (byte*) utoa::dst#15 (byte*) utoa::dst#5
|
|
Redundant Phi (word) myprintf::w1#11 (word) myprintf::w1#10
|
|
Redundant Phi (word) myprintf::w2#12 (word) myprintf::w2#10
|
|
Redundant Phi (word) myprintf::w3#12 (word) myprintf::w3#10
|
|
Redundant Phi (byte) myprintf::bTrailing#3 (byte) myprintf::bTrailing#10
|
|
Redundant Phi (byte) myprintf::bDigits#13 (byte) myprintf::bDigits#14
|
|
Redundant Phi (byte) myprintf::bLeadZero#4 (byte) myprintf::bLeadZero#10
|
|
Redundant Phi (byte*) myprintf::dst#29 (byte*) myprintf::dst#10
|
|
Redundant Phi (byte) myprintf::bLen#35 (byte) myprintf::bLen#14
|
|
Redundant Phi (byte*) myprintf::str#40 (byte*) myprintf::str#10
|
|
Redundant Phi (byte) myprintf::bArg#38 (byte) myprintf::bArg#12
|
|
Redundant Phi (word) myprintf::w1#39 (word) myprintf::w1#10
|
|
Redundant Phi (word) myprintf::w2#39 (word) myprintf::w2#10
|
|
Redundant Phi (word) myprintf::w3#39 (word) myprintf::w3#10
|
|
Redundant Phi (word) myprintf::w#36 (word) myprintf::w#10
|
|
Redundant Phi (byte) myprintf::bLeadZero#3 (byte) myprintf::bLeadZero#4
|
|
Redundant Phi (byte*) myprintf::dst#15 (byte*) myprintf::dst#29
|
|
Redundant Phi (byte) myprintf::b#20 (byte) myprintf::b#17
|
|
Redundant Phi (byte) myprintf::bTrailing#11 (byte) myprintf::bTrailing#3
|
|
Redundant Phi (byte*) myprintf::str#41 (byte*) myprintf::str#40
|
|
Redundant Phi (byte) myprintf::bArg#39 (byte) myprintf::bArg#38
|
|
Redundant Phi (word) myprintf::w1#40 (word) myprintf::w1#39
|
|
Redundant Phi (word) myprintf::w2#40 (word) myprintf::w2#39
|
|
Redundant Phi (word) myprintf::w3#40 (word) myprintf::w3#39
|
|
Redundant Phi (word) myprintf::w#37 (word) myprintf::w#36
|
|
Redundant Phi (byte*) myprintf::dst#18 (byte*) myprintf::dst#17
|
|
Redundant Phi (byte) myprintf::b#21 (byte) myprintf::b#33
|
|
Redundant Phi (byte) myprintf::bTrailing#28 (byte) myprintf::bTrailing#9
|
|
Redundant Phi (byte) myprintf::bDigits#12 (byte) myprintf::bDigits#16
|
|
Redundant Phi (byte*) myprintf::str#16 (byte*) myprintf::str#38
|
|
Redundant Phi (byte) myprintf::bArg#20 (byte) myprintf::bArg#36
|
|
Redundant Phi (word) myprintf::w1#18 (word) myprintf::w1#37
|
|
Redundant Phi (word) myprintf::w2#19 (word) myprintf::w2#37
|
|
Redundant Phi (word) myprintf::w3#19 (word) myprintf::w3#37
|
|
Redundant Phi (word) myprintf::w#25 (word) myprintf::w#35
|
|
Redundant Phi (byte) myprintf::bLeadZero#25 (byte) myprintf::bLeadZero#44
|
|
Redundant Phi (byte*) myprintf::dst#7 (byte*) myprintf::dst#18
|
|
Redundant Phi (byte) myprintf::b#23 (byte) myprintf::b#21
|
|
Redundant Phi (byte*) myprintf::str#17 (byte*) myprintf::str#16
|
|
Redundant Phi (byte) myprintf::bArg#21 (byte) myprintf::bArg#20
|
|
Redundant Phi (word) myprintf::w1#19 (word) myprintf::w1#18
|
|
Redundant Phi (word) myprintf::w2#20 (word) myprintf::w2#19
|
|
Redundant Phi (word) myprintf::w3#20 (word) myprintf::w3#19
|
|
Redundant Phi (word) myprintf::w#26 (word) myprintf::w#25
|
|
Redundant Phi (byte) myprintf::bTrailing#29 (byte) myprintf::bTrailing#28
|
|
Redundant Phi (byte) myprintf::bLeadZero#26 (byte) myprintf::bLeadZero#25
|
|
Redundant Phi (word) div10::val#5 (word) div10::val#4
|
|
Redundant Phi (word) main::u#12 (word) main::u#11
|
|
Redundant Phi (word) main::u#10 (word) main::u#15
|
|
Successful SSA optimization Pass2RedundantPhiElimination
|
|
Redundant Phi (byte*) myprintf::dst#17 (byte*) myprintf::dst#10
|
|
Redundant Phi (byte) myprintf::b#33 (byte) myprintf::b#17
|
|
Redundant Phi (byte) myprintf::bTrailing#9 (byte) myprintf::bTrailing#10
|
|
Redundant Phi (byte*) myprintf::str#38 (byte*) myprintf::str#10
|
|
Redundant Phi (byte) myprintf::bArg#36 (byte) myprintf::bArg#12
|
|
Redundant Phi (word) myprintf::w1#37 (word) myprintf::w1#10
|
|
Redundant Phi (word) myprintf::w2#37 (word) myprintf::w2#10
|
|
Redundant Phi (word) myprintf::w3#37 (word) myprintf::w3#10
|
|
Redundant Phi (word) myprintf::w#35 (word) myprintf::w#10
|
|
Redundant Phi (byte) myprintf::bLeadZero#44 (byte) myprintf::bLeadZero#10
|
|
Successful SSA optimization Pass2RedundantPhiElimination
|
|
Redundant Phi (byte*) myprintf::str#6 (byte*) myprintf::str#10
|
|
Redundant Phi (byte*) myprintf::dst#22 (byte*) myprintf::dst#10
|
|
Redundant Phi (byte) myprintf::bArg#11 (byte) myprintf::bArg#12
|
|
Redundant Phi (word) myprintf::w1#8 (word) myprintf::w1#10
|
|
Redundant Phi (word) myprintf::w2#9 (word) myprintf::w2#10
|
|
Redundant Phi (word) myprintf::w3#9 (word) myprintf::w3#10
|
|
Redundant Phi (word) myprintf::w#18 (word) myprintf::w#10
|
|
Redundant Phi (byte) myprintf::bTrailing#22 (byte) myprintf::bTrailing#10
|
|
Redundant Phi (byte) myprintf::bLeadZero#19 (byte) myprintf::bLeadZero#10
|
|
Successful SSA optimization Pass2RedundantPhiElimination
|
|
Redundant Phi (byte*) myprintf::str#4 (byte*) myprintf::str#10
|
|
Redundant Phi (byte*) myprintf::dst#21 (byte*) myprintf::dst#10
|
|
Redundant Phi (word) myprintf::w1#7 (word) myprintf::w1#10
|
|
Redundant Phi (word) myprintf::w2#8 (word) myprintf::w2#10
|
|
Redundant Phi (word) myprintf::w3#8 (word) myprintf::w3#10
|
|
Successful SSA optimization Pass2RedundantPhiElimination
|
|
Simple Condition (bool~) divr16u::$4 [10] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2
|
|
Simple Condition (bool~) divr16u::$9 [18] if((word) divr16u::rem#5<(word) divr16u::divisor#0) goto divr16u::@3
|
|
Simple Condition (bool~) divr16u::$11 [25] if((byte) divr16u::i#1!=rangelast(0,$f)) goto divr16u::@1
|
|
Simple Condition (bool~) append::$0 [57] if((word) append::value#5>=(word) append::sub#6) goto append::@2
|
|
Simple Condition (bool~) myprintf::$1 [157] if((byte) myprintf::bFormat#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto myprintf::@2
|
|
Simple Condition (bool~) myprintf::$49 [161] if((byte) myprintf::b#1!=(byte) '%') goto myprintf::@53
|
|
Simple Condition (bool~) myprintf::$3 [165] if((byte) myprintf::b#1!=(byte) '0') goto myprintf::@3
|
|
Simple Condition (bool~) myprintf::$56 [177] if(*((byte*) myprintf::str#0)!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto myprintf::@1
|
|
Simple Condition (bool~) myprintf::$10 [181] if((byte) myprintf::b#1!=(byte) '-') goto myprintf::@5
|
|
Simple Condition (bool~) myprintf::$11 [187] if((byte) myprintf::b#1==(byte) 'c') goto myprintf::@6
|
|
Simple Condition (bool~) myprintf::$12 [196] if((byte) myprintf::b#1==(byte) 'd') goto myprintf::@7
|
|
Simple Condition (bool~) myprintf::$19 [215] if((byte) myprintf::b#15<(byte/signed byte/word/signed word/dword/signed dword) $a) goto myprintf::@9
|
|
Simple Condition (bool~) myprintf::$25 [227] if((byte) myprintf::b#16<(byte/signed byte/word/signed word/dword/signed dword) $a) goto myprintf::@12
|
|
Simple Condition (bool~) myprintf::$31 [238] if(*((byte[6]) myprintf::buf6#0 + (byte) myprintf::b#17)!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto myprintf::@20
|
|
Simple Condition (bool~) myprintf::$36 [251] if((byte) myprintf::bLeadZero#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto myprintf::@28
|
|
Simple Condition (bool~) myprintf::$40 [261] if((byte) myprintf::bDigits#2>(byte) myprintf::b#17) goto myprintf::@27
|
|
Simple Condition (bool~) myprintf::$41 [267] if((byte) myprintf::digit#2<(byte) myprintf::b#17) goto myprintf::@34
|
|
Simple Condition (bool~) myprintf::$46 [280] if((byte) myprintf::bDigits#3>(byte) myprintf::b#17) goto myprintf::@38
|
|
Simple Condition (bool~) myprintf::$50 [295] if((byte) myprintf::bArg#12==(byte/signed byte/word/signed word/dword/signed dword) 0) goto myprintf::@54
|
|
Simple Condition (bool~) myprintf::$51 [300] if((byte) myprintf::bArg#12==(byte/signed byte/word/signed word/dword/signed dword) 1) goto myprintf::@55
|
|
Simple Condition (bool~) main::$1 [355] if(*((byte*) zp2#0)<(byte/word/signed word/dword/signed dword) $c8) goto main::@2
|
|
Simple Condition (bool~) main::$8 [374] if(*((byte*) zp1#0)<(byte/signed byte/word/signed word/dword/signed dword) $a) goto main::@1
|
|
Simple Condition (bool~) main::$10 [390] if(*((byte*) zp2#0)<(byte/word/signed word/dword/signed dword) $c8) goto main::@6
|
|
Simple Condition (bool~) main::$17 [409] if(*((byte*) zp1#0)<(byte/signed byte/word/signed word/dword/signed dword) $a) goto main::@5
|
|
Successful SSA optimization Pass2ConditionalJumpSimplification
|
|
Rewriting ! if()-condition to reversed if() [71] (bool~) utoa::$3 ← ! (bool~) utoa::$2
|
|
Successful SSA optimization Pass2ConditionalAndOrRewriting
|
|
Rewriting || if()-condition to two if()s [70] (bool~) utoa::$2 ← (bool~) utoa::$0 || (bool~) utoa::$1
|
|
Successful SSA optimization Pass2ConditionalAndOrRewriting
|
|
Rewriting ! if()-condition to reversed if() [77] (bool~) utoa::$7 ← ! (bool~) utoa::$6
|
|
Successful SSA optimization Pass2ConditionalAndOrRewriting
|
|
Rewriting || if()-condition to two if()s [76] (bool~) utoa::$6 ← (bool~) utoa::$4 || (bool~) utoa::$5
|
|
Successful SSA optimization Pass2ConditionalAndOrRewriting
|
|
Rewriting ! if()-condition to reversed if() [94] (bool~) utoa::$11 ← ! (bool~) utoa::$10
|
|
Successful SSA optimization Pass2ConditionalAndOrRewriting
|
|
Rewriting || if()-condition to two if()s [93] (bool~) utoa::$10 ← (bool~) utoa::$8 || (bool~) utoa::$9
|
|
Successful SSA optimization Pass2ConditionalAndOrRewriting
|
|
Rewriting ! if()-condition to reversed if() [111] (bool~) utoa::$15 ← ! (bool~) utoa::$14
|
|
Successful SSA optimization Pass2ConditionalAndOrRewriting
|
|
Rewriting || if()-condition to two if()s [110] (bool~) utoa::$14 ← (bool~) utoa::$12 || (bool~) utoa::$13
|
|
Successful SSA optimization Pass2ConditionalAndOrRewriting
|
|
Rewriting ! if()-condition to reversed if() [170] (bool~) myprintf::$7 ← ! (bool~) myprintf::$6
|
|
Successful SSA optimization Pass2ConditionalAndOrRewriting
|
|
Rewriting && if()-condition to two if()s [169] (bool~) myprintf::$6 ← (bool~) myprintf::$4 && (bool~) myprintf::$5
|
|
Successful SSA optimization Pass2ConditionalAndOrRewriting
|
|
Rewriting ! if()-condition to reversed if() [207] (bool~) myprintf::$16 ← ! (bool~) myprintf::$15
|
|
Successful SSA optimization Pass2ConditionalAndOrRewriting
|
|
Rewriting || if()-condition to two if()s [206] (bool~) myprintf::$15 ← (bool~) myprintf::$13 || (bool~) myprintf::$14
|
|
Successful SSA optimization Pass2ConditionalAndOrRewriting
|
|
Rewriting ! if()-condition to reversed if() [245] (bool~) myprintf::$35 ← ! (bool~) myprintf::$34
|
|
Successful SSA optimization Pass2ConditionalAndOrRewriting
|
|
Rewriting && if()-condition to two if()s [244] (bool~) myprintf::$34 ← (bool~) myprintf::$32 && (bool~) myprintf::$33
|
|
Successful SSA optimization Pass2ConditionalAndOrRewriting
|
|
Rewriting ! if()-condition to reversed if() [272] (bool~) myprintf::$45 ← ! (bool~) myprintf::$44
|
|
Successful SSA optimization Pass2ConditionalAndOrRewriting
|
|
Rewriting && if()-condition to two if()s [271] (bool~) myprintf::$44 ← (bool~) myprintf::$42 && (bool~) myprintf::$43
|
|
Successful SSA optimization Pass2ConditionalAndOrRewriting
|
|
Rewriting ! if()-condition to reversed if() [287] (bool~) myprintf::$55 ← ! (bool~) myprintf::$54
|
|
Successful SSA optimization Pass2ConditionalAndOrRewriting
|
|
Rewriting && if()-condition to two if()s [286] (bool~) myprintf::$54 ← (bool~) myprintf::$52 && (bool~) myprintf::$53
|
|
Successful SSA optimization Pass2ConditionalAndOrRewriting
|
|
Constant (const word) divr16u::quotient#0 = 0
|
|
Constant (const byte) divr16u::i#0 = 0
|
|
Constant (const word) divr16u::rem#3 = 0
|
|
Constant (const byte*) zp1#0 = ((byte*))$61
|
|
Constant (const byte*) zp2#0 = ((byte*))$62
|
|
Constant (const byte*) TIMEHI#0 = ((byte*))$a1
|
|
Constant (const byte*) TIMELO#0 = ((byte*))$a2
|
|
Constant (const byte*) VICBANK#0 = ((byte*))$d018
|
|
Constant (const byte[$64]) strTemp#0 = { fill( $64, 0) }
|
|
Constant (const byte) utoa::bStarted#0 = 0
|
|
Constant (const word) append::sub#0 = $2710
|
|
Constant (const byte) utoa::bStarted#1 = 1
|
|
Constant (const word) append::sub#1 = $3e8
|
|
Constant (const byte) utoa::bStarted#2 = 1
|
|
Constant (const word) append::sub#2 = $64
|
|
Constant (const byte) utoa::bStarted#3 = 1
|
|
Constant (const word) append::sub#3 = $a
|
|
Constant (const byte) utoa::bStarted#4 = 1
|
|
Constant (const byte) myprintf::bArg#0 = 0
|
|
Constant (const byte) myprintf::bFormat#0 = 0
|
|
Constant (const byte) myprintf::bLen#0 = 0
|
|
Constant (const byte) myprintf::bLeadZero#0 = 0
|
|
Constant (const byte) myprintf::bDigits#0 = 0
|
|
Constant (const byte) myprintf::bTrailing#0 = 0
|
|
Constant (const byte) myprintf::b#0 = 0
|
|
Constant (const byte) myprintf::digit#0 = 0
|
|
Constant (const byte[6]) myprintf::buf6#0 = { fill( 6, 0) }
|
|
Constant (const word) myprintf::w#0 = 0
|
|
Constant (const byte) myprintf::bLeadZero#1 = 1
|
|
Constant (const byte) myprintf::bTrailing#1 = 1
|
|
Constant (const byte) myprintf::b#2 = 1
|
|
Constant (const byte) myprintf::$21 = '0'
|
|
Constant (const byte/signed byte/word/signed word/dword/signed dword) myprintf::$20 = $57
|
|
Constant (const byte) myprintf::$27 = '0'
|
|
Constant (const byte/signed byte/word/signed word/dword/signed dword) myprintf::$26 = $57
|
|
Constant (const byte) myprintf::digit#1 = 0
|
|
Constant (const byte) myprintf::$38 = ' '
|
|
Constant (const byte) myprintf::$37 = '0'
|
|
Constant (const byte) myprintf::bFormat#1 = 0
|
|
Constant (const byte) myprintf::bFormat#13 = 1
|
|
Constant (const byte) myprintf::bLeadZero#2 = 0
|
|
Constant (const byte) myprintf::bDigits#27 = 1
|
|
Constant (const byte) myprintf::bTrailing#2 = 0
|
|
Constant (const word) main::u#0 = 0
|
|
Constant (const word) main::v#0 = 0
|
|
Constant (const word) main::u#1 = $6e85
|
|
Constant (const word) div16u::divisor#0 = $a
|
|
Constant (const byte*) myprintf::str#1 = main::str
|
|
Constant (const word) main::u#3 = $6e85
|
|
Constant (const byte*) myprintf::str#2 = main::str1
|
|
Constant (const signed word) main::return#0 = 0
|
|
Successful SSA optimization Pass2ConstantIdentification
|
|
Constant (const word) divr16u::divisor#0 = div16u::divisor#0
|
|
Constant (const bool) utoa::$0 = utoa::bStarted#0==1
|
|
Constant (const byte*) utoa::dst#5 = myprintf::buf6#0
|
|
Constant (const byte*) myprintf::dst#0 = strTemp#0
|
|
Constant (const byte*) myprintf::dst#1 = strTemp#0
|
|
Constant (const signed word) main::return#2 = main::return#0
|
|
Successful SSA optimization Pass2ConstantIdentification
|
|
Constant (const byte*) append::dst#0 = utoa::dst#5
|
|
Constant (const byte*) utoa::dst#0 = ++utoa::dst#5
|
|
Successful SSA optimization Pass2ConstantIdentification
|
|
if() condition always false - eliminating [29] if((const bool) utoa::$0) goto utoa::@5
|
|
Successful SSA optimization Pass2ConstantIfs
|
|
Eliminating unused variable (byte) myprintf::return#2 and assignment [180] (byte) myprintf::return#2 ← (byte) myprintf::return#0
|
|
Eliminating unused variable (byte) myprintf::return#3 and assignment [203] (byte) myprintf::return#3 ← (byte) myprintf::return#0
|
|
Eliminating unused constant (const byte) utoa::bStarted#4
|
|
Eliminating unused constant (const bool) utoa::$0
|
|
Eliminating unused constant (const byte) myprintf::b#0
|
|
Eliminating unused constant (const byte) myprintf::digit#0
|
|
Eliminating unused constant (const word) main::u#0
|
|
Eliminating unused constant (const word) main::v#0
|
|
Eliminating unused constant (const signed word) main::return#2
|
|
Successful SSA optimization PassNEliminateUnusedVars
|
|
Eliminating unused constant (const signed word) main::return#0
|
|
Successful SSA optimization PassNEliminateUnusedVars
|
|
Resolved ranged next value divr16u::i#1 ← ++ divr16u::i#2 to ++
|
|
Resolved ranged comparison value if(divr16u::i#1!=rangelast(0,$f)) goto divr16u::@1 to (byte/signed byte/word/signed word/dword/signed dword) $10
|
|
Culled Empty Block (label) divr16u::@6
|
|
Culled Empty Block (label) @8
|
|
Culled Empty Block (label) append::@3
|
|
Culled Empty Block (label) myprintf::@62
|
|
Culled Empty Block (label) myprintf::@43
|
|
Culled Empty Block (label) myprintf::@71
|
|
Culled Empty Block (label) myprintf::@8
|
|
Culled Empty Block (label) myprintf::@9
|
|
Culled Empty Block (label) myprintf::@12
|
|
Culled Empty Block (label) myprintf::@28
|
|
Culled Empty Block (label) myprintf::@37
|
|
Culled Empty Block (label) myprintf::@54
|
|
Culled Empty Block (label) myprintf::@55
|
|
Culled Empty Block (label) main::@8
|
|
Successful SSA optimization Pass2CullEmptyBlocks
|
|
Self Phi Eliminated (byte*) myprintf::dst#10
|
|
Self Phi Eliminated (word) myprintf::w1#10
|
|
Self Phi Eliminated (word) myprintf::w2#10
|
|
Self Phi Eliminated (word) myprintf::w3#10
|
|
Successful SSA optimization Pass2SelfPhiElimination
|
|
Redundant Phi (byte*) myprintf::dst#10 (byte*) myprintf::dst#42
|
|
Redundant Phi (word) myprintf::w1#10 (word) myprintf::w1#6
|
|
Redundant Phi (word) myprintf::w2#10 (word) myprintf::w2#7
|
|
Redundant Phi (word) myprintf::w3#10 (word) myprintf::w3#7
|
|
Successful SSA optimization Pass2RedundantPhiElimination
|
|
Simple Condition (bool~) utoa::$4 [32] if((byte) utoa::bStarted#5==(byte/signed byte/word/signed word/dword/signed dword) 1) goto utoa::@6
|
|
Simple Condition (bool~) utoa::$8 [40] if((byte) utoa::bStarted#6==(byte/signed byte/word/signed word/dword/signed dword) 1) goto utoa::@7
|
|
Simple Condition (bool~) utoa::$12 [50] if((byte) utoa::bStarted#7==(byte/signed byte/word/signed word/dword/signed dword) 1) goto utoa::@8
|
|
Simple Condition (bool~) myprintf::$4 [78] if((byte) myprintf::b#1>=(byte) '1') goto myprintf::@72
|
|
Simple Condition (bool~) myprintf::$13 [93] if((byte) myprintf::b#1==(byte) 'x') goto myprintf::@47
|
|
Simple Condition (bool~) myprintf::$32 [112] if((byte) myprintf::bTrailing#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto myprintf::@74
|
|
Simple Condition (bool~) myprintf::$42 [128] if((byte) myprintf::bTrailing#10!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto myprintf::@75
|
|
Simple Condition (bool~) myprintf::$52 [137] if((byte) myprintf::b#1>=(byte/signed byte/word/signed word/dword/signed dword) $41) goto myprintf::@76
|
|
Simple Condition (bool~) utoa::$1 [208] if((word) utoa::value#4>=(word/signed word/dword/signed dword) $2710) goto utoa::@5
|
|
Simple Condition (bool~) utoa::$5 [209] if((word) utoa::value#6>=(word/signed word/dword/signed dword) $3e8) goto utoa::@6
|
|
Simple Condition (bool~) utoa::$9 [210] if((word) utoa::value#11>=(byte/signed byte/word/signed word/dword/signed dword) $64) goto utoa::@7
|
|
Simple Condition (bool~) utoa::$13 [211] if((word) utoa::value#10>=(byte/signed byte/word/signed word/dword/signed dword) $a) goto utoa::@8
|
|
Simple Condition (bool~) myprintf::$5 [212] if((byte) myprintf::b#1<=(byte) '9') goto myprintf::@41
|
|
Simple Condition (bool~) myprintf::$14 [213] if((byte) myprintf::b#1==(byte) 'X') goto myprintf::@47
|
|
Simple Condition (bool~) myprintf::$33 [214] if((byte) myprintf::bDigits#14>(byte) myprintf::b#17) goto myprintf::@27
|
|
Simple Condition (bool~) myprintf::$43 [215] if((byte) myprintf::bDigits#16>(byte) myprintf::b#17) goto myprintf::@38
|
|
Simple Condition (bool~) myprintf::$53 [216] if((byte) myprintf::b#1<=(byte/signed byte/word/signed word/dword/signed dword) $5a) goto myprintf::@68
|
|
Successful SSA optimization Pass2ConditionalJumpSimplification
|
|
Rewriting conditional comparison if((byte) myprintf::b#1<=(byte/signed byte/word/signed word/dword/signed dword) $5a) goto myprintf::@68
|
|
Inlining constant with var siblings (const word) divr16u::quotient#0
|
|
Inlining constant with var siblings (const byte) divr16u::i#0
|
|
Inlining constant with var siblings (const word) divr16u::rem#3
|
|
Inlining constant with var siblings (const word) append::sub#0
|
|
Inlining constant with var siblings (const word) append::sub#1
|
|
Inlining constant with var siblings (const word) append::sub#2
|
|
Inlining constant with var siblings (const word) append::sub#3
|
|
Inlining constant with var siblings (const byte*) append::dst#0
|
|
Inlining constant with var siblings (const byte) utoa::bStarted#0
|
|
Inlining constant with var siblings (const byte) utoa::bStarted#1
|
|
Inlining constant with var siblings (const byte) utoa::bStarted#2
|
|
Inlining constant with var siblings (const byte) utoa::bStarted#3
|
|
Inlining constant with var siblings (const byte*) utoa::dst#5
|
|
Inlining constant with var siblings (const byte*) utoa::dst#0
|
|
Inlining constant with var siblings (const byte) myprintf::bArg#0
|
|
Inlining constant with var siblings (const byte) myprintf::bFormat#0
|
|
Inlining constant with var siblings (const byte) myprintf::bLen#0
|
|
Inlining constant with var siblings (const byte) myprintf::bLeadZero#0
|
|
Inlining constant with var siblings (const byte) myprintf::bDigits#0
|
|
Inlining constant with var siblings (const byte) myprintf::bTrailing#0
|
|
Inlining constant with var siblings (const word) myprintf::w#0
|
|
Inlining constant with var siblings (const byte) myprintf::bLeadZero#1
|
|
Inlining constant with var siblings (const byte) myprintf::bTrailing#1
|
|
Inlining constant with var siblings (const byte) myprintf::b#2
|
|
Inlining constant with var siblings (const byte) myprintf::digit#1
|
|
Inlining constant with var siblings (const byte) myprintf::bFormat#1
|
|
Inlining constant with var siblings (const byte) myprintf::bFormat#13
|
|
Inlining constant with var siblings (const byte) myprintf::bLeadZero#2
|
|
Inlining constant with var siblings (const byte) myprintf::bDigits#27
|
|
Inlining constant with var siblings (const byte) myprintf::bTrailing#2
|
|
Inlining constant with var siblings (const byte*) myprintf::str#1
|
|
Inlining constant with var siblings (const byte*) myprintf::str#2
|
|
Inlining constant with var siblings (const byte*) myprintf::dst#0
|
|
Inlining constant with var siblings (const byte*) myprintf::dst#1
|
|
Inlining constant with var siblings (const word) main::u#1
|
|
Inlining constant with var siblings (const word) main::u#3
|
|
Constant inlined myprintf::$26 = (byte/signed byte/word/signed word/dword/signed dword) $57
|
|
Constant inlined divr16u::rem#3 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
Constant inlined utoa::dst#5 = (const byte[6]) myprintf::buf6#0
|
|
Constant inlined utoa::bStarted#3 = (byte/signed byte/word/signed word/dword/signed dword) 1
|
|
Constant inlined append::dst#0 = (const byte[6]) myprintf::buf6#0
|
|
Constant inlined divr16u::i#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
Constant inlined utoa::dst#0 = ++(const byte[6]) myprintf::buf6#0
|
|
Constant inlined myprintf::$27 = (byte) '0'
|
|
Constant inlined myprintf::str#1 = (const string) main::str
|
|
Constant inlined myprintf::bLeadZero#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
Constant inlined myprintf::str#2 = (const string) main::str1
|
|
Constant inlined myprintf::bLeadZero#1 = (byte/signed byte/word/signed word/dword/signed dword) 1
|
|
Constant inlined myprintf::digit#1 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
Constant inlined myprintf::dst#1 = (const byte[$64]) strTemp#0
|
|
Constant inlined myprintf::bDigits#27 = (byte/signed byte/word/signed word/dword/signed dword) 1
|
|
Constant inlined divr16u::quotient#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
Constant inlined myprintf::dst#0 = (const byte[$64]) strTemp#0
|
|
Constant inlined myprintf::bArg#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
Constant inlined myprintf::bLeadZero#2 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
Constant inlined divr16u::divisor#0 = (const word) div16u::divisor#0
|
|
Constant inlined myprintf::$37 = (byte) '0'
|
|
Constant inlined myprintf::bLen#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
Constant inlined myprintf::bFormat#13 = (byte/signed byte/word/signed word/dword/signed dword) 1
|
|
Constant inlined append::sub#0 = (word/signed word/dword/signed dword) $2710
|
|
Constant inlined append::sub#1 = (word/signed word/dword/signed dword) $3e8
|
|
Constant inlined append::sub#2 = (byte/signed byte/word/signed word/dword/signed dword) $64
|
|
Constant inlined append::sub#3 = (byte/signed byte/word/signed word/dword/signed dword) $a
|
|
Constant inlined myprintf::$38 = (byte) ' '
|
|
Constant inlined myprintf::b#2 = (byte/signed byte/word/signed word/dword/signed dword) 1
|
|
Constant inlined main::u#3 = (word/signed word/dword/signed dword) $6e85
|
|
Constant inlined main::u#1 = (word/signed word/dword/signed dword) $6e85
|
|
Constant inlined myprintf::bDigits#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
Constant inlined myprintf::bTrailing#2 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
Constant inlined myprintf::bFormat#1 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
Constant inlined myprintf::bFormat#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
Constant inlined myprintf::w#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
Constant inlined utoa::bStarted#1 = (byte/signed byte/word/signed word/dword/signed dword) 1
|
|
Constant inlined myprintf::$21 = (byte) '0'
|
|
Constant inlined utoa::bStarted#2 = (byte/signed byte/word/signed word/dword/signed dword) 1
|
|
Constant inlined myprintf::$20 = (byte/signed byte/word/signed word/dword/signed dword) $57
|
|
Constant inlined myprintf::bTrailing#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
Constant inlined utoa::bStarted#0 = (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
Constant inlined myprintf::bTrailing#1 = (byte/signed byte/word/signed word/dword/signed dword) 1
|
|
Successful SSA optimization Pass2ConstantInlining
|
|
Identical Phi Values (byte*) myprintf::dst#42 (const byte[$64]) strTemp#0
|
|
Successful SSA optimization Pass2IdenticalPhiElimination
|
|
Added new block during phi lifting main::@16(between main::@12 and main::@1)
|
|
Added new block during phi lifting main::@17(between main::@15 and main::@5)
|
|
Added new block during phi lifting myprintf::@77(between myprintf::@52 and myprintf::@1)
|
|
Added new block during phi lifting myprintf::@78(between myprintf::@4 and myprintf::@52)
|
|
Added new block during phi lifting myprintf::@79(between myprintf::@61 and myprintf::@52)
|
|
Fixing phi predecessor for myprintf::bTrailing#21 to new block ( myprintf::@4 -> myprintf::@78 ) during phi lifting.
|
|
Fixing phi predecessor for myprintf::bLeadZero#18 to new block ( myprintf::@61 -> myprintf::@79 ) during phi lifting.
|
|
Added new block during phi lifting myprintf::@80(between myprintf::@35 and myprintf::@40)
|
|
Added new block during phi lifting myprintf::@81(between myprintf::@38 and myprintf::@40)
|
|
Added new block during phi lifting myprintf::@82(between myprintf::@73 and myprintf::@40)
|
|
Added new block during phi lifting myprintf::@83(between myprintf::@75 and myprintf::@40)
|
|
Added new block during phi lifting myprintf::@84(between myprintf::@21 and myprintf::@26)
|
|
Added new block during phi lifting myprintf::@85(between myprintf::@30 and myprintf::@26)
|
|
Added new block during phi lifting myprintf::@86(between myprintf::@34 and myprintf::@34)
|
|
Added new block during phi lifting myprintf::@87(between myprintf::@75 and myprintf::@38)
|
|
Added new block during phi lifting myprintf::@88(between myprintf::@38 and myprintf::@38)
|
|
Added new block during phi lifting myprintf::@89(between myprintf::@74 and myprintf::@27)
|
|
Added new block during phi lifting myprintf::@90(between myprintf::@30 and myprintf::@27)
|
|
Added new block during phi lifting myprintf::@91(between myprintf::@64 and myprintf::@57)
|
|
Added new block during phi lifting myprintf::@92(between myprintf::@65 and myprintf::@57)
|
|
Added new block during phi lifting myprintf::@93(between myprintf::@53 and myprintf::@60)
|
|
Added new block during phi lifting utoa::@17(between utoa::@13 and utoa::@1)
|
|
Fixing phi predecessor for utoa::bStarted#5 to new block ( utoa::@13 -> utoa::@17 ) during phi lifting.
|
|
Fixing phi predecessor for utoa::dst#16 to new block ( utoa::@13 -> utoa::@17 ) during phi lifting.
|
|
Added new block during phi lifting utoa::@18(between utoa::@14 and utoa::@2)
|
|
Added new block during phi lifting utoa::@19(between utoa::@15 and utoa::@3)
|
|
Added new block during phi lifting utoa::@20(between utoa::@16 and utoa::@4)
|
|
Added new block during phi lifting divr16u::@8(between divr16u::@3 and divr16u::@1)
|
|
Added new block during phi lifting divr16u::@9(between divr16u::@1 and divr16u::@2)
|
|
Added new block during phi lifting divr16u::@10(between divr16u::@2 and divr16u::@3)
|
|
Adding NOP phi() at start of @begin
|
|
Adding NOP phi() at start of @14
|
|
Adding NOP phi() at start of @end
|
|
Adding NOP phi() at start of main::@11
|
|
Adding NOP phi() at start of main::@14
|
|
Adding NOP phi() at start of myprintf::@10
|
|
Adding NOP phi() at start of myprintf::@13
|
|
Adding NOP phi() at start of myprintf::@29
|
|
Adding NOP phi() at start of utoa
|
|
CALL GRAPH
|
|
Calls in [] to main:2
|
|
Calls in [main] to div16u:11 myprintf:25 Print:27 div10:37 myprintf:51 Print:53
|
|
Calls in [myprintf] to utoa:126
|
|
Calls in [utoa] to append:246 append:256 append:266 append:274
|
|
Calls in [div16u] to divr16u:299
|
|
|
|
Created 59 initial phi equivalence classes
|
|
Coalesced [22] myprintf::w1#48 ← myprintf::w1#0
|
|
Coalesced [23] myprintf::w2#48 ← myprintf::w2#0
|
|
Coalesced [24] myprintf::w3#48 ← myprintf::w3#0
|
|
Coalesced [48] myprintf::w1#49 ← myprintf::w1#1
|
|
Coalesced [49] myprintf::w2#49 ← myprintf::w2#1
|
|
Coalesced [50] myprintf::w3#49 ← myprintf::w3#1
|
|
Coalesced [58] main::u#18 ← main::u#4
|
|
Coalesced [59] main::u#17 ← main::u#2
|
|
Coalesced [63] myprintf::str#49 ← myprintf::str#5
|
|
Coalesced [68] myprintf::bFormat#24 ← myprintf::bFormat#10
|
|
Coalesced [69] myprintf::return#10 ← myprintf::bLen#14
|
|
Coalesced [70] myprintf::bArg#53 ← myprintf::bArg#12
|
|
Coalesced [71] myprintf::w#50 ← myprintf::w#10
|
|
Coalesced [72] myprintf::bTrailing#50 ← myprintf::bTrailing#10
|
|
Coalesced [73] myprintf::bDigits#53 ← myprintf::bDigits#14
|
|
Coalesced [79] myprintf::str#50 ← myprintf::str#0
|
|
Coalesced (already) [80] myprintf::bFormat#20 ← myprintf::bFormat#4
|
|
Coalesced (already) [81] myprintf::bArg#47 ← myprintf::bArg#10
|
|
Coalesced (already) [82] myprintf::bLen#54 ← myprintf::return#0
|
|
Coalesced (already) [83] myprintf::w#44 ← myprintf::w#17
|
|
Coalesced (already) [84] myprintf::bTrailing#46 ← myprintf::bTrailing#21
|
|
Coalesced (already) [85] myprintf::bDigits#48 ← myprintf::bDigits#24
|
|
Coalesced [86] myprintf::bLeadZero#46 ← myprintf::bLeadZero#18
|
|
Coalesced (already) [89] myprintf::bFormat#22 ← myprintf::bFormat#10
|
|
Coalesced (already) [90] myprintf::return#7 ← myprintf::bLen#14
|
|
Coalesced (already) [91] myprintf::bArg#50 ← myprintf::bArg#12
|
|
Coalesced (already) [92] myprintf::w#47 ← myprintf::w#10
|
|
Coalesced (already) [93] myprintf::bDigits#51 ← myprintf::bDigits#14
|
|
Coalesced (already) [94] myprintf::bLeadZero#49 ← myprintf::bLeadZero#10
|
|
Coalesced [99] myprintf::bLen#59 ← myprintf::bLen#14
|
|
Coalesced [100] myprintf::bDigits#58 ← myprintf::bDigits#14
|
|
Coalesced (already) [102] myprintf::return#5 ← myprintf::bLen#28
|
|
Coalesced (already) [103] myprintf::bArg#48 ← myprintf::bArg#12
|
|
Coalesced (already) [104] myprintf::w#45 ← myprintf::w#10
|
|
Coalesced (already) [105] myprintf::bTrailing#47 ← myprintf::bTrailing#10
|
|
Coalesced (already) [106] myprintf::bDigits#49 ← myprintf::bDigits#25
|
|
Coalesced (already) [107] myprintf::bLeadZero#47 ← myprintf::bLeadZero#10
|
|
Coalesced [123] myprintf::bLen#55 ← myprintf::bLen#3
|
|
Coalesced (already) [124] myprintf::bDigits#54 ← myprintf::bDigits#14
|
|
Coalesced [130] myprintf::bLen#61 ← myprintf::bLen#14
|
|
Coalesced [131] myprintf::bDigits#60 ← myprintf::bDigits#14
|
|
Coalesced [133] myprintf::bLen#63 ← myprintf::bLen#23
|
|
Coalesced [140] myprintf::bLen#56 ← myprintf::bLen#24
|
|
Coalesced (already) [141] myprintf::bDigits#55 ← myprintf::bDigits#16
|
|
Coalesced (already) [143] myprintf::bLen#60 ← myprintf::bLen#24
|
|
Coalesced (already) [144] myprintf::bDigits#59 ← myprintf::bDigits#16
|
|
Coalesced [145] myprintf::bLen#65 ← myprintf::bLen#24
|
|
Coalesced [146] myprintf::bDigits#62 ← myprintf::bDigits#16
|
|
Coalesced [152] myprintf::bLen#57 ← myprintf::bLen#6
|
|
Coalesced [153] myprintf::bDigits#56 ← myprintf::bDigits#3
|
|
Coalesced (already) [154] myprintf::bLen#66 ← myprintf::bLen#6
|
|
Coalesced (already) [155] myprintf::bDigits#63 ← myprintf::bDigits#3
|
|
Coalesced [156] myprintf::digit#4 ← myprintf::digit#2
|
|
Coalesced (already) [157] myprintf::bLen#64 ← myprintf::bLen#24
|
|
Coalesced [159] myprintf::bLen#67 ← myprintf::bLen#14
|
|
Coalesced [160] myprintf::bDigits#64 ← myprintf::bDigits#14
|
|
Coalesced [169] myprintf::bLen#62 ← myprintf::bLen#4
|
|
Coalesced [170] myprintf::bDigits#61 ← myprintf::bDigits#2
|
|
Coalesced (already) [171] myprintf::bLen#68 ← myprintf::bLen#4
|
|
Coalesced (already) [172] myprintf::bDigits#65 ← myprintf::bDigits#2
|
|
Coalesced [174] myprintf::b#35 ← myprintf::b#5
|
|
Coalesced [178] myprintf::bLen#58 ← myprintf::bLen#1
|
|
Coalesced (already) [179] myprintf::bDigits#57 ← myprintf::bDigits#14
|
|
Coalesced (already) [182] myprintf::bFormat#21 ← myprintf::bFormat#10
|
|
Coalesced (already) [183] myprintf::return#6 ← myprintf::bLen#14
|
|
Coalesced (already) [184] myprintf::bArg#49 ← myprintf::bArg#12
|
|
Coalesced (already) [185] myprintf::w#46 ← myprintf::w#10
|
|
Coalesced (already) [186] myprintf::bTrailing#48 ← myprintf::bTrailing#10
|
|
Coalesced [187] myprintf::bDigits#50 ← myprintf::bDigits#1
|
|
Coalesced (already) [188] myprintf::bLeadZero#48 ← myprintf::bLeadZero#10
|
|
Not coalescing [192] myprintf::w#53 ← myprintf::w3#7
|
|
Coalesced (already) [195] myprintf::return#8 ← myprintf::bLen#14
|
|
Coalesced [196] myprintf::bArg#51 ← myprintf::bArg#1
|
|
Coalesced [197] myprintf::w#48 ← myprintf::w#21
|
|
Not coalescing [198] myprintf::w#52 ← myprintf::w2#7
|
|
Not coalescing [199] myprintf::w#51 ← myprintf::w1#6
|
|
Coalesced [201] myprintf::b#36 ← myprintf::b#1
|
|
Coalesced (already) [205] myprintf::bFormat#23 ← myprintf::bFormat#10
|
|
Coalesced [206] myprintf::return#9 ← myprintf::bLen#7
|
|
Coalesced (already) [207] myprintf::bArg#52 ← myprintf::bArg#12
|
|
Coalesced (already) [208] myprintf::w#49 ← myprintf::w#10
|
|
Coalesced (already) [209] myprintf::bTrailing#49 ← myprintf::bTrailing#10
|
|
Coalesced (already) [210] myprintf::bDigits#52 ← myprintf::bDigits#14
|
|
Coalesced (already) [211] myprintf::bLeadZero#50 ← myprintf::bLeadZero#10
|
|
Coalesced [214] myprintf::b#37 ← myprintf::b#6
|
|
Coalesced [217] utoa::value#14 ← utoa::value#4
|
|
Coalesced [221] utoa::bStarted#8 ← utoa::bStarted#5
|
|
Coalesced [222] utoa::value#16 ← utoa::value#6
|
|
Coalesced [223] utoa::dst#19 ← utoa::dst#16
|
|
Coalesced [227] utoa::bStarted#9 ← utoa::bStarted#6
|
|
Coalesced [228] utoa::value#19 ← utoa::value#11
|
|
Coalesced [229] utoa::dst#22 ← utoa::dst#10
|
|
Coalesced [233] utoa::value#21 ← utoa::value#10
|
|
Coalesced [234] utoa::dst#24 ← utoa::dst#13
|
|
Coalesced [244] append::dst#9 ← append::dst#3
|
|
Coalesced [245] append::value#12 ← append::value#4
|
|
Coalesced [250] utoa::value#20 ← utoa::value#3
|
|
Coalesced [251] utoa::dst#23 ← utoa::dst#4
|
|
Coalesced [254] append::dst#8 ← append::dst#2
|
|
Coalesced [255] append::value#11 ← append::value#3
|
|
Coalesced [260] utoa::value#18 ← utoa::value#2
|
|
Coalesced [261] utoa::dst#21 ← utoa::dst#2
|
|
Coalesced [264] append::dst#7 ← append::dst#1
|
|
Coalesced [265] append::value#10 ← append::value#2
|
|
Coalesced [270] utoa::value#17 ← utoa::value#1
|
|
Coalesced [271] utoa::dst#20 ← utoa::dst#1
|
|
Coalesced [273] append::value#9 ← append::value#1
|
|
Coalesced [277] utoa::value#15 ← utoa::value#0
|
|
Coalesced [280] append::value#13 ← append::value#8
|
|
Coalesced [286] append::value#14 ← append::value#0
|
|
Coalesced [303] divr16u::dividend#8 ← divr16u::dividend#1
|
|
Coalesced [310] divr16u::rem#12 ← divr16u::rem#1
|
|
Coalesced [317] divr16u::rem#14 ← divr16u::rem#2
|
|
Coalesced [318] divr16u::return#6 ← divr16u::quotient#2
|
|
Coalesced [323] divr16u::rem#10 ← divr16u::rem#9
|
|
Coalesced [324] divr16u::dividend#9 ← divr16u::dividend#0
|
|
Coalesced [325] divr16u::quotient#9 ← divr16u::return#0
|
|
Coalesced [326] divr16u::i#7 ← divr16u::i#1
|
|
Coalesced [327] divr16u::rem#13 ← divr16u::rem#5
|
|
Coalesced [328] divr16u::return#5 ← divr16u::quotient#1
|
|
Coalesced [329] divr16u::rem#11 ← divr16u::rem#0
|
|
Coalesced down to 29 phi equivalence classes
|
|
Culled Empty Block (label) main::@17
|
|
Culled Empty Block (label) main::@16
|
|
Culled Empty Block (label) myprintf::@79
|
|
Culled Empty Block (label) myprintf::@77
|
|
Culled Empty Block (label) myprintf::@78
|
|
Culled Empty Block (label) myprintf::@82
|
|
Culled Empty Block (label) myprintf::@84
|
|
Culled Empty Block (label) myprintf::@80
|
|
Culled Empty Block (label) myprintf::@83
|
|
Culled Empty Block (label) myprintf::@87
|
|
Culled Empty Block (label) myprintf::@81
|
|
Culled Empty Block (label) myprintf::@88
|
|
Culled Empty Block (label) myprintf::@86
|
|
Culled Empty Block (label) myprintf::@89
|
|
Culled Empty Block (label) myprintf::@85
|
|
Culled Empty Block (label) myprintf::@90
|
|
Culled Empty Block (label) myprintf::@93
|
|
Culled Empty Block (label) utoa::@17
|
|
Culled Empty Block (label) utoa::@18
|
|
Culled Empty Block (label) utoa::@19
|
|
Culled Empty Block (label) utoa::@20
|
|
Culled Empty Block (label) divr16u::@8
|
|
Culled Empty Block (label) divr16u::@10
|
|
Culled Empty Block (label) divr16u::@9
|
|
Renumbering block @14 to @1
|
|
Renumbering block div16u::@2 to div16u::@1
|
|
Renumbering block myprintf::@10 to myprintf::@8
|
|
Renumbering block myprintf::@11 to myprintf::@9
|
|
Renumbering block myprintf::@13 to myprintf::@10
|
|
Renumbering block myprintf::@14 to myprintf::@11
|
|
Renumbering block myprintf::@19 to myprintf::@12
|
|
Renumbering block myprintf::@20 to myprintf::@13
|
|
Renumbering block myprintf::@21 to myprintf::@14
|
|
Renumbering block myprintf::@26 to myprintf::@15
|
|
Renumbering block myprintf::@27 to myprintf::@16
|
|
Renumbering block myprintf::@29 to myprintf::@17
|
|
Renumbering block myprintf::@30 to myprintf::@18
|
|
Renumbering block myprintf::@34 to myprintf::@19
|
|
Renumbering block myprintf::@35 to myprintf::@20
|
|
Renumbering block myprintf::@38 to myprintf::@21
|
|
Renumbering block myprintf::@40 to myprintf::@22
|
|
Renumbering block myprintf::@41 to myprintf::@23
|
|
Renumbering block myprintf::@45 to myprintf::@24
|
|
Renumbering block myprintf::@46 to myprintf::@25
|
|
Renumbering block myprintf::@47 to myprintf::@26
|
|
Renumbering block myprintf::@52 to myprintf::@27
|
|
Renumbering block myprintf::@53 to myprintf::@28
|
|
Renumbering block myprintf::@57 to myprintf::@29
|
|
Renumbering block myprintf::@60 to myprintf::@30
|
|
Renumbering block myprintf::@61 to myprintf::@31
|
|
Renumbering block myprintf::@64 to myprintf::@32
|
|
Renumbering block myprintf::@65 to myprintf::@33
|
|
Renumbering block myprintf::@66 to myprintf::@34
|
|
Renumbering block myprintf::@68 to myprintf::@35
|
|
Renumbering block myprintf::@69 to myprintf::@36
|
|
Renumbering block myprintf::@72 to myprintf::@37
|
|
Renumbering block myprintf::@73 to myprintf::@38
|
|
Renumbering block myprintf::@74 to myprintf::@39
|
|
Renumbering block myprintf::@75 to myprintf::@40
|
|
Renumbering block myprintf::@76 to myprintf::@41
|
|
Renumbering block myprintf::@91 to myprintf::@42
|
|
Renumbering block myprintf::@92 to myprintf::@43
|
|
Renumbering block main::@10 to main::@8
|
|
Renumbering block main::@11 to main::@9
|
|
Renumbering block main::@12 to main::@10
|
|
Renumbering block main::@13 to main::@11
|
|
Renumbering block main::@14 to main::@12
|
|
Renumbering block main::@15 to main::@13
|
|
Adding NOP phi() at start of @begin
|
|
Adding NOP phi() at start of @1
|
|
Adding NOP phi() at start of @end
|
|
Adding NOP phi() at start of main::@9
|
|
Adding NOP phi() at start of main::@12
|
|
Adding NOP phi() at start of myprintf::@8
|
|
Adding NOP phi() at start of myprintf::@10
|
|
Adding NOP phi() at start of myprintf::@17
|
|
Adding NOP phi() at start of utoa
|
|
Adding NOP phi() at start of divr16u
|
|
|
|
FINAL CONTROL FLOW GRAPH
|
|
@begin: scope:[] from
|
|
[0] phi()
|
|
to:@1
|
|
@1: scope:[] from @begin
|
|
[1] phi()
|
|
[2] call main
|
|
to:@end
|
|
@end: scope:[] from @1
|
|
[3] phi()
|
|
main: scope:[main] from @1
|
|
[4] *((const byte*) VICBANK#0) ← (byte/signed byte/word/signed word/dword/signed dword) $17
|
|
[5] *((const byte*) zp1#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
to:main::@1
|
|
main::@1: scope:[main] from main main::@10
|
|
[6] (word) main::u#11 ← phi( main/(word/signed word/dword/signed dword) $6e85 main::@10/(word) main::u#2 )
|
|
[7] *((const byte*) TIMEHI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
[8] *((const byte*) TIMELO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
[9] *((const byte*) zp2#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
to:main::@2
|
|
main::@2: scope:[main] from main::@1 main::@8
|
|
[10] (word) div16u::dividend#0 ← (word) main::u#11
|
|
[11] call div16u
|
|
[12] (word) div16u::return#2 ← (word) div16u::return#0
|
|
to:main::@8
|
|
main::@8: scope:[main] from main::@2
|
|
[13] (word) main::v#1 ← (word) div16u::return#2
|
|
[14] *((const byte*) zp2#0) ← ++ *((const byte*) zp2#0)
|
|
[15] if(*((const byte*) zp2#0)<(byte/word/signed word/dword/signed dword) $c8) goto main::@2
|
|
to:main::@3
|
|
main::@3: scope:[main] from main::@8
|
|
[16] (word~) main::$2 ← ((word)) *((const byte*) TIMEHI#0)
|
|
[17] (word~) main::$3 ← (word~) main::$2 << (byte/signed byte/word/signed word/dword/signed dword) 8
|
|
[18] (word~) main::$4 ← ((word)) *((const byte*) TIMELO#0)
|
|
[19] (word) myprintf::w3#0 ← (word~) main::$3 + (word~) main::$4
|
|
[20] (word) myprintf::w1#0 ← (word) main::u#11
|
|
[21] (word) myprintf::w2#0 ← (word) main::v#1
|
|
[22] call myprintf
|
|
to:main::@9
|
|
main::@9: scope:[main] from main::@3
|
|
[23] phi()
|
|
[24] call Print
|
|
to:main::@10
|
|
main::@10: scope:[main] from main::@9
|
|
[25] (word) main::u#2 ← (word) main::u#11 - (word/signed word/dword/signed dword) $4d2
|
|
[26] *((const byte*) zp1#0) ← ++ *((const byte*) zp1#0)
|
|
[27] if(*((const byte*) zp1#0)<(byte/signed byte/word/signed word/dword/signed dword) $a) goto main::@1
|
|
to:main::@4
|
|
main::@4: scope:[main] from main::@10
|
|
[28] *((const byte*) zp1#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
to:main::@5
|
|
main::@5: scope:[main] from main::@13 main::@4
|
|
[29] (word) main::u#15 ← phi( main::@13/(word) main::u#4 main::@4/(word/signed word/dword/signed dword) $6e85 )
|
|
[30] *((const byte*) TIMEHI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
[31] *((const byte*) TIMELO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
[32] *((const byte*) zp2#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
to:main::@6
|
|
main::@6: scope:[main] from main::@11 main::@5
|
|
[33] (word) div10::val#4 ← (word) main::u#15
|
|
[34] call div10
|
|
[35] (word) div10::return#2 ← (word) div10::return#0
|
|
to:main::@11
|
|
main::@11: scope:[main] from main::@6
|
|
[36] (word) main::v#2 ← (word) div10::return#2
|
|
[37] *((const byte*) zp2#0) ← ++ *((const byte*) zp2#0)
|
|
[38] if(*((const byte*) zp2#0)<(byte/word/signed word/dword/signed dword) $c8) goto main::@6
|
|
to:main::@7
|
|
main::@7: scope:[main] from main::@11
|
|
[39] (word~) main::$11 ← ((word)) *((const byte*) TIMEHI#0)
|
|
[40] (word~) main::$12 ← (word~) main::$11 << (byte/signed byte/word/signed word/dword/signed dword) 8
|
|
[41] (word~) main::$13 ← ((word)) *((const byte*) TIMELO#0)
|
|
[42] (word) myprintf::w3#1 ← (word~) main::$12 + (word~) main::$13
|
|
[43] (word) myprintf::w1#1 ← (word) main::u#15
|
|
[44] (word) myprintf::w2#1 ← (word) main::v#2
|
|
[45] call myprintf
|
|
to:main::@12
|
|
main::@12: scope:[main] from main::@7
|
|
[46] phi()
|
|
[47] call Print
|
|
to:main::@13
|
|
main::@13: scope:[main] from main::@12
|
|
[48] (word) main::u#4 ← (word) main::u#15 - (word/signed word/dword/signed dword) $4d2
|
|
[49] *((const byte*) zp1#0) ← ++ *((const byte*) zp1#0)
|
|
[50] if(*((const byte*) zp1#0)<(byte/signed byte/word/signed word/dword/signed dword) $a) goto main::@5
|
|
to:main::@return
|
|
main::@return: scope:[main] from main::@13
|
|
[51] return
|
|
to:@return
|
|
Print: scope:[Print] from main::@12 main::@9
|
|
asm { ldy#0 loop: ldastrTemp,y beqdone jsr$FFD2 iny jmploop done: }
|
|
to:Print::@return
|
|
Print::@return: scope:[Print] from Print
|
|
[53] return
|
|
to:@return
|
|
myprintf: scope:[myprintf] from main::@3 main::@7
|
|
[54] (word) myprintf::w3#7 ← phi( main::@3/(word) myprintf::w3#0 main::@7/(word) myprintf::w3#1 )
|
|
[54] (word) myprintf::w2#7 ← phi( main::@3/(word) myprintf::w2#0 main::@7/(word) myprintf::w2#1 )
|
|
[54] (word) myprintf::w1#6 ← phi( main::@3/(word) myprintf::w1#0 main::@7/(word) myprintf::w1#1 )
|
|
[54] (byte*) myprintf::str#5 ← phi( main::@3/(const string) main::str main::@7/(const string) main::str1 )
|
|
to:myprintf::@1
|
|
myprintf::@1: scope:[myprintf] from myprintf myprintf::@27
|
|
[55] (byte) myprintf::bLeadZero#10 ← phi( myprintf/(byte/signed byte/word/signed word/dword/signed dword) 0 myprintf::@27/(byte) myprintf::bLeadZero#18 )
|
|
[55] (byte) myprintf::bDigits#14 ← phi( myprintf/(byte/signed byte/word/signed word/dword/signed dword) 0 myprintf::@27/(byte) myprintf::bDigits#24 )
|
|
[55] (byte) myprintf::bTrailing#10 ← phi( myprintf/(byte/signed byte/word/signed word/dword/signed dword) 0 myprintf::@27/(byte) myprintf::bTrailing#21 )
|
|
[55] (word) myprintf::w#10 ← phi( myprintf/(byte/signed byte/word/signed word/dword/signed dword) 0 myprintf::@27/(word) myprintf::w#17 )
|
|
[55] (byte) myprintf::bLen#14 ← phi( myprintf/(byte/signed byte/word/signed word/dword/signed dword) 0 myprintf::@27/(byte) myprintf::return#0 )
|
|
[55] (byte) myprintf::bArg#12 ← phi( myprintf/(byte/signed byte/word/signed word/dword/signed dword) 0 myprintf::@27/(byte) myprintf::bArg#10 )
|
|
[55] (byte) myprintf::bFormat#10 ← phi( myprintf/(byte/signed byte/word/signed word/dword/signed dword) 0 myprintf::@27/(byte) myprintf::bFormat#4 )
|
|
[55] (byte*) myprintf::str#10 ← phi( myprintf/(byte*) myprintf::str#5 myprintf::@27/(byte*) myprintf::str#0 )
|
|
[56] (byte) myprintf::b#1 ← *((byte*) myprintf::str#10)
|
|
[57] if((byte) myprintf::bFormat#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto myprintf::@2
|
|
to:myprintf::@31
|
|
myprintf::@31: scope:[myprintf] from myprintf::@1
|
|
[58] if((byte) myprintf::b#1!=(byte) '0') goto myprintf::@3
|
|
to:myprintf::@27
|
|
myprintf::@27: scope:[myprintf] from myprintf::@22 myprintf::@23 myprintf::@29 myprintf::@30 myprintf::@31 myprintf::@4
|
|
[59] (byte) myprintf::bLeadZero#18 ← phi( myprintf::@22/(byte) myprintf::bLeadZero#10 myprintf::@23/(byte) myprintf::bLeadZero#10 myprintf::@4/(byte) myprintf::bLeadZero#10 myprintf::@29/(byte/signed byte/word/signed word/dword/signed dword) 0 myprintf::@30/(byte) myprintf::bLeadZero#10 myprintf::@31/(byte/signed byte/word/signed word/dword/signed dword) 1 )
|
|
[59] (byte) myprintf::bDigits#24 ← phi( myprintf::@22/(byte) myprintf::bDigits#25 myprintf::@23/(byte) myprintf::bDigits#1 myprintf::@4/(byte) myprintf::bDigits#14 myprintf::@29/(byte/signed byte/word/signed word/dword/signed dword) 1 myprintf::@30/(byte) myprintf::bDigits#14 myprintf::@31/(byte) myprintf::bDigits#14 )
|
|
[59] (byte) myprintf::bTrailing#21 ← phi( myprintf::@22/(byte) myprintf::bTrailing#10 myprintf::@23/(byte) myprintf::bTrailing#10 myprintf::@4/(byte/signed byte/word/signed word/dword/signed dword) 1 myprintf::@29/(byte/signed byte/word/signed word/dword/signed dword) 0 myprintf::@30/(byte) myprintf::bTrailing#10 myprintf::@31/(byte) myprintf::bTrailing#10 )
|
|
[59] (word) myprintf::w#17 ← phi( myprintf::@22/(word) myprintf::w#10 myprintf::@23/(word) myprintf::w#10 myprintf::@4/(word) myprintf::w#10 myprintf::@29/(word) myprintf::w#21 myprintf::@30/(word) myprintf::w#10 myprintf::@31/(word) myprintf::w#10 )
|
|
[59] (byte) myprintf::bArg#10 ← phi( myprintf::@22/(byte) myprintf::bArg#12 myprintf::@23/(byte) myprintf::bArg#12 myprintf::@4/(byte) myprintf::bArg#12 myprintf::@29/(byte) myprintf::bArg#1 myprintf::@30/(byte) myprintf::bArg#12 myprintf::@31/(byte) myprintf::bArg#12 )
|
|
[59] (byte) myprintf::return#0 ← phi( myprintf::@22/(byte) myprintf::bLen#28 myprintf::@23/(byte) myprintf::bLen#14 myprintf::@4/(byte) myprintf::bLen#14 myprintf::@29/(byte) myprintf::bLen#14 myprintf::@30/(byte) myprintf::bLen#7 myprintf::@31/(byte) myprintf::bLen#14 )
|
|
[59] (byte) myprintf::bFormat#4 ← phi( myprintf::@22/(byte/signed byte/word/signed word/dword/signed dword) 0 myprintf::@23/(byte) myprintf::bFormat#10 myprintf::@4/(byte) myprintf::bFormat#10 myprintf::@29/(byte/signed byte/word/signed word/dword/signed dword) 1 myprintf::@30/(byte) myprintf::bFormat#10 myprintf::@31/(byte) myprintf::bFormat#10 )
|
|
[60] (byte*) myprintf::str#0 ← ++ (byte*) myprintf::str#10
|
|
[61] if(*((byte*) myprintf::str#0)!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto myprintf::@1
|
|
to:myprintf::@36
|
|
myprintf::@36: scope:[myprintf] from myprintf::@27
|
|
[62] *((const byte[$64]) strTemp#0 + (byte) myprintf::return#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
to:myprintf::@return
|
|
myprintf::@return: scope:[myprintf] from myprintf::@36
|
|
[63] return
|
|
to:@return
|
|
myprintf::@3: scope:[myprintf] from myprintf::@31
|
|
[64] if((byte) myprintf::b#1>=(byte) '1') goto myprintf::@37
|
|
to:myprintf::@4
|
|
myprintf::@4: scope:[myprintf] from myprintf::@3 myprintf::@37
|
|
[65] if((byte) myprintf::b#1!=(byte) '-') goto myprintf::@5
|
|
to:myprintf::@27
|
|
myprintf::@5: scope:[myprintf] from myprintf::@4
|
|
[66] if((byte) myprintf::b#1==(byte) 'c') goto myprintf::@6
|
|
to:myprintf::@24
|
|
myprintf::@24: scope:[myprintf] from myprintf::@5
|
|
[67] if((byte) myprintf::b#1==(byte) 'd') goto myprintf::@7
|
|
to:myprintf::@25
|
|
myprintf::@25: scope:[myprintf] from myprintf::@24
|
|
[68] if((byte) myprintf::b#1==(byte) 'x') goto myprintf::@26
|
|
to:myprintf::@38
|
|
myprintf::@38: scope:[myprintf] from myprintf::@25
|
|
[69] if((byte) myprintf::b#1==(byte) 'X') goto myprintf::@26
|
|
to:myprintf::@22
|
|
myprintf::@22: scope:[myprintf] from myprintf::@11 myprintf::@20 myprintf::@21 myprintf::@38 myprintf::@40 myprintf::@6
|
|
[70] (byte) myprintf::bDigits#25 ← phi( myprintf::@11/(byte) myprintf::bDigits#14 myprintf::@20/(byte) myprintf::bDigits#16 myprintf::@21/(byte) myprintf::bDigits#3 myprintf::@6/(byte) myprintf::bDigits#14 myprintf::@38/(byte) myprintf::bDigits#14 myprintf::@40/(byte) myprintf::bDigits#16 )
|
|
[70] (byte) myprintf::bLen#28 ← phi( myprintf::@11/(byte) myprintf::bLen#3 myprintf::@20/(byte) myprintf::bLen#24 myprintf::@21/(byte) myprintf::bLen#6 myprintf::@6/(byte) myprintf::bLen#1 myprintf::@38/(byte) myprintf::bLen#14 myprintf::@40/(byte) myprintf::bLen#24 )
|
|
to:myprintf::@27
|
|
myprintf::@26: scope:[myprintf] from myprintf::@25 myprintf::@38
|
|
[71] (word~) myprintf::$17 ← (word) myprintf::w#10 >> (byte/signed byte/word/signed word/dword/signed dword) 4
|
|
[72] (byte) myprintf::b#15 ← (word~) myprintf::$17 & (byte/signed byte/word/signed word/dword/signed dword) $f
|
|
[73] if((byte) myprintf::b#15<(byte/signed byte/word/signed word/dword/signed dword) $a) goto myprintf::@9
|
|
to:myprintf::@8
|
|
myprintf::@8: scope:[myprintf] from myprintf::@26
|
|
[74] phi()
|
|
to:myprintf::@9
|
|
myprintf::@9: scope:[myprintf] from myprintf::@26 myprintf::@8
|
|
[75] (byte~) myprintf::$22 ← phi( myprintf::@26/(byte) '0' myprintf::@8/(byte/signed byte/word/signed word/dword/signed dword) $57 )
|
|
[76] (byte~) myprintf::$23 ← (byte~) myprintf::$22 + (byte) myprintf::b#15
|
|
[77] *((const byte[$64]) strTemp#0 + (byte) myprintf::bLen#14) ← (byte~) myprintf::$23
|
|
[78] (byte) myprintf::bLen#10 ← ++ (byte) myprintf::bLen#14
|
|
[79] (byte) myprintf::b#16 ← (word) myprintf::w#10 & (byte/signed byte/word/signed word/dword/signed dword) $f
|
|
[80] if((byte) myprintf::b#16<(byte/signed byte/word/signed word/dword/signed dword) $a) goto myprintf::@11
|
|
to:myprintf::@10
|
|
myprintf::@10: scope:[myprintf] from myprintf::@9
|
|
[81] phi()
|
|
to:myprintf::@11
|
|
myprintf::@11: scope:[myprintf] from myprintf::@10 myprintf::@9
|
|
[82] (byte~) myprintf::$28 ← phi( myprintf::@9/(byte) '0' myprintf::@10/(byte/signed byte/word/signed word/dword/signed dword) $57 )
|
|
[83] (byte~) myprintf::$29 ← (byte~) myprintf::$28 + (byte) myprintf::b#16
|
|
[84] *((const byte[$64]) strTemp#0 + (byte) myprintf::bLen#10) ← (byte~) myprintf::$29
|
|
[85] (byte) myprintf::bLen#3 ← ++ (byte) myprintf::bLen#10
|
|
to:myprintf::@22
|
|
myprintf::@7: scope:[myprintf] from myprintf::@24
|
|
[86] (word) utoa::value#4 ← (word) myprintf::w#10
|
|
[87] call utoa
|
|
to:myprintf::@12
|
|
myprintf::@12: scope:[myprintf] from myprintf::@13 myprintf::@7
|
|
[88] (byte) myprintf::b#17 ← phi( myprintf::@13/(byte) myprintf::b#5 myprintf::@7/(byte/signed byte/word/signed word/dword/signed dword) 1 )
|
|
[89] if(*((const byte[6]) myprintf::buf6#0 + (byte) myprintf::b#17)!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto myprintf::@13
|
|
to:myprintf::@14
|
|
myprintf::@14: scope:[myprintf] from myprintf::@12
|
|
[90] if((byte) myprintf::bTrailing#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto myprintf::@39
|
|
to:myprintf::@15
|
|
myprintf::@15: scope:[myprintf] from myprintf::@14 myprintf::@18 myprintf::@39
|
|
[91] (byte) myprintf::bDigits#16 ← phi( myprintf::@14/(byte) myprintf::bDigits#14 myprintf::@18/(byte) myprintf::bDigits#2 )
|
|
[91] (byte) myprintf::bLen#23 ← phi( myprintf::@14/(byte) myprintf::bLen#14 myprintf::@18/(byte) myprintf::bLen#4 )
|
|
to:myprintf::@19
|
|
myprintf::@19: scope:[myprintf] from myprintf::@15 myprintf::@19
|
|
[92] (byte) myprintf::bLen#12 ← phi( myprintf::@15/(byte) myprintf::bLen#23 myprintf::@19/(byte) myprintf::bLen#24 )
|
|
[92] (byte) myprintf::digit#3 ← phi( myprintf::@15/(byte/signed byte/word/signed word/dword/signed dword) 0 myprintf::@19/(byte) myprintf::digit#2 )
|
|
[93] *((const byte[$64]) strTemp#0 + (byte) myprintf::bLen#12) ← *((const byte[6]) myprintf::buf6#0 + (byte) myprintf::digit#3)
|
|
[94] (byte) myprintf::bLen#24 ← ++ (byte) myprintf::bLen#12
|
|
[95] (byte) myprintf::digit#2 ← ++ (byte) myprintf::digit#3
|
|
[96] if((byte) myprintf::digit#2<(byte) myprintf::b#17) goto myprintf::@19
|
|
to:myprintf::@20
|
|
myprintf::@20: scope:[myprintf] from myprintf::@19
|
|
[97] if((byte) myprintf::bTrailing#10!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto myprintf::@40
|
|
to:myprintf::@22
|
|
myprintf::@40: scope:[myprintf] from myprintf::@20
|
|
[98] if((byte) myprintf::bDigits#16>(byte) myprintf::b#17) goto myprintf::@21
|
|
to:myprintf::@22
|
|
myprintf::@21: scope:[myprintf] from myprintf::@21 myprintf::@40
|
|
[99] (byte) myprintf::bDigits#8 ← phi( myprintf::@40/(byte) myprintf::bDigits#16 myprintf::@21/(byte) myprintf::bDigits#3 )
|
|
[99] (byte) myprintf::bLen#13 ← phi( myprintf::@40/(byte) myprintf::bLen#24 myprintf::@21/(byte) myprintf::bLen#6 )
|
|
[100] *((const byte[$64]) strTemp#0 + (byte) myprintf::bLen#13) ← (byte) ' '
|
|
[101] (byte) myprintf::bLen#6 ← ++ (byte) myprintf::bLen#13
|
|
[102] (byte) myprintf::bDigits#3 ← -- (byte) myprintf::bDigits#8
|
|
[103] if((byte) myprintf::bDigits#3>(byte) myprintf::b#17) goto myprintf::@21
|
|
to:myprintf::@22
|
|
myprintf::@39: scope:[myprintf] from myprintf::@14
|
|
[104] if((byte) myprintf::bDigits#14>(byte) myprintf::b#17) goto myprintf::@16
|
|
to:myprintf::@15
|
|
myprintf::@16: scope:[myprintf] from myprintf::@18 myprintf::@39
|
|
[105] (byte) myprintf::bDigits#10 ← phi( myprintf::@39/(byte) myprintf::bDigits#14 myprintf::@18/(byte) myprintf::bDigits#2 )
|
|
[105] (byte) myprintf::bLen#11 ← phi( myprintf::@39/(byte) myprintf::bLen#14 myprintf::@18/(byte) myprintf::bLen#4 )
|
|
[106] if((byte) myprintf::bLeadZero#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto myprintf::@18
|
|
to:myprintf::@17
|
|
myprintf::@17: scope:[myprintf] from myprintf::@16
|
|
[107] phi()
|
|
to:myprintf::@18
|
|
myprintf::@18: scope:[myprintf] from myprintf::@16 myprintf::@17
|
|
[108] (byte~) myprintf::$39 ← phi( myprintf::@16/(byte) ' ' myprintf::@17/(byte) '0' )
|
|
[109] *((const byte[$64]) strTemp#0 + (byte) myprintf::bLen#11) ← (byte~) myprintf::$39
|
|
[110] (byte) myprintf::bLen#4 ← ++ (byte) myprintf::bLen#11
|
|
[111] (byte) myprintf::bDigits#2 ← -- (byte) myprintf::bDigits#10
|
|
[112] if((byte) myprintf::bDigits#2>(byte) myprintf::b#17) goto myprintf::@16
|
|
to:myprintf::@15
|
|
myprintf::@13: scope:[myprintf] from myprintf::@12
|
|
[113] (byte) myprintf::b#5 ← ++ (byte) myprintf::b#17
|
|
to:myprintf::@12
|
|
myprintf::@6: scope:[myprintf] from myprintf::@5
|
|
[114] (byte~) myprintf::$47 ← ((byte)) (word) myprintf::w#10
|
|
[115] *((const byte[$64]) strTemp#0 + (byte) myprintf::bLen#14) ← (byte~) myprintf::$47
|
|
[116] (byte) myprintf::bLen#1 ← ++ (byte) myprintf::bLen#14
|
|
to:myprintf::@22
|
|
myprintf::@37: scope:[myprintf] from myprintf::@3
|
|
[117] if((byte) myprintf::b#1<=(byte) '9') goto myprintf::@23
|
|
to:myprintf::@4
|
|
myprintf::@23: scope:[myprintf] from myprintf::@37
|
|
[118] (byte) myprintf::bDigits#1 ← (byte) myprintf::b#1 - (byte) '0'
|
|
to:myprintf::@27
|
|
myprintf::@2: scope:[myprintf] from myprintf::@1
|
|
[119] if((byte) myprintf::b#1!=(byte) '%') goto myprintf::@28
|
|
to:myprintf::@32
|
|
myprintf::@32: scope:[myprintf] from myprintf::@2
|
|
[120] if((byte) myprintf::bArg#12==(byte/signed byte/word/signed word/dword/signed dword) 0) goto myprintf::@42
|
|
to:myprintf::@33
|
|
myprintf::@33: scope:[myprintf] from myprintf::@32
|
|
[121] if((byte) myprintf::bArg#12==(byte/signed byte/word/signed word/dword/signed dword) 1) goto myprintf::@43
|
|
to:myprintf::@34
|
|
myprintf::@34: scope:[myprintf] from myprintf::@33
|
|
[122] (word~) myprintf::w#53 ← (word) myprintf::w3#7
|
|
to:myprintf::@29
|
|
myprintf::@29: scope:[myprintf] from myprintf::@34 myprintf::@42 myprintf::@43
|
|
[123] (word) myprintf::w#21 ← phi( myprintf::@42/(word~) myprintf::w#51 myprintf::@43/(word~) myprintf::w#52 myprintf::@34/(word~) myprintf::w#53 )
|
|
[124] (byte) myprintf::bArg#1 ← ++ (byte) myprintf::bArg#12
|
|
to:myprintf::@27
|
|
myprintf::@43: scope:[myprintf] from myprintf::@33
|
|
[125] (word~) myprintf::w#52 ← (word) myprintf::w2#7
|
|
to:myprintf::@29
|
|
myprintf::@42: scope:[myprintf] from myprintf::@32
|
|
[126] (word~) myprintf::w#51 ← (word) myprintf::w1#6
|
|
to:myprintf::@29
|
|
myprintf::@28: scope:[myprintf] from myprintf::@2
|
|
[127] if((byte) myprintf::b#1>=(byte/signed byte/word/signed word/dword/signed dword) $41) goto myprintf::@41
|
|
to:myprintf::@30
|
|
myprintf::@30: scope:[myprintf] from myprintf::@28 myprintf::@35 myprintf::@41
|
|
[128] (byte) myprintf::b#25 ← phi( myprintf::@28/(byte) myprintf::b#1 myprintf::@35/(byte) myprintf::b#6 )
|
|
[129] *((const byte[$64]) strTemp#0 + (byte) myprintf::bLen#14) ← (byte) myprintf::b#25
|
|
[130] (byte) myprintf::bLen#7 ← ++ (byte) myprintf::bLen#14
|
|
to:myprintf::@27
|
|
myprintf::@41: scope:[myprintf] from myprintf::@28
|
|
[131] if((byte) myprintf::b#1<(byte/signed byte/word/signed word/dword/signed dword) $5a+(byte/signed byte/word/signed word/dword/signed dword) 1) goto myprintf::@35
|
|
to:myprintf::@30
|
|
myprintf::@35: scope:[myprintf] from myprintf::@41
|
|
[132] (byte) myprintf::b#6 ← (byte) myprintf::b#1 + (byte/signed byte/word/signed word/dword/signed dword) $20
|
|
to:myprintf::@30
|
|
utoa: scope:[utoa] from myprintf::@7
|
|
[133] phi()
|
|
to:utoa::@13
|
|
utoa::@13: scope:[utoa] from utoa
|
|
[134] if((word) utoa::value#4>=(word/signed word/dword/signed dword) $2710) goto utoa::@5
|
|
to:utoa::@1
|
|
utoa::@1: scope:[utoa] from utoa::@13 utoa::@9
|
|
[135] (byte*) utoa::dst#16 ← phi( utoa::@13/(const byte[6]) myprintf::buf6#0 utoa::@9/++(const byte[6]) myprintf::buf6#0 )
|
|
[135] (word) utoa::value#6 ← phi( utoa::@13/(word) utoa::value#4 utoa::@9/(word) utoa::value#0 )
|
|
[135] (byte) utoa::bStarted#5 ← phi( utoa::@13/(byte/signed byte/word/signed word/dword/signed dword) 0 utoa::@9/(byte/signed byte/word/signed word/dword/signed dword) 1 )
|
|
[136] if((byte) utoa::bStarted#5==(byte/signed byte/word/signed word/dword/signed dword) 1) goto utoa::@6
|
|
to:utoa::@14
|
|
utoa::@14: scope:[utoa] from utoa::@1
|
|
[137] if((word) utoa::value#6>=(word/signed word/dword/signed dword) $3e8) goto utoa::@6
|
|
to:utoa::@2
|
|
utoa::@2: scope:[utoa] from utoa::@10 utoa::@14
|
|
[138] (byte*) utoa::dst#10 ← phi( utoa::@14/(byte*) utoa::dst#16 utoa::@10/(byte*) utoa::dst#1 )
|
|
[138] (word) utoa::value#11 ← phi( utoa::@14/(word) utoa::value#6 utoa::@10/(word) utoa::value#1 )
|
|
[138] (byte) utoa::bStarted#6 ← phi( utoa::@14/(byte) utoa::bStarted#5 utoa::@10/(byte/signed byte/word/signed word/dword/signed dword) 1 )
|
|
[139] if((byte) utoa::bStarted#6==(byte/signed byte/word/signed word/dword/signed dword) 1) goto utoa::@7
|
|
to:utoa::@15
|
|
utoa::@15: scope:[utoa] from utoa::@2
|
|
[140] if((word) utoa::value#11>=(byte/signed byte/word/signed word/dword/signed dword) $64) goto utoa::@7
|
|
to:utoa::@3
|
|
utoa::@3: scope:[utoa] from utoa::@11 utoa::@15
|
|
[141] (byte*) utoa::dst#13 ← phi( utoa::@11/(byte*) utoa::dst#2 utoa::@15/(byte*) utoa::dst#10 )
|
|
[141] (word) utoa::value#10 ← phi( utoa::@11/(word) utoa::value#2 utoa::@15/(word) utoa::value#11 )
|
|
[141] (byte) utoa::bStarted#7 ← phi( utoa::@11/(byte/signed byte/word/signed word/dword/signed dword) 1 utoa::@15/(byte) utoa::bStarted#6 )
|
|
[142] if((byte) utoa::bStarted#7==(byte/signed byte/word/signed word/dword/signed dword) 1) goto utoa::@8
|
|
to:utoa::@16
|
|
utoa::@16: scope:[utoa] from utoa::@3
|
|
[143] if((word) utoa::value#10>=(byte/signed byte/word/signed word/dword/signed dword) $a) goto utoa::@8
|
|
to:utoa::@4
|
|
utoa::@4: scope:[utoa] from utoa::@12 utoa::@16
|
|
[144] (byte*) utoa::dst#12 ← phi( utoa::@12/(byte*) utoa::dst#4 utoa::@16/(byte*) utoa::dst#13 )
|
|
[144] (word) utoa::value#12 ← phi( utoa::@12/(word) utoa::value#3 utoa::@16/(word) utoa::value#10 )
|
|
[145] (byte~) utoa::$16 ← ((byte)) (word) utoa::value#12
|
|
[146] (byte~) utoa::$17 ← (byte) '0' + (byte~) utoa::$16
|
|
[147] *((byte*) utoa::dst#12) ← (byte~) utoa::$17
|
|
[148] (byte*) utoa::dst#3 ← ++ (byte*) utoa::dst#12
|
|
[149] *((byte*) utoa::dst#3) ← (byte/signed byte/word/signed word/dword/signed dword) 0
|
|
to:utoa::@return
|
|
utoa::@return: scope:[utoa] from utoa::@4
|
|
[150] return
|
|
to:@return
|
|
utoa::@8: scope:[utoa] from utoa::@16 utoa::@3
|
|
[151] (byte*) append::dst#3 ← (byte*) utoa::dst#13
|
|
[152] (word) append::value#4 ← (word) utoa::value#10
|
|
[153] call append
|
|
[154] (word) append::return#10 ← (word) append::value#5
|
|
to:utoa::@12
|
|
utoa::@12: scope:[utoa] from utoa::@8
|
|
[155] (word) utoa::value#3 ← (word) append::return#10
|
|
[156] (byte*) utoa::dst#4 ← ++ (byte*) utoa::dst#13
|
|
to:utoa::@4
|
|
utoa::@7: scope:[utoa] from utoa::@15 utoa::@2
|
|
[157] (byte*) append::dst#2 ← (byte*) utoa::dst#10
|
|
[158] (word) append::value#3 ← (word) utoa::value#11
|
|
[159] call append
|
|
[160] (word) append::return#4 ← (word) append::value#5
|
|
to:utoa::@11
|
|
utoa::@11: scope:[utoa] from utoa::@7
|
|
[161] (word) utoa::value#2 ← (word) append::return#4
|
|
[162] (byte*) utoa::dst#2 ← ++ (byte*) utoa::dst#10
|
|
to:utoa::@3
|
|
utoa::@6: scope:[utoa] from utoa::@1 utoa::@14
|
|
[163] (byte*) append::dst#1 ← (byte*) utoa::dst#16
|
|
[164] (word) append::value#2 ← (word) utoa::value#6
|
|
[165] call append
|
|
[166] (word) append::return#3 ← (word) append::value#5
|
|
to:utoa::@10
|
|
utoa::@10: scope:[utoa] from utoa::@6
|
|
[167] (word) utoa::value#1 ← (word) append::return#3
|
|
[168] (byte*) utoa::dst#1 ← ++ (byte*) utoa::dst#16
|
|
to:utoa::@2
|
|
utoa::@5: scope:[utoa] from utoa::@13
|
|
[169] (word) append::value#1 ← (word) utoa::value#4
|
|
[170] call append
|
|
[171] (word) append::return#2 ← (word) append::value#5
|
|
to:utoa::@9
|
|
utoa::@9: scope:[utoa] from utoa::@5
|
|
[172] (word) utoa::value#0 ← (word) append::return#2
|
|
to:utoa::@1
|
|
append: scope:[append] from utoa::@5 utoa::@6 utoa::@7 utoa::@8
|
|
[173] (word) append::sub#6 ← phi( utoa::@5/(word/signed word/dword/signed dword) $2710 utoa::@6/(word/signed word/dword/signed dword) $3e8 utoa::@7/(byte/signed byte/word/signed word/dword/signed dword) $64 utoa::@8/(byte/signed byte/word/signed word/dword/signed dword) $a )
|
|
[173] (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 )
|
|
[173] (byte*) append::dst#4 ← phi( utoa::@5/(const byte[6]) myprintf::buf6#0 utoa::@6/(byte*) append::dst#1 utoa::@7/(byte*) append::dst#2 utoa::@8/(byte*) append::dst#3 )
|
|
[174] *((byte*) append::dst#4) ← (byte) '0'
|
|
to:append::@1
|
|
append::@1: scope:[append] from append append::@2
|
|
[175] (word) append::value#5 ← phi( append/(word) append::value#8 append::@2/(word) append::value#0 )
|
|
[176] if((word) append::value#5>=(word) append::sub#6) goto append::@2
|
|
to:append::@return
|
|
append::@return: scope:[append] from append::@1
|
|
[177] return
|
|
to:@return
|
|
append::@2: scope:[append] from append::@1
|
|
[178] *((byte*) append::dst#4) ← ++ *((byte*) append::dst#4)
|
|
[179] (word) append::value#0 ← (word) append::value#5 - (word) append::sub#6
|
|
to:append::@1
|
|
div10: scope:[div10] from main::@6
|
|
[180] (word~) div10::$0 ← (word) div10::val#4 >> (byte/signed byte/word/signed word/dword/signed dword) 1
|
|
[181] (word) div10::val#0 ← (word~) div10::$0 + (byte/signed byte/word/signed word/dword/signed dword) 1
|
|
[182] (word~) div10::$2 ← (word) div10::val#0 << (byte/signed byte/word/signed word/dword/signed dword) 1
|
|
[183] (word) div10::val#1 ← (word) div10::val#0 + (word~) div10::$2
|
|
[184] (word~) div10::$3 ← (word) div10::val#1 >> (byte/signed byte/word/signed word/dword/signed dword) 4
|
|
[185] (word) div10::val#2 ← (word) div10::val#1 + (word~) div10::$3
|
|
[186] (word~) div10::$4 ← (word) div10::val#2 >> (byte/signed byte/word/signed word/dword/signed dword) 4
|
|
[187] (word~) div10::$5 ← (word~) div10::$4 >> (byte/signed byte/word/signed word/dword/signed dword) 4
|
|
[188] (word) div10::val#3 ← (word) div10::val#2 + (word~) div10::$5
|
|
[189] (word) div10::return#0 ← (word) div10::val#3 >> (byte/signed byte/word/signed word/dword/signed dword) 4
|
|
to:div10::@return
|
|
div10::@return: scope:[div10] from div10
|
|
[190] return
|
|
to:@return
|
|
div16u: scope:[div16u] from main::@2
|
|
[191] (word) divr16u::dividend#1 ← (word) div16u::dividend#0
|
|
[192] call divr16u
|
|
[193] (word) divr16u::return#2 ← (word) divr16u::return#0
|
|
to:div16u::@1
|
|
div16u::@1: scope:[div16u] from div16u
|
|
[194] (word) div16u::return#0 ← (word) divr16u::return#2
|
|
to:div16u::@return
|
|
div16u::@return: scope:[div16u] from div16u::@1
|
|
[195] return
|
|
to:@return
|
|
divr16u: scope:[divr16u] from div16u
|
|
[196] phi()
|
|
to:divr16u::@1
|
|
divr16u::@1: scope:[divr16u] from divr16u divr16u::@3
|
|
[197] (byte) divr16u::i#2 ← phi( divr16u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr16u::@3/(byte) divr16u::i#1 )
|
|
[197] (word) divr16u::quotient#3 ← phi( divr16u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr16u::@3/(word) divr16u::return#0 )
|
|
[197] (word) divr16u::dividend#2 ← phi( divr16u/(word) divr16u::dividend#1 divr16u::@3/(word) divr16u::dividend#0 )
|
|
[197] (word) divr16u::rem#4 ← phi( divr16u/(byte/signed byte/word/signed word/dword/signed dword) 0 divr16u::@3/(word) divr16u::rem#9 )
|
|
[198] (word) divr16u::rem#0 ← (word) divr16u::rem#4 << (byte/signed byte/word/signed word/dword/signed dword) 1
|
|
[199] (byte~) divr16u::$1 ← > (word) divr16u::dividend#2
|
|
[200] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80
|
|
[201] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2
|
|
to:divr16u::@4
|
|
divr16u::@4: scope:[divr16u] from divr16u::@1
|
|
[202] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1
|
|
to:divr16u::@2
|
|
divr16u::@2: scope:[divr16u] from divr16u::@1 divr16u::@4
|
|
[203] (word) divr16u::rem#5 ← phi( divr16u::@1/(word) divr16u::rem#0 divr16u::@4/(word) divr16u::rem#1 )
|
|
[204] (word) divr16u::dividend#0 ← (word) divr16u::dividend#2 << (byte/signed byte/word/signed word/dword/signed dword) 1
|
|
[205] (word) divr16u::quotient#1 ← (word) divr16u::quotient#3 << (byte/signed byte/word/signed word/dword/signed dword) 1
|
|
[206] if((word) divr16u::rem#5<(const word) div16u::divisor#0) goto divr16u::@3
|
|
to:divr16u::@5
|
|
divr16u::@5: scope:[divr16u] from divr16u::@2
|
|
[207] (word) divr16u::quotient#2 ← ++ (word) divr16u::quotient#1
|
|
[208] (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
|
|
[209] (word) divr16u::return#0 ← phi( divr16u::@2/(word) divr16u::quotient#1 divr16u::@5/(word) divr16u::quotient#2 )
|
|
[209] (word) divr16u::rem#9 ← phi( divr16u::@2/(word) divr16u::rem#5 divr16u::@5/(word) divr16u::rem#2 )
|
|
[210] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2
|
|
[211] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1
|
|
to:divr16u::@return
|
|
divr16u::@return: scope:[divr16u] from divr16u::@3
|
|
[212] return
|
|
to:@return
|
|
|
|
|
|
VARIABLE REGISTER WEIGHTS
|
|
(void()) Print()
|
|
(byte*) TIMEHI
|
|
(byte*) TIMELO
|
|
(byte*) VICBANK
|
|
(word()) append((byte*) append::dst , (word) append::value , (word) append::sub)
|
|
(byte*) append::dst
|
|
(byte*) append::dst#1 2.0
|
|
(byte*) append::dst#2 2.0
|
|
(byte*) append::dst#3 2.0
|
|
(byte*) append::dst#4 335.0
|
|
(word) append::return
|
|
(word) append::return#10 4.0
|
|
(word) append::return#2 4.0
|
|
(word) append::return#3 4.0
|
|
(word) append::return#4 4.0
|
|
(word) append::sub
|
|
(word) append::sub#6 333.6666666666667
|
|
(word) append::value
|
|
(word) append::value#0 2002.0
|
|
(word) append::value#1 4.0
|
|
(word) append::value#2 4.0
|
|
(word) append::value#3 4.0
|
|
(word) append::value#4 4.0
|
|
(word) append::value#5 376.625
|
|
(word) append::value#8 5.0
|
|
(word()) div10((word) div10::val)
|
|
(word~) div10::$0 4.0
|
|
(word~) div10::$2 4.0
|
|
(word~) div10::$3 4.0
|
|
(word~) div10::$4 4.0
|
|
(word~) div10::$5 4.0
|
|
(word) div10::return
|
|
(word) div10::return#0 34.33333333333333
|
|
(word) div10::return#2 202.0
|
|
(word) div10::val
|
|
(word) div10::val#0 3.0
|
|
(word) div10::val#1 3.0
|
|
(word) div10::val#2 2.0
|
|
(word) div10::val#3 4.0
|
|
(word) div10::val#4 103.0
|
|
(word()) div16u((word) div16u::dividend , (word) div16u::divisor)
|
|
(word) div16u::dividend
|
|
(word) div16u::dividend#0 103.0
|
|
(word) div16u::divisor
|
|
(word) div16u::return
|
|
(word) div16u::return#0 34.33333333333333
|
|
(word) div16u::return#2 202.0
|
|
(word()) divr16u((word) divr16u::dividend , (word) divr16u::divisor , (word) divr16u::rem)
|
|
(byte~) divr16u::$1 2002.0
|
|
(byte~) divr16u::$2 2002.0
|
|
(word) divr16u::dividend
|
|
(word) divr16u::dividend#0 250.25
|
|
(word) divr16u::dividend#1 2.0
|
|
(word) divr16u::dividend#2 429.2857142857143
|
|
(word) divr16u::divisor
|
|
(byte) divr16u::i
|
|
(byte) divr16u::i#1 1501.5
|
|
(byte) divr16u::i#2 154.0
|
|
(word) divr16u::quotient
|
|
(word) divr16u::quotient#1 1501.5
|
|
(word) divr16u::quotient#2 1001.0
|
|
(word) divr16u::quotient#3 250.25
|
|
(word) divr16u::rem
|
|
(word) divr16u::rem#0 750.75
|
|
(word) divr16u::rem#1 2002.0
|
|
(word) divr16u::rem#2 2002.0
|
|
(word) divr16u::rem#4 2002.0
|
|
(word) divr16u::rem#5 1001.0
|
|
(word) divr16u::rem#9 1001.0
|
|
(word) divr16u::return
|
|
(word) divr16u::return#0 601.0
|
|
(word) divr16u::return#2 4.0
|
|
(signed word()) main()
|
|
(word~) main::$11 22.0
|
|
(word~) main::$12 11.0
|
|
(word~) main::$13 22.0
|
|
(word~) main::$2 22.0
|
|
(word~) main::$3 11.0
|
|
(word~) main::$4 22.0
|
|
(signed word) main::return
|
|
(word) main::u
|
|
(word) main::u#11 7.05263157894737
|
|
(word) main::u#15 7.05263157894737
|
|
(word) main::u#2 7.333333333333333
|
|
(word) main::u#4 7.333333333333333
|
|
(word) main::v
|
|
(word) main::v#1 14.0
|
|
(word) main::v#2 14.0
|
|
(byte()) myprintf((byte*) myprintf::dst , (byte*) myprintf::str , (word) myprintf::w1 , (word) myprintf::w2 , (word) myprintf::w3)
|
|
(word~) myprintf::$17 202.0
|
|
(byte~) myprintf::$22 101.0
|
|
(byte~) myprintf::$23 202.0
|
|
(byte~) myprintf::$28 101.0
|
|
(byte~) myprintf::$29 202.0
|
|
(byte~) myprintf::$39 1001.0
|
|
(byte~) myprintf::$47 202.0
|
|
(byte) myprintf::b
|
|
(byte) myprintf::b#1 126.25000000000003
|
|
(byte) myprintf::b#15 75.75
|
|
(byte) myprintf::b#16 75.75
|
|
(byte) myprintf::b#17 248.32
|
|
(byte) myprintf::b#25 303.0
|
|
(byte) myprintf::b#5 2002.0
|
|
(byte) myprintf::b#6 202.0
|
|
(byte) myprintf::bArg
|
|
(byte) myprintf::bArg#1 202.0
|
|
(byte) myprintf::bArg#10 235.66666666666663
|
|
(byte) myprintf::bArg#12 12.625
|
|
(byte) myprintf::bDigits
|
|
(byte) myprintf::bDigits#1 202.0
|
|
(byte) myprintf::bDigits#10 350.5
|
|
(byte) myprintf::bDigits#14 23.488372093023255
|
|
(byte) myprintf::bDigits#16 188.25
|
|
(byte) myprintf::bDigits#2 2002.0
|
|
(byte) myprintf::bDigits#24 201.99999999999997
|
|
(byte) myprintf::bDigits#25 1607.0
|
|
(byte) myprintf::bDigits#3 2002.0
|
|
(byte) myprintf::bDigits#8 701.0
|
|
(byte) myprintf::bFormat
|
|
(byte) myprintf::bFormat#10 40.4
|
|
(byte) myprintf::bFormat#4 168.33333333333331
|
|
(byte) myprintf::bLeadZero
|
|
(byte) myprintf::bLeadZero#10 22.818181818181817
|
|
(byte) myprintf::bLeadZero#18 168.33333333333331
|
|
(byte) myprintf::bLen
|
|
(byte) myprintf::bLen#1 202.0
|
|
(byte) myprintf::bLen#10 43.285714285714285
|
|
(byte) myprintf::bLen#11 620.8
|
|
(byte) myprintf::bLen#12 1552.0
|
|
(byte) myprintf::bLen#13 1552.0
|
|
(byte) myprintf::bLen#14 34.487804878048784
|
|
(byte) myprintf::bLen#23 1203.0
|
|
(byte) myprintf::bLen#24 460.99999999999994
|
|
(byte) myprintf::bLen#28 1607.0
|
|
(byte) myprintf::bLen#3 202.0
|
|
(byte) myprintf::bLen#4 1001.0
|
|
(byte) myprintf::bLen#6 1001.0
|
|
(byte) myprintf::bLen#7 202.0
|
|
(byte) myprintf::bTrailing
|
|
(byte) myprintf::bTrailing#10 10.712121212121211
|
|
(byte) myprintf::bTrailing#21 168.33333333333331
|
|
(byte[6]) myprintf::buf6
|
|
(byte) myprintf::digit
|
|
(byte) myprintf::digit#2 1501.5
|
|
(byte) myprintf::digit#3 1001.0
|
|
(byte*) myprintf::dst
|
|
(byte) myprintf::return
|
|
(byte) myprintf::return#0 236.3333333333333
|
|
(byte*) myprintf::str
|
|
(byte*) myprintf::str#0 151.5
|
|
(byte*) myprintf::str#10 4.121621621621622
|
|
(byte*) myprintf::str#5 2.0
|
|
(word) myprintf::w
|
|
(word) myprintf::w#10 15.303030303030305
|
|
(word) myprintf::w#17 235.66666666666663
|
|
(word) myprintf::w#21 202.0
|
|
(word~) myprintf::w#51 202.0
|
|
(word~) myprintf::w#52 202.0
|
|
(word~) myprintf::w#53 202.0
|
|
(word) myprintf::w1
|
|
(word) myprintf::w1#0 11.0
|
|
(word) myprintf::w1#1 11.0
|
|
(word) myprintf::w1#6 1.5974025974025974
|
|
(word) myprintf::w2
|
|
(word) myprintf::w2#0 22.0
|
|
(word) myprintf::w2#1 22.0
|
|
(word) myprintf::w2#7 1.5974025974025974
|
|
(word) myprintf::w3
|
|
(word) myprintf::w3#0 7.333333333333333
|
|
(word) myprintf::w3#1 7.333333333333333
|
|
(word) myprintf::w3#7 1.5974025974025974
|
|
(byte[$64]) strTemp
|
|
(void()) utoa((word) utoa::value , (byte*) utoa::dst)
|
|
(byte~) utoa::$16 4.0
|
|
(byte~) utoa::$17 4.0
|
|
(byte) utoa::bStarted
|
|
(byte) utoa::bStarted#5 1.3333333333333333
|
|
(byte) utoa::bStarted#6 2.0
|
|
(byte) utoa::bStarted#7 4.0
|
|
(byte*) utoa::dst
|
|
(byte*) utoa::dst#1 4.0
|
|
(byte*) utoa::dst#10 1.25
|
|
(byte*) utoa::dst#12 2.0
|
|
(byte*) utoa::dst#13 1.25
|
|
(byte*) utoa::dst#16 0.75
|
|
(byte*) utoa::dst#2 4.0
|
|
(byte*) utoa::dst#3 4.0
|
|
(byte*) utoa::dst#4 4.0
|
|
(word) utoa::value
|
|
(word) utoa::value#0 4.0
|
|
(word) utoa::value#1 2.0
|
|
(word) utoa::value#10 2.5
|
|
(word) utoa::value#11 2.5
|
|
(word) utoa::value#12 6.0
|
|
(word) utoa::value#2 2.0
|
|
(word) utoa::value#3 2.0
|
|
(word) utoa::value#4 35.66666666666666
|
|
(word) utoa::value#6 2.5
|
|
(byte*) zp1
|
|
(byte*) zp2
|
|
|
|
Initial phi equivalence classes
|
|
[ main::u#11 main::u#2 ]
|
|
[ main::u#15 main::u#4 ]
|
|
[ myprintf::w1#6 myprintf::w1#0 myprintf::w1#1 ]
|
|
[ myprintf::w2#7 myprintf::w2#0 myprintf::w2#1 ]
|
|
[ myprintf::w3#7 myprintf::w3#0 myprintf::w3#1 ]
|
|
[ myprintf::str#10 myprintf::str#5 myprintf::str#0 ]
|
|
[ myprintf::bFormat#10 myprintf::bFormat#4 ]
|
|
[ myprintf::bArg#12 myprintf::bArg#10 myprintf::bArg#1 ]
|
|
[ myprintf::w#10 myprintf::w#17 myprintf::w#21 myprintf::w#51 myprintf::w#52 myprintf::w#53 ]
|
|
[ myprintf::bTrailing#10 myprintf::bTrailing#21 ]
|
|
[ myprintf::bLeadZero#10 myprintf::bLeadZero#18 ]
|
|
[ myprintf::$22 ]
|
|
[ myprintf::$28 ]
|
|
[ myprintf::b#17 myprintf::b#5 ]
|
|
[ myprintf::digit#3 myprintf::digit#2 ]
|
|
[ myprintf::bLen#11 myprintf::bLen#13 myprintf::bLen#12 myprintf::bLen#23 myprintf::bLen#14 myprintf::return#0 myprintf::bLen#28 myprintf::bLen#7 myprintf::bLen#3 myprintf::bLen#24 myprintf::bLen#6 myprintf::bLen#1 myprintf::bLen#4 ]
|
|
[ myprintf::bDigits#10 myprintf::bDigits#8 myprintf::bDigits#14 myprintf::bDigits#24 myprintf::bDigits#25 myprintf::bDigits#1 myprintf::bDigits#16 myprintf::bDigits#3 myprintf::bDigits#2 ]
|
|
[ myprintf::$39 ]
|
|
[ myprintf::b#25 myprintf::b#1 myprintf::b#6 ]
|
|
[ utoa::bStarted#7 utoa::bStarted#6 utoa::bStarted#5 ]
|
|
[ utoa::value#12 utoa::value#3 utoa::value#10 utoa::value#2 utoa::value#11 utoa::value#6 utoa::value#4 utoa::value#0 utoa::value#1 ]
|
|
[ utoa::dst#12 utoa::dst#4 utoa::dst#13 utoa::dst#2 utoa::dst#10 utoa::dst#16 utoa::dst#1 ]
|
|
[ append::dst#4 append::dst#1 append::dst#2 append::dst#3 ]
|
|
[ append::sub#6 ]
|
|
[ append::value#5 append::value#8 append::value#1 append::value#2 append::value#3 append::value#4 append::value#0 ]
|
|
[ divr16u::rem#4 divr16u::rem#9 divr16u::rem#5 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ]
|
|
[ divr16u::dividend#2 divr16u::dividend#1 divr16u::dividend#0 ]
|
|
[ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 ]
|
|
[ divr16u::i#2 divr16u::i#1 ]
|
|
Added variable div16u::dividend#0 to zero page equivalence class [ div16u::dividend#0 ]
|
|
Added variable div16u::return#2 to zero page equivalence class [ div16u::return#2 ]
|
|
Added variable main::v#1 to zero page equivalence class [ main::v#1 ]
|
|
Added variable main::$2 to zero page equivalence class [ main::$2 ]
|
|
Added variable main::$3 to zero page equivalence class [ main::$3 ]
|
|
Added variable main::$4 to zero page equivalence class [ main::$4 ]
|
|
Added variable div10::val#4 to zero page equivalence class [ div10::val#4 ]
|
|
Added variable div10::return#2 to zero page equivalence class [ div10::return#2 ]
|
|
Added variable main::v#2 to zero page equivalence class [ main::v#2 ]
|
|
Added variable main::$11 to zero page equivalence class [ main::$11 ]
|
|
Added variable main::$12 to zero page equivalence class [ main::$12 ]
|
|
Added variable main::$13 to zero page equivalence class [ main::$13 ]
|
|
Added variable myprintf::$17 to zero page equivalence class [ myprintf::$17 ]
|
|
Added variable myprintf::b#15 to zero page equivalence class [ myprintf::b#15 ]
|
|
Added variable myprintf::$23 to zero page equivalence class [ myprintf::$23 ]
|
|
Added variable myprintf::bLen#10 to zero page equivalence class [ myprintf::bLen#10 ]
|
|
Added variable myprintf::b#16 to zero page equivalence class [ myprintf::b#16 ]
|
|
Added variable myprintf::$29 to zero page equivalence class [ myprintf::$29 ]
|
|
Added variable myprintf::$47 to zero page equivalence class [ myprintf::$47 ]
|
|
Added variable utoa::$16 to zero page equivalence class [ utoa::$16 ]
|
|
Added variable utoa::$17 to zero page equivalence class [ utoa::$17 ]
|
|
Added variable utoa::dst#3 to zero page equivalence class [ utoa::dst#3 ]
|
|
Added variable append::return#10 to zero page equivalence class [ append::return#10 ]
|
|
Added variable append::return#4 to zero page equivalence class [ append::return#4 ]
|
|
Added variable append::return#3 to zero page equivalence class [ append::return#3 ]
|
|
Added variable append::return#2 to zero page equivalence class [ append::return#2 ]
|
|
Added variable div10::$0 to zero page equivalence class [ div10::$0 ]
|
|
Added variable div10::val#0 to zero page equivalence class [ div10::val#0 ]
|
|
Added variable div10::$2 to zero page equivalence class [ div10::$2 ]
|
|
Added variable div10::val#1 to zero page equivalence class [ div10::val#1 ]
|
|
Added variable div10::$3 to zero page equivalence class [ div10::$3 ]
|
|
Added variable div10::val#2 to zero page equivalence class [ div10::val#2 ]
|
|
Added variable div10::$4 to zero page equivalence class [ div10::$4 ]
|
|
Added variable div10::$5 to zero page equivalence class [ div10::$5 ]
|
|
Added variable div10::val#3 to zero page equivalence class [ div10::val#3 ]
|
|
Added variable div10::return#0 to zero page equivalence class [ div10::return#0 ]
|
|
Added variable divr16u::return#2 to zero page equivalence class [ divr16u::return#2 ]
|
|
Added variable div16u::return#0 to zero page equivalence class [ div16u::return#0 ]
|
|
Added variable divr16u::$1 to zero page equivalence class [ divr16u::$1 ]
|
|
Added variable divr16u::$2 to zero page equivalence class [ divr16u::$2 ]
|
|
Complete equivalence classes
|
|
[ main::u#11 main::u#2 ]
|
|
[ main::u#15 main::u#4 ]
|
|
[ myprintf::w1#6 myprintf::w1#0 myprintf::w1#1 ]
|
|
[ myprintf::w2#7 myprintf::w2#0 myprintf::w2#1 ]
|
|
[ myprintf::w3#7 myprintf::w3#0 myprintf::w3#1 ]
|
|
[ myprintf::str#10 myprintf::str#5 myprintf::str#0 ]
|
|
[ myprintf::bFormat#10 myprintf::bFormat#4 ]
|
|
[ myprintf::bArg#12 myprintf::bArg#10 myprintf::bArg#1 ]
|
|
[ myprintf::w#10 myprintf::w#17 myprintf::w#21 myprintf::w#51 myprintf::w#52 myprintf::w#53 ]
|
|
[ myprintf::bTrailing#10 myprintf::bTrailing#21 ]
|
|
[ myprintf::bLeadZero#10 myprintf::bLeadZero#18 ]
|
|
[ myprintf::$22 ]
|
|
[ myprintf::$28 ]
|
|
[ myprintf::b#17 myprintf::b#5 ]
|
|
[ myprintf::digit#3 myprintf::digit#2 ]
|
|
[ myprintf::bLen#11 myprintf::bLen#13 myprintf::bLen#12 myprintf::bLen#23 myprintf::bLen#14 myprintf::return#0 myprintf::bLen#28 myprintf::bLen#7 myprintf::bLen#3 myprintf::bLen#24 myprintf::bLen#6 myprintf::bLen#1 myprintf::bLen#4 ]
|
|
[ myprintf::bDigits#10 myprintf::bDigits#8 myprintf::bDigits#14 myprintf::bDigits#24 myprintf::bDigits#25 myprintf::bDigits#1 myprintf::bDigits#16 myprintf::bDigits#3 myprintf::bDigits#2 ]
|
|
[ myprintf::$39 ]
|
|
[ myprintf::b#25 myprintf::b#1 myprintf::b#6 ]
|
|
[ utoa::bStarted#7 utoa::bStarted#6 utoa::bStarted#5 ]
|
|
[ utoa::value#12 utoa::value#3 utoa::value#10 utoa::value#2 utoa::value#11 utoa::value#6 utoa::value#4 utoa::value#0 utoa::value#1 ]
|
|
[ utoa::dst#12 utoa::dst#4 utoa::dst#13 utoa::dst#2 utoa::dst#10 utoa::dst#16 utoa::dst#1 ]
|
|
[ append::dst#4 append::dst#1 append::dst#2 append::dst#3 ]
|
|
[ append::sub#6 ]
|
|
[ append::value#5 append::value#8 append::value#1 append::value#2 append::value#3 append::value#4 append::value#0 ]
|
|
[ divr16u::rem#4 divr16u::rem#9 divr16u::rem#5 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ]
|
|
[ divr16u::dividend#2 divr16u::dividend#1 divr16u::dividend#0 ]
|
|
[ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 ]
|
|
[ divr16u::i#2 divr16u::i#1 ]
|
|
[ div16u::dividend#0 ]
|
|
[ div16u::return#2 ]
|
|
[ main::v#1 ]
|
|
[ main::$2 ]
|
|
[ main::$3 ]
|
|
[ main::$4 ]
|
|
[ div10::val#4 ]
|
|
[ div10::return#2 ]
|
|
[ main::v#2 ]
|
|
[ main::$11 ]
|
|
[ main::$12 ]
|
|
[ main::$13 ]
|
|
[ myprintf::$17 ]
|
|
[ myprintf::b#15 ]
|
|
[ myprintf::$23 ]
|
|
[ myprintf::bLen#10 ]
|
|
[ myprintf::b#16 ]
|
|
[ myprintf::$29 ]
|
|
[ myprintf::$47 ]
|
|
[ utoa::$16 ]
|
|
[ utoa::$17 ]
|
|
[ utoa::dst#3 ]
|
|
[ append::return#10 ]
|
|
[ append::return#4 ]
|
|
[ append::return#3 ]
|
|
[ append::return#2 ]
|
|
[ div10::$0 ]
|
|
[ div10::val#0 ]
|
|
[ div10::$2 ]
|
|
[ div10::val#1 ]
|
|
[ div10::$3 ]
|
|
[ div10::val#2 ]
|
|
[ div10::$4 ]
|
|
[ div10::$5 ]
|
|
[ div10::val#3 ]
|
|
[ div10::return#0 ]
|
|
[ divr16u::return#2 ]
|
|
[ div16u::return#0 ]
|
|
[ divr16u::$1 ]
|
|
[ divr16u::$2 ]
|
|
Allocated zp ZP_WORD:2 [ main::u#11 main::u#2 ]
|
|
Allocated zp ZP_WORD:4 [ main::u#15 main::u#4 ]
|
|
Allocated zp ZP_WORD:6 [ myprintf::w1#6 myprintf::w1#0 myprintf::w1#1 ]
|
|
Allocated zp ZP_WORD:8 [ myprintf::w2#7 myprintf::w2#0 myprintf::w2#1 ]
|
|
Allocated zp ZP_WORD:10 [ myprintf::w3#7 myprintf::w3#0 myprintf::w3#1 ]
|
|
Allocated zp ZP_WORD:12 [ myprintf::str#10 myprintf::str#5 myprintf::str#0 ]
|
|
Allocated zp ZP_BYTE:14 [ myprintf::bFormat#10 myprintf::bFormat#4 ]
|
|
Allocated zp ZP_BYTE:15 [ myprintf::bArg#12 myprintf::bArg#10 myprintf::bArg#1 ]
|
|
Allocated zp ZP_WORD:16 [ myprintf::w#10 myprintf::w#17 myprintf::w#21 myprintf::w#51 myprintf::w#52 myprintf::w#53 ]
|
|
Allocated zp ZP_BYTE:18 [ myprintf::bTrailing#10 myprintf::bTrailing#21 ]
|
|
Allocated zp ZP_BYTE:19 [ myprintf::bLeadZero#10 myprintf::bLeadZero#18 ]
|
|
Allocated zp ZP_BYTE:20 [ myprintf::$22 ]
|
|
Allocated zp ZP_BYTE:21 [ myprintf::$28 ]
|
|
Allocated zp ZP_BYTE:22 [ myprintf::b#17 myprintf::b#5 ]
|
|
Allocated zp ZP_BYTE:23 [ myprintf::digit#3 myprintf::digit#2 ]
|
|
Allocated zp ZP_BYTE:24 [ myprintf::bLen#11 myprintf::bLen#13 myprintf::bLen#12 myprintf::bLen#23 myprintf::bLen#14 myprintf::return#0 myprintf::bLen#28 myprintf::bLen#7 myprintf::bLen#3 myprintf::bLen#24 myprintf::bLen#6 myprintf::bLen#1 myprintf::bLen#4 ]
|
|
Allocated zp ZP_BYTE:25 [ myprintf::bDigits#10 myprintf::bDigits#8 myprintf::bDigits#14 myprintf::bDigits#24 myprintf::bDigits#25 myprintf::bDigits#1 myprintf::bDigits#16 myprintf::bDigits#3 myprintf::bDigits#2 ]
|
|
Allocated zp ZP_BYTE:26 [ myprintf::$39 ]
|
|
Allocated zp ZP_BYTE:27 [ myprintf::b#25 myprintf::b#1 myprintf::b#6 ]
|
|
Allocated zp ZP_BYTE:28 [ utoa::bStarted#7 utoa::bStarted#6 utoa::bStarted#5 ]
|
|
Allocated zp ZP_WORD:29 [ utoa::value#12 utoa::value#3 utoa::value#10 utoa::value#2 utoa::value#11 utoa::value#6 utoa::value#4 utoa::value#0 utoa::value#1 ]
|
|
Allocated zp ZP_WORD:31 [ utoa::dst#12 utoa::dst#4 utoa::dst#13 utoa::dst#2 utoa::dst#10 utoa::dst#16 utoa::dst#1 ]
|
|
Allocated zp ZP_WORD:33 [ append::dst#4 append::dst#1 append::dst#2 append::dst#3 ]
|
|
Allocated zp ZP_WORD:35 [ append::sub#6 ]
|
|
Allocated zp ZP_WORD:37 [ append::value#5 append::value#8 append::value#1 append::value#2 append::value#3 append::value#4 append::value#0 ]
|
|
Allocated zp ZP_WORD:39 [ divr16u::rem#4 divr16u::rem#9 divr16u::rem#5 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ]
|
|
Allocated zp ZP_WORD:41 [ divr16u::dividend#2 divr16u::dividend#1 divr16u::dividend#0 ]
|
|
Allocated zp ZP_WORD:43 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 ]
|
|
Allocated zp ZP_BYTE:45 [ divr16u::i#2 divr16u::i#1 ]
|
|
Allocated zp ZP_WORD:46 [ div16u::dividend#0 ]
|
|
Allocated zp ZP_WORD:48 [ div16u::return#2 ]
|
|
Allocated zp ZP_WORD:50 [ main::v#1 ]
|
|
Allocated zp ZP_WORD:52 [ main::$2 ]
|
|
Allocated zp ZP_WORD:54 [ main::$3 ]
|
|
Allocated zp ZP_WORD:56 [ main::$4 ]
|
|
Allocated zp ZP_WORD:58 [ div10::val#4 ]
|
|
Allocated zp ZP_WORD:60 [ div10::return#2 ]
|
|
Allocated zp ZP_WORD:62 [ main::v#2 ]
|
|
Allocated zp ZP_WORD:64 [ main::$11 ]
|
|
Allocated zp ZP_WORD:66 [ main::$12 ]
|
|
Allocated zp ZP_WORD:68 [ main::$13 ]
|
|
Allocated zp ZP_WORD:70 [ myprintf::$17 ]
|
|
Allocated zp ZP_BYTE:72 [ myprintf::b#15 ]
|
|
Allocated zp ZP_BYTE:73 [ myprintf::$23 ]
|
|
Allocated zp ZP_BYTE:74 [ myprintf::bLen#10 ]
|
|
Allocated zp ZP_BYTE:75 [ myprintf::b#16 ]
|
|
Allocated zp ZP_BYTE:76 [ myprintf::$29 ]
|
|
Allocated zp ZP_BYTE:77 [ myprintf::$47 ]
|
|
Allocated zp ZP_BYTE:78 [ utoa::$16 ]
|
|
Allocated zp ZP_BYTE:79 [ utoa::$17 ]
|
|
Allocated zp ZP_WORD:80 [ utoa::dst#3 ]
|
|
Allocated zp ZP_WORD:82 [ append::return#10 ]
|
|
Allocated zp ZP_WORD:84 [ append::return#4 ]
|
|
Allocated zp ZP_WORD:86 [ append::return#3 ]
|
|
Allocated zp ZP_WORD:88 [ append::return#2 ]
|
|
Allocated zp ZP_WORD:90 [ div10::$0 ]
|
|
Allocated zp ZP_WORD:92 [ div10::val#0 ]
|
|
Allocated zp ZP_WORD:94 [ div10::$2 ]
|
|
Allocated zp ZP_WORD:96 [ div10::val#1 ]
|
|
Allocated zp ZP_WORD:98 [ div10::$3 ]
|
|
Allocated zp ZP_WORD:100 [ div10::val#2 ]
|
|
Allocated zp ZP_WORD:102 [ div10::$4 ]
|
|
Allocated zp ZP_WORD:104 [ div10::$5 ]
|
|
Allocated zp ZP_WORD:106 [ div10::val#3 ]
|
|
Allocated zp ZP_WORD:108 [ div10::return#0 ]
|
|
Allocated zp ZP_WORD:110 [ divr16u::return#2 ]
|
|
Allocated zp ZP_WORD:112 [ div16u::return#0 ]
|
|
Allocated zp ZP_BYTE:114 [ divr16u::$1 ]
|
|
Allocated zp ZP_BYTE:115 [ divr16u::$2 ]
|
|
|
|
INITIAL ASM
|
|
//SEG0 File Comments
|
|
//SEG1 Basic Upstart
|
|
.pc = $801 "Basic"
|
|
:BasicUpstart(bbegin)
|
|
.pc = $80d "Program"
|
|
//SEG2 Global Constants & labels
|
|
.label zp1 = $61
|
|
// #define zp1 *(byte *)0x61 -- allows "zp1" vs "*zp1" below -- not supported -- https://gitlab.com/camelot/kickc/issues/169
|
|
.label zp2 = $62
|
|
.label TIMEHI = $a1
|
|
.label TIMELO = $a2
|
|
.label VICBANK = $d018
|
|
//SEG3 @begin
|
|
bbegin:
|
|
//SEG4 [1] phi from @begin to @1 [phi:@begin->@1]
|
|
b1_from_bbegin:
|
|
jmp b1
|
|
//SEG5 @1
|
|
b1:
|
|
//SEG6 [2] call main
|
|
jsr main
|
|
//SEG7 [3] phi from @1 to @end [phi:@1->@end]
|
|
bend_from_b1:
|
|
jmp bend
|
|
//SEG8 @end
|
|
bend:
|
|
//SEG9 main
|
|
main: {
|
|
.label _2 = $34
|
|
.label _3 = $36
|
|
.label _4 = $38
|
|
.label _11 = $40
|
|
.label _12 = $42
|
|
.label _13 = $44
|
|
.label v = $32
|
|
.label u = 2
|
|
.label v_2 = $3e
|
|
.label u_4 = 4
|
|
.label u_15 = 4
|
|
//SEG10 [4] *((const byte*) VICBANK#0) ← (byte/signed byte/word/signed word/dword/signed dword) $17 -- _deref_pbuc1=vbuc2
|
|
lda #$17
|
|
sta VICBANK
|
|
//SEG11 [5] *((const byte*) zp1#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2
|
|
lda #0
|
|
sta zp1
|
|
//SEG12 [6] phi from main to main::@1 [phi:main->main::@1]
|
|
b1_from_main:
|
|
//SEG13 [6] phi (word) main::u#11 = (word/signed word/dword/signed dword) $6e85 [phi:main->main::@1#0] -- vwuz1=vwuc1
|
|
lda #<$6e85
|
|
sta u
|
|
lda #>$6e85
|
|
sta u+1
|
|
jmp b1
|
|
//SEG14 [6] phi from main::@10 to main::@1 [phi:main::@10->main::@1]
|
|
b1_from_b10:
|
|
//SEG15 [6] phi (word) main::u#11 = (word) main::u#2 [phi:main::@10->main::@1#0] -- register_copy
|
|
jmp b1
|
|
//SEG16 main::@1
|
|
b1:
|
|
//SEG17 [7] *((const byte*) TIMEHI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2
|
|
lda #0
|
|
sta TIMEHI
|
|
//SEG18 [8] *((const byte*) TIMELO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2
|
|
lda #0
|
|
sta TIMELO
|
|
//SEG19 [9] *((const byte*) zp2#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2
|
|
lda #0
|
|
sta zp2
|
|
jmp b2
|
|
//SEG20 main::@2
|
|
b2:
|
|
//SEG21 [10] (word) div16u::dividend#0 ← (word) main::u#11 -- vwuz1=vwuz2
|
|
lda u
|
|
sta div16u.dividend
|
|
lda u+1
|
|
sta div16u.dividend+1
|
|
//SEG22 [11] call div16u
|
|
jsr div16u
|
|
//SEG23 [12] (word) div16u::return#2 ← (word) div16u::return#0 -- vwuz1=vwuz2
|
|
lda div16u.return
|
|
sta div16u.return_2
|
|
lda div16u.return+1
|
|
sta div16u.return_2+1
|
|
jmp b8
|
|
//SEG24 main::@8
|
|
b8:
|
|
//SEG25 [13] (word) main::v#1 ← (word) div16u::return#2 -- vwuz1=vwuz2
|
|
lda div16u.return_2
|
|
sta v
|
|
lda div16u.return_2+1
|
|
sta v+1
|
|
//SEG26 [14] *((const byte*) zp2#0) ← ++ *((const byte*) zp2#0) -- _deref_pbuc1=_inc__deref_pbuc1
|
|
inc zp2
|
|
//SEG27 [15] if(*((const byte*) zp2#0)<(byte/word/signed word/dword/signed dword) $c8) goto main::@2 -- _deref_pbuc1_lt_vbuc2_then_la1
|
|
lda zp2
|
|
cmp #$c8
|
|
bcc b2
|
|
jmp b3
|
|
//SEG28 main::@3
|
|
b3:
|
|
//SEG29 [16] (word~) main::$2 ← ((word)) *((const byte*) TIMEHI#0) -- vwuz1=_word__deref_pbuc1
|
|
lda TIMEHI
|
|
sta _2
|
|
lda #0
|
|
sta _2+1
|
|
//SEG30 [17] (word~) main::$3 ← (word~) main::$2 << (byte/signed byte/word/signed word/dword/signed dword) 8 -- vwuz1=vwuz2_rol_vbuc1
|
|
ldy #8
|
|
lda _2
|
|
sta _3
|
|
lda _2+1
|
|
sta _3+1
|
|
cpy #0
|
|
beq !e+
|
|
!:
|
|
asl _3
|
|
rol _3+1
|
|
dey
|
|
bne !-
|
|
!e:
|
|
//SEG31 [18] (word~) main::$4 ← ((word)) *((const byte*) TIMELO#0) -- vwuz1=_word__deref_pbuc1
|
|
lda TIMELO
|
|
sta _4
|
|
lda #0
|
|
sta _4+1
|
|
//SEG32 [19] (word) myprintf::w3#0 ← (word~) main::$3 + (word~) main::$4 -- vwuz1=vwuz2_plus_vwuz3
|
|
lda _3
|
|
clc
|
|
adc _4
|
|
sta myprintf.w3
|
|
lda _3+1
|
|
adc _4+1
|
|
sta myprintf.w3+1
|
|
//SEG33 [20] (word) myprintf::w1#0 ← (word) main::u#11 -- vwuz1=vwuz2
|
|
lda u
|
|
sta myprintf.w1
|
|
lda u+1
|
|
sta myprintf.w1+1
|
|
//SEG34 [21] (word) myprintf::w2#0 ← (word) main::v#1 -- vwuz1=vwuz2
|
|
lda v
|
|
sta myprintf.w2
|
|
lda v+1
|
|
sta myprintf.w2+1
|
|
//SEG35 [22] call myprintf
|
|
//SEG36 [54] phi from main::@3 to myprintf [phi:main::@3->myprintf]
|
|
myprintf_from_b3:
|
|
//SEG37 [54] phi (word) myprintf::w3#7 = (word) myprintf::w3#0 [phi:main::@3->myprintf#0] -- register_copy
|
|
//SEG38 [54] phi (word) myprintf::w2#7 = (word) myprintf::w2#0 [phi:main::@3->myprintf#1] -- register_copy
|
|
//SEG39 [54] phi (word) myprintf::w1#6 = (word) myprintf::w1#0 [phi:main::@3->myprintf#2] -- register_copy
|
|
//SEG40 [54] phi (byte*) myprintf::str#5 = (const string) main::str [phi:main::@3->myprintf#3] -- pbuz1=pbuc1
|
|
lda #<str
|
|
sta myprintf.str
|
|
lda #>str
|
|
sta myprintf.str+1
|
|
jsr myprintf
|
|
//SEG41 [23] phi from main::@3 to main::@9 [phi:main::@3->main::@9]
|
|
b9_from_b3:
|
|
jmp b9
|
|
//SEG42 main::@9
|
|
b9:
|
|
//SEG43 [24] call Print
|
|
jsr Print
|
|
jmp b10
|
|
//SEG44 main::@10
|
|
b10:
|
|
//SEG45 [25] (word) main::u#2 ← (word) main::u#11 - (word/signed word/dword/signed dword) $4d2 -- vwuz1=vwuz1_minus_vwuc1
|
|
lda u
|
|
sec
|
|
sbc #<$4d2
|
|
sta u
|
|
lda u+1
|
|
sbc #>$4d2
|
|
sta u+1
|
|
//SEG46 [26] *((const byte*) zp1#0) ← ++ *((const byte*) zp1#0) -- _deref_pbuc1=_inc__deref_pbuc1
|
|
inc zp1
|
|
//SEG47 [27] if(*((const byte*) zp1#0)<(byte/signed byte/word/signed word/dword/signed dword) $a) goto main::@1 -- _deref_pbuc1_lt_vbuc2_then_la1
|
|
lda zp1
|
|
cmp #$a
|
|
bcc b1_from_b10
|
|
jmp b4
|
|
//SEG48 main::@4
|
|
b4:
|
|
//SEG49 [28] *((const byte*) zp1#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2
|
|
lda #0
|
|
sta zp1
|
|
//SEG50 [29] phi from main::@4 to main::@5 [phi:main::@4->main::@5]
|
|
b5_from_b4:
|
|
//SEG51 [29] phi (word) main::u#15 = (word/signed word/dword/signed dword) $6e85 [phi:main::@4->main::@5#0] -- vwuz1=vwuc1
|
|
lda #<$6e85
|
|
sta u_15
|
|
lda #>$6e85
|
|
sta u_15+1
|
|
jmp b5
|
|
//SEG52 [29] phi from main::@13 to main::@5 [phi:main::@13->main::@5]
|
|
b5_from_b13:
|
|
//SEG53 [29] phi (word) main::u#15 = (word) main::u#4 [phi:main::@13->main::@5#0] -- register_copy
|
|
jmp b5
|
|
//SEG54 main::@5
|
|
b5:
|
|
//SEG55 [30] *((const byte*) TIMEHI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2
|
|
lda #0
|
|
sta TIMEHI
|
|
//SEG56 [31] *((const byte*) TIMELO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2
|
|
lda #0
|
|
sta TIMELO
|
|
//SEG57 [32] *((const byte*) zp2#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2
|
|
lda #0
|
|
sta zp2
|
|
jmp b6
|
|
//SEG58 main::@6
|
|
b6:
|
|
//SEG59 [33] (word) div10::val#4 ← (word) main::u#15 -- vwuz1=vwuz2
|
|
lda u_15
|
|
sta div10.val_4
|
|
lda u_15+1
|
|
sta div10.val_4+1
|
|
//SEG60 [34] call div10
|
|
jsr div10
|
|
//SEG61 [35] (word) div10::return#2 ← (word) div10::return#0 -- vwuz1=vwuz2
|
|
lda div10.return
|
|
sta div10.return_2
|
|
lda div10.return+1
|
|
sta div10.return_2+1
|
|
jmp b11
|
|
//SEG62 main::@11
|
|
b11:
|
|
//SEG63 [36] (word) main::v#2 ← (word) div10::return#2 -- vwuz1=vwuz2
|
|
lda div10.return_2
|
|
sta v_2
|
|
lda div10.return_2+1
|
|
sta v_2+1
|
|
//SEG64 [37] *((const byte*) zp2#0) ← ++ *((const byte*) zp2#0) -- _deref_pbuc1=_inc__deref_pbuc1
|
|
inc zp2
|
|
//SEG65 [38] if(*((const byte*) zp2#0)<(byte/word/signed word/dword/signed dword) $c8) goto main::@6 -- _deref_pbuc1_lt_vbuc2_then_la1
|
|
lda zp2
|
|
cmp #$c8
|
|
bcc b6
|
|
jmp b7
|
|
//SEG66 main::@7
|
|
b7:
|
|
//SEG67 [39] (word~) main::$11 ← ((word)) *((const byte*) TIMEHI#0) -- vwuz1=_word__deref_pbuc1
|
|
lda TIMEHI
|
|
sta _11
|
|
lda #0
|
|
sta _11+1
|
|
//SEG68 [40] (word~) main::$12 ← (word~) main::$11 << (byte/signed byte/word/signed word/dword/signed dword) 8 -- vwuz1=vwuz2_rol_vbuc1
|
|
ldy #8
|
|
lda _11
|
|
sta _12
|
|
lda _11+1
|
|
sta _12+1
|
|
cpy #0
|
|
beq !e+
|
|
!:
|
|
asl _12
|
|
rol _12+1
|
|
dey
|
|
bne !-
|
|
!e:
|
|
//SEG69 [41] (word~) main::$13 ← ((word)) *((const byte*) TIMELO#0) -- vwuz1=_word__deref_pbuc1
|
|
lda TIMELO
|
|
sta _13
|
|
lda #0
|
|
sta _13+1
|
|
//SEG70 [42] (word) myprintf::w3#1 ← (word~) main::$12 + (word~) main::$13 -- vwuz1=vwuz2_plus_vwuz3
|
|
lda _12
|
|
clc
|
|
adc _13
|
|
sta myprintf.w3
|
|
lda _12+1
|
|
adc _13+1
|
|
sta myprintf.w3+1
|
|
//SEG71 [43] (word) myprintf::w1#1 ← (word) main::u#15 -- vwuz1=vwuz2
|
|
lda u_15
|
|
sta myprintf.w1
|
|
lda u_15+1
|
|
sta myprintf.w1+1
|
|
//SEG72 [44] (word) myprintf::w2#1 ← (word) main::v#2 -- vwuz1=vwuz2
|
|
lda v_2
|
|
sta myprintf.w2
|
|
lda v_2+1
|
|
sta myprintf.w2+1
|
|
//SEG73 [45] call myprintf
|
|
//SEG74 [54] phi from main::@7 to myprintf [phi:main::@7->myprintf]
|
|
myprintf_from_b7:
|
|
//SEG75 [54] phi (word) myprintf::w3#7 = (word) myprintf::w3#1 [phi:main::@7->myprintf#0] -- register_copy
|
|
//SEG76 [54] phi (word) myprintf::w2#7 = (word) myprintf::w2#1 [phi:main::@7->myprintf#1] -- register_copy
|
|
//SEG77 [54] phi (word) myprintf::w1#6 = (word) myprintf::w1#1 [phi:main::@7->myprintf#2] -- register_copy
|
|
//SEG78 [54] phi (byte*) myprintf::str#5 = (const string) main::str1 [phi:main::@7->myprintf#3] -- pbuz1=pbuc1
|
|
lda #<str1
|
|
sta myprintf.str
|
|
lda #>str1
|
|
sta myprintf.str+1
|
|
jsr myprintf
|
|
//SEG79 [46] phi from main::@7 to main::@12 [phi:main::@7->main::@12]
|
|
b12_from_b7:
|
|
jmp b12
|
|
//SEG80 main::@12
|
|
b12:
|
|
//SEG81 [47] call Print
|
|
jsr Print
|
|
jmp b13
|
|
//SEG82 main::@13
|
|
b13:
|
|
//SEG83 [48] (word) main::u#4 ← (word) main::u#15 - (word/signed word/dword/signed dword) $4d2 -- vwuz1=vwuz1_minus_vwuc1
|
|
lda u_4
|
|
sec
|
|
sbc #<$4d2
|
|
sta u_4
|
|
lda u_4+1
|
|
sbc #>$4d2
|
|
sta u_4+1
|
|
//SEG84 [49] *((const byte*) zp1#0) ← ++ *((const byte*) zp1#0) -- _deref_pbuc1=_inc__deref_pbuc1
|
|
inc zp1
|
|
//SEG85 [50] if(*((const byte*) zp1#0)<(byte/signed byte/word/signed word/dword/signed dword) $a) goto main::@5 -- _deref_pbuc1_lt_vbuc2_then_la1
|
|
lda zp1
|
|
cmp #$a
|
|
bcc b5_from_b13
|
|
jmp breturn
|
|
//SEG86 main::@return
|
|
breturn:
|
|
//SEG87 [51] return
|
|
rts
|
|
str: .text "200 DIV16U: %5d,%4d IN %04d FRAMESm@"
|
|
str1: .text "200 DIV10 : %5d,%4d IN %04d FRAMESm@"
|
|
}
|
|
//SEG88 Print
|
|
Print: {
|
|
//SEG89 asm { ldy#0 loop: ldastrTemp,y beqdone jsr$FFD2 iny jmploop done: }
|
|
// can this assembly be placed in a separate file and call it from the C code here?
|
|
ldy #0
|
|
loop:
|
|
lda strTemp,y
|
|
beq done
|
|
jsr $ffd2
|
|
iny
|
|
jmp loop
|
|
done:
|
|
jmp breturn
|
|
//SEG90 Print::@return
|
|
breturn:
|
|
//SEG91 [53] return
|
|
rts
|
|
}
|
|
//SEG92 myprintf
|
|
// myprintf(byte* zeropage($c) str, word zeropage(6) w1, word zeropage(8) w2, word zeropage($a) w3)
|
|
myprintf: {
|
|
.label _17 = $46
|
|
.label _22 = $14
|
|
.label _23 = $49
|
|
.label _28 = $15
|
|
.label _29 = $4c
|
|
.label _39 = $1a
|
|
.label _47 = $4d
|
|
.label b = $1b
|
|
.label str = $c
|
|
.label bDigits = $19
|
|
.label bLen = $18
|
|
.label b_5 = $16
|
|
.label digit = $17
|
|
.label bArg = $f
|
|
.label return = $18
|
|
.label w1 = 6
|
|
.label w2 = 8
|
|
.label w3 = $a
|
|
.label b_15 = $48
|
|
.label b_16 = $4b
|
|
.label bLen_10 = $4a
|
|
.label b_17 = $16
|
|
.label bFormat = $e
|
|
.label w = $10
|
|
.label bTrailing = $12
|
|
.label bLeadZero = $13
|
|
//SEG93 [55] phi from myprintf to myprintf::@1 [phi:myprintf->myprintf::@1]
|
|
b1_from_myprintf:
|
|
//SEG94 [55] phi (byte) myprintf::bLeadZero#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:myprintf->myprintf::@1#0] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta bLeadZero
|
|
//SEG95 [55] phi (byte) myprintf::bDigits#14 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:myprintf->myprintf::@1#1] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta bDigits
|
|
//SEG96 [55] phi (byte) myprintf::bTrailing#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:myprintf->myprintf::@1#2] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta bTrailing
|
|
//SEG97 [55] phi (word) myprintf::w#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:myprintf->myprintf::@1#3] -- vwuz1=vbuc1
|
|
lda #0
|
|
sta w
|
|
lda #0
|
|
sta w+1
|
|
//SEG98 [55] phi (byte) myprintf::bLen#14 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:myprintf->myprintf::@1#4] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta bLen
|
|
//SEG99 [55] phi (byte) myprintf::bArg#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:myprintf->myprintf::@1#5] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta bArg
|
|
//SEG100 [55] phi (byte) myprintf::bFormat#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:myprintf->myprintf::@1#6] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta bFormat
|
|
//SEG101 [55] phi (byte*) myprintf::str#10 = (byte*) myprintf::str#5 [phi:myprintf->myprintf::@1#7] -- register_copy
|
|
jmp b1
|
|
//SEG102 [55] phi from myprintf::@27 to myprintf::@1 [phi:myprintf::@27->myprintf::@1]
|
|
b1_from_b27:
|
|
//SEG103 [55] phi (byte) myprintf::bLeadZero#10 = (byte) myprintf::bLeadZero#18 [phi:myprintf::@27->myprintf::@1#0] -- register_copy
|
|
//SEG104 [55] phi (byte) myprintf::bDigits#14 = (byte) myprintf::bDigits#24 [phi:myprintf::@27->myprintf::@1#1] -- register_copy
|
|
//SEG105 [55] phi (byte) myprintf::bTrailing#10 = (byte) myprintf::bTrailing#21 [phi:myprintf::@27->myprintf::@1#2] -- register_copy
|
|
//SEG106 [55] phi (word) myprintf::w#10 = (word) myprintf::w#17 [phi:myprintf::@27->myprintf::@1#3] -- register_copy
|
|
//SEG107 [55] phi (byte) myprintf::bLen#14 = (byte) myprintf::return#0 [phi:myprintf::@27->myprintf::@1#4] -- register_copy
|
|
//SEG108 [55] phi (byte) myprintf::bArg#12 = (byte) myprintf::bArg#10 [phi:myprintf::@27->myprintf::@1#5] -- register_copy
|
|
//SEG109 [55] phi (byte) myprintf::bFormat#10 = (byte) myprintf::bFormat#4 [phi:myprintf::@27->myprintf::@1#6] -- register_copy
|
|
//SEG110 [55] phi (byte*) myprintf::str#10 = (byte*) myprintf::str#0 [phi:myprintf::@27->myprintf::@1#7] -- register_copy
|
|
jmp b1
|
|
//SEG111 myprintf::@1
|
|
b1:
|
|
//SEG112 [56] (byte) myprintf::b#1 ← *((byte*) myprintf::str#10) -- vbuz1=_deref_pbuz2
|
|
ldy #0
|
|
lda (str),y
|
|
sta b
|
|
//SEG113 [57] if((byte) myprintf::bFormat#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto myprintf::@2 -- vbuz1_eq_0_then_la1
|
|
lda bFormat
|
|
cmp #0
|
|
beq b2
|
|
jmp b31
|
|
//SEG114 myprintf::@31
|
|
b31:
|
|
//SEG115 [58] if((byte) myprintf::b#1!=(byte) '0') goto myprintf::@3 -- vbuz1_neq_vbuc1_then_la1
|
|
lda #'0'
|
|
cmp b
|
|
bne b3
|
|
//SEG116 [59] phi from myprintf::@31 to myprintf::@27 [phi:myprintf::@31->myprintf::@27]
|
|
b27_from_b31:
|
|
//SEG117 [59] phi (byte) myprintf::bLeadZero#18 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:myprintf::@31->myprintf::@27#0] -- vbuz1=vbuc1
|
|
lda #1
|
|
sta bLeadZero
|
|
//SEG118 [59] phi (byte) myprintf::bDigits#24 = (byte) myprintf::bDigits#14 [phi:myprintf::@31->myprintf::@27#1] -- register_copy
|
|
//SEG119 [59] phi (byte) myprintf::bTrailing#21 = (byte) myprintf::bTrailing#10 [phi:myprintf::@31->myprintf::@27#2] -- register_copy
|
|
//SEG120 [59] phi (word) myprintf::w#17 = (word) myprintf::w#10 [phi:myprintf::@31->myprintf::@27#3] -- register_copy
|
|
//SEG121 [59] phi (byte) myprintf::bArg#10 = (byte) myprintf::bArg#12 [phi:myprintf::@31->myprintf::@27#4] -- register_copy
|
|
//SEG122 [59] phi (byte) myprintf::return#0 = (byte) myprintf::bLen#14 [phi:myprintf::@31->myprintf::@27#5] -- register_copy
|
|
//SEG123 [59] phi (byte) myprintf::bFormat#4 = (byte) myprintf::bFormat#10 [phi:myprintf::@31->myprintf::@27#6] -- register_copy
|
|
jmp b27
|
|
//SEG124 myprintf::@27
|
|
b27:
|
|
//SEG125 [60] (byte*) myprintf::str#0 ← ++ (byte*) myprintf::str#10 -- pbuz1=_inc_pbuz1
|
|
inc str
|
|
bne !+
|
|
inc str+1
|
|
!:
|
|
//SEG126 [61] if(*((byte*) myprintf::str#0)!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto myprintf::@1 -- _deref_pbuz1_neq_0_then_la1
|
|
ldy #0
|
|
lda (str),y
|
|
cmp #0
|
|
bne b1_from_b27
|
|
jmp b36
|
|
//SEG127 myprintf::@36
|
|
b36:
|
|
//SEG128 [62] *((const byte[$64]) strTemp#0 + (byte) myprintf::return#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuz1=vbuc2
|
|
lda #0
|
|
ldy return
|
|
sta strTemp,y
|
|
jmp breturn
|
|
//SEG129 myprintf::@return
|
|
breturn:
|
|
//SEG130 [63] return
|
|
rts
|
|
//SEG131 myprintf::@3
|
|
b3:
|
|
//SEG132 [64] if((byte) myprintf::b#1>=(byte) '1') goto myprintf::@37 -- vbuz1_ge_vbuc1_then_la1
|
|
lda b
|
|
cmp #'1'
|
|
bcs b37
|
|
jmp b4
|
|
//SEG133 myprintf::@4
|
|
b4:
|
|
//SEG134 [65] if((byte) myprintf::b#1!=(byte) '-') goto myprintf::@5 -- vbuz1_neq_vbuc1_then_la1
|
|
lda #'-'
|
|
cmp b
|
|
bne b5
|
|
//SEG135 [59] phi from myprintf::@4 to myprintf::@27 [phi:myprintf::@4->myprintf::@27]
|
|
b27_from_b4:
|
|
//SEG136 [59] phi (byte) myprintf::bLeadZero#18 = (byte) myprintf::bLeadZero#10 [phi:myprintf::@4->myprintf::@27#0] -- register_copy
|
|
//SEG137 [59] phi (byte) myprintf::bDigits#24 = (byte) myprintf::bDigits#14 [phi:myprintf::@4->myprintf::@27#1] -- register_copy
|
|
//SEG138 [59] phi (byte) myprintf::bTrailing#21 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:myprintf::@4->myprintf::@27#2] -- vbuz1=vbuc1
|
|
lda #1
|
|
sta bTrailing
|
|
//SEG139 [59] phi (word) myprintf::w#17 = (word) myprintf::w#10 [phi:myprintf::@4->myprintf::@27#3] -- register_copy
|
|
//SEG140 [59] phi (byte) myprintf::bArg#10 = (byte) myprintf::bArg#12 [phi:myprintf::@4->myprintf::@27#4] -- register_copy
|
|
//SEG141 [59] phi (byte) myprintf::return#0 = (byte) myprintf::bLen#14 [phi:myprintf::@4->myprintf::@27#5] -- register_copy
|
|
//SEG142 [59] phi (byte) myprintf::bFormat#4 = (byte) myprintf::bFormat#10 [phi:myprintf::@4->myprintf::@27#6] -- register_copy
|
|
jmp b27
|
|
//SEG143 myprintf::@5
|
|
b5:
|
|
//SEG144 [66] if((byte) myprintf::b#1==(byte) 'c') goto myprintf::@6 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #'c'
|
|
cmp b
|
|
beq b6
|
|
jmp b24
|
|
//SEG145 myprintf::@24
|
|
b24:
|
|
//SEG146 [67] if((byte) myprintf::b#1==(byte) 'd') goto myprintf::@7 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #'d'
|
|
cmp b
|
|
beq b7
|
|
jmp b25
|
|
//SEG147 myprintf::@25
|
|
b25:
|
|
//SEG148 [68] if((byte) myprintf::b#1==(byte) 'x') goto myprintf::@26 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #'x'
|
|
cmp b
|
|
beq b26
|
|
jmp b38
|
|
//SEG149 myprintf::@38
|
|
b38:
|
|
//SEG150 [69] if((byte) myprintf::b#1==(byte) 'X') goto myprintf::@26 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #'X'
|
|
cmp b
|
|
beq b26
|
|
//SEG151 [70] phi from myprintf::@11 myprintf::@20 myprintf::@21 myprintf::@38 myprintf::@40 myprintf::@6 to myprintf::@22 [phi:myprintf::@11/myprintf::@20/myprintf::@21/myprintf::@38/myprintf::@40/myprintf::@6->myprintf::@22]
|
|
b22_from_b11:
|
|
b22_from_b20:
|
|
b22_from_b21:
|
|
b22_from_b38:
|
|
b22_from_b40:
|
|
b22_from_b6:
|
|
//SEG152 [70] phi (byte) myprintf::bDigits#25 = (byte) myprintf::bDigits#14 [phi:myprintf::@11/myprintf::@20/myprintf::@21/myprintf::@38/myprintf::@40/myprintf::@6->myprintf::@22#0] -- register_copy
|
|
//SEG153 [70] phi (byte) myprintf::bLen#28 = (byte) myprintf::bLen#3 [phi:myprintf::@11/myprintf::@20/myprintf::@21/myprintf::@38/myprintf::@40/myprintf::@6->myprintf::@22#1] -- register_copy
|
|
jmp b22
|
|
//SEG154 myprintf::@22
|
|
b22:
|
|
//SEG155 [59] phi from myprintf::@22 to myprintf::@27 [phi:myprintf::@22->myprintf::@27]
|
|
b27_from_b22:
|
|
//SEG156 [59] phi (byte) myprintf::bLeadZero#18 = (byte) myprintf::bLeadZero#10 [phi:myprintf::@22->myprintf::@27#0] -- register_copy
|
|
//SEG157 [59] phi (byte) myprintf::bDigits#24 = (byte) myprintf::bDigits#25 [phi:myprintf::@22->myprintf::@27#1] -- register_copy
|
|
//SEG158 [59] phi (byte) myprintf::bTrailing#21 = (byte) myprintf::bTrailing#10 [phi:myprintf::@22->myprintf::@27#2] -- register_copy
|
|
//SEG159 [59] phi (word) myprintf::w#17 = (word) myprintf::w#10 [phi:myprintf::@22->myprintf::@27#3] -- register_copy
|
|
//SEG160 [59] phi (byte) myprintf::bArg#10 = (byte) myprintf::bArg#12 [phi:myprintf::@22->myprintf::@27#4] -- register_copy
|
|
//SEG161 [59] phi (byte) myprintf::return#0 = (byte) myprintf::bLen#28 [phi:myprintf::@22->myprintf::@27#5] -- register_copy
|
|
//SEG162 [59] phi (byte) myprintf::bFormat#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:myprintf::@22->myprintf::@27#6] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta bFormat
|
|
jmp b27
|
|
//SEG163 myprintf::@26
|
|
b26:
|
|
//SEG164 [71] (word~) myprintf::$17 ← (word) myprintf::w#10 >> (byte/signed byte/word/signed word/dword/signed dword) 4 -- vwuz1=vwuz2_ror_4
|
|
lda w+1
|
|
sta _17+1
|
|
lda w
|
|
sta _17
|
|
ldy #4
|
|
!:
|
|
lsr _17+1
|
|
ror _17
|
|
dey
|
|
bne !-
|
|
//SEG165 [72] (byte) myprintf::b#15 ← (word~) myprintf::$17 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuz1=vwuz2_band_vbuc1
|
|
lda _17
|
|
and #$f
|
|
sta b_15
|
|
//SEG166 [73] if((byte) myprintf::b#15<(byte/signed byte/word/signed word/dword/signed dword) $a) goto myprintf::@9 -- vbuz1_lt_vbuc1_then_la1
|
|
lda b_15
|
|
cmp #$a
|
|
bcc b9_from_b26
|
|
//SEG167 [74] phi from myprintf::@26 to myprintf::@8 [phi:myprintf::@26->myprintf::@8]
|
|
b8_from_b26:
|
|
jmp b8
|
|
//SEG168 myprintf::@8
|
|
b8:
|
|
//SEG169 [75] phi from myprintf::@8 to myprintf::@9 [phi:myprintf::@8->myprintf::@9]
|
|
b9_from_b8:
|
|
//SEG170 [75] phi (byte~) myprintf::$22 = (byte/signed byte/word/signed word/dword/signed dword) $57 [phi:myprintf::@8->myprintf::@9#0] -- vbuz1=vbuc1
|
|
lda #$57
|
|
sta _22
|
|
jmp b9
|
|
//SEG171 [75] phi from myprintf::@26 to myprintf::@9 [phi:myprintf::@26->myprintf::@9]
|
|
b9_from_b26:
|
|
//SEG172 [75] phi (byte~) myprintf::$22 = (byte) '0' [phi:myprintf::@26->myprintf::@9#0] -- vbuz1=vbuc1
|
|
lda #'0'
|
|
sta _22
|
|
jmp b9
|
|
//SEG173 myprintf::@9
|
|
b9:
|
|
//SEG174 [76] (byte~) myprintf::$23 ← (byte~) myprintf::$22 + (byte) myprintf::b#15 -- vbuz1=vbuz2_plus_vbuz3
|
|
lda _22
|
|
clc
|
|
adc b_15
|
|
sta _23
|
|
//SEG175 [77] *((const byte[$64]) strTemp#0 + (byte) myprintf::bLen#14) ← (byte~) myprintf::$23 -- pbuc1_derefidx_vbuz1=vbuz2
|
|
lda _23
|
|
ldy bLen
|
|
sta strTemp,y
|
|
//SEG176 [78] (byte) myprintf::bLen#10 ← ++ (byte) myprintf::bLen#14 -- vbuz1=_inc_vbuz2
|
|
ldy bLen
|
|
iny
|
|
sty bLen_10
|
|
//SEG177 [79] (byte) myprintf::b#16 ← (word) myprintf::w#10 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuz1=vwuz2_band_vbuc1
|
|
lda w
|
|
and #$f
|
|
sta b_16
|
|
//SEG178 [80] if((byte) myprintf::b#16<(byte/signed byte/word/signed word/dword/signed dword) $a) goto myprintf::@11 -- vbuz1_lt_vbuc1_then_la1
|
|
lda b_16
|
|
cmp #$a
|
|
bcc b11_from_b9
|
|
//SEG179 [81] phi from myprintf::@9 to myprintf::@10 [phi:myprintf::@9->myprintf::@10]
|
|
b10_from_b9:
|
|
jmp b10
|
|
//SEG180 myprintf::@10
|
|
b10:
|
|
//SEG181 [82] phi from myprintf::@10 to myprintf::@11 [phi:myprintf::@10->myprintf::@11]
|
|
b11_from_b10:
|
|
//SEG182 [82] phi (byte~) myprintf::$28 = (byte/signed byte/word/signed word/dword/signed dword) $57 [phi:myprintf::@10->myprintf::@11#0] -- vbuz1=vbuc1
|
|
lda #$57
|
|
sta _28
|
|
jmp b11
|
|
//SEG183 [82] phi from myprintf::@9 to myprintf::@11 [phi:myprintf::@9->myprintf::@11]
|
|
b11_from_b9:
|
|
//SEG184 [82] phi (byte~) myprintf::$28 = (byte) '0' [phi:myprintf::@9->myprintf::@11#0] -- vbuz1=vbuc1
|
|
lda #'0'
|
|
sta _28
|
|
jmp b11
|
|
//SEG185 myprintf::@11
|
|
b11:
|
|
//SEG186 [83] (byte~) myprintf::$29 ← (byte~) myprintf::$28 + (byte) myprintf::b#16 -- vbuz1=vbuz2_plus_vbuz3
|
|
lda _28
|
|
clc
|
|
adc b_16
|
|
sta _29
|
|
//SEG187 [84] *((const byte[$64]) strTemp#0 + (byte) myprintf::bLen#10) ← (byte~) myprintf::$29 -- pbuc1_derefidx_vbuz1=vbuz2
|
|
lda _29
|
|
ldy bLen_10
|
|
sta strTemp,y
|
|
//SEG188 [85] (byte) myprintf::bLen#3 ← ++ (byte) myprintf::bLen#10 -- vbuz1=_inc_vbuz2
|
|
ldy bLen_10
|
|
iny
|
|
sty bLen
|
|
jmp b22_from_b11
|
|
//SEG189 myprintf::@7
|
|
b7:
|
|
//SEG190 [86] (word) utoa::value#4 ← (word) myprintf::w#10 -- vwuz1=vwuz2
|
|
lda w
|
|
sta utoa.value
|
|
lda w+1
|
|
sta utoa.value+1
|
|
//SEG191 [87] call utoa
|
|
//SEG192 [133] phi from myprintf::@7 to utoa [phi:myprintf::@7->utoa]
|
|
utoa_from_b7:
|
|
jsr utoa
|
|
//SEG193 [88] phi from myprintf::@7 to myprintf::@12 [phi:myprintf::@7->myprintf::@12]
|
|
b12_from_b7:
|
|
//SEG194 [88] phi (byte) myprintf::b#17 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:myprintf::@7->myprintf::@12#0] -- vbuz1=vbuc1
|
|
lda #1
|
|
sta b_17
|
|
jmp b12
|
|
//SEG195 myprintf::@12
|
|
b12:
|
|
//SEG196 [89] if(*((const byte[6]) myprintf::buf6#0 + (byte) myprintf::b#17)!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto myprintf::@13 -- pbuc1_derefidx_vbuz1_neq_0_then_la1
|
|
ldy b_17
|
|
lda buf6,y
|
|
cmp #0
|
|
bne b13
|
|
jmp b14
|
|
//SEG197 myprintf::@14
|
|
b14:
|
|
//SEG198 [90] if((byte) myprintf::bTrailing#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto myprintf::@39 -- vbuz1_eq_0_then_la1
|
|
lda bTrailing
|
|
cmp #0
|
|
beq b39
|
|
//SEG199 [91] phi from myprintf::@14 myprintf::@18 to myprintf::@15 [phi:myprintf::@14/myprintf::@18->myprintf::@15]
|
|
b15_from_b14:
|
|
b15_from_b18:
|
|
//SEG200 [91] phi (byte) myprintf::bDigits#16 = (byte) myprintf::bDigits#14 [phi:myprintf::@14/myprintf::@18->myprintf::@15#0] -- register_copy
|
|
//SEG201 [91] phi (byte) myprintf::bLen#23 = (byte) myprintf::bLen#14 [phi:myprintf::@14/myprintf::@18->myprintf::@15#1] -- register_copy
|
|
jmp b15
|
|
//SEG202 myprintf::@15
|
|
b15:
|
|
//SEG203 [92] phi from myprintf::@15 to myprintf::@19 [phi:myprintf::@15->myprintf::@19]
|
|
b19_from_b15:
|
|
//SEG204 [92] phi (byte) myprintf::bLen#12 = (byte) myprintf::bLen#23 [phi:myprintf::@15->myprintf::@19#0] -- register_copy
|
|
//SEG205 [92] phi (byte) myprintf::digit#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:myprintf::@15->myprintf::@19#1] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta digit
|
|
jmp b19
|
|
//SEG206 [92] phi from myprintf::@19 to myprintf::@19 [phi:myprintf::@19->myprintf::@19]
|
|
b19_from_b19:
|
|
//SEG207 [92] phi (byte) myprintf::bLen#12 = (byte) myprintf::bLen#24 [phi:myprintf::@19->myprintf::@19#0] -- register_copy
|
|
//SEG208 [92] phi (byte) myprintf::digit#3 = (byte) myprintf::digit#2 [phi:myprintf::@19->myprintf::@19#1] -- register_copy
|
|
jmp b19
|
|
//SEG209 myprintf::@19
|
|
b19:
|
|
//SEG210 [93] *((const byte[$64]) strTemp#0 + (byte) myprintf::bLen#12) ← *((const byte[6]) myprintf::buf6#0 + (byte) myprintf::digit#3) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz2
|
|
ldy digit
|
|
lda buf6,y
|
|
ldy bLen
|
|
sta strTemp,y
|
|
//SEG211 [94] (byte) myprintf::bLen#24 ← ++ (byte) myprintf::bLen#12 -- vbuz1=_inc_vbuz1
|
|
inc bLen
|
|
//SEG212 [95] (byte) myprintf::digit#2 ← ++ (byte) myprintf::digit#3 -- vbuz1=_inc_vbuz1
|
|
inc digit
|
|
//SEG213 [96] if((byte) myprintf::digit#2<(byte) myprintf::b#17) goto myprintf::@19 -- vbuz1_lt_vbuz2_then_la1
|
|
lda digit
|
|
cmp b_17
|
|
bcc b19_from_b19
|
|
jmp b20
|
|
//SEG214 myprintf::@20
|
|
b20:
|
|
//SEG215 [97] if((byte) myprintf::bTrailing#10!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto myprintf::@40 -- vbuz1_neq_0_then_la1
|
|
lda bTrailing
|
|
cmp #0
|
|
bne b40
|
|
jmp b22_from_b20
|
|
//SEG216 myprintf::@40
|
|
b40:
|
|
//SEG217 [98] if((byte) myprintf::bDigits#16>(byte) myprintf::b#17) goto myprintf::@21 -- vbuz1_gt_vbuz2_then_la1
|
|
lda b_17
|
|
cmp bDigits
|
|
bcc b21_from_b40
|
|
jmp b22_from_b40
|
|
//SEG218 [99] phi from myprintf::@21 myprintf::@40 to myprintf::@21 [phi:myprintf::@21/myprintf::@40->myprintf::@21]
|
|
b21_from_b21:
|
|
b21_from_b40:
|
|
//SEG219 [99] phi (byte) myprintf::bDigits#8 = (byte) myprintf::bDigits#3 [phi:myprintf::@21/myprintf::@40->myprintf::@21#0] -- register_copy
|
|
//SEG220 [99] phi (byte) myprintf::bLen#13 = (byte) myprintf::bLen#6 [phi:myprintf::@21/myprintf::@40->myprintf::@21#1] -- register_copy
|
|
jmp b21
|
|
//SEG221 myprintf::@21
|
|
b21:
|
|
//SEG222 [100] *((const byte[$64]) strTemp#0 + (byte) myprintf::bLen#13) ← (byte) ' ' -- pbuc1_derefidx_vbuz1=vbuc2
|
|
lda #' '
|
|
ldy bLen
|
|
sta strTemp,y
|
|
//SEG223 [101] (byte) myprintf::bLen#6 ← ++ (byte) myprintf::bLen#13 -- vbuz1=_inc_vbuz1
|
|
inc bLen
|
|
//SEG224 [102] (byte) myprintf::bDigits#3 ← -- (byte) myprintf::bDigits#8 -- vbuz1=_dec_vbuz1
|
|
dec bDigits
|
|
//SEG225 [103] if((byte) myprintf::bDigits#3>(byte) myprintf::b#17) goto myprintf::@21 -- vbuz1_gt_vbuz2_then_la1
|
|
lda b_17
|
|
cmp bDigits
|
|
bcc b21_from_b21
|
|
jmp b22_from_b21
|
|
//SEG226 myprintf::@39
|
|
b39:
|
|
//SEG227 [104] if((byte) myprintf::bDigits#14>(byte) myprintf::b#17) goto myprintf::@16 -- vbuz1_gt_vbuz2_then_la1
|
|
lda b_17
|
|
cmp bDigits
|
|
bcc b16_from_b39
|
|
//SEG228 [91] phi from myprintf::@39 to myprintf::@15 [phi:myprintf::@39->myprintf::@15]
|
|
b15_from_b39:
|
|
jmp b15
|
|
//SEG229 [105] phi from myprintf::@18 myprintf::@39 to myprintf::@16 [phi:myprintf::@18/myprintf::@39->myprintf::@16]
|
|
b16_from_b18:
|
|
b16_from_b39:
|
|
//SEG230 [105] phi (byte) myprintf::bDigits#10 = (byte) myprintf::bDigits#2 [phi:myprintf::@18/myprintf::@39->myprintf::@16#0] -- register_copy
|
|
//SEG231 [105] phi (byte) myprintf::bLen#11 = (byte) myprintf::bLen#4 [phi:myprintf::@18/myprintf::@39->myprintf::@16#1] -- register_copy
|
|
jmp b16
|
|
//SEG232 myprintf::@16
|
|
b16:
|
|
//SEG233 [106] if((byte) myprintf::bLeadZero#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto myprintf::@18 -- vbuz1_eq_0_then_la1
|
|
lda bLeadZero
|
|
cmp #0
|
|
beq b18_from_b16
|
|
//SEG234 [107] phi from myprintf::@16 to myprintf::@17 [phi:myprintf::@16->myprintf::@17]
|
|
b17_from_b16:
|
|
jmp b17
|
|
//SEG235 myprintf::@17
|
|
b17:
|
|
//SEG236 [108] phi from myprintf::@17 to myprintf::@18 [phi:myprintf::@17->myprintf::@18]
|
|
b18_from_b17:
|
|
//SEG237 [108] phi (byte~) myprintf::$39 = (byte) '0' [phi:myprintf::@17->myprintf::@18#0] -- vbuz1=vbuc1
|
|
lda #'0'
|
|
sta _39
|
|
jmp b18
|
|
//SEG238 [108] phi from myprintf::@16 to myprintf::@18 [phi:myprintf::@16->myprintf::@18]
|
|
b18_from_b16:
|
|
//SEG239 [108] phi (byte~) myprintf::$39 = (byte) ' ' [phi:myprintf::@16->myprintf::@18#0] -- vbuz1=vbuc1
|
|
lda #' '
|
|
sta _39
|
|
jmp b18
|
|
//SEG240 myprintf::@18
|
|
b18:
|
|
//SEG241 [109] *((const byte[$64]) strTemp#0 + (byte) myprintf::bLen#11) ← (byte~) myprintf::$39 -- pbuc1_derefidx_vbuz1=vbuz2
|
|
lda _39
|
|
ldy bLen
|
|
sta strTemp,y
|
|
//SEG242 [110] (byte) myprintf::bLen#4 ← ++ (byte) myprintf::bLen#11 -- vbuz1=_inc_vbuz1
|
|
inc bLen
|
|
//SEG243 [111] (byte) myprintf::bDigits#2 ← -- (byte) myprintf::bDigits#10 -- vbuz1=_dec_vbuz1
|
|
dec bDigits
|
|
//SEG244 [112] if((byte) myprintf::bDigits#2>(byte) myprintf::b#17) goto myprintf::@16 -- vbuz1_gt_vbuz2_then_la1
|
|
lda b_17
|
|
cmp bDigits
|
|
bcc b16_from_b18
|
|
jmp b15_from_b18
|
|
//SEG245 myprintf::@13
|
|
b13:
|
|
//SEG246 [113] (byte) myprintf::b#5 ← ++ (byte) myprintf::b#17 -- vbuz1=_inc_vbuz1
|
|
inc b_5
|
|
//SEG247 [88] phi from myprintf::@13 to myprintf::@12 [phi:myprintf::@13->myprintf::@12]
|
|
b12_from_b13:
|
|
//SEG248 [88] phi (byte) myprintf::b#17 = (byte) myprintf::b#5 [phi:myprintf::@13->myprintf::@12#0] -- register_copy
|
|
jmp b12
|
|
//SEG249 myprintf::@6
|
|
b6:
|
|
//SEG250 [114] (byte~) myprintf::$47 ← ((byte)) (word) myprintf::w#10 -- vbuz1=_byte_vwuz2
|
|
lda w
|
|
sta _47
|
|
//SEG251 [115] *((const byte[$64]) strTemp#0 + (byte) myprintf::bLen#14) ← (byte~) myprintf::$47 -- pbuc1_derefidx_vbuz1=vbuz2
|
|
// "switch" is the normal way -- not supported -- https://gitlab.com/camelot/kickc/issues/170
|
|
lda _47
|
|
ldy bLen
|
|
sta strTemp,y
|
|
//SEG252 [116] (byte) myprintf::bLen#1 ← ++ (byte) myprintf::bLen#14 -- vbuz1=_inc_vbuz1
|
|
inc bLen
|
|
jmp b22_from_b6
|
|
//SEG253 myprintf::@37
|
|
b37:
|
|
//SEG254 [117] if((byte) myprintf::b#1<=(byte) '9') goto myprintf::@23 -- vbuz1_le_vbuc1_then_la1
|
|
lda #'9'
|
|
cmp b
|
|
bcs b23
|
|
jmp b4
|
|
//SEG255 myprintf::@23
|
|
b23:
|
|
//SEG256 [118] (byte) myprintf::bDigits#1 ← (byte) myprintf::b#1 - (byte) '0' -- vbuz1=vbuz2_minus_vbuc1
|
|
lax b
|
|
axs #'0'
|
|
stx bDigits
|
|
//SEG257 [59] phi from myprintf::@23 myprintf::@30 to myprintf::@27 [phi:myprintf::@23/myprintf::@30->myprintf::@27]
|
|
b27_from_b23:
|
|
b27_from_b30:
|
|
//SEG258 [59] phi (byte) myprintf::bLeadZero#18 = (byte) myprintf::bLeadZero#10 [phi:myprintf::@23/myprintf::@30->myprintf::@27#0] -- register_copy
|
|
//SEG259 [59] phi (byte) myprintf::bDigits#24 = (byte) myprintf::bDigits#1 [phi:myprintf::@23/myprintf::@30->myprintf::@27#1] -- register_copy
|
|
//SEG260 [59] phi (byte) myprintf::bTrailing#21 = (byte) myprintf::bTrailing#10 [phi:myprintf::@23/myprintf::@30->myprintf::@27#2] -- register_copy
|
|
//SEG261 [59] phi (word) myprintf::w#17 = (word) myprintf::w#10 [phi:myprintf::@23/myprintf::@30->myprintf::@27#3] -- register_copy
|
|
//SEG262 [59] phi (byte) myprintf::bArg#10 = (byte) myprintf::bArg#12 [phi:myprintf::@23/myprintf::@30->myprintf::@27#4] -- register_copy
|
|
//SEG263 [59] phi (byte) myprintf::return#0 = (byte) myprintf::bLen#14 [phi:myprintf::@23/myprintf::@30->myprintf::@27#5] -- register_copy
|
|
//SEG264 [59] phi (byte) myprintf::bFormat#4 = (byte) myprintf::bFormat#10 [phi:myprintf::@23/myprintf::@30->myprintf::@27#6] -- register_copy
|
|
jmp b27
|
|
//SEG265 myprintf::@2
|
|
b2:
|
|
//SEG266 [119] if((byte) myprintf::b#1!=(byte) '%') goto myprintf::@28 -- vbuz1_neq_vbuc1_then_la1
|
|
lda #'%'
|
|
cmp b
|
|
bne b28
|
|
jmp b32
|
|
//SEG267 myprintf::@32
|
|
b32:
|
|
//SEG268 [120] if((byte) myprintf::bArg#12==(byte/signed byte/word/signed word/dword/signed dword) 0) goto myprintf::@42 -- vbuz1_eq_0_then_la1
|
|
// default format
|
|
//w = (bArg == 0) ? w1 : ((bArg == 1) ? w2 : w3); -- "?" is the normal way, but error "sequence does not contain all blocks" -- https://gitlab.com/camelot/kickc/issues/185 [FIXED]
|
|
lda bArg
|
|
cmp #0
|
|
beq b42
|
|
jmp b33
|
|
//SEG269 myprintf::@33
|
|
b33:
|
|
//SEG270 [121] if((byte) myprintf::bArg#12==(byte/signed byte/word/signed word/dword/signed dword) 1) goto myprintf::@43 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #1
|
|
cmp bArg
|
|
beq b43
|
|
jmp b34
|
|
//SEG271 myprintf::@34
|
|
b34:
|
|
//SEG272 [122] (word~) myprintf::w#53 ← (word) myprintf::w3#7 -- vwuz1=vwuz2
|
|
lda w3
|
|
sta w
|
|
lda w3+1
|
|
sta w+1
|
|
//SEG273 [123] phi from myprintf::@34 myprintf::@42 myprintf::@43 to myprintf::@29 [phi:myprintf::@34/myprintf::@42/myprintf::@43->myprintf::@29]
|
|
b29_from_b34:
|
|
b29_from_b42:
|
|
b29_from_b43:
|
|
//SEG274 [123] phi (word) myprintf::w#21 = (word~) myprintf::w#53 [phi:myprintf::@34/myprintf::@42/myprintf::@43->myprintf::@29#0] -- register_copy
|
|
jmp b29
|
|
//SEG275 myprintf::@29
|
|
b29:
|
|
//SEG276 [124] (byte) myprintf::bArg#1 ← ++ (byte) myprintf::bArg#12 -- vbuz1=_inc_vbuz1
|
|
inc bArg
|
|
//SEG277 [59] phi from myprintf::@29 to myprintf::@27 [phi:myprintf::@29->myprintf::@27]
|
|
b27_from_b29:
|
|
//SEG278 [59] phi (byte) myprintf::bLeadZero#18 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:myprintf::@29->myprintf::@27#0] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta bLeadZero
|
|
//SEG279 [59] phi (byte) myprintf::bDigits#24 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:myprintf::@29->myprintf::@27#1] -- vbuz1=vbuc1
|
|
lda #1
|
|
sta bDigits
|
|
//SEG280 [59] phi (byte) myprintf::bTrailing#21 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:myprintf::@29->myprintf::@27#2] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta bTrailing
|
|
//SEG281 [59] phi (word) myprintf::w#17 = (word) myprintf::w#21 [phi:myprintf::@29->myprintf::@27#3] -- register_copy
|
|
//SEG282 [59] phi (byte) myprintf::bArg#10 = (byte) myprintf::bArg#1 [phi:myprintf::@29->myprintf::@27#4] -- register_copy
|
|
//SEG283 [59] phi (byte) myprintf::return#0 = (byte) myprintf::bLen#14 [phi:myprintf::@29->myprintf::@27#5] -- register_copy
|
|
//SEG284 [59] phi (byte) myprintf::bFormat#4 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:myprintf::@29->myprintf::@27#6] -- vbuz1=vbuc1
|
|
lda #1
|
|
sta bFormat
|
|
jmp b27
|
|
//SEG285 myprintf::@43
|
|
b43:
|
|
//SEG286 [125] (word~) myprintf::w#52 ← (word) myprintf::w2#7 -- vwuz1=vwuz2
|
|
lda w2
|
|
sta w
|
|
lda w2+1
|
|
sta w+1
|
|
jmp b29_from_b43
|
|
//SEG287 myprintf::@42
|
|
b42:
|
|
//SEG288 [126] (word~) myprintf::w#51 ← (word) myprintf::w1#6 -- vwuz1=vwuz2
|
|
lda w1
|
|
sta w
|
|
lda w1+1
|
|
sta w+1
|
|
jmp b29_from_b42
|
|
//SEG289 myprintf::@28
|
|
b28:
|
|
//SEG290 [127] if((byte) myprintf::b#1>=(byte/signed byte/word/signed word/dword/signed dword) $41) goto myprintf::@41 -- vbuz1_ge_vbuc1_then_la1
|
|
lda b
|
|
cmp #$41
|
|
bcs b41
|
|
//SEG291 [128] phi from myprintf::@28 myprintf::@35 to myprintf::@30 [phi:myprintf::@28/myprintf::@35->myprintf::@30]
|
|
b30_from_b28:
|
|
b30_from_b35:
|
|
//SEG292 [128] phi (byte) myprintf::b#25 = (byte) myprintf::b#1 [phi:myprintf::@28/myprintf::@35->myprintf::@30#0] -- register_copy
|
|
jmp b30
|
|
//SEG293 myprintf::@30
|
|
b30:
|
|
//SEG294 [129] *((const byte[$64]) strTemp#0 + (byte) myprintf::bLen#14) ← (byte) myprintf::b#25 -- pbuc1_derefidx_vbuz1=vbuz2
|
|
// swap 0x41 / 0x61 when in lower case mode
|
|
lda b
|
|
ldy bLen
|
|
sta strTemp,y
|
|
//SEG295 [130] (byte) myprintf::bLen#7 ← ++ (byte) myprintf::bLen#14 -- vbuz1=_inc_vbuz1
|
|
inc bLen
|
|
jmp b27_from_b30
|
|
//SEG296 myprintf::@41
|
|
b41:
|
|
//SEG297 [131] if((byte) myprintf::b#1<(byte/signed byte/word/signed word/dword/signed dword) $5a+(byte/signed byte/word/signed word/dword/signed dword) 1) goto myprintf::@35 -- vbuz1_lt_vbuc1_then_la1
|
|
lda b
|
|
cmp #$5a+1
|
|
bcc b35
|
|
//SEG298 [128] phi from myprintf::@41 to myprintf::@30 [phi:myprintf::@41->myprintf::@30]
|
|
b30_from_b41:
|
|
jmp b30
|
|
//SEG299 myprintf::@35
|
|
b35:
|
|
//SEG300 [132] (byte) myprintf::b#6 ← (byte) myprintf::b#1 + (byte/signed byte/word/signed word/dword/signed dword) $20 -- vbuz1=vbuz1_plus_vbuc1
|
|
lax b
|
|
axs #-[$20]
|
|
stx b
|
|
jmp b30_from_b35
|
|
buf6: .fill 6, 0
|
|
}
|
|
//SEG301 utoa
|
|
// utoa(word zeropage($1d) value, byte* zeropage($1f) dst)
|
|
utoa: {
|
|
.label _16 = $4e
|
|
.label _17 = $4f
|
|
.label value = $1d
|
|
.label dst = $1f
|
|
.label dst_3 = $50
|
|
.label bStarted = $1c
|
|
jmp b13
|
|
//SEG302 utoa::@13
|
|
b13:
|
|
//SEG303 [134] if((word) utoa::value#4>=(word/signed word/dword/signed dword) $2710) goto utoa::@5 -- vwuz1_ge_vwuc1_then_la1
|
|
lda value+1
|
|
cmp #>$2710
|
|
bcc !+
|
|
bne b5
|
|
lda value
|
|
cmp #<$2710
|
|
bcs b5
|
|
!:
|
|
//SEG304 [135] phi from utoa::@13 to utoa::@1 [phi:utoa::@13->utoa::@1]
|
|
b1_from_b13:
|
|
//SEG305 [135] phi (byte*) utoa::dst#16 = (const byte[6]) myprintf::buf6#0 [phi:utoa::@13->utoa::@1#0] -- pbuz1=pbuc1
|
|
lda #<myprintf.buf6
|
|
sta dst
|
|
lda #>myprintf.buf6
|
|
sta dst+1
|
|
//SEG306 [135] phi (word) utoa::value#6 = (word) utoa::value#4 [phi:utoa::@13->utoa::@1#1] -- register_copy
|
|
//SEG307 [135] phi (byte) utoa::bStarted#5 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:utoa::@13->utoa::@1#2] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta bStarted
|
|
jmp b1
|
|
//SEG308 utoa::@1
|
|
b1:
|
|
//SEG309 [136] if((byte) utoa::bStarted#5==(byte/signed byte/word/signed word/dword/signed dword) 1) goto utoa::@6 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #1
|
|
cmp bStarted
|
|
beq b6
|
|
jmp b14
|
|
//SEG310 utoa::@14
|
|
b14:
|
|
//SEG311 [137] if((word) utoa::value#6>=(word/signed word/dword/signed dword) $3e8) goto utoa::@6 -- vwuz1_ge_vwuc1_then_la1
|
|
lda value+1
|
|
cmp #>$3e8
|
|
bcc !+
|
|
bne b6
|
|
lda value
|
|
cmp #<$3e8
|
|
bcs b6
|
|
!:
|
|
//SEG312 [138] phi from utoa::@14 to utoa::@2 [phi:utoa::@14->utoa::@2]
|
|
b2_from_b14:
|
|
//SEG313 [138] phi (byte*) utoa::dst#10 = (byte*) utoa::dst#16 [phi:utoa::@14->utoa::@2#0] -- register_copy
|
|
//SEG314 [138] phi (word) utoa::value#11 = (word) utoa::value#6 [phi:utoa::@14->utoa::@2#1] -- register_copy
|
|
//SEG315 [138] phi (byte) utoa::bStarted#6 = (byte) utoa::bStarted#5 [phi:utoa::@14->utoa::@2#2] -- register_copy
|
|
jmp b2
|
|
//SEG316 utoa::@2
|
|
b2:
|
|
//SEG317 [139] if((byte) utoa::bStarted#6==(byte/signed byte/word/signed word/dword/signed dword) 1) goto utoa::@7 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #1
|
|
cmp bStarted
|
|
beq b7
|
|
jmp b15
|
|
//SEG318 utoa::@15
|
|
b15:
|
|
//SEG319 [140] if((word) utoa::value#11>=(byte/signed byte/word/signed word/dword/signed dword) $64) goto utoa::@7 -- vwuz1_ge_vwuc1_then_la1
|
|
lda value+1
|
|
cmp #>$64
|
|
bcc !+
|
|
bne b7
|
|
lda value
|
|
cmp #<$64
|
|
bcs b7
|
|
!:
|
|
//SEG320 [141] phi from utoa::@15 to utoa::@3 [phi:utoa::@15->utoa::@3]
|
|
b3_from_b15:
|
|
//SEG321 [141] phi (byte*) utoa::dst#13 = (byte*) utoa::dst#10 [phi:utoa::@15->utoa::@3#0] -- register_copy
|
|
//SEG322 [141] phi (word) utoa::value#10 = (word) utoa::value#11 [phi:utoa::@15->utoa::@3#1] -- register_copy
|
|
//SEG323 [141] phi (byte) utoa::bStarted#7 = (byte) utoa::bStarted#6 [phi:utoa::@15->utoa::@3#2] -- register_copy
|
|
jmp b3
|
|
//SEG324 utoa::@3
|
|
b3:
|
|
//SEG325 [142] if((byte) utoa::bStarted#7==(byte/signed byte/word/signed word/dword/signed dword) 1) goto utoa::@8 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #1
|
|
cmp bStarted
|
|
beq b8
|
|
jmp b16
|
|
//SEG326 utoa::@16
|
|
b16:
|
|
//SEG327 [143] if((word) utoa::value#10>=(byte/signed byte/word/signed word/dword/signed dword) $a) goto utoa::@8 -- vwuz1_ge_vwuc1_then_la1
|
|
lda value+1
|
|
cmp #>$a
|
|
bcc !+
|
|
bne b8
|
|
lda value
|
|
cmp #<$a
|
|
bcs b8
|
|
!:
|
|
//SEG328 [144] phi from utoa::@12 utoa::@16 to utoa::@4 [phi:utoa::@12/utoa::@16->utoa::@4]
|
|
b4_from_b12:
|
|
b4_from_b16:
|
|
//SEG329 [144] phi (byte*) utoa::dst#12 = (byte*) utoa::dst#4 [phi:utoa::@12/utoa::@16->utoa::@4#0] -- register_copy
|
|
//SEG330 [144] phi (word) utoa::value#12 = (word) utoa::value#3 [phi:utoa::@12/utoa::@16->utoa::@4#1] -- register_copy
|
|
jmp b4
|
|
//SEG331 utoa::@4
|
|
b4:
|
|
//SEG332 [145] (byte~) utoa::$16 ← ((byte)) (word) utoa::value#12 -- vbuz1=_byte_vwuz2
|
|
lda value
|
|
sta _16
|
|
//SEG333 [146] (byte~) utoa::$17 ← (byte) '0' + (byte~) utoa::$16 -- vbuz1=vbuc1_plus_vbuz2
|
|
lax _16
|
|
axs #-['0']
|
|
stx _17
|
|
//SEG334 [147] *((byte*) utoa::dst#12) ← (byte~) utoa::$17 -- _deref_pbuz1=vbuz2
|
|
lda _17
|
|
ldy #0
|
|
sta (dst),y
|
|
//SEG335 [148] (byte*) utoa::dst#3 ← ++ (byte*) utoa::dst#12 -- pbuz1=_inc_pbuz2
|
|
lda dst
|
|
clc
|
|
adc #1
|
|
sta dst_3
|
|
lda dst+1
|
|
adc #0
|
|
sta dst_3+1
|
|
//SEG336 [149] *((byte*) utoa::dst#3) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuz1=vbuc1
|
|
lda #0
|
|
ldy #0
|
|
sta (dst_3),y
|
|
jmp breturn
|
|
//SEG337 utoa::@return
|
|
breturn:
|
|
//SEG338 [150] return
|
|
rts
|
|
//SEG339 utoa::@8
|
|
b8:
|
|
//SEG340 [151] (byte*) append::dst#3 ← (byte*) utoa::dst#13 -- pbuz1=pbuz2
|
|
lda dst
|
|
sta append.dst
|
|
lda dst+1
|
|
sta append.dst+1
|
|
//SEG341 [152] (word) append::value#4 ← (word) utoa::value#10 -- vwuz1=vwuz2
|
|
lda value
|
|
sta append.value
|
|
lda value+1
|
|
sta append.value+1
|
|
//SEG342 [153] call append
|
|
//SEG343 [173] phi from utoa::@8 to append [phi:utoa::@8->append]
|
|
append_from_b8:
|
|
//SEG344 [173] phi (word) append::sub#6 = (byte/signed byte/word/signed word/dword/signed dword) $a [phi:utoa::@8->append#0] -- vwuz1=vbuc1
|
|
lda #$a
|
|
sta append.sub
|
|
lda #0
|
|
sta append.sub+1
|
|
//SEG345 [173] phi (word) append::value#8 = (word) append::value#4 [phi:utoa::@8->append#1] -- register_copy
|
|
//SEG346 [173] phi (byte*) append::dst#4 = (byte*) append::dst#3 [phi:utoa::@8->append#2] -- register_copy
|
|
jsr append
|
|
//SEG347 [154] (word) append::return#10 ← (word) append::value#5 -- vwuz1=vwuz2
|
|
lda append.value
|
|
sta append.return_10
|
|
lda append.value+1
|
|
sta append.return_10+1
|
|
jmp b12
|
|
//SEG348 utoa::@12
|
|
b12:
|
|
//SEG349 [155] (word) utoa::value#3 ← (word) append::return#10 -- vwuz1=vwuz2
|
|
lda append.return_10
|
|
sta value
|
|
lda append.return_10+1
|
|
sta value+1
|
|
//SEG350 [156] (byte*) utoa::dst#4 ← ++ (byte*) utoa::dst#13 -- pbuz1=_inc_pbuz1
|
|
inc dst
|
|
bne !+
|
|
inc dst+1
|
|
!:
|
|
jmp b4_from_b12
|
|
//SEG351 utoa::@7
|
|
b7:
|
|
//SEG352 [157] (byte*) append::dst#2 ← (byte*) utoa::dst#10 -- pbuz1=pbuz2
|
|
lda dst
|
|
sta append.dst
|
|
lda dst+1
|
|
sta append.dst+1
|
|
//SEG353 [158] (word) append::value#3 ← (word) utoa::value#11 -- vwuz1=vwuz2
|
|
lda value
|
|
sta append.value
|
|
lda value+1
|
|
sta append.value+1
|
|
//SEG354 [159] call append
|
|
//SEG355 [173] phi from utoa::@7 to append [phi:utoa::@7->append]
|
|
append_from_b7:
|
|
//SEG356 [173] phi (word) append::sub#6 = (byte/signed byte/word/signed word/dword/signed dword) $64 [phi:utoa::@7->append#0] -- vwuz1=vbuc1
|
|
lda #$64
|
|
sta append.sub
|
|
lda #0
|
|
sta append.sub+1
|
|
//SEG357 [173] phi (word) append::value#8 = (word) append::value#3 [phi:utoa::@7->append#1] -- register_copy
|
|
//SEG358 [173] phi (byte*) append::dst#4 = (byte*) append::dst#2 [phi:utoa::@7->append#2] -- register_copy
|
|
jsr append
|
|
//SEG359 [160] (word) append::return#4 ← (word) append::value#5 -- vwuz1=vwuz2
|
|
lda append.value
|
|
sta append.return_4
|
|
lda append.value+1
|
|
sta append.return_4+1
|
|
jmp b11
|
|
//SEG360 utoa::@11
|
|
b11:
|
|
//SEG361 [161] (word) utoa::value#2 ← (word) append::return#4 -- vwuz1=vwuz2
|
|
lda append.return_4
|
|
sta value
|
|
lda append.return_4+1
|
|
sta value+1
|
|
//SEG362 [162] (byte*) utoa::dst#2 ← ++ (byte*) utoa::dst#10 -- pbuz1=_inc_pbuz1
|
|
inc dst
|
|
bne !+
|
|
inc dst+1
|
|
!:
|
|
//SEG363 [141] phi from utoa::@11 to utoa::@3 [phi:utoa::@11->utoa::@3]
|
|
b3_from_b11:
|
|
//SEG364 [141] phi (byte*) utoa::dst#13 = (byte*) utoa::dst#2 [phi:utoa::@11->utoa::@3#0] -- register_copy
|
|
//SEG365 [141] phi (word) utoa::value#10 = (word) utoa::value#2 [phi:utoa::@11->utoa::@3#1] -- register_copy
|
|
//SEG366 [141] phi (byte) utoa::bStarted#7 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:utoa::@11->utoa::@3#2] -- vbuz1=vbuc1
|
|
lda #1
|
|
sta bStarted
|
|
jmp b3
|
|
//SEG367 utoa::@6
|
|
b6:
|
|
//SEG368 [163] (byte*) append::dst#1 ← (byte*) utoa::dst#16 -- pbuz1=pbuz2
|
|
lda dst
|
|
sta append.dst
|
|
lda dst+1
|
|
sta append.dst+1
|
|
//SEG369 [164] (word) append::value#2 ← (word) utoa::value#6 -- vwuz1=vwuz2
|
|
lda value
|
|
sta append.value
|
|
lda value+1
|
|
sta append.value+1
|
|
//SEG370 [165] call append
|
|
//SEG371 [173] phi from utoa::@6 to append [phi:utoa::@6->append]
|
|
append_from_b6:
|
|
//SEG372 [173] phi (word) append::sub#6 = (word/signed word/dword/signed dword) $3e8 [phi:utoa::@6->append#0] -- vwuz1=vwuc1
|
|
lda #<$3e8
|
|
sta append.sub
|
|
lda #>$3e8
|
|
sta append.sub+1
|
|
//SEG373 [173] phi (word) append::value#8 = (word) append::value#2 [phi:utoa::@6->append#1] -- register_copy
|
|
//SEG374 [173] phi (byte*) append::dst#4 = (byte*) append::dst#1 [phi:utoa::@6->append#2] -- register_copy
|
|
jsr append
|
|
//SEG375 [166] (word) append::return#3 ← (word) append::value#5 -- vwuz1=vwuz2
|
|
lda append.value
|
|
sta append.return_3
|
|
lda append.value+1
|
|
sta append.return_3+1
|
|
jmp b10
|
|
//SEG376 utoa::@10
|
|
b10:
|
|
//SEG377 [167] (word) utoa::value#1 ← (word) append::return#3 -- vwuz1=vwuz2
|
|
lda append.return_3
|
|
sta value
|
|
lda append.return_3+1
|
|
sta value+1
|
|
//SEG378 [168] (byte*) utoa::dst#1 ← ++ (byte*) utoa::dst#16 -- pbuz1=_inc_pbuz1
|
|
inc dst
|
|
bne !+
|
|
inc dst+1
|
|
!:
|
|
//SEG379 [138] phi from utoa::@10 to utoa::@2 [phi:utoa::@10->utoa::@2]
|
|
b2_from_b10:
|
|
//SEG380 [138] phi (byte*) utoa::dst#10 = (byte*) utoa::dst#1 [phi:utoa::@10->utoa::@2#0] -- register_copy
|
|
//SEG381 [138] phi (word) utoa::value#11 = (word) utoa::value#1 [phi:utoa::@10->utoa::@2#1] -- register_copy
|
|
//SEG382 [138] phi (byte) utoa::bStarted#6 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:utoa::@10->utoa::@2#2] -- vbuz1=vbuc1
|
|
lda #1
|
|
sta bStarted
|
|
jmp b2
|
|
//SEG383 utoa::@5
|
|
b5:
|
|
//SEG384 [169] (word) append::value#1 ← (word) utoa::value#4 -- vwuz1=vwuz2
|
|
lda value
|
|
sta append.value
|
|
lda value+1
|
|
sta append.value+1
|
|
//SEG385 [170] call append
|
|
//SEG386 [173] phi from utoa::@5 to append [phi:utoa::@5->append]
|
|
append_from_b5:
|
|
//SEG387 [173] phi (word) append::sub#6 = (word/signed word/dword/signed dword) $2710 [phi:utoa::@5->append#0] -- vwuz1=vwuc1
|
|
lda #<$2710
|
|
sta append.sub
|
|
lda #>$2710
|
|
sta append.sub+1
|
|
//SEG388 [173] phi (word) append::value#8 = (word) append::value#1 [phi:utoa::@5->append#1] -- register_copy
|
|
//SEG389 [173] phi (byte*) append::dst#4 = (const byte[6]) myprintf::buf6#0 [phi:utoa::@5->append#2] -- pbuz1=pbuc1
|
|
lda #<myprintf.buf6
|
|
sta append.dst
|
|
lda #>myprintf.buf6
|
|
sta append.dst+1
|
|
jsr append
|
|
//SEG390 [171] (word) append::return#2 ← (word) append::value#5 -- vwuz1=vwuz2
|
|
lda append.value
|
|
sta append.return
|
|
lda append.value+1
|
|
sta append.return+1
|
|
jmp b9
|
|
//SEG391 utoa::@9
|
|
b9:
|
|
//SEG392 [172] (word) utoa::value#0 ← (word) append::return#2 -- vwuz1=vwuz2
|
|
lda append.return
|
|
sta value
|
|
lda append.return+1
|
|
sta value+1
|
|
//SEG393 [135] phi from utoa::@9 to utoa::@1 [phi:utoa::@9->utoa::@1]
|
|
b1_from_b9:
|
|
//SEG394 [135] phi (byte*) utoa::dst#16 = ++(const byte[6]) myprintf::buf6#0 [phi:utoa::@9->utoa::@1#0] -- pbuz1=pbuc1
|
|
lda #<myprintf.buf6+1
|
|
sta dst
|
|
lda #>myprintf.buf6+1
|
|
sta dst+1
|
|
//SEG395 [135] phi (word) utoa::value#6 = (word) utoa::value#0 [phi:utoa::@9->utoa::@1#1] -- register_copy
|
|
//SEG396 [135] phi (byte) utoa::bStarted#5 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:utoa::@9->utoa::@1#2] -- vbuz1=vbuc1
|
|
lda #1
|
|
sta bStarted
|
|
jmp b1
|
|
}
|
|
//SEG397 append
|
|
// simple 'utoa' without using multiply or divide
|
|
// append(byte* zeropage($21) dst, word zeropage($25) value, word zeropage($23) sub)
|
|
append: {
|
|
.label value = $25
|
|
.label return = $58
|
|
.label dst = $21
|
|
.label return_3 = $56
|
|
.label return_4 = $54
|
|
.label return_10 = $52
|
|
.label sub = $23
|
|
//SEG398 [174] *((byte*) append::dst#4) ← (byte) '0' -- _deref_pbuz1=vbuc1
|
|
lda #'0'
|
|
ldy #0
|
|
sta (dst),y
|
|
//SEG399 [175] phi from append append::@2 to append::@1 [phi:append/append::@2->append::@1]
|
|
b1_from_append:
|
|
b1_from_b2:
|
|
//SEG400 [175] phi (word) append::value#5 = (word) append::value#8 [phi:append/append::@2->append::@1#0] -- register_copy
|
|
jmp b1
|
|
//SEG401 append::@1
|
|
b1:
|
|
//SEG402 [176] if((word) append::value#5>=(word) append::sub#6) goto append::@2 -- vwuz1_ge_vwuz2_then_la1
|
|
lda sub+1
|
|
cmp value+1
|
|
bne !+
|
|
lda sub
|
|
cmp value
|
|
!:
|
|
bcc b2
|
|
beq b2
|
|
jmp breturn
|
|
//SEG403 append::@return
|
|
breturn:
|
|
//SEG404 [177] return
|
|
rts
|
|
//SEG405 append::@2
|
|
b2:
|
|
//SEG406 [178] *((byte*) append::dst#4) ← ++ *((byte*) append::dst#4) -- _deref_pbuz1=_inc__deref_pbuz1
|
|
ldy #0
|
|
lda (dst),y
|
|
clc
|
|
adc #1
|
|
ldy #0
|
|
sta (dst),y
|
|
//SEG407 [179] (word) append::value#0 ← (word) append::value#5 - (word) append::sub#6 -- vwuz1=vwuz1_minus_vwuz2
|
|
lda value
|
|
sec
|
|
sbc sub
|
|
sta value
|
|
lda value+1
|
|
sbc sub+1
|
|
sta value+1
|
|
jmp b1_from_b2
|
|
}
|
|
//SEG408 div10
|
|
// div10(word zeropage($5c) val)
|
|
div10: {
|
|
.label _0 = $5a
|
|
.label _2 = $5e
|
|
.label _3 = $62
|
|
.label _4 = $66
|
|
.label _5 = $68
|
|
.label val = $5c
|
|
.label val_1 = $60
|
|
.label val_2 = $64
|
|
.label val_3 = $6a
|
|
.label return = $6c
|
|
.label val_4 = $3a
|
|
.label return_2 = $3c
|
|
//SEG409 [180] (word~) div10::$0 ← (word) div10::val#4 >> (byte/signed byte/word/signed word/dword/signed dword) 1 -- vwuz1=vwuz2_ror_1
|
|
lda val_4+1
|
|
lsr
|
|
sta _0+1
|
|
lda val_4
|
|
ror
|
|
sta _0
|
|
//SEG410 [181] (word) div10::val#0 ← (word~) div10::$0 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vwuz1=vwuz2_plus_1
|
|
lda _0
|
|
clc
|
|
adc #1
|
|
sta val
|
|
lda _0+1
|
|
adc #0
|
|
sta val+1
|
|
//SEG411 [182] (word~) div10::$2 ← (word) div10::val#0 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vwuz1=vwuz2_rol_1
|
|
lda val
|
|
asl
|
|
sta _2
|
|
lda val+1
|
|
rol
|
|
sta _2+1
|
|
//SEG412 [183] (word) div10::val#1 ← (word) div10::val#0 + (word~) div10::$2 -- vwuz1=vwuz2_plus_vwuz3
|
|
lda val
|
|
clc
|
|
adc _2
|
|
sta val_1
|
|
lda val+1
|
|
adc _2+1
|
|
sta val_1+1
|
|
//SEG413 [184] (word~) div10::$3 ← (word) div10::val#1 >> (byte/signed byte/word/signed word/dword/signed dword) 4 -- vwuz1=vwuz2_ror_4
|
|
lda val_1+1
|
|
sta _3+1
|
|
lda val_1
|
|
sta _3
|
|
ldy #4
|
|
!:
|
|
lsr _3+1
|
|
ror _3
|
|
dey
|
|
bne !-
|
|
//SEG414 [185] (word) div10::val#2 ← (word) div10::val#1 + (word~) div10::$3 -- vwuz1=vwuz2_plus_vwuz3
|
|
lda val_1
|
|
clc
|
|
adc _3
|
|
sta val_2
|
|
lda val_1+1
|
|
adc _3+1
|
|
sta val_2+1
|
|
//SEG415 [186] (word~) div10::$4 ← (word) div10::val#2 >> (byte/signed byte/word/signed word/dword/signed dword) 4 -- vwuz1=vwuz2_ror_4
|
|
lda val_2+1
|
|
sta _4+1
|
|
lda val_2
|
|
sta _4
|
|
ldy #4
|
|
!:
|
|
lsr _4+1
|
|
ror _4
|
|
dey
|
|
bne !-
|
|
//SEG416 [187] (word~) div10::$5 ← (word~) div10::$4 >> (byte/signed byte/word/signed word/dword/signed dword) 4 -- vwuz1=vwuz2_ror_4
|
|
lda _4+1
|
|
sta _5+1
|
|
lda _4
|
|
sta _5
|
|
ldy #4
|
|
!:
|
|
lsr _5+1
|
|
ror _5
|
|
dey
|
|
bne !-
|
|
//SEG417 [188] (word) div10::val#3 ← (word) div10::val#2 + (word~) div10::$5 -- vwuz1=vwuz2_plus_vwuz3
|
|
lda val_2
|
|
clc
|
|
adc _5
|
|
sta val_3
|
|
lda val_2+1
|
|
adc _5+1
|
|
sta val_3+1
|
|
//SEG418 [189] (word) div10::return#0 ← (word) div10::val#3 >> (byte/signed byte/word/signed word/dword/signed dword) 4 -- vwuz1=vwuz2_ror_4
|
|
lda val_3+1
|
|
sta return+1
|
|
lda val_3
|
|
sta return
|
|
ldy #4
|
|
!:
|
|
lsr return+1
|
|
ror return
|
|
dey
|
|
bne !-
|
|
jmp breturn
|
|
//SEG419 div10::@return
|
|
breturn:
|
|
//SEG420 [190] return
|
|
rts
|
|
}
|
|
//SEG421 div16u
|
|
// Performs division on two 16 bit unsigned words
|
|
// Returns the quotient dividend/divisor.
|
|
// The remainder will be set into the global variable rem16u
|
|
// Implemented using simple binary division
|
|
// div16u(word zeropage($2e) dividend)
|
|
div16u: {
|
|
.label divisor = $a
|
|
.label return = $70
|
|
.label dividend = $2e
|
|
.label return_2 = $30
|
|
//SEG422 [191] (word) divr16u::dividend#1 ← (word) div16u::dividend#0 -- vwuz1=vwuz2
|
|
lda dividend
|
|
sta divr16u.dividend
|
|
lda dividend+1
|
|
sta divr16u.dividend+1
|
|
//SEG423 [192] call divr16u
|
|
//SEG424 [196] phi from div16u to divr16u [phi:div16u->divr16u]
|
|
divr16u_from_div16u:
|
|
jsr divr16u
|
|
//SEG425 [193] (word) divr16u::return#2 ← (word) divr16u::return#0 -- vwuz1=vwuz2
|
|
lda divr16u.return
|
|
sta divr16u.return_2
|
|
lda divr16u.return+1
|
|
sta divr16u.return_2+1
|
|
jmp b1
|
|
//SEG426 div16u::@1
|
|
b1:
|
|
//SEG427 [194] (word) div16u::return#0 ← (word) divr16u::return#2 -- vwuz1=vwuz2
|
|
lda divr16u.return_2
|
|
sta return
|
|
lda divr16u.return_2+1
|
|
sta return+1
|
|
jmp breturn
|
|
//SEG428 div16u::@return
|
|
breturn:
|
|
//SEG429 [195] return
|
|
rts
|
|
}
|
|
//SEG430 divr16u
|
|
// Performs division on two 16 bit unsigned words and an initial remainder
|
|
// Returns the quotient dividend/divisor.
|
|
// The final remainder will be set into the global variable rem16u
|
|
// Implemented using simple binary division
|
|
// divr16u(word zeropage($29) dividend, word zeropage($27) rem)
|
|
divr16u: {
|
|
.label _1 = $72
|
|
.label _2 = $73
|
|
.label rem = $27
|
|
.label dividend = $29
|
|
.label quotient = $2b
|
|
.label i = $2d
|
|
.label return = $2b
|
|
.label return_2 = $6e
|
|
//SEG431 [197] phi from divr16u to divr16u::@1 [phi:divr16u->divr16u::@1]
|
|
b1_from_divr16u:
|
|
//SEG432 [197] phi (byte) divr16u::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:divr16u->divr16u::@1#0] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta i
|
|
//SEG433 [197] phi (word) divr16u::quotient#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:divr16u->divr16u::@1#1] -- vwuz1=vbuc1
|
|
lda #0
|
|
sta quotient
|
|
lda #0
|
|
sta quotient+1
|
|
//SEG434 [197] phi (word) divr16u::dividend#2 = (word) divr16u::dividend#1 [phi:divr16u->divr16u::@1#2] -- register_copy
|
|
//SEG435 [197] phi (word) divr16u::rem#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:divr16u->divr16u::@1#3] -- vwuz1=vbuc1
|
|
lda #0
|
|
sta rem
|
|
lda #0
|
|
sta rem+1
|
|
jmp b1
|
|
//SEG436 [197] phi from divr16u::@3 to divr16u::@1 [phi:divr16u::@3->divr16u::@1]
|
|
b1_from_b3:
|
|
//SEG437 [197] phi (byte) divr16u::i#2 = (byte) divr16u::i#1 [phi:divr16u::@3->divr16u::@1#0] -- register_copy
|
|
//SEG438 [197] phi (word) divr16u::quotient#3 = (word) divr16u::return#0 [phi:divr16u::@3->divr16u::@1#1] -- register_copy
|
|
//SEG439 [197] phi (word) divr16u::dividend#2 = (word) divr16u::dividend#0 [phi:divr16u::@3->divr16u::@1#2] -- register_copy
|
|
//SEG440 [197] phi (word) divr16u::rem#4 = (word) divr16u::rem#9 [phi:divr16u::@3->divr16u::@1#3] -- register_copy
|
|
jmp b1
|
|
//SEG441 divr16u::@1
|
|
b1:
|
|
//SEG442 [198] (word) divr16u::rem#0 ← (word) divr16u::rem#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vwuz1=vwuz1_rol_1
|
|
asl rem
|
|
rol rem+1
|
|
//SEG443 [199] (byte~) divr16u::$1 ← > (word) divr16u::dividend#2 -- vbuz1=_hi_vwuz2
|
|
lda dividend+1
|
|
sta _1
|
|
//SEG444 [200] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 -- vbuz1=vbuz2_band_vbuc1
|
|
lda #$80
|
|
and _1
|
|
sta _2
|
|
//SEG445 [201] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 -- vbuz1_eq_0_then_la1
|
|
lda _2
|
|
cmp #0
|
|
beq b2_from_b1
|
|
jmp b4
|
|
//SEG446 divr16u::@4
|
|
b4:
|
|
//SEG447 [202] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 -- vwuz1=vwuz1_bor_vbuc1
|
|
lda #1
|
|
ora rem
|
|
sta rem
|
|
//SEG448 [203] phi from divr16u::@1 divr16u::@4 to divr16u::@2 [phi:divr16u::@1/divr16u::@4->divr16u::@2]
|
|
b2_from_b1:
|
|
b2_from_b4:
|
|
//SEG449 [203] phi (word) divr16u::rem#5 = (word) divr16u::rem#0 [phi:divr16u::@1/divr16u::@4->divr16u::@2#0] -- register_copy
|
|
jmp b2
|
|
//SEG450 divr16u::@2
|
|
b2:
|
|
//SEG451 [204] (word) divr16u::dividend#0 ← (word) divr16u::dividend#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vwuz1=vwuz1_rol_1
|
|
asl dividend
|
|
rol dividend+1
|
|
//SEG452 [205] (word) divr16u::quotient#1 ← (word) divr16u::quotient#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vwuz1=vwuz1_rol_1
|
|
asl quotient
|
|
rol quotient+1
|
|
//SEG453 [206] if((word) divr16u::rem#5<(const word) div16u::divisor#0) goto divr16u::@3 -- vwuz1_lt_vwuc1_then_la1
|
|
lda rem+1
|
|
cmp #>div16u.divisor
|
|
bcc b3_from_b2
|
|
bne !+
|
|
lda rem
|
|
cmp #<div16u.divisor
|
|
bcc b3_from_b2
|
|
!:
|
|
jmp b5
|
|
//SEG454 divr16u::@5
|
|
b5:
|
|
//SEG455 [207] (word) divr16u::quotient#2 ← ++ (word) divr16u::quotient#1 -- vwuz1=_inc_vwuz1
|
|
inc quotient
|
|
bne !+
|
|
inc quotient+1
|
|
!:
|
|
//SEG456 [208] (word) divr16u::rem#2 ← (word) divr16u::rem#5 - (const word) div16u::divisor#0 -- vwuz1=vwuz1_minus_vwuc1
|
|
lda rem
|
|
sec
|
|
sbc #<div16u.divisor
|
|
sta rem
|
|
lda rem+1
|
|
sbc #>div16u.divisor
|
|
sta rem+1
|
|
//SEG457 [209] phi from divr16u::@2 divr16u::@5 to divr16u::@3 [phi:divr16u::@2/divr16u::@5->divr16u::@3]
|
|
b3_from_b2:
|
|
b3_from_b5:
|
|
//SEG458 [209] phi (word) divr16u::return#0 = (word) divr16u::quotient#1 [phi:divr16u::@2/divr16u::@5->divr16u::@3#0] -- register_copy
|
|
//SEG459 [209] phi (word) divr16u::rem#9 = (word) divr16u::rem#5 [phi:divr16u::@2/divr16u::@5->divr16u::@3#1] -- register_copy
|
|
jmp b3
|
|
//SEG460 divr16u::@3
|
|
b3:
|
|
//SEG461 [210] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 -- vbuz1=_inc_vbuz1
|
|
inc i
|
|
//SEG462 [211] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 -- vbuz1_neq_vbuc1_then_la1
|
|
lda #$10
|
|
cmp i
|
|
bne b1_from_b3
|
|
jmp breturn
|
|
//SEG463 divr16u::@return
|
|
breturn:
|
|
//SEG464 [212] return
|
|
rts
|
|
}
|
|
// "char buf16[16]" is the normal way -- not supported -- https://gitlab.com/camelot/kickc/issues/162
|
|
strTemp: .fill $64, 0
|
|
|
|
REGISTER UPLIFT POTENTIAL REGISTERS
|
|
Statement [4] *((const byte*) VICBANK#0) ← (byte/signed byte/word/signed word/dword/signed dword) $17 [ ] ( main:2 [ ] ) always clobbers reg byte a
|
|
Statement [5] *((const byte*) zp1#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a
|
|
Statement [7] *((const byte*) TIMEHI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ main::u#11 ] ( main:2 [ main::u#11 ] ) always clobbers reg byte a
|
|
Statement [8] *((const byte*) TIMELO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ main::u#11 ] ( main:2 [ main::u#11 ] ) always clobbers reg byte a
|
|
Statement [9] *((const byte*) zp2#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ main::u#11 ] ( main:2 [ main::u#11 ] ) always clobbers reg byte a
|
|
Statement [10] (word) div16u::dividend#0 ← (word) main::u#11 [ main::u#11 div16u::dividend#0 ] ( main:2 [ main::u#11 div16u::dividend#0 ] ) always clobbers reg byte a
|
|
Statement [12] (word) div16u::return#2 ← (word) div16u::return#0 [ main::u#11 div16u::return#2 ] ( main:2 [ main::u#11 div16u::return#2 ] ) always clobbers reg byte a
|
|
Statement [13] (word) main::v#1 ← (word) div16u::return#2 [ main::u#11 main::v#1 ] ( main:2 [ main::u#11 main::v#1 ] ) always clobbers reg byte a
|
|
Statement [15] if(*((const byte*) zp2#0)<(byte/word/signed word/dword/signed dword) $c8) goto main::@2 [ main::u#11 main::v#1 ] ( main:2 [ main::u#11 main::v#1 ] ) always clobbers reg byte a
|
|
Statement [16] (word~) main::$2 ← ((word)) *((const byte*) TIMEHI#0) [ main::u#11 main::v#1 main::$2 ] ( main:2 [ main::u#11 main::v#1 main::$2 ] ) always clobbers reg byte a
|
|
Statement [17] (word~) main::$3 ← (word~) main::$2 << (byte/signed byte/word/signed word/dword/signed dword) 8 [ main::u#11 main::v#1 main::$3 ] ( main:2 [ main::u#11 main::v#1 main::$3 ] ) always clobbers reg byte a reg byte y
|
|
Statement [18] (word~) main::$4 ← ((word)) *((const byte*) TIMELO#0) [ main::u#11 main::v#1 main::$3 main::$4 ] ( main:2 [ main::u#11 main::v#1 main::$3 main::$4 ] ) always clobbers reg byte a
|
|
Statement [19] (word) myprintf::w3#0 ← (word~) main::$3 + (word~) main::$4 [ main::u#11 main::v#1 myprintf::w3#0 ] ( main:2 [ main::u#11 main::v#1 myprintf::w3#0 ] ) always clobbers reg byte a
|
|
Statement [20] (word) myprintf::w1#0 ← (word) main::u#11 [ main::u#11 main::v#1 myprintf::w3#0 myprintf::w1#0 ] ( main:2 [ main::u#11 main::v#1 myprintf::w3#0 myprintf::w1#0 ] ) always clobbers reg byte a
|
|
Statement [21] (word) myprintf::w2#0 ← (word) main::v#1 [ main::u#11 myprintf::w3#0 myprintf::w1#0 myprintf::w2#0 ] ( main:2 [ main::u#11 myprintf::w3#0 myprintf::w1#0 myprintf::w2#0 ] ) always clobbers reg byte a
|
|
Statement [25] (word) main::u#2 ← (word) main::u#11 - (word/signed word/dword/signed dword) $4d2 [ main::u#2 ] ( main:2 [ main::u#2 ] ) always clobbers reg byte a
|
|
Statement [27] if(*((const byte*) zp1#0)<(byte/signed byte/word/signed word/dword/signed dword) $a) goto main::@1 [ main::u#2 ] ( main:2 [ main::u#2 ] ) always clobbers reg byte a
|
|
Statement [28] *((const byte*) zp1#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a
|
|
Statement [30] *((const byte*) TIMEHI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ main::u#15 ] ( main:2 [ main::u#15 ] ) always clobbers reg byte a
|
|
Statement [31] *((const byte*) TIMELO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ main::u#15 ] ( main:2 [ main::u#15 ] ) always clobbers reg byte a
|
|
Statement [32] *((const byte*) zp2#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ main::u#15 ] ( main:2 [ main::u#15 ] ) always clobbers reg byte a
|
|
Statement [33] (word) div10::val#4 ← (word) main::u#15 [ main::u#15 div10::val#4 ] ( main:2 [ main::u#15 div10::val#4 ] ) always clobbers reg byte a
|
|
Statement [35] (word) div10::return#2 ← (word) div10::return#0 [ main::u#15 div10::return#2 ] ( main:2 [ main::u#15 div10::return#2 ] ) always clobbers reg byte a
|
|
Statement [36] (word) main::v#2 ← (word) div10::return#2 [ main::u#15 main::v#2 ] ( main:2 [ main::u#15 main::v#2 ] ) always clobbers reg byte a
|
|
Statement [38] if(*((const byte*) zp2#0)<(byte/word/signed word/dword/signed dword) $c8) goto main::@6 [ main::u#15 main::v#2 ] ( main:2 [ main::u#15 main::v#2 ] ) always clobbers reg byte a
|
|
Statement [39] (word~) main::$11 ← ((word)) *((const byte*) TIMEHI#0) [ main::u#15 main::v#2 main::$11 ] ( main:2 [ main::u#15 main::v#2 main::$11 ] ) always clobbers reg byte a
|
|
Statement [40] (word~) main::$12 ← (word~) main::$11 << (byte/signed byte/word/signed word/dword/signed dword) 8 [ main::u#15 main::v#2 main::$12 ] ( main:2 [ main::u#15 main::v#2 main::$12 ] ) always clobbers reg byte a reg byte y
|
|
Statement [41] (word~) main::$13 ← ((word)) *((const byte*) TIMELO#0) [ main::u#15 main::v#2 main::$12 main::$13 ] ( main:2 [ main::u#15 main::v#2 main::$12 main::$13 ] ) always clobbers reg byte a
|
|
Statement [42] (word) myprintf::w3#1 ← (word~) main::$12 + (word~) main::$13 [ main::u#15 main::v#2 myprintf::w3#1 ] ( main:2 [ main::u#15 main::v#2 myprintf::w3#1 ] ) always clobbers reg byte a
|
|
Statement [43] (word) myprintf::w1#1 ← (word) main::u#15 [ main::u#15 main::v#2 myprintf::w3#1 myprintf::w1#1 ] ( main:2 [ main::u#15 main::v#2 myprintf::w3#1 myprintf::w1#1 ] ) always clobbers reg byte a
|
|
Statement [44] (word) myprintf::w2#1 ← (word) main::v#2 [ main::u#15 myprintf::w3#1 myprintf::w1#1 myprintf::w2#1 ] ( main:2 [ main::u#15 myprintf::w3#1 myprintf::w1#1 myprintf::w2#1 ] ) always clobbers reg byte a
|
|
Statement [48] (word) main::u#4 ← (word) main::u#15 - (word/signed word/dword/signed dword) $4d2 [ main::u#4 ] ( main:2 [ main::u#4 ] ) always clobbers reg byte a
|
|
Statement [50] if(*((const byte*) zp1#0)<(byte/signed byte/word/signed word/dword/signed dword) $a) goto main::@5 [ main::u#4 ] ( main:2 [ main::u#4 ] ) always clobbers reg byte a
|
|
Statement asm { ldy#0 loop: ldastrTemp,y beqdone jsr$FFD2 iny jmploop done: } always clobbers reg byte a reg byte x reg byte y
|
|
Statement [56] (byte) myprintf::b#1 ← *((byte*) myprintf::str#10) [ myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bFormat#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::b#1 ] ( main:2::myprintf:22 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bFormat#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::b#1 ] main:2::myprintf:45 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bFormat#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::b#1 ] ) always clobbers reg byte a reg byte y
|
|
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:14 [ myprintf::bFormat#10 myprintf::bFormat#4 ]
|
|
Removing always clobbered register reg byte y as potential for zp ZP_BYTE:14 [ myprintf::bFormat#10 myprintf::bFormat#4 ]
|
|
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:15 [ myprintf::bArg#12 myprintf::bArg#10 myprintf::bArg#1 ]
|
|
Removing always clobbered register reg byte y as potential for zp ZP_BYTE:15 [ myprintf::bArg#12 myprintf::bArg#10 myprintf::bArg#1 ]
|
|
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:24 [ myprintf::bLen#11 myprintf::bLen#13 myprintf::bLen#12 myprintf::bLen#23 myprintf::bLen#14 myprintf::return#0 myprintf::bLen#28 myprintf::bLen#7 myprintf::bLen#3 myprintf::bLen#24 myprintf::bLen#6 myprintf::bLen#1 myprintf::bLen#4 ]
|
|
Removing always clobbered register reg byte y as potential for zp ZP_BYTE:24 [ myprintf::bLen#11 myprintf::bLen#13 myprintf::bLen#12 myprintf::bLen#23 myprintf::bLen#14 myprintf::return#0 myprintf::bLen#28 myprintf::bLen#7 myprintf::bLen#3 myprintf::bLen#24 myprintf::bLen#6 myprintf::bLen#1 myprintf::bLen#4 ]
|
|
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:18 [ myprintf::bTrailing#10 myprintf::bTrailing#21 ]
|
|
Removing always clobbered register reg byte y as potential for zp ZP_BYTE:18 [ myprintf::bTrailing#10 myprintf::bTrailing#21 ]
|
|
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:25 [ myprintf::bDigits#10 myprintf::bDigits#8 myprintf::bDigits#14 myprintf::bDigits#24 myprintf::bDigits#25 myprintf::bDigits#1 myprintf::bDigits#16 myprintf::bDigits#3 myprintf::bDigits#2 ]
|
|
Removing always clobbered register reg byte y as potential for zp ZP_BYTE:25 [ myprintf::bDigits#10 myprintf::bDigits#8 myprintf::bDigits#14 myprintf::bDigits#24 myprintf::bDigits#25 myprintf::bDigits#1 myprintf::bDigits#16 myprintf::bDigits#3 myprintf::bDigits#2 ]
|
|
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:19 [ myprintf::bLeadZero#10 myprintf::bLeadZero#18 ]
|
|
Removing always clobbered register reg byte y as potential for zp ZP_BYTE:19 [ myprintf::bLeadZero#10 myprintf::bLeadZero#18 ]
|
|
Statement [61] if(*((byte*) myprintf::str#0)!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto myprintf::@1 [ myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#0 myprintf::bFormat#4 myprintf::bArg#10 myprintf::return#0 myprintf::w#17 myprintf::bTrailing#21 myprintf::bDigits#24 myprintf::bLeadZero#18 ] ( main:2::myprintf:22 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#0 myprintf::bFormat#4 myprintf::bArg#10 myprintf::return#0 myprintf::w#17 myprintf::bTrailing#21 myprintf::bDigits#24 myprintf::bLeadZero#18 ] main:2::myprintf:45 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#0 myprintf::bFormat#4 myprintf::bArg#10 myprintf::return#0 myprintf::w#17 myprintf::bTrailing#21 myprintf::bDigits#24 myprintf::bLeadZero#18 ] ) always clobbers reg byte a reg byte y
|
|
Statement [62] *((const byte[$64]) strTemp#0 + (byte) myprintf::return#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::myprintf:22 [ main::u#11 ] main:2::myprintf:45 [ main::u#15 ] ) always clobbers reg byte a
|
|
Statement [71] (word~) myprintf::$17 ← (word) myprintf::w#10 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::$17 ] ( main:2::myprintf:22 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::$17 ] main:2::myprintf:45 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::$17 ] ) always clobbers reg byte a reg byte y
|
|
Statement [72] (byte) myprintf::b#15 ← (word~) myprintf::$17 & (byte/signed byte/word/signed word/dword/signed dword) $f [ myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::b#15 ] ( main:2::myprintf:22 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::b#15 ] main:2::myprintf:45 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::b#15 ] ) always clobbers reg byte a
|
|
Statement [76] (byte~) myprintf::$23 ← (byte~) myprintf::$22 + (byte) myprintf::b#15 [ myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::$23 ] ( main:2::myprintf:22 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::$23 ] main:2::myprintf:45 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::$23 ] ) always clobbers reg byte a
|
|
Statement [79] (byte) myprintf::b#16 ← (word) myprintf::w#10 & (byte/signed byte/word/signed word/dword/signed dword) $f [ myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::bLen#10 myprintf::b#16 ] ( main:2::myprintf:22 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::bLen#10 myprintf::b#16 ] main:2::myprintf:45 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::bLen#10 myprintf::b#16 ] ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:74 [ myprintf::bLen#10 ]
|
|
Statement [83] (byte~) myprintf::$29 ← (byte~) myprintf::$28 + (byte) myprintf::b#16 [ myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::bLen#10 myprintf::$29 ] ( main:2::myprintf:22 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::bLen#10 myprintf::$29 ] main:2::myprintf:45 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::bLen#10 myprintf::$29 ] ) always clobbers reg byte a
|
|
Statement [86] (word) utoa::value#4 ← (word) myprintf::w#10 [ myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::value#4 ] ( main:2::myprintf:22 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::value#4 ] main:2::myprintf:45 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::value#4 ] ) always clobbers reg byte a
|
|
Statement [89] if(*((const byte[6]) myprintf::buf6#0 + (byte) myprintf::b#17)!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto myprintf::@13 [ myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::b#17 ] ( main:2::myprintf:22 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::b#17 ] main:2::myprintf:45 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::b#17 ] ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:22 [ myprintf::b#17 myprintf::b#5 ]
|
|
Statement [93] *((const byte[$64]) strTemp#0 + (byte) myprintf::bLen#12) ← *((const byte[6]) myprintf::buf6#0 + (byte) myprintf::digit#3) [ myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::w#10 myprintf::bTrailing#10 myprintf::bLeadZero#10 myprintf::bDigits#16 myprintf::b#17 myprintf::digit#3 myprintf::bLen#12 ] ( main:2::myprintf:22 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::w#10 myprintf::bTrailing#10 myprintf::bLeadZero#10 myprintf::bDigits#16 myprintf::b#17 myprintf::digit#3 myprintf::bLen#12 ] main:2::myprintf:45 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::w#10 myprintf::bTrailing#10 myprintf::bLeadZero#10 myprintf::bDigits#16 myprintf::b#17 myprintf::digit#3 myprintf::bLen#12 ] ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:23 [ myprintf::digit#3 myprintf::digit#2 ]
|
|
Statement [100] *((const byte[$64]) strTemp#0 + (byte) myprintf::bLen#13) ← (byte) ' ' [ myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::w#10 myprintf::bTrailing#10 myprintf::bLeadZero#10 myprintf::b#17 myprintf::bLen#13 myprintf::bDigits#8 ] ( main:2::myprintf:22 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::w#10 myprintf::bTrailing#10 myprintf::bLeadZero#10 myprintf::b#17 myprintf::bLen#13 myprintf::bDigits#8 ] main:2::myprintf:45 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::w#10 myprintf::bTrailing#10 myprintf::bLeadZero#10 myprintf::b#17 myprintf::bLen#13 myprintf::bDigits#8 ] ) always clobbers reg byte a
|
|
Statement [114] (byte~) myprintf::$47 ← ((byte)) (word) myprintf::w#10 [ myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::$47 ] ( main:2::myprintf:22 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::$47 ] main:2::myprintf:45 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::$47 ] ) always clobbers reg byte a
|
|
Statement [122] (word~) myprintf::w#53 ← (word) myprintf::w3#7 [ myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#53 ] ( main:2::myprintf:22 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#53 ] main:2::myprintf:45 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#53 ] ) always clobbers reg byte a
|
|
Statement [125] (word~) myprintf::w#52 ← (word) myprintf::w2#7 [ myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#52 ] ( main:2::myprintf:22 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#52 ] main:2::myprintf:45 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#52 ] ) always clobbers reg byte a
|
|
Statement [126] (word~) myprintf::w#51 ← (word) myprintf::w1#6 [ myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#51 ] ( main:2::myprintf:22 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#51 ] main:2::myprintf:45 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#51 ] ) always clobbers reg byte a
|
|
Statement [132] (byte) myprintf::b#6 ← (byte) myprintf::b#1 + (byte/signed byte/word/signed word/dword/signed dword) $20 [ myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bFormat#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::b#6 ] ( main:2::myprintf:22 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bFormat#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::b#6 ] main:2::myprintf:45 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bFormat#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::b#6 ] ) always clobbers reg byte a
|
|
Statement [134] if((word) utoa::value#4>=(word/signed word/dword/signed dword) $2710) goto utoa::@5 [ utoa::value#4 ] ( main:2::myprintf:22::utoa:87 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::value#4 ] main:2::myprintf:45::utoa:87 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::value#4 ] ) always clobbers reg byte a
|
|
Statement [137] if((word) utoa::value#6>=(word/signed word/dword/signed dword) $3e8) goto utoa::@6 [ utoa::bStarted#5 utoa::value#6 utoa::dst#16 ] ( main:2::myprintf:22::utoa:87 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::bStarted#5 utoa::value#6 utoa::dst#16 ] main:2::myprintf:45::utoa:87 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::bStarted#5 utoa::value#6 utoa::dst#16 ] ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:28 [ utoa::bStarted#7 utoa::bStarted#6 utoa::bStarted#5 ]
|
|
Statement [140] if((word) utoa::value#11>=(byte/signed byte/word/signed word/dword/signed dword) $64) goto utoa::@7 [ utoa::bStarted#6 utoa::value#11 utoa::dst#10 ] ( main:2::myprintf:22::utoa:87 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::bStarted#6 utoa::value#11 utoa::dst#10 ] main:2::myprintf:45::utoa:87 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::bStarted#6 utoa::value#11 utoa::dst#10 ] ) always clobbers reg byte a
|
|
Statement [143] if((word) utoa::value#10>=(byte/signed byte/word/signed word/dword/signed dword) $a) goto utoa::@8 [ utoa::value#10 utoa::dst#13 ] ( main:2::myprintf:22::utoa:87 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::value#10 utoa::dst#13 ] main:2::myprintf:45::utoa:87 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::value#10 utoa::dst#13 ] ) always clobbers reg byte a
|
|
Statement [145] (byte~) utoa::$16 ← ((byte)) (word) utoa::value#12 [ utoa::dst#12 utoa::$16 ] ( main:2::myprintf:22::utoa:87 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#12 utoa::$16 ] main:2::myprintf:45::utoa:87 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#12 utoa::$16 ] ) always clobbers reg byte a
|
|
Statement [147] *((byte*) utoa::dst#12) ← (byte~) utoa::$17 [ utoa::dst#12 ] ( main:2::myprintf:22::utoa:87 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#12 ] main:2::myprintf:45::utoa:87 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#12 ] ) always clobbers reg byte y
|
|
Statement [148] (byte*) utoa::dst#3 ← ++ (byte*) utoa::dst#12 [ utoa::dst#3 ] ( main:2::myprintf:22::utoa:87 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#3 ] main:2::myprintf:45::utoa:87 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#3 ] ) always clobbers reg byte a
|
|
Statement [149] *((byte*) utoa::dst#3) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::myprintf:22::utoa:87 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 ] main:2::myprintf:45::utoa:87 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 ] ) always clobbers reg byte a reg byte y
|
|
Statement [151] (byte*) append::dst#3 ← (byte*) utoa::dst#13 [ utoa::value#10 utoa::dst#13 append::dst#3 ] ( main:2::myprintf:22::utoa:87 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::value#10 utoa::dst#13 append::dst#3 ] main:2::myprintf:45::utoa:87 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::value#10 utoa::dst#13 append::dst#3 ] ) always clobbers reg byte a
|
|
Statement [152] (word) append::value#4 ← (word) utoa::value#10 [ utoa::dst#13 append::dst#3 append::value#4 ] ( main:2::myprintf:22::utoa:87 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#13 append::dst#3 append::value#4 ] main:2::myprintf:45::utoa:87 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#13 append::dst#3 append::value#4 ] ) always clobbers reg byte a
|
|
Statement [154] (word) append::return#10 ← (word) append::value#5 [ utoa::dst#13 append::return#10 ] ( main:2::myprintf:22::utoa:87 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#13 append::return#10 ] main:2::myprintf:45::utoa:87 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#13 append::return#10 ] ) always clobbers reg byte a
|
|
Statement [155] (word) utoa::value#3 ← (word) append::return#10 [ utoa::dst#13 utoa::value#3 ] ( main:2::myprintf:22::utoa:87 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#13 utoa::value#3 ] main:2::myprintf:45::utoa:87 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#13 utoa::value#3 ] ) always clobbers reg byte a
|
|
Statement [157] (byte*) append::dst#2 ← (byte*) utoa::dst#10 [ utoa::value#11 utoa::dst#10 append::dst#2 ] ( main:2::myprintf:22::utoa:87 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::value#11 utoa::dst#10 append::dst#2 ] main:2::myprintf:45::utoa:87 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::value#11 utoa::dst#10 append::dst#2 ] ) always clobbers reg byte a
|
|
Statement [158] (word) append::value#3 ← (word) utoa::value#11 [ utoa::dst#10 append::dst#2 append::value#3 ] ( main:2::myprintf:22::utoa:87 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#10 append::dst#2 append::value#3 ] main:2::myprintf:45::utoa:87 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#10 append::dst#2 append::value#3 ] ) always clobbers reg byte a
|
|
Statement [160] (word) append::return#4 ← (word) append::value#5 [ utoa::dst#10 append::return#4 ] ( main:2::myprintf:22::utoa:87 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#10 append::return#4 ] main:2::myprintf:45::utoa:87 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#10 append::return#4 ] ) always clobbers reg byte a
|
|
Statement [161] (word) utoa::value#2 ← (word) append::return#4 [ utoa::dst#10 utoa::value#2 ] ( main:2::myprintf:22::utoa:87 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#10 utoa::value#2 ] main:2::myprintf:45::utoa:87 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#10 utoa::value#2 ] ) always clobbers reg byte a
|
|
Statement [163] (byte*) append::dst#1 ← (byte*) utoa::dst#16 [ utoa::value#6 utoa::dst#16 append::dst#1 ] ( main:2::myprintf:22::utoa:87 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::value#6 utoa::dst#16 append::dst#1 ] main:2::myprintf:45::utoa:87 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::value#6 utoa::dst#16 append::dst#1 ] ) always clobbers reg byte a
|
|
Statement [164] (word) append::value#2 ← (word) utoa::value#6 [ utoa::dst#16 append::dst#1 append::value#2 ] ( main:2::myprintf:22::utoa:87 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#16 append::dst#1 append::value#2 ] main:2::myprintf:45::utoa:87 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#16 append::dst#1 append::value#2 ] ) always clobbers reg byte a
|
|
Statement [166] (word) append::return#3 ← (word) append::value#5 [ utoa::dst#16 append::return#3 ] ( main:2::myprintf:22::utoa:87 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#16 append::return#3 ] main:2::myprintf:45::utoa:87 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#16 append::return#3 ] ) always clobbers reg byte a
|
|
Statement [167] (word) utoa::value#1 ← (word) append::return#3 [ utoa::dst#16 utoa::value#1 ] ( main:2::myprintf:22::utoa:87 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#16 utoa::value#1 ] main:2::myprintf:45::utoa:87 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#16 utoa::value#1 ] ) always clobbers reg byte a
|
|
Statement [169] (word) append::value#1 ← (word) utoa::value#4 [ append::value#1 ] ( main:2::myprintf:22::utoa:87 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 append::value#1 ] main:2::myprintf:45::utoa:87 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 append::value#1 ] ) always clobbers reg byte a
|
|
Statement [171] (word) append::return#2 ← (word) append::value#5 [ append::return#2 ] ( main:2::myprintf:22::utoa:87 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 append::return#2 ] main:2::myprintf:45::utoa:87 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 append::return#2 ] ) always clobbers reg byte a
|
|
Statement [172] (word) utoa::value#0 ← (word) append::return#2 [ utoa::value#0 ] ( main:2::myprintf:22::utoa:87 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::value#0 ] main:2::myprintf:45::utoa:87 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::value#0 ] ) always clobbers reg byte a
|
|
Statement [174] *((byte*) append::dst#4) ← (byte) '0' [ append::dst#4 append::value#8 append::sub#6 ] ( main:2::myprintf:22::utoa:87::append:153 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#13 append::dst#4 append::value#8 append::sub#6 ] main:2::myprintf:45::utoa:87::append:153 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#13 append::dst#4 append::value#8 append::sub#6 ] main:2::myprintf:22::utoa:87::append:159 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#10 append::dst#4 append::value#8 append::sub#6 ] main:2::myprintf:45::utoa:87::append:159 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#10 append::dst#4 append::value#8 append::sub#6 ] main:2::myprintf:22::utoa:87::append:165 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#16 append::dst#4 append::value#8 append::sub#6 ] main:2::myprintf:45::utoa:87::append:165 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#16 append::dst#4 append::value#8 append::sub#6 ] main:2::myprintf:22::utoa:87::append:170 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 append::dst#4 append::value#8 append::sub#6 ] main:2::myprintf:45::utoa:87::append:170 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 append::dst#4 append::value#8 append::sub#6 ] ) always clobbers reg byte a reg byte y
|
|
Statement [176] if((word) append::value#5>=(word) append::sub#6) goto append::@2 [ append::value#5 append::dst#4 append::sub#6 ] ( main:2::myprintf:22::utoa:87::append:153 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#13 append::value#5 append::dst#4 append::sub#6 ] main:2::myprintf:45::utoa:87::append:153 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#13 append::value#5 append::dst#4 append::sub#6 ] main:2::myprintf:22::utoa:87::append:159 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#10 append::value#5 append::dst#4 append::sub#6 ] main:2::myprintf:45::utoa:87::append:159 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#10 append::value#5 append::dst#4 append::sub#6 ] main:2::myprintf:22::utoa:87::append:165 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#16 append::value#5 append::dst#4 append::sub#6 ] main:2::myprintf:45::utoa:87::append:165 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#16 append::value#5 append::dst#4 append::sub#6 ] main:2::myprintf:22::utoa:87::append:170 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 append::value#5 append::dst#4 append::sub#6 ] main:2::myprintf:45::utoa:87::append:170 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 append::value#5 append::dst#4 append::sub#6 ] ) always clobbers reg byte a
|
|
Statement [178] *((byte*) append::dst#4) ← ++ *((byte*) append::dst#4) [ append::value#5 append::dst#4 append::sub#6 ] ( main:2::myprintf:22::utoa:87::append:153 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#13 append::value#5 append::dst#4 append::sub#6 ] main:2::myprintf:45::utoa:87::append:153 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#13 append::value#5 append::dst#4 append::sub#6 ] main:2::myprintf:22::utoa:87::append:159 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#10 append::value#5 append::dst#4 append::sub#6 ] main:2::myprintf:45::utoa:87::append:159 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#10 append::value#5 append::dst#4 append::sub#6 ] main:2::myprintf:22::utoa:87::append:165 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#16 append::value#5 append::dst#4 append::sub#6 ] main:2::myprintf:45::utoa:87::append:165 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#16 append::value#5 append::dst#4 append::sub#6 ] main:2::myprintf:22::utoa:87::append:170 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 append::value#5 append::dst#4 append::sub#6 ] main:2::myprintf:45::utoa:87::append:170 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 append::value#5 append::dst#4 append::sub#6 ] ) always clobbers reg byte a reg byte y
|
|
Statement [179] (word) append::value#0 ← (word) append::value#5 - (word) append::sub#6 [ append::dst#4 append::sub#6 append::value#0 ] ( main:2::myprintf:22::utoa:87::append:153 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#13 append::dst#4 append::sub#6 append::value#0 ] main:2::myprintf:45::utoa:87::append:153 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#13 append::dst#4 append::sub#6 append::value#0 ] main:2::myprintf:22::utoa:87::append:159 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#10 append::dst#4 append::sub#6 append::value#0 ] main:2::myprintf:45::utoa:87::append:159 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#10 append::dst#4 append::sub#6 append::value#0 ] main:2::myprintf:22::utoa:87::append:165 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#16 append::dst#4 append::sub#6 append::value#0 ] main:2::myprintf:45::utoa:87::append:165 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#16 append::dst#4 append::sub#6 append::value#0 ] main:2::myprintf:22::utoa:87::append:170 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 append::dst#4 append::sub#6 append::value#0 ] main:2::myprintf:45::utoa:87::append:170 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 append::dst#4 append::sub#6 append::value#0 ] ) always clobbers reg byte a
|
|
Statement [180] (word~) div10::$0 ← (word) div10::val#4 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ div10::$0 ] ( main:2::div10:34 [ main::u#15 div10::$0 ] ) always clobbers reg byte a
|
|
Statement [181] (word) div10::val#0 ← (word~) div10::$0 + (byte/signed byte/word/signed word/dword/signed dword) 1 [ div10::val#0 ] ( main:2::div10:34 [ main::u#15 div10::val#0 ] ) always clobbers reg byte a
|
|
Statement [182] (word~) div10::$2 ← (word) div10::val#0 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ div10::val#0 div10::$2 ] ( main:2::div10:34 [ main::u#15 div10::val#0 div10::$2 ] ) always clobbers reg byte a
|
|
Statement [183] (word) div10::val#1 ← (word) div10::val#0 + (word~) div10::$2 [ div10::val#1 ] ( main:2::div10:34 [ main::u#15 div10::val#1 ] ) always clobbers reg byte a
|
|
Statement [184] (word~) div10::$3 ← (word) div10::val#1 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ div10::val#1 div10::$3 ] ( main:2::div10:34 [ main::u#15 div10::val#1 div10::$3 ] ) always clobbers reg byte a reg byte y
|
|
Statement [185] (word) div10::val#2 ← (word) div10::val#1 + (word~) div10::$3 [ div10::val#2 ] ( main:2::div10:34 [ main::u#15 div10::val#2 ] ) always clobbers reg byte a
|
|
Statement [186] (word~) div10::$4 ← (word) div10::val#2 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ div10::val#2 div10::$4 ] ( main:2::div10:34 [ main::u#15 div10::val#2 div10::$4 ] ) always clobbers reg byte a reg byte y
|
|
Statement [187] (word~) div10::$5 ← (word~) div10::$4 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ div10::val#2 div10::$5 ] ( main:2::div10:34 [ main::u#15 div10::val#2 div10::$5 ] ) always clobbers reg byte a reg byte y
|
|
Statement [188] (word) div10::val#3 ← (word) div10::val#2 + (word~) div10::$5 [ div10::val#3 ] ( main:2::div10:34 [ main::u#15 div10::val#3 ] ) always clobbers reg byte a
|
|
Statement [189] (word) div10::return#0 ← (word) div10::val#3 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ div10::return#0 ] ( main:2::div10:34 [ main::u#15 div10::return#0 ] ) always clobbers reg byte a reg byte y
|
|
Statement [191] (word) divr16u::dividend#1 ← (word) div16u::dividend#0 [ divr16u::dividend#1 ] ( main:2::div16u:11 [ main::u#11 divr16u::dividend#1 ] ) always clobbers reg byte a
|
|
Statement [193] (word) divr16u::return#2 ← (word) divr16u::return#0 [ divr16u::return#2 ] ( main:2::div16u:11 [ main::u#11 divr16u::return#2 ] ) always clobbers reg byte a
|
|
Statement [194] (word) div16u::return#0 ← (word) divr16u::return#2 [ div16u::return#0 ] ( main:2::div16u:11 [ main::u#11 div16u::return#0 ] ) always clobbers reg byte a
|
|
Statement [199] (byte~) divr16u::$1 ← > (word) divr16u::dividend#2 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::div16u:11::divr16u:192 [ main::u#11 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ) always clobbers reg byte a
|
|
Removing always clobbered register reg byte a as potential for zp ZP_BYTE:45 [ divr16u::i#2 divr16u::i#1 ]
|
|
Statement [202] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::div16u:11::divr16u:192 [ main::u#11 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ) always clobbers reg byte a
|
|
Statement [206] if((word) divr16u::rem#5<(const word) div16u::divisor#0) goto divr16u::@3 [ divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#1 ] ( main:2::div16u:11::divr16u:192 [ main::u#11 divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#1 ] ) always clobbers reg byte a
|
|
Statement [208] (word) divr16u::rem#2 ← (word) divr16u::rem#5 - (const word) div16u::divisor#0 [ divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::div16u:11::divr16u:192 [ main::u#11 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ) always clobbers reg byte a
|
|
Statement [4] *((const byte*) VICBANK#0) ← (byte/signed byte/word/signed word/dword/signed dword) $17 [ ] ( main:2 [ ] ) always clobbers reg byte a
|
|
Statement [5] *((const byte*) zp1#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a
|
|
Statement [7] *((const byte*) TIMEHI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ main::u#11 ] ( main:2 [ main::u#11 ] ) always clobbers reg byte a
|
|
Statement [8] *((const byte*) TIMELO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ main::u#11 ] ( main:2 [ main::u#11 ] ) always clobbers reg byte a
|
|
Statement [9] *((const byte*) zp2#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ main::u#11 ] ( main:2 [ main::u#11 ] ) always clobbers reg byte a
|
|
Statement [10] (word) div16u::dividend#0 ← (word) main::u#11 [ main::u#11 div16u::dividend#0 ] ( main:2 [ main::u#11 div16u::dividend#0 ] ) always clobbers reg byte a
|
|
Statement [12] (word) div16u::return#2 ← (word) div16u::return#0 [ main::u#11 div16u::return#2 ] ( main:2 [ main::u#11 div16u::return#2 ] ) always clobbers reg byte a
|
|
Statement [13] (word) main::v#1 ← (word) div16u::return#2 [ main::u#11 main::v#1 ] ( main:2 [ main::u#11 main::v#1 ] ) always clobbers reg byte a
|
|
Statement [15] if(*((const byte*) zp2#0)<(byte/word/signed word/dword/signed dword) $c8) goto main::@2 [ main::u#11 main::v#1 ] ( main:2 [ main::u#11 main::v#1 ] ) always clobbers reg byte a
|
|
Statement [16] (word~) main::$2 ← ((word)) *((const byte*) TIMEHI#0) [ main::u#11 main::v#1 main::$2 ] ( main:2 [ main::u#11 main::v#1 main::$2 ] ) always clobbers reg byte a
|
|
Statement [17] (word~) main::$3 ← (word~) main::$2 << (byte/signed byte/word/signed word/dword/signed dword) 8 [ main::u#11 main::v#1 main::$3 ] ( main:2 [ main::u#11 main::v#1 main::$3 ] ) always clobbers reg byte a reg byte y
|
|
Statement [18] (word~) main::$4 ← ((word)) *((const byte*) TIMELO#0) [ main::u#11 main::v#1 main::$3 main::$4 ] ( main:2 [ main::u#11 main::v#1 main::$3 main::$4 ] ) always clobbers reg byte a
|
|
Statement [19] (word) myprintf::w3#0 ← (word~) main::$3 + (word~) main::$4 [ main::u#11 main::v#1 myprintf::w3#0 ] ( main:2 [ main::u#11 main::v#1 myprintf::w3#0 ] ) always clobbers reg byte a
|
|
Statement [20] (word) myprintf::w1#0 ← (word) main::u#11 [ main::u#11 main::v#1 myprintf::w3#0 myprintf::w1#0 ] ( main:2 [ main::u#11 main::v#1 myprintf::w3#0 myprintf::w1#0 ] ) always clobbers reg byte a
|
|
Statement [21] (word) myprintf::w2#0 ← (word) main::v#1 [ main::u#11 myprintf::w3#0 myprintf::w1#0 myprintf::w2#0 ] ( main:2 [ main::u#11 myprintf::w3#0 myprintf::w1#0 myprintf::w2#0 ] ) always clobbers reg byte a
|
|
Statement [25] (word) main::u#2 ← (word) main::u#11 - (word/signed word/dword/signed dword) $4d2 [ main::u#2 ] ( main:2 [ main::u#2 ] ) always clobbers reg byte a
|
|
Statement [27] if(*((const byte*) zp1#0)<(byte/signed byte/word/signed word/dword/signed dword) $a) goto main::@1 [ main::u#2 ] ( main:2 [ main::u#2 ] ) always clobbers reg byte a
|
|
Statement [28] *((const byte*) zp1#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2 [ ] ) always clobbers reg byte a
|
|
Statement [30] *((const byte*) TIMEHI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ main::u#15 ] ( main:2 [ main::u#15 ] ) always clobbers reg byte a
|
|
Statement [31] *((const byte*) TIMELO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ main::u#15 ] ( main:2 [ main::u#15 ] ) always clobbers reg byte a
|
|
Statement [32] *((const byte*) zp2#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ main::u#15 ] ( main:2 [ main::u#15 ] ) always clobbers reg byte a
|
|
Statement [33] (word) div10::val#4 ← (word) main::u#15 [ main::u#15 div10::val#4 ] ( main:2 [ main::u#15 div10::val#4 ] ) always clobbers reg byte a
|
|
Statement [35] (word) div10::return#2 ← (word) div10::return#0 [ main::u#15 div10::return#2 ] ( main:2 [ main::u#15 div10::return#2 ] ) always clobbers reg byte a
|
|
Statement [36] (word) main::v#2 ← (word) div10::return#2 [ main::u#15 main::v#2 ] ( main:2 [ main::u#15 main::v#2 ] ) always clobbers reg byte a
|
|
Statement [38] if(*((const byte*) zp2#0)<(byte/word/signed word/dword/signed dword) $c8) goto main::@6 [ main::u#15 main::v#2 ] ( main:2 [ main::u#15 main::v#2 ] ) always clobbers reg byte a
|
|
Statement [39] (word~) main::$11 ← ((word)) *((const byte*) TIMEHI#0) [ main::u#15 main::v#2 main::$11 ] ( main:2 [ main::u#15 main::v#2 main::$11 ] ) always clobbers reg byte a
|
|
Statement [40] (word~) main::$12 ← (word~) main::$11 << (byte/signed byte/word/signed word/dword/signed dword) 8 [ main::u#15 main::v#2 main::$12 ] ( main:2 [ main::u#15 main::v#2 main::$12 ] ) always clobbers reg byte a reg byte y
|
|
Statement [41] (word~) main::$13 ← ((word)) *((const byte*) TIMELO#0) [ main::u#15 main::v#2 main::$12 main::$13 ] ( main:2 [ main::u#15 main::v#2 main::$12 main::$13 ] ) always clobbers reg byte a
|
|
Statement [42] (word) myprintf::w3#1 ← (word~) main::$12 + (word~) main::$13 [ main::u#15 main::v#2 myprintf::w3#1 ] ( main:2 [ main::u#15 main::v#2 myprintf::w3#1 ] ) always clobbers reg byte a
|
|
Statement [43] (word) myprintf::w1#1 ← (word) main::u#15 [ main::u#15 main::v#2 myprintf::w3#1 myprintf::w1#1 ] ( main:2 [ main::u#15 main::v#2 myprintf::w3#1 myprintf::w1#1 ] ) always clobbers reg byte a
|
|
Statement [44] (word) myprintf::w2#1 ← (word) main::v#2 [ main::u#15 myprintf::w3#1 myprintf::w1#1 myprintf::w2#1 ] ( main:2 [ main::u#15 myprintf::w3#1 myprintf::w1#1 myprintf::w2#1 ] ) always clobbers reg byte a
|
|
Statement [48] (word) main::u#4 ← (word) main::u#15 - (word/signed word/dword/signed dword) $4d2 [ main::u#4 ] ( main:2 [ main::u#4 ] ) always clobbers reg byte a
|
|
Statement [50] if(*((const byte*) zp1#0)<(byte/signed byte/word/signed word/dword/signed dword) $a) goto main::@5 [ main::u#4 ] ( main:2 [ main::u#4 ] ) always clobbers reg byte a
|
|
Statement asm { ldy#0 loop: ldastrTemp,y beqdone jsr$FFD2 iny jmploop done: } always clobbers reg byte a reg byte x reg byte y
|
|
Statement [56] (byte) myprintf::b#1 ← *((byte*) myprintf::str#10) [ myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bFormat#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::b#1 ] ( main:2::myprintf:22 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bFormat#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::b#1 ] main:2::myprintf:45 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bFormat#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::b#1 ] ) always clobbers reg byte a reg byte y
|
|
Statement [61] if(*((byte*) myprintf::str#0)!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto myprintf::@1 [ myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#0 myprintf::bFormat#4 myprintf::bArg#10 myprintf::return#0 myprintf::w#17 myprintf::bTrailing#21 myprintf::bDigits#24 myprintf::bLeadZero#18 ] ( main:2::myprintf:22 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#0 myprintf::bFormat#4 myprintf::bArg#10 myprintf::return#0 myprintf::w#17 myprintf::bTrailing#21 myprintf::bDigits#24 myprintf::bLeadZero#18 ] main:2::myprintf:45 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#0 myprintf::bFormat#4 myprintf::bArg#10 myprintf::return#0 myprintf::w#17 myprintf::bTrailing#21 myprintf::bDigits#24 myprintf::bLeadZero#18 ] ) always clobbers reg byte a reg byte y
|
|
Statement [62] *((const byte[$64]) strTemp#0 + (byte) myprintf::return#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::myprintf:22 [ main::u#11 ] main:2::myprintf:45 [ main::u#15 ] ) always clobbers reg byte a
|
|
Statement [71] (word~) myprintf::$17 ← (word) myprintf::w#10 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::$17 ] ( main:2::myprintf:22 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::$17 ] main:2::myprintf:45 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::$17 ] ) always clobbers reg byte a reg byte y
|
|
Statement [72] (byte) myprintf::b#15 ← (word~) myprintf::$17 & (byte/signed byte/word/signed word/dword/signed dword) $f [ myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::b#15 ] ( main:2::myprintf:22 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::b#15 ] main:2::myprintf:45 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::b#15 ] ) always clobbers reg byte a
|
|
Statement [76] (byte~) myprintf::$23 ← (byte~) myprintf::$22 + (byte) myprintf::b#15 [ myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::$23 ] ( main:2::myprintf:22 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::$23 ] main:2::myprintf:45 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::$23 ] ) always clobbers reg byte a
|
|
Statement [79] (byte) myprintf::b#16 ← (word) myprintf::w#10 & (byte/signed byte/word/signed word/dword/signed dword) $f [ myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::bLen#10 myprintf::b#16 ] ( main:2::myprintf:22 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::bLen#10 myprintf::b#16 ] main:2::myprintf:45 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::bLen#10 myprintf::b#16 ] ) always clobbers reg byte a
|
|
Statement [83] (byte~) myprintf::$29 ← (byte~) myprintf::$28 + (byte) myprintf::b#16 [ myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::bLen#10 myprintf::$29 ] ( main:2::myprintf:22 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::bLen#10 myprintf::$29 ] main:2::myprintf:45 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::bLen#10 myprintf::$29 ] ) always clobbers reg byte a
|
|
Statement [86] (word) utoa::value#4 ← (word) myprintf::w#10 [ myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::value#4 ] ( main:2::myprintf:22 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::value#4 ] main:2::myprintf:45 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::value#4 ] ) always clobbers reg byte a
|
|
Statement [89] if(*((const byte[6]) myprintf::buf6#0 + (byte) myprintf::b#17)!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto myprintf::@13 [ myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::b#17 ] ( main:2::myprintf:22 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::b#17 ] main:2::myprintf:45 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::b#17 ] ) always clobbers reg byte a
|
|
Statement [93] *((const byte[$64]) strTemp#0 + (byte) myprintf::bLen#12) ← *((const byte[6]) myprintf::buf6#0 + (byte) myprintf::digit#3) [ myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::w#10 myprintf::bTrailing#10 myprintf::bLeadZero#10 myprintf::bDigits#16 myprintf::b#17 myprintf::digit#3 myprintf::bLen#12 ] ( main:2::myprintf:22 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::w#10 myprintf::bTrailing#10 myprintf::bLeadZero#10 myprintf::bDigits#16 myprintf::b#17 myprintf::digit#3 myprintf::bLen#12 ] main:2::myprintf:45 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::w#10 myprintf::bTrailing#10 myprintf::bLeadZero#10 myprintf::bDigits#16 myprintf::b#17 myprintf::digit#3 myprintf::bLen#12 ] ) always clobbers reg byte a
|
|
Statement [100] *((const byte[$64]) strTemp#0 + (byte) myprintf::bLen#13) ← (byte) ' ' [ myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::w#10 myprintf::bTrailing#10 myprintf::bLeadZero#10 myprintf::b#17 myprintf::bLen#13 myprintf::bDigits#8 ] ( main:2::myprintf:22 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::w#10 myprintf::bTrailing#10 myprintf::bLeadZero#10 myprintf::b#17 myprintf::bLen#13 myprintf::bDigits#8 ] main:2::myprintf:45 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::w#10 myprintf::bTrailing#10 myprintf::bLeadZero#10 myprintf::b#17 myprintf::bLen#13 myprintf::bDigits#8 ] ) always clobbers reg byte a
|
|
Statement [114] (byte~) myprintf::$47 ← ((byte)) (word) myprintf::w#10 [ myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::$47 ] ( main:2::myprintf:22 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::$47 ] main:2::myprintf:45 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::$47 ] ) always clobbers reg byte a
|
|
Statement [122] (word~) myprintf::w#53 ← (word) myprintf::w3#7 [ myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#53 ] ( main:2::myprintf:22 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#53 ] main:2::myprintf:45 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#53 ] ) always clobbers reg byte a
|
|
Statement [125] (word~) myprintf::w#52 ← (word) myprintf::w2#7 [ myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#52 ] ( main:2::myprintf:22 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#52 ] main:2::myprintf:45 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#52 ] ) always clobbers reg byte a
|
|
Statement [126] (word~) myprintf::w#51 ← (word) myprintf::w1#6 [ myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#51 ] ( main:2::myprintf:22 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#51 ] main:2::myprintf:45 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#51 ] ) always clobbers reg byte a
|
|
Statement [132] (byte) myprintf::b#6 ← (byte) myprintf::b#1 + (byte/signed byte/word/signed word/dword/signed dword) $20 [ myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bFormat#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::b#6 ] ( main:2::myprintf:22 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bFormat#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::b#6 ] main:2::myprintf:45 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bFormat#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 myprintf::b#6 ] ) always clobbers reg byte a
|
|
Statement [134] if((word) utoa::value#4>=(word/signed word/dword/signed dword) $2710) goto utoa::@5 [ utoa::value#4 ] ( main:2::myprintf:22::utoa:87 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::value#4 ] main:2::myprintf:45::utoa:87 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::value#4 ] ) always clobbers reg byte a
|
|
Statement [137] if((word) utoa::value#6>=(word/signed word/dword/signed dword) $3e8) goto utoa::@6 [ utoa::bStarted#5 utoa::value#6 utoa::dst#16 ] ( main:2::myprintf:22::utoa:87 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::bStarted#5 utoa::value#6 utoa::dst#16 ] main:2::myprintf:45::utoa:87 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::bStarted#5 utoa::value#6 utoa::dst#16 ] ) always clobbers reg byte a
|
|
Statement [140] if((word) utoa::value#11>=(byte/signed byte/word/signed word/dword/signed dword) $64) goto utoa::@7 [ utoa::bStarted#6 utoa::value#11 utoa::dst#10 ] ( main:2::myprintf:22::utoa:87 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::bStarted#6 utoa::value#11 utoa::dst#10 ] main:2::myprintf:45::utoa:87 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::bStarted#6 utoa::value#11 utoa::dst#10 ] ) always clobbers reg byte a
|
|
Statement [143] if((word) utoa::value#10>=(byte/signed byte/word/signed word/dword/signed dword) $a) goto utoa::@8 [ utoa::value#10 utoa::dst#13 ] ( main:2::myprintf:22::utoa:87 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::value#10 utoa::dst#13 ] main:2::myprintf:45::utoa:87 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::value#10 utoa::dst#13 ] ) always clobbers reg byte a
|
|
Statement [145] (byte~) utoa::$16 ← ((byte)) (word) utoa::value#12 [ utoa::dst#12 utoa::$16 ] ( main:2::myprintf:22::utoa:87 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#12 utoa::$16 ] main:2::myprintf:45::utoa:87 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#12 utoa::$16 ] ) always clobbers reg byte a
|
|
Statement [147] *((byte*) utoa::dst#12) ← (byte~) utoa::$17 [ utoa::dst#12 ] ( main:2::myprintf:22::utoa:87 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#12 ] main:2::myprintf:45::utoa:87 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#12 ] ) always clobbers reg byte y
|
|
Statement [148] (byte*) utoa::dst#3 ← ++ (byte*) utoa::dst#12 [ utoa::dst#3 ] ( main:2::myprintf:22::utoa:87 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#3 ] main:2::myprintf:45::utoa:87 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#3 ] ) always clobbers reg byte a
|
|
Statement [149] *((byte*) utoa::dst#3) ← (byte/signed byte/word/signed word/dword/signed dword) 0 [ ] ( main:2::myprintf:22::utoa:87 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 ] main:2::myprintf:45::utoa:87 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 ] ) always clobbers reg byte a reg byte y
|
|
Statement [151] (byte*) append::dst#3 ← (byte*) utoa::dst#13 [ utoa::value#10 utoa::dst#13 append::dst#3 ] ( main:2::myprintf:22::utoa:87 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::value#10 utoa::dst#13 append::dst#3 ] main:2::myprintf:45::utoa:87 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::value#10 utoa::dst#13 append::dst#3 ] ) always clobbers reg byte a
|
|
Statement [152] (word) append::value#4 ← (word) utoa::value#10 [ utoa::dst#13 append::dst#3 append::value#4 ] ( main:2::myprintf:22::utoa:87 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#13 append::dst#3 append::value#4 ] main:2::myprintf:45::utoa:87 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#13 append::dst#3 append::value#4 ] ) always clobbers reg byte a
|
|
Statement [154] (word) append::return#10 ← (word) append::value#5 [ utoa::dst#13 append::return#10 ] ( main:2::myprintf:22::utoa:87 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#13 append::return#10 ] main:2::myprintf:45::utoa:87 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#13 append::return#10 ] ) always clobbers reg byte a
|
|
Statement [155] (word) utoa::value#3 ← (word) append::return#10 [ utoa::dst#13 utoa::value#3 ] ( main:2::myprintf:22::utoa:87 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#13 utoa::value#3 ] main:2::myprintf:45::utoa:87 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#13 utoa::value#3 ] ) always clobbers reg byte a
|
|
Statement [157] (byte*) append::dst#2 ← (byte*) utoa::dst#10 [ utoa::value#11 utoa::dst#10 append::dst#2 ] ( main:2::myprintf:22::utoa:87 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::value#11 utoa::dst#10 append::dst#2 ] main:2::myprintf:45::utoa:87 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::value#11 utoa::dst#10 append::dst#2 ] ) always clobbers reg byte a
|
|
Statement [158] (word) append::value#3 ← (word) utoa::value#11 [ utoa::dst#10 append::dst#2 append::value#3 ] ( main:2::myprintf:22::utoa:87 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#10 append::dst#2 append::value#3 ] main:2::myprintf:45::utoa:87 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#10 append::dst#2 append::value#3 ] ) always clobbers reg byte a
|
|
Statement [160] (word) append::return#4 ← (word) append::value#5 [ utoa::dst#10 append::return#4 ] ( main:2::myprintf:22::utoa:87 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#10 append::return#4 ] main:2::myprintf:45::utoa:87 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#10 append::return#4 ] ) always clobbers reg byte a
|
|
Statement [161] (word) utoa::value#2 ← (word) append::return#4 [ utoa::dst#10 utoa::value#2 ] ( main:2::myprintf:22::utoa:87 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#10 utoa::value#2 ] main:2::myprintf:45::utoa:87 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#10 utoa::value#2 ] ) always clobbers reg byte a
|
|
Statement [163] (byte*) append::dst#1 ← (byte*) utoa::dst#16 [ utoa::value#6 utoa::dst#16 append::dst#1 ] ( main:2::myprintf:22::utoa:87 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::value#6 utoa::dst#16 append::dst#1 ] main:2::myprintf:45::utoa:87 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::value#6 utoa::dst#16 append::dst#1 ] ) always clobbers reg byte a
|
|
Statement [164] (word) append::value#2 ← (word) utoa::value#6 [ utoa::dst#16 append::dst#1 append::value#2 ] ( main:2::myprintf:22::utoa:87 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#16 append::dst#1 append::value#2 ] main:2::myprintf:45::utoa:87 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#16 append::dst#1 append::value#2 ] ) always clobbers reg byte a
|
|
Statement [166] (word) append::return#3 ← (word) append::value#5 [ utoa::dst#16 append::return#3 ] ( main:2::myprintf:22::utoa:87 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#16 append::return#3 ] main:2::myprintf:45::utoa:87 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#16 append::return#3 ] ) always clobbers reg byte a
|
|
Statement [167] (word) utoa::value#1 ← (word) append::return#3 [ utoa::dst#16 utoa::value#1 ] ( main:2::myprintf:22::utoa:87 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#16 utoa::value#1 ] main:2::myprintf:45::utoa:87 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#16 utoa::value#1 ] ) always clobbers reg byte a
|
|
Statement [169] (word) append::value#1 ← (word) utoa::value#4 [ append::value#1 ] ( main:2::myprintf:22::utoa:87 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 append::value#1 ] main:2::myprintf:45::utoa:87 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 append::value#1 ] ) always clobbers reg byte a
|
|
Statement [171] (word) append::return#2 ← (word) append::value#5 [ append::return#2 ] ( main:2::myprintf:22::utoa:87 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 append::return#2 ] main:2::myprintf:45::utoa:87 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 append::return#2 ] ) always clobbers reg byte a
|
|
Statement [172] (word) utoa::value#0 ← (word) append::return#2 [ utoa::value#0 ] ( main:2::myprintf:22::utoa:87 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::value#0 ] main:2::myprintf:45::utoa:87 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::value#0 ] ) always clobbers reg byte a
|
|
Statement [174] *((byte*) append::dst#4) ← (byte) '0' [ append::dst#4 append::value#8 append::sub#6 ] ( main:2::myprintf:22::utoa:87::append:153 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#13 append::dst#4 append::value#8 append::sub#6 ] main:2::myprintf:45::utoa:87::append:153 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#13 append::dst#4 append::value#8 append::sub#6 ] main:2::myprintf:22::utoa:87::append:159 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#10 append::dst#4 append::value#8 append::sub#6 ] main:2::myprintf:45::utoa:87::append:159 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#10 append::dst#4 append::value#8 append::sub#6 ] main:2::myprintf:22::utoa:87::append:165 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#16 append::dst#4 append::value#8 append::sub#6 ] main:2::myprintf:45::utoa:87::append:165 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#16 append::dst#4 append::value#8 append::sub#6 ] main:2::myprintf:22::utoa:87::append:170 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 append::dst#4 append::value#8 append::sub#6 ] main:2::myprintf:45::utoa:87::append:170 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 append::dst#4 append::value#8 append::sub#6 ] ) always clobbers reg byte a reg byte y
|
|
Statement [176] if((word) append::value#5>=(word) append::sub#6) goto append::@2 [ append::value#5 append::dst#4 append::sub#6 ] ( main:2::myprintf:22::utoa:87::append:153 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#13 append::value#5 append::dst#4 append::sub#6 ] main:2::myprintf:45::utoa:87::append:153 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#13 append::value#5 append::dst#4 append::sub#6 ] main:2::myprintf:22::utoa:87::append:159 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#10 append::value#5 append::dst#4 append::sub#6 ] main:2::myprintf:45::utoa:87::append:159 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#10 append::value#5 append::dst#4 append::sub#6 ] main:2::myprintf:22::utoa:87::append:165 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#16 append::value#5 append::dst#4 append::sub#6 ] main:2::myprintf:45::utoa:87::append:165 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#16 append::value#5 append::dst#4 append::sub#6 ] main:2::myprintf:22::utoa:87::append:170 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 append::value#5 append::dst#4 append::sub#6 ] main:2::myprintf:45::utoa:87::append:170 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 append::value#5 append::dst#4 append::sub#6 ] ) always clobbers reg byte a
|
|
Statement [178] *((byte*) append::dst#4) ← ++ *((byte*) append::dst#4) [ append::value#5 append::dst#4 append::sub#6 ] ( main:2::myprintf:22::utoa:87::append:153 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#13 append::value#5 append::dst#4 append::sub#6 ] main:2::myprintf:45::utoa:87::append:153 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#13 append::value#5 append::dst#4 append::sub#6 ] main:2::myprintf:22::utoa:87::append:159 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#10 append::value#5 append::dst#4 append::sub#6 ] main:2::myprintf:45::utoa:87::append:159 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#10 append::value#5 append::dst#4 append::sub#6 ] main:2::myprintf:22::utoa:87::append:165 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#16 append::value#5 append::dst#4 append::sub#6 ] main:2::myprintf:45::utoa:87::append:165 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#16 append::value#5 append::dst#4 append::sub#6 ] main:2::myprintf:22::utoa:87::append:170 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 append::value#5 append::dst#4 append::sub#6 ] main:2::myprintf:45::utoa:87::append:170 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 append::value#5 append::dst#4 append::sub#6 ] ) always clobbers reg byte a reg byte y
|
|
Statement [179] (word) append::value#0 ← (word) append::value#5 - (word) append::sub#6 [ append::dst#4 append::sub#6 append::value#0 ] ( main:2::myprintf:22::utoa:87::append:153 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#13 append::dst#4 append::sub#6 append::value#0 ] main:2::myprintf:45::utoa:87::append:153 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#13 append::dst#4 append::sub#6 append::value#0 ] main:2::myprintf:22::utoa:87::append:159 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#10 append::dst#4 append::sub#6 append::value#0 ] main:2::myprintf:45::utoa:87::append:159 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#10 append::dst#4 append::sub#6 append::value#0 ] main:2::myprintf:22::utoa:87::append:165 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#16 append::dst#4 append::sub#6 append::value#0 ] main:2::myprintf:45::utoa:87::append:165 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 utoa::dst#16 append::dst#4 append::sub#6 append::value#0 ] main:2::myprintf:22::utoa:87::append:170 [ main::u#11 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 append::dst#4 append::sub#6 append::value#0 ] main:2::myprintf:45::utoa:87::append:170 [ main::u#15 myprintf::w1#6 myprintf::w2#7 myprintf::w3#7 myprintf::str#10 myprintf::bArg#12 myprintf::bLen#14 myprintf::w#10 myprintf::bTrailing#10 myprintf::bDigits#14 myprintf::bLeadZero#10 append::dst#4 append::sub#6 append::value#0 ] ) always clobbers reg byte a
|
|
Statement [180] (word~) div10::$0 ← (word) div10::val#4 >> (byte/signed byte/word/signed word/dword/signed dword) 1 [ div10::$0 ] ( main:2::div10:34 [ main::u#15 div10::$0 ] ) always clobbers reg byte a
|
|
Statement [181] (word) div10::val#0 ← (word~) div10::$0 + (byte/signed byte/word/signed word/dword/signed dword) 1 [ div10::val#0 ] ( main:2::div10:34 [ main::u#15 div10::val#0 ] ) always clobbers reg byte a
|
|
Statement [182] (word~) div10::$2 ← (word) div10::val#0 << (byte/signed byte/word/signed word/dword/signed dword) 1 [ div10::val#0 div10::$2 ] ( main:2::div10:34 [ main::u#15 div10::val#0 div10::$2 ] ) always clobbers reg byte a
|
|
Statement [183] (word) div10::val#1 ← (word) div10::val#0 + (word~) div10::$2 [ div10::val#1 ] ( main:2::div10:34 [ main::u#15 div10::val#1 ] ) always clobbers reg byte a
|
|
Statement [184] (word~) div10::$3 ← (word) div10::val#1 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ div10::val#1 div10::$3 ] ( main:2::div10:34 [ main::u#15 div10::val#1 div10::$3 ] ) always clobbers reg byte a reg byte y
|
|
Statement [185] (word) div10::val#2 ← (word) div10::val#1 + (word~) div10::$3 [ div10::val#2 ] ( main:2::div10:34 [ main::u#15 div10::val#2 ] ) always clobbers reg byte a
|
|
Statement [186] (word~) div10::$4 ← (word) div10::val#2 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ div10::val#2 div10::$4 ] ( main:2::div10:34 [ main::u#15 div10::val#2 div10::$4 ] ) always clobbers reg byte a reg byte y
|
|
Statement [187] (word~) div10::$5 ← (word~) div10::$4 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ div10::val#2 div10::$5 ] ( main:2::div10:34 [ main::u#15 div10::val#2 div10::$5 ] ) always clobbers reg byte a reg byte y
|
|
Statement [188] (word) div10::val#3 ← (word) div10::val#2 + (word~) div10::$5 [ div10::val#3 ] ( main:2::div10:34 [ main::u#15 div10::val#3 ] ) always clobbers reg byte a
|
|
Statement [189] (word) div10::return#0 ← (word) div10::val#3 >> (byte/signed byte/word/signed word/dword/signed dword) 4 [ div10::return#0 ] ( main:2::div10:34 [ main::u#15 div10::return#0 ] ) always clobbers reg byte a reg byte y
|
|
Statement [191] (word) divr16u::dividend#1 ← (word) div16u::dividend#0 [ divr16u::dividend#1 ] ( main:2::div16u:11 [ main::u#11 divr16u::dividend#1 ] ) always clobbers reg byte a
|
|
Statement [193] (word) divr16u::return#2 ← (word) divr16u::return#0 [ divr16u::return#2 ] ( main:2::div16u:11 [ main::u#11 divr16u::return#2 ] ) always clobbers reg byte a
|
|
Statement [194] (word) div16u::return#0 ← (word) divr16u::return#2 [ div16u::return#0 ] ( main:2::div16u:11 [ main::u#11 div16u::return#0 ] ) always clobbers reg byte a
|
|
Statement [199] (byte~) divr16u::$1 ← > (word) divr16u::dividend#2 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ( main:2::div16u:11::divr16u:192 [ main::u#11 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#0 divr16u::$1 ] ) always clobbers reg byte a
|
|
Statement [202] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 [ divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ( main:2::div16u:11::divr16u:192 [ main::u#11 divr16u::dividend#2 divr16u::quotient#3 divr16u::i#2 divr16u::rem#1 ] ) always clobbers reg byte a
|
|
Statement [206] if((word) divr16u::rem#5<(const word) div16u::divisor#0) goto divr16u::@3 [ divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#1 ] ( main:2::div16u:11::divr16u:192 [ main::u#11 divr16u::i#2 divr16u::dividend#0 divr16u::rem#5 divr16u::quotient#1 ] ) always clobbers reg byte a
|
|
Statement [208] (word) divr16u::rem#2 ← (word) divr16u::rem#5 - (const word) div16u::divisor#0 [ divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ( main:2::div16u:11::divr16u:192 [ main::u#11 divr16u::i#2 divr16u::dividend#0 divr16u::quotient#2 divr16u::rem#2 ] ) always clobbers reg byte a
|
|
Potential registers zp ZP_WORD:2 [ main::u#11 main::u#2 ] : zp ZP_WORD:2 ,
|
|
Potential registers zp ZP_WORD:4 [ main::u#15 main::u#4 ] : zp ZP_WORD:4 ,
|
|
Potential registers zp ZP_WORD:6 [ myprintf::w1#6 myprintf::w1#0 myprintf::w1#1 ] : zp ZP_WORD:6 ,
|
|
Potential registers zp ZP_WORD:8 [ myprintf::w2#7 myprintf::w2#0 myprintf::w2#1 ] : zp ZP_WORD:8 ,
|
|
Potential registers zp ZP_WORD:10 [ myprintf::w3#7 myprintf::w3#0 myprintf::w3#1 ] : zp ZP_WORD:10 ,
|
|
Potential registers zp ZP_WORD:12 [ myprintf::str#10 myprintf::str#5 myprintf::str#0 ] : zp ZP_WORD:12 ,
|
|
Potential registers zp ZP_BYTE:14 [ myprintf::bFormat#10 myprintf::bFormat#4 ] : zp ZP_BYTE:14 , reg byte x ,
|
|
Potential registers zp ZP_BYTE:15 [ myprintf::bArg#12 myprintf::bArg#10 myprintf::bArg#1 ] : zp ZP_BYTE:15 , reg byte x ,
|
|
Potential registers zp ZP_WORD:16 [ myprintf::w#10 myprintf::w#17 myprintf::w#21 myprintf::w#51 myprintf::w#52 myprintf::w#53 ] : zp ZP_WORD:16 ,
|
|
Potential registers zp ZP_BYTE:18 [ myprintf::bTrailing#10 myprintf::bTrailing#21 ] : zp ZP_BYTE:18 , reg byte x ,
|
|
Potential registers zp ZP_BYTE:19 [ myprintf::bLeadZero#10 myprintf::bLeadZero#18 ] : zp ZP_BYTE:19 , reg byte x ,
|
|
Potential registers zp ZP_BYTE:20 [ myprintf::$22 ] : zp ZP_BYTE:20 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp ZP_BYTE:21 [ myprintf::$28 ] : zp ZP_BYTE:21 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp ZP_BYTE:22 [ myprintf::b#17 myprintf::b#5 ] : zp ZP_BYTE:22 , reg byte x , reg byte y ,
|
|
Potential registers zp ZP_BYTE:23 [ myprintf::digit#3 myprintf::digit#2 ] : zp ZP_BYTE:23 , reg byte x , reg byte y ,
|
|
Potential registers zp ZP_BYTE:24 [ myprintf::bLen#11 myprintf::bLen#13 myprintf::bLen#12 myprintf::bLen#23 myprintf::bLen#14 myprintf::return#0 myprintf::bLen#28 myprintf::bLen#7 myprintf::bLen#3 myprintf::bLen#24 myprintf::bLen#6 myprintf::bLen#1 myprintf::bLen#4 ] : zp ZP_BYTE:24 , reg byte x ,
|
|
Potential registers zp ZP_BYTE:25 [ myprintf::bDigits#10 myprintf::bDigits#8 myprintf::bDigits#14 myprintf::bDigits#24 myprintf::bDigits#25 myprintf::bDigits#1 myprintf::bDigits#16 myprintf::bDigits#3 myprintf::bDigits#2 ] : zp ZP_BYTE:25 , reg byte x ,
|
|
Potential registers zp ZP_BYTE:26 [ myprintf::$39 ] : zp ZP_BYTE:26 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp ZP_BYTE:27 [ myprintf::b#25 myprintf::b#1 myprintf::b#6 ] : zp ZP_BYTE:27 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp ZP_BYTE:28 [ utoa::bStarted#7 utoa::bStarted#6 utoa::bStarted#5 ] : zp ZP_BYTE:28 , reg byte x , reg byte y ,
|
|
Potential registers zp ZP_WORD:29 [ utoa::value#12 utoa::value#3 utoa::value#10 utoa::value#2 utoa::value#11 utoa::value#6 utoa::value#4 utoa::value#0 utoa::value#1 ] : zp ZP_WORD:29 ,
|
|
Potential registers zp ZP_WORD:31 [ utoa::dst#12 utoa::dst#4 utoa::dst#13 utoa::dst#2 utoa::dst#10 utoa::dst#16 utoa::dst#1 ] : zp ZP_WORD:31 ,
|
|
Potential registers zp ZP_WORD:33 [ append::dst#4 append::dst#1 append::dst#2 append::dst#3 ] : zp ZP_WORD:33 ,
|
|
Potential registers zp ZP_WORD:35 [ append::sub#6 ] : zp ZP_WORD:35 ,
|
|
Potential registers zp ZP_WORD:37 [ append::value#5 append::value#8 append::value#1 append::value#2 append::value#3 append::value#4 append::value#0 ] : zp ZP_WORD:37 ,
|
|
Potential registers zp ZP_WORD:39 [ divr16u::rem#4 divr16u::rem#9 divr16u::rem#5 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] : zp ZP_WORD:39 ,
|
|
Potential registers zp ZP_WORD:41 [ divr16u::dividend#2 divr16u::dividend#1 divr16u::dividend#0 ] : zp ZP_WORD:41 ,
|
|
Potential registers zp ZP_WORD:43 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 ] : zp ZP_WORD:43 ,
|
|
Potential registers zp ZP_BYTE:45 [ divr16u::i#2 divr16u::i#1 ] : zp ZP_BYTE:45 , reg byte x , reg byte y ,
|
|
Potential registers zp ZP_WORD:46 [ div16u::dividend#0 ] : zp ZP_WORD:46 ,
|
|
Potential registers zp ZP_WORD:48 [ div16u::return#2 ] : zp ZP_WORD:48 ,
|
|
Potential registers zp ZP_WORD:50 [ main::v#1 ] : zp ZP_WORD:50 ,
|
|
Potential registers zp ZP_WORD:52 [ main::$2 ] : zp ZP_WORD:52 ,
|
|
Potential registers zp ZP_WORD:54 [ main::$3 ] : zp ZP_WORD:54 ,
|
|
Potential registers zp ZP_WORD:56 [ main::$4 ] : zp ZP_WORD:56 ,
|
|
Potential registers zp ZP_WORD:58 [ div10::val#4 ] : zp ZP_WORD:58 ,
|
|
Potential registers zp ZP_WORD:60 [ div10::return#2 ] : zp ZP_WORD:60 ,
|
|
Potential registers zp ZP_WORD:62 [ main::v#2 ] : zp ZP_WORD:62 ,
|
|
Potential registers zp ZP_WORD:64 [ main::$11 ] : zp ZP_WORD:64 ,
|
|
Potential registers zp ZP_WORD:66 [ main::$12 ] : zp ZP_WORD:66 ,
|
|
Potential registers zp ZP_WORD:68 [ main::$13 ] : zp ZP_WORD:68 ,
|
|
Potential registers zp ZP_WORD:70 [ myprintf::$17 ] : zp ZP_WORD:70 ,
|
|
Potential registers zp ZP_BYTE:72 [ myprintf::b#15 ] : zp ZP_BYTE:72 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp ZP_BYTE:73 [ myprintf::$23 ] : zp ZP_BYTE:73 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp ZP_BYTE:74 [ myprintf::bLen#10 ] : zp ZP_BYTE:74 , reg byte x , reg byte y ,
|
|
Potential registers zp ZP_BYTE:75 [ myprintf::b#16 ] : zp ZP_BYTE:75 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp ZP_BYTE:76 [ myprintf::$29 ] : zp ZP_BYTE:76 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp ZP_BYTE:77 [ myprintf::$47 ] : zp ZP_BYTE:77 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp ZP_BYTE:78 [ utoa::$16 ] : zp ZP_BYTE:78 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp ZP_BYTE:79 [ utoa::$17 ] : zp ZP_BYTE:79 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp ZP_WORD:80 [ utoa::dst#3 ] : zp ZP_WORD:80 ,
|
|
Potential registers zp ZP_WORD:82 [ append::return#10 ] : zp ZP_WORD:82 ,
|
|
Potential registers zp ZP_WORD:84 [ append::return#4 ] : zp ZP_WORD:84 ,
|
|
Potential registers zp ZP_WORD:86 [ append::return#3 ] : zp ZP_WORD:86 ,
|
|
Potential registers zp ZP_WORD:88 [ append::return#2 ] : zp ZP_WORD:88 ,
|
|
Potential registers zp ZP_WORD:90 [ div10::$0 ] : zp ZP_WORD:90 ,
|
|
Potential registers zp ZP_WORD:92 [ div10::val#0 ] : zp ZP_WORD:92 ,
|
|
Potential registers zp ZP_WORD:94 [ div10::$2 ] : zp ZP_WORD:94 ,
|
|
Potential registers zp ZP_WORD:96 [ div10::val#1 ] : zp ZP_WORD:96 ,
|
|
Potential registers zp ZP_WORD:98 [ div10::$3 ] : zp ZP_WORD:98 ,
|
|
Potential registers zp ZP_WORD:100 [ div10::val#2 ] : zp ZP_WORD:100 ,
|
|
Potential registers zp ZP_WORD:102 [ div10::$4 ] : zp ZP_WORD:102 ,
|
|
Potential registers zp ZP_WORD:104 [ div10::$5 ] : zp ZP_WORD:104 ,
|
|
Potential registers zp ZP_WORD:106 [ div10::val#3 ] : zp ZP_WORD:106 ,
|
|
Potential registers zp ZP_WORD:108 [ div10::return#0 ] : zp ZP_WORD:108 ,
|
|
Potential registers zp ZP_WORD:110 [ divr16u::return#2 ] : zp ZP_WORD:110 ,
|
|
Potential registers zp ZP_WORD:112 [ div16u::return#0 ] : zp ZP_WORD:112 ,
|
|
Potential registers zp ZP_BYTE:114 [ divr16u::$1 ] : zp ZP_BYTE:114 , reg byte a , reg byte x , reg byte y ,
|
|
Potential registers zp ZP_BYTE:115 [ divr16u::$2 ] : zp ZP_BYTE:115 , reg byte a , reg byte x , reg byte y ,
|
|
|
|
REGISTER UPLIFT SCOPES
|
|
Uplift Scope [myprintf] 9,874.62: zp ZP_BYTE:24 [ myprintf::bLen#11 myprintf::bLen#13 myprintf::bLen#12 myprintf::bLen#23 myprintf::bLen#14 myprintf::return#0 myprintf::bLen#28 myprintf::bLen#7 myprintf::bLen#3 myprintf::bLen#24 myprintf::bLen#6 myprintf::bLen#1 myprintf::bLen#4 ] 7,278.24: zp ZP_BYTE:25 [ myprintf::bDigits#10 myprintf::bDigits#8 myprintf::bDigits#14 myprintf::bDigits#24 myprintf::bDigits#25 myprintf::bDigits#1 myprintf::bDigits#16 myprintf::bDigits#3 myprintf::bDigits#2 ] 2,502.5: zp ZP_BYTE:23 [ myprintf::digit#3 myprintf::digit#2 ] 2,250.32: zp ZP_BYTE:22 [ myprintf::b#17 myprintf::b#5 ] 1,058.97: zp ZP_WORD:16 [ myprintf::w#10 myprintf::w#17 myprintf::w#21 myprintf::w#51 myprintf::w#52 myprintf::w#53 ] 1,001: zp ZP_BYTE:26 [ myprintf::$39 ] 631.25: zp ZP_BYTE:27 [ myprintf::b#25 myprintf::b#1 myprintf::b#6 ] 450.29: zp ZP_BYTE:15 [ myprintf::bArg#12 myprintf::bArg#10 myprintf::bArg#1 ] 208.73: zp ZP_BYTE:14 [ myprintf::bFormat#10 myprintf::bFormat#4 ] 202: zp ZP_WORD:70 [ myprintf::$17 ] 202: zp ZP_BYTE:73 [ myprintf::$23 ] 202: zp ZP_BYTE:76 [ myprintf::$29 ] 202: zp ZP_BYTE:77 [ myprintf::$47 ] 191.15: zp ZP_BYTE:19 [ myprintf::bLeadZero#10 myprintf::bLeadZero#18 ] 179.05: zp ZP_BYTE:18 [ myprintf::bTrailing#10 myprintf::bTrailing#21 ] 157.62: zp ZP_WORD:12 [ myprintf::str#10 myprintf::str#5 myprintf::str#0 ] 101: zp ZP_BYTE:20 [ myprintf::$22 ] 101: zp ZP_BYTE:21 [ myprintf::$28 ] 75.75: zp ZP_BYTE:72 [ myprintf::b#15 ] 75.75: zp ZP_BYTE:75 [ myprintf::b#16 ] 45.6: zp ZP_WORD:8 [ myprintf::w2#7 myprintf::w2#0 myprintf::w2#1 ] 43.29: zp ZP_BYTE:74 [ myprintf::bLen#10 ] 23.6: zp ZP_WORD:6 [ myprintf::w1#6 myprintf::w1#0 myprintf::w1#1 ] 16.26: zp ZP_WORD:10 [ myprintf::w3#7 myprintf::w3#0 myprintf::w3#1 ]
|
|
Uplift Scope [divr16u] 8,758.75: zp ZP_WORD:39 [ divr16u::rem#4 divr16u::rem#9 divr16u::rem#5 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] 3,353.75: zp ZP_WORD:43 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 ] 2,002: zp ZP_BYTE:114 [ divr16u::$1 ] 2,002: zp ZP_BYTE:115 [ divr16u::$2 ] 1,655.5: zp ZP_BYTE:45 [ divr16u::i#2 divr16u::i#1 ] 681.54: zp ZP_WORD:41 [ divr16u::dividend#2 divr16u::dividend#1 divr16u::dividend#0 ] 4: zp ZP_WORD:110 [ divr16u::return#2 ]
|
|
Uplift Scope [append] 2,399.62: zp ZP_WORD:37 [ append::value#5 append::value#8 append::value#1 append::value#2 append::value#3 append::value#4 append::value#0 ] 341: zp ZP_WORD:33 [ append::dst#4 append::dst#1 append::dst#2 append::dst#3 ] 333.67: zp ZP_WORD:35 [ append::sub#6 ] 4: zp ZP_WORD:82 [ append::return#10 ] 4: zp ZP_WORD:84 [ append::return#4 ] 4: zp ZP_WORD:86 [ append::return#3 ] 4: zp ZP_WORD:88 [ append::return#2 ]
|
|
Uplift Scope [div10] 202: zp ZP_WORD:60 [ div10::return#2 ] 103: zp ZP_WORD:58 [ div10::val#4 ] 34.33: zp ZP_WORD:108 [ div10::return#0 ] 4: zp ZP_WORD:90 [ div10::$0 ] 4: zp ZP_WORD:94 [ div10::$2 ] 4: zp ZP_WORD:98 [ div10::$3 ] 4: zp ZP_WORD:102 [ div10::$4 ] 4: zp ZP_WORD:104 [ div10::$5 ] 4: zp ZP_WORD:106 [ div10::val#3 ] 3: zp ZP_WORD:92 [ div10::val#0 ] 3: zp ZP_WORD:96 [ div10::val#1 ] 2: zp ZP_WORD:100 [ div10::val#2 ]
|
|
Uplift Scope [div16u] 202: zp ZP_WORD:48 [ div16u::return#2 ] 103: zp ZP_WORD:46 [ div16u::dividend#0 ] 34.33: zp ZP_WORD:112 [ div16u::return#0 ]
|
|
Uplift Scope [main] 22: zp ZP_WORD:52 [ main::$2 ] 22: zp ZP_WORD:56 [ main::$4 ] 22: zp ZP_WORD:64 [ main::$11 ] 22: zp ZP_WORD:68 [ main::$13 ] 14.39: zp ZP_WORD:2 [ main::u#11 main::u#2 ] 14.39: zp ZP_WORD:4 [ main::u#15 main::u#4 ] 14: zp ZP_WORD:50 [ main::v#1 ] 14: zp ZP_WORD:62 [ main::v#2 ] 11: zp ZP_WORD:54 [ main::$3 ] 11: zp ZP_WORD:66 [ main::$12 ]
|
|
Uplift Scope [utoa] 59.17: zp ZP_WORD:29 [ utoa::value#12 utoa::value#3 utoa::value#10 utoa::value#2 utoa::value#11 utoa::value#6 utoa::value#4 utoa::value#0 utoa::value#1 ] 17.25: zp ZP_WORD:31 [ utoa::dst#12 utoa::dst#4 utoa::dst#13 utoa::dst#2 utoa::dst#10 utoa::dst#16 utoa::dst#1 ] 7.33: zp ZP_BYTE:28 [ utoa::bStarted#7 utoa::bStarted#6 utoa::bStarted#5 ] 4: zp ZP_BYTE:78 [ utoa::$16 ] 4: zp ZP_BYTE:79 [ utoa::$17 ] 4: zp ZP_WORD:80 [ utoa::dst#3 ]
|
|
Uplift Scope [Print]
|
|
Uplift Scope []
|
|
|
|
Uplifting [myprintf] best 464045 combination zp ZP_BYTE:24 [ myprintf::bLen#11 myprintf::bLen#13 myprintf::bLen#12 myprintf::bLen#23 myprintf::bLen#14 myprintf::return#0 myprintf::bLen#28 myprintf::bLen#7 myprintf::bLen#3 myprintf::bLen#24 myprintf::bLen#6 myprintf::bLen#1 myprintf::bLen#4 ] zp ZP_BYTE:25 [ myprintf::bDigits#10 myprintf::bDigits#8 myprintf::bDigits#14 myprintf::bDigits#24 myprintf::bDigits#25 myprintf::bDigits#1 myprintf::bDigits#16 myprintf::bDigits#3 myprintf::bDigits#2 ] zp ZP_BYTE:23 [ myprintf::digit#3 myprintf::digit#2 ] reg byte x [ myprintf::b#17 myprintf::b#5 ] zp ZP_WORD:16 [ myprintf::w#10 myprintf::w#17 myprintf::w#21 myprintf::w#51 myprintf::w#52 myprintf::w#53 ] reg byte a [ myprintf::$39 ] zp ZP_BYTE:27 [ myprintf::b#25 myprintf::b#1 myprintf::b#6 ] zp ZP_BYTE:15 [ myprintf::bArg#12 myprintf::bArg#10 myprintf::bArg#1 ] zp ZP_BYTE:14 [ myprintf::bFormat#10 myprintf::bFormat#4 ] zp ZP_WORD:70 [ myprintf::$17 ] zp ZP_BYTE:73 [ myprintf::$23 ] zp ZP_BYTE:76 [ myprintf::$29 ] zp ZP_BYTE:77 [ myprintf::$47 ] zp ZP_BYTE:19 [ myprintf::bLeadZero#10 myprintf::bLeadZero#18 ] zp ZP_BYTE:18 [ myprintf::bTrailing#10 myprintf::bTrailing#21 ] zp ZP_WORD:12 [ myprintf::str#10 myprintf::str#5 myprintf::str#0 ] zp ZP_BYTE:20 [ myprintf::$22 ] zp ZP_BYTE:21 [ myprintf::$28 ] zp ZP_BYTE:72 [ myprintf::b#15 ] zp ZP_BYTE:75 [ myprintf::b#16 ] zp ZP_WORD:8 [ myprintf::w2#7 myprintf::w2#0 myprintf::w2#1 ] zp ZP_BYTE:74 [ myprintf::bLen#10 ] zp ZP_WORD:6 [ myprintf::w1#6 myprintf::w1#0 myprintf::w1#1 ] zp ZP_WORD:10 [ myprintf::w3#7 myprintf::w3#0 myprintf::w3#1 ]
|
|
Limited combination testing to 100 combinations of 452984832 possible.
|
|
Uplifting [divr16u] best 443045 combination zp ZP_WORD:39 [ divr16u::rem#4 divr16u::rem#9 divr16u::rem#5 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] zp ZP_WORD:43 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 ] reg byte a [ divr16u::$1 ] reg byte a [ divr16u::$2 ] reg byte x [ divr16u::i#2 divr16u::i#1 ] zp ZP_WORD:41 [ divr16u::dividend#2 divr16u::dividend#1 divr16u::dividend#0 ] zp ZP_WORD:110 [ divr16u::return#2 ]
|
|
Uplifting [append] best 443045 combination zp ZP_WORD:37 [ append::value#5 append::value#8 append::value#1 append::value#2 append::value#3 append::value#4 append::value#0 ] zp ZP_WORD:33 [ append::dst#4 append::dst#1 append::dst#2 append::dst#3 ] zp ZP_WORD:35 [ append::sub#6 ] zp ZP_WORD:82 [ append::return#10 ] zp ZP_WORD:84 [ append::return#4 ] zp ZP_WORD:86 [ append::return#3 ] zp ZP_WORD:88 [ append::return#2 ]
|
|
Uplifting [div10] best 443045 combination zp ZP_WORD:60 [ div10::return#2 ] zp ZP_WORD:58 [ div10::val#4 ] zp ZP_WORD:108 [ div10::return#0 ] zp ZP_WORD:90 [ div10::$0 ] zp ZP_WORD:94 [ div10::$2 ] zp ZP_WORD:98 [ div10::$3 ] zp ZP_WORD:102 [ div10::$4 ] zp ZP_WORD:104 [ div10::$5 ] zp ZP_WORD:106 [ div10::val#3 ] zp ZP_WORD:92 [ div10::val#0 ] zp ZP_WORD:96 [ div10::val#1 ] zp ZP_WORD:100 [ div10::val#2 ]
|
|
Uplifting [div16u] best 443045 combination zp ZP_WORD:48 [ div16u::return#2 ] zp ZP_WORD:46 [ div16u::dividend#0 ] zp ZP_WORD:112 [ div16u::return#0 ]
|
|
Uplifting [main] best 443045 combination zp ZP_WORD:52 [ main::$2 ] zp ZP_WORD:56 [ main::$4 ] zp ZP_WORD:64 [ main::$11 ] zp ZP_WORD:68 [ main::$13 ] zp ZP_WORD:2 [ main::u#11 main::u#2 ] zp ZP_WORD:4 [ main::u#15 main::u#4 ] zp ZP_WORD:50 [ main::v#1 ] zp ZP_WORD:62 [ main::v#2 ] zp ZP_WORD:54 [ main::$3 ] zp ZP_WORD:66 [ main::$12 ]
|
|
Uplifting [utoa] best 443014 combination zp ZP_WORD:29 [ utoa::value#12 utoa::value#3 utoa::value#10 utoa::value#2 utoa::value#11 utoa::value#6 utoa::value#4 utoa::value#0 utoa::value#1 ] zp ZP_WORD:31 [ utoa::dst#12 utoa::dst#4 utoa::dst#13 utoa::dst#2 utoa::dst#10 utoa::dst#16 utoa::dst#1 ] reg byte x [ utoa::bStarted#7 utoa::bStarted#6 utoa::bStarted#5 ] reg byte a [ utoa::$16 ] reg byte a [ utoa::$17 ] zp ZP_WORD:80 [ utoa::dst#3 ]
|
|
Uplifting [Print] best 443014 combination
|
|
Uplifting [] best 443014 combination
|
|
Attempting to uplift remaining variables inzp ZP_BYTE:24 [ myprintf::bLen#11 myprintf::bLen#13 myprintf::bLen#12 myprintf::bLen#23 myprintf::bLen#14 myprintf::return#0 myprintf::bLen#28 myprintf::bLen#7 myprintf::bLen#3 myprintf::bLen#24 myprintf::bLen#6 myprintf::bLen#1 myprintf::bLen#4 ]
|
|
Uplifting [myprintf] best 443014 combination zp ZP_BYTE:24 [ myprintf::bLen#11 myprintf::bLen#13 myprintf::bLen#12 myprintf::bLen#23 myprintf::bLen#14 myprintf::return#0 myprintf::bLen#28 myprintf::bLen#7 myprintf::bLen#3 myprintf::bLen#24 myprintf::bLen#6 myprintf::bLen#1 myprintf::bLen#4 ]
|
|
Attempting to uplift remaining variables inzp ZP_BYTE:25 [ myprintf::bDigits#10 myprintf::bDigits#8 myprintf::bDigits#14 myprintf::bDigits#24 myprintf::bDigits#25 myprintf::bDigits#1 myprintf::bDigits#16 myprintf::bDigits#3 myprintf::bDigits#2 ]
|
|
Uplifting [myprintf] best 443014 combination zp ZP_BYTE:25 [ myprintf::bDigits#10 myprintf::bDigits#8 myprintf::bDigits#14 myprintf::bDigits#24 myprintf::bDigits#25 myprintf::bDigits#1 myprintf::bDigits#16 myprintf::bDigits#3 myprintf::bDigits#2 ]
|
|
Attempting to uplift remaining variables inzp ZP_BYTE:23 [ myprintf::digit#3 myprintf::digit#2 ]
|
|
Uplifting [myprintf] best 443014 combination zp ZP_BYTE:23 [ myprintf::digit#3 myprintf::digit#2 ]
|
|
Attempting to uplift remaining variables inzp ZP_BYTE:27 [ myprintf::b#25 myprintf::b#1 myprintf::b#6 ]
|
|
Uplifting [myprintf] best 439264 combination reg byte x [ myprintf::b#25 myprintf::b#1 myprintf::b#6 ]
|
|
Attempting to uplift remaining variables inzp ZP_BYTE:15 [ myprintf::bArg#12 myprintf::bArg#10 myprintf::bArg#1 ]
|
|
Uplifting [myprintf] best 439264 combination zp ZP_BYTE:15 [ myprintf::bArg#12 myprintf::bArg#10 myprintf::bArg#1 ]
|
|
Attempting to uplift remaining variables inzp ZP_BYTE:14 [ myprintf::bFormat#10 myprintf::bFormat#4 ]
|
|
Uplifting [myprintf] best 439264 combination zp ZP_BYTE:14 [ myprintf::bFormat#10 myprintf::bFormat#4 ]
|
|
Attempting to uplift remaining variables inzp ZP_BYTE:73 [ myprintf::$23 ]
|
|
Uplifting [myprintf] best 438664 combination reg byte a [ myprintf::$23 ]
|
|
Attempting to uplift remaining variables inzp ZP_BYTE:76 [ myprintf::$29 ]
|
|
Uplifting [myprintf] best 438064 combination reg byte a [ myprintf::$29 ]
|
|
Attempting to uplift remaining variables inzp ZP_BYTE:77 [ myprintf::$47 ]
|
|
Uplifting [myprintf] best 437464 combination reg byte a [ myprintf::$47 ]
|
|
Attempting to uplift remaining variables inzp ZP_BYTE:19 [ myprintf::bLeadZero#10 myprintf::bLeadZero#18 ]
|
|
Uplifting [myprintf] best 437464 combination zp ZP_BYTE:19 [ myprintf::bLeadZero#10 myprintf::bLeadZero#18 ]
|
|
Attempting to uplift remaining variables inzp ZP_BYTE:18 [ myprintf::bTrailing#10 myprintf::bTrailing#21 ]
|
|
Uplifting [myprintf] best 437464 combination zp ZP_BYTE:18 [ myprintf::bTrailing#10 myprintf::bTrailing#21 ]
|
|
Attempting to uplift remaining variables inzp ZP_BYTE:20 [ myprintf::$22 ]
|
|
Uplifting [myprintf] best 436564 combination reg byte a [ myprintf::$22 ]
|
|
Attempting to uplift remaining variables inzp ZP_BYTE:21 [ myprintf::$28 ]
|
|
Uplifting [myprintf] best 435664 combination reg byte a [ myprintf::$28 ]
|
|
Attempting to uplift remaining variables inzp ZP_BYTE:72 [ myprintf::b#15 ]
|
|
Uplifting [myprintf] best 435564 combination reg byte x [ myprintf::b#15 ]
|
|
Attempting to uplift remaining variables inzp ZP_BYTE:75 [ myprintf::b#16 ]
|
|
Uplifting [myprintf] best 435464 combination reg byte x [ myprintf::b#16 ]
|
|
Attempting to uplift remaining variables inzp ZP_BYTE:74 [ myprintf::bLen#10 ]
|
|
Uplifting [myprintf] best 434564 combination reg byte y [ myprintf::bLen#10 ]
|
|
Coalescing zero page register with common assignment [ zp ZP_WORD:29 [ utoa::value#12 utoa::value#3 utoa::value#10 utoa::value#2 utoa::value#11 utoa::value#6 utoa::value#4 utoa::value#0 utoa::value#1 ] ] with [ zp ZP_WORD:37 [ append::value#5 append::value#8 append::value#1 append::value#2 append::value#3 append::value#4 append::value#0 ] ] - score: 4
|
|
Coalescing zero page register with common assignment [ zp ZP_WORD:31 [ utoa::dst#12 utoa::dst#4 utoa::dst#13 utoa::dst#2 utoa::dst#10 utoa::dst#16 utoa::dst#1 ] ] with [ zp ZP_WORD:33 [ append::dst#4 append::dst#1 append::dst#2 append::dst#3 ] ] - score: 3
|
|
Coalescing zero page register with common assignment [ zp ZP_WORD:2 [ main::u#11 main::u#2 ] ] with [ zp ZP_WORD:6 [ myprintf::w1#6 myprintf::w1#0 myprintf::w1#1 ] ] - score: 1
|
|
Coalescing zero page register with common assignment [ zp ZP_WORD:2 [ main::u#11 main::u#2 myprintf::w1#6 myprintf::w1#0 myprintf::w1#1 ] ] with [ zp ZP_WORD:46 [ div16u::dividend#0 ] ] - score: 1
|
|
Coalescing zero page register with common assignment [ zp ZP_WORD:4 [ main::u#15 main::u#4 ] ] with [ zp ZP_WORD:58 [ div10::val#4 ] ] - score: 1
|
|
Coalescing zero page register with common assignment [ zp ZP_WORD:8 [ myprintf::w2#7 myprintf::w2#0 myprintf::w2#1 ] ] with [ zp ZP_WORD:50 [ main::v#1 ] ] - score: 1
|
|
Coalescing zero page register with common assignment [ zp ZP_WORD:8 [ myprintf::w2#7 myprintf::w2#0 myprintf::w2#1 main::v#1 ] ] with [ zp ZP_WORD:62 [ main::v#2 ] ] - score: 1
|
|
Coalescing zero page register with common assignment [ zp ZP_WORD:10 [ myprintf::w3#7 myprintf::w3#0 myprintf::w3#1 ] ] with [ zp ZP_WORD:54 [ main::$3 ] ] - score: 1
|
|
Coalescing zero page register with common assignment [ zp ZP_WORD:10 [ myprintf::w3#7 myprintf::w3#0 myprintf::w3#1 main::$3 ] ] with [ zp ZP_WORD:66 [ main::$12 ] ] - score: 1
|
|
Coalescing zero page register with common assignment [ zp ZP_WORD:29 [ utoa::value#12 utoa::value#3 utoa::value#10 utoa::value#2 utoa::value#11 utoa::value#6 utoa::value#4 utoa::value#0 utoa::value#1 append::value#5 append::value#8 append::value#1 append::value#2 append::value#3 append::value#4 append::value#0 ] ] with [ zp ZP_WORD:82 [ append::return#10 ] ] - score: 1
|
|
Coalescing zero page register with common assignment [ zp ZP_WORD:29 [ utoa::value#12 utoa::value#3 utoa::value#10 utoa::value#2 utoa::value#11 utoa::value#6 utoa::value#4 utoa::value#0 utoa::value#1 append::value#5 append::value#8 append::value#1 append::value#2 append::value#3 append::value#4 append::value#0 append::return#10 ] ] with [ zp ZP_WORD:84 [ append::return#4 ] ] - score: 1
|
|
Coalescing zero page register with common assignment [ zp ZP_WORD:29 [ utoa::value#12 utoa::value#3 utoa::value#10 utoa::value#2 utoa::value#11 utoa::value#6 utoa::value#4 utoa::value#0 utoa::value#1 append::value#5 append::value#8 append::value#1 append::value#2 append::value#3 append::value#4 append::value#0 append::return#10 append::return#4 ] ] with [ zp ZP_WORD:86 [ append::return#3 ] ] - score: 1
|
|
Coalescing zero page register with common assignment [ zp ZP_WORD:29 [ utoa::value#12 utoa::value#3 utoa::value#10 utoa::value#2 utoa::value#11 utoa::value#6 utoa::value#4 utoa::value#0 utoa::value#1 append::value#5 append::value#8 append::value#1 append::value#2 append::value#3 append::value#4 append::value#0 append::return#10 append::return#4 append::return#3 ] ] with [ zp ZP_WORD:88 [ append::return#2 ] ] - score: 1
|
|
Coalescing zero page register with common assignment [ zp ZP_WORD:31 [ utoa::dst#12 utoa::dst#4 utoa::dst#13 utoa::dst#2 utoa::dst#10 utoa::dst#16 utoa::dst#1 append::dst#4 append::dst#1 append::dst#2 append::dst#3 ] ] with [ zp ZP_WORD:80 [ utoa::dst#3 ] ] - score: 1
|
|
Coalescing zero page register with common assignment [ zp ZP_WORD:43 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 ] ] with [ zp ZP_WORD:110 [ divr16u::return#2 ] ] - score: 1
|
|
Coalescing zero page register with common assignment [ zp ZP_WORD:48 [ div16u::return#2 ] ] with [ zp ZP_WORD:112 [ div16u::return#0 ] ] - score: 1
|
|
Coalescing zero page register with common assignment [ zp ZP_WORD:60 [ div10::return#2 ] ] with [ zp ZP_WORD:108 [ div10::return#0 ] ] - score: 1
|
|
Coalescing zero page register with common assignment [ zp ZP_WORD:90 [ div10::$0 ] ] with [ zp ZP_WORD:92 [ div10::val#0 ] ] - score: 1
|
|
Coalescing zero page register with common assignment [ zp ZP_WORD:94 [ div10::$2 ] ] with [ zp ZP_WORD:96 [ div10::val#1 ] ] - score: 1
|
|
Coalescing zero page register with common assignment [ zp ZP_WORD:98 [ div10::$3 ] ] with [ zp ZP_WORD:100 [ div10::val#2 ] ] - score: 1
|
|
Coalescing zero page register with common assignment [ zp ZP_WORD:102 [ div10::$4 ] ] with [ zp ZP_WORD:104 [ div10::$5 ] ] - score: 1
|
|
Coalescing zero page register with common assignment [ zp ZP_WORD:2 [ main::u#11 main::u#2 myprintf::w1#6 myprintf::w1#0 myprintf::w1#1 div16u::dividend#0 ] ] with [ zp ZP_WORD:4 [ main::u#15 main::u#4 div10::val#4 ] ] - score: 1
|
|
Coalescing zero page register with common assignment [ zp ZP_WORD:8 [ myprintf::w2#7 myprintf::w2#0 myprintf::w2#1 main::v#1 main::v#2 ] ] with [ zp ZP_WORD:48 [ div16u::return#2 div16u::return#0 ] ] - score: 1
|
|
Coalescing zero page register with common assignment [ zp ZP_WORD:8 [ myprintf::w2#7 myprintf::w2#0 myprintf::w2#1 main::v#1 main::v#2 div16u::return#2 div16u::return#0 ] ] with [ zp ZP_WORD:60 [ div10::return#2 div10::return#0 ] ] - score: 1
|
|
Coalescing zero page register with common assignment [ zp ZP_WORD:10 [ myprintf::w3#7 myprintf::w3#0 myprintf::w3#1 main::$3 main::$12 ] ] with [ zp ZP_WORD:52 [ main::$2 ] ] - score: 1
|
|
Coalescing zero page register with common assignment [ zp ZP_WORD:10 [ myprintf::w3#7 myprintf::w3#0 myprintf::w3#1 main::$3 main::$12 main::$2 ] ] with [ zp ZP_WORD:64 [ main::$11 ] ] - score: 1
|
|
Coalescing zero page register with common assignment [ zp ZP_WORD:98 [ div10::$3 div10::val#2 ] ] with [ zp ZP_WORD:106 [ div10::val#3 ] ] - score: 1
|
|
Coalescing zero page register with common assignment [ zp ZP_WORD:8 [ myprintf::w2#7 myprintf::w2#0 myprintf::w2#1 main::v#1 main::v#2 div16u::return#2 div16u::return#0 div10::return#2 div10::return#0 ] ] with [ zp ZP_WORD:43 [ divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#2 ] ] - score: 1
|
|
Coalescing zero page register with common assignment [ zp ZP_WORD:8 [ myprintf::w2#7 myprintf::w2#0 myprintf::w2#1 main::v#1 main::v#2 div16u::return#2 div16u::return#0 div10::return#2 div10::return#0 divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#2 ] ] with [ zp ZP_WORD:98 [ div10::$3 div10::val#2 div10::val#3 ] ] - score: 1
|
|
Coalescing zero page register [ zp ZP_WORD:8 [ myprintf::w2#7 myprintf::w2#0 myprintf::w2#1 main::v#1 main::v#2 div16u::return#2 div16u::return#0 div10::return#2 div10::return#0 divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#2 div10::$3 div10::val#2 div10::val#3 ] ] with [ zp ZP_WORD:90 [ div10::$0 div10::val#0 ] ]
|
|
Coalescing zero page register [ zp ZP_WORD:10 [ myprintf::w3#7 myprintf::w3#0 myprintf::w3#1 main::$3 main::$12 main::$2 main::$11 ] ] with [ zp ZP_WORD:39 [ divr16u::rem#4 divr16u::rem#9 divr16u::rem#5 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] ]
|
|
Coalescing zero page register [ zp ZP_WORD:10 [ myprintf::w3#7 myprintf::w3#0 myprintf::w3#1 main::$3 main::$12 main::$2 main::$11 divr16u::rem#4 divr16u::rem#9 divr16u::rem#5 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 ] ] with [ zp ZP_WORD:94 [ div10::$2 div10::val#1 ] ]
|
|
Coalescing zero page register [ zp ZP_WORD:10 [ myprintf::w3#7 myprintf::w3#0 myprintf::w3#1 main::$3 main::$12 main::$2 main::$11 divr16u::rem#4 divr16u::rem#9 divr16u::rem#5 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 div10::$2 div10::val#1 ] ] with [ zp ZP_WORD:102 [ div10::$4 div10::$5 ] ]
|
|
Coalescing zero page register [ zp ZP_WORD:12 [ myprintf::str#10 myprintf::str#5 myprintf::str#0 ] ] with [ zp ZP_WORD:41 [ divr16u::dividend#2 divr16u::dividend#1 divr16u::dividend#0 ] ]
|
|
Coalescing zero page register [ zp ZP_WORD:12 [ myprintf::str#10 myprintf::str#5 myprintf::str#0 divr16u::dividend#2 divr16u::dividend#1 divr16u::dividend#0 ] ] with [ zp ZP_WORD:56 [ main::$4 ] ]
|
|
Coalescing zero page register [ zp ZP_WORD:12 [ myprintf::str#10 myprintf::str#5 myprintf::str#0 divr16u::dividend#2 divr16u::dividend#1 divr16u::dividend#0 main::$4 ] ] with [ zp ZP_WORD:68 [ main::$13 ] ]
|
|
Coalescing zero page register [ zp ZP_BYTE:14 [ myprintf::bFormat#10 myprintf::bFormat#4 ] ] with [ zp ZP_BYTE:23 [ myprintf::digit#3 myprintf::digit#2 ] ]
|
|
Coalescing zero page register [ zp ZP_WORD:29 [ utoa::value#12 utoa::value#3 utoa::value#10 utoa::value#2 utoa::value#11 utoa::value#6 utoa::value#4 utoa::value#0 utoa::value#1 append::value#5 append::value#8 append::value#1 append::value#2 append::value#3 append::value#4 append::value#0 append::return#10 append::return#4 append::return#3 append::return#2 ] ] with [ zp ZP_WORD:70 [ myprintf::$17 ] ]
|
|
Allocated (was zp ZP_WORD:8) zp ZP_WORD:4 [ myprintf::w2#7 myprintf::w2#0 myprintf::w2#1 main::v#1 main::v#2 div16u::return#2 div16u::return#0 div10::return#2 div10::return#0 divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#2 div10::$3 div10::val#2 div10::val#3 div10::$0 div10::val#0 ]
|
|
Allocated (was zp ZP_WORD:10) zp ZP_WORD:6 [ myprintf::w3#7 myprintf::w3#0 myprintf::w3#1 main::$3 main::$12 main::$2 main::$11 divr16u::rem#4 divr16u::rem#9 divr16u::rem#5 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 div10::$2 div10::val#1 div10::$4 div10::$5 ]
|
|
Allocated (was zp ZP_WORD:12) zp ZP_WORD:8 [ myprintf::str#10 myprintf::str#5 myprintf::str#0 divr16u::dividend#2 divr16u::dividend#1 divr16u::dividend#0 main::$4 main::$13 ]
|
|
Allocated (was zp ZP_BYTE:14) zp ZP_BYTE:10 [ myprintf::bFormat#10 myprintf::bFormat#4 myprintf::digit#3 myprintf::digit#2 ]
|
|
Allocated (was zp ZP_BYTE:15) zp ZP_BYTE:11 [ myprintf::bArg#12 myprintf::bArg#10 myprintf::bArg#1 ]
|
|
Allocated (was zp ZP_WORD:16) zp ZP_WORD:12 [ myprintf::w#10 myprintf::w#17 myprintf::w#21 myprintf::w#51 myprintf::w#52 myprintf::w#53 ]
|
|
Allocated (was zp ZP_BYTE:18) zp ZP_BYTE:14 [ myprintf::bTrailing#10 myprintf::bTrailing#21 ]
|
|
Allocated (was zp ZP_BYTE:19) zp ZP_BYTE:15 [ myprintf::bLeadZero#10 myprintf::bLeadZero#18 ]
|
|
Allocated (was zp ZP_BYTE:24) zp ZP_BYTE:16 [ myprintf::bLen#11 myprintf::bLen#13 myprintf::bLen#12 myprintf::bLen#23 myprintf::bLen#14 myprintf::return#0 myprintf::bLen#28 myprintf::bLen#7 myprintf::bLen#3 myprintf::bLen#24 myprintf::bLen#6 myprintf::bLen#1 myprintf::bLen#4 ]
|
|
Allocated (was zp ZP_BYTE:25) zp ZP_BYTE:17 [ myprintf::bDigits#10 myprintf::bDigits#8 myprintf::bDigits#14 myprintf::bDigits#24 myprintf::bDigits#25 myprintf::bDigits#1 myprintf::bDigits#16 myprintf::bDigits#3 myprintf::bDigits#2 ]
|
|
Allocated (was zp ZP_WORD:29) zp ZP_WORD:18 [ utoa::value#12 utoa::value#3 utoa::value#10 utoa::value#2 utoa::value#11 utoa::value#6 utoa::value#4 utoa::value#0 utoa::value#1 append::value#5 append::value#8 append::value#1 append::value#2 append::value#3 append::value#4 append::value#0 append::return#10 append::return#4 append::return#3 append::return#2 myprintf::$17 ]
|
|
Allocated (was zp ZP_WORD:31) zp ZP_WORD:20 [ utoa::dst#12 utoa::dst#4 utoa::dst#13 utoa::dst#2 utoa::dst#10 utoa::dst#16 utoa::dst#1 append::dst#4 append::dst#1 append::dst#2 append::dst#3 utoa::dst#3 ]
|
|
Allocated (was zp ZP_WORD:35) zp ZP_WORD:22 [ append::sub#6 ]
|
|
|
|
ASSEMBLER BEFORE OPTIMIZATION
|
|
//SEG0 File Comments
|
|
//SEG1 Basic Upstart
|
|
.pc = $801 "Basic"
|
|
:BasicUpstart(bbegin)
|
|
.pc = $80d "Program"
|
|
//SEG2 Global Constants & labels
|
|
.label zp1 = $61
|
|
// #define zp1 *(byte *)0x61 -- allows "zp1" vs "*zp1" below -- not supported -- https://gitlab.com/camelot/kickc/issues/169
|
|
.label zp2 = $62
|
|
.label TIMEHI = $a1
|
|
.label TIMELO = $a2
|
|
.label VICBANK = $d018
|
|
//SEG3 @begin
|
|
bbegin:
|
|
//SEG4 [1] phi from @begin to @1 [phi:@begin->@1]
|
|
b1_from_bbegin:
|
|
jmp b1
|
|
//SEG5 @1
|
|
b1:
|
|
//SEG6 [2] call main
|
|
jsr main
|
|
//SEG7 [3] phi from @1 to @end [phi:@1->@end]
|
|
bend_from_b1:
|
|
jmp bend
|
|
//SEG8 @end
|
|
bend:
|
|
//SEG9 main
|
|
main: {
|
|
.label _2 = 6
|
|
.label _3 = 6
|
|
.label _4 = 8
|
|
.label _11 = 6
|
|
.label _12 = 6
|
|
.label _13 = 8
|
|
.label v = 4
|
|
.label u = 2
|
|
//SEG10 [4] *((const byte*) VICBANK#0) ← (byte/signed byte/word/signed word/dword/signed dword) $17 -- _deref_pbuc1=vbuc2
|
|
lda #$17
|
|
sta VICBANK
|
|
//SEG11 [5] *((const byte*) zp1#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2
|
|
lda #0
|
|
sta zp1
|
|
//SEG12 [6] phi from main to main::@1 [phi:main->main::@1]
|
|
b1_from_main:
|
|
//SEG13 [6] phi (word) main::u#11 = (word/signed word/dword/signed dword) $6e85 [phi:main->main::@1#0] -- vwuz1=vwuc1
|
|
lda #<$6e85
|
|
sta u
|
|
lda #>$6e85
|
|
sta u+1
|
|
jmp b1
|
|
//SEG14 [6] phi from main::@10 to main::@1 [phi:main::@10->main::@1]
|
|
b1_from_b10:
|
|
//SEG15 [6] phi (word) main::u#11 = (word) main::u#2 [phi:main::@10->main::@1#0] -- register_copy
|
|
jmp b1
|
|
//SEG16 main::@1
|
|
b1:
|
|
//SEG17 [7] *((const byte*) TIMEHI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2
|
|
lda #0
|
|
sta TIMEHI
|
|
//SEG18 [8] *((const byte*) TIMELO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2
|
|
lda #0
|
|
sta TIMELO
|
|
//SEG19 [9] *((const byte*) zp2#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2
|
|
lda #0
|
|
sta zp2
|
|
jmp b2
|
|
//SEG20 main::@2
|
|
b2:
|
|
//SEG21 [10] (word) div16u::dividend#0 ← (word) main::u#11
|
|
//SEG22 [11] call div16u
|
|
jsr div16u
|
|
//SEG23 [12] (word) div16u::return#2 ← (word) div16u::return#0
|
|
jmp b8
|
|
//SEG24 main::@8
|
|
b8:
|
|
//SEG25 [13] (word) main::v#1 ← (word) div16u::return#2
|
|
//SEG26 [14] *((const byte*) zp2#0) ← ++ *((const byte*) zp2#0) -- _deref_pbuc1=_inc__deref_pbuc1
|
|
inc zp2
|
|
//SEG27 [15] if(*((const byte*) zp2#0)<(byte/word/signed word/dword/signed dword) $c8) goto main::@2 -- _deref_pbuc1_lt_vbuc2_then_la1
|
|
lda zp2
|
|
cmp #$c8
|
|
bcc b2
|
|
jmp b3
|
|
//SEG28 main::@3
|
|
b3:
|
|
//SEG29 [16] (word~) main::$2 ← ((word)) *((const byte*) TIMEHI#0) -- vwuz1=_word__deref_pbuc1
|
|
lda TIMEHI
|
|
sta _2
|
|
lda #0
|
|
sta _2+1
|
|
//SEG30 [17] (word~) main::$3 ← (word~) main::$2 << (byte/signed byte/word/signed word/dword/signed dword) 8 -- vwuz1=vwuz1_rol_vbuc1
|
|
ldy #8
|
|
cpy #0
|
|
beq !e+
|
|
!:
|
|
asl _3
|
|
rol _3+1
|
|
dey
|
|
bne !-
|
|
!e:
|
|
//SEG31 [18] (word~) main::$4 ← ((word)) *((const byte*) TIMELO#0) -- vwuz1=_word__deref_pbuc1
|
|
lda TIMELO
|
|
sta _4
|
|
lda #0
|
|
sta _4+1
|
|
//SEG32 [19] (word) myprintf::w3#0 ← (word~) main::$3 + (word~) main::$4 -- vwuz1=vwuz1_plus_vwuz2
|
|
lda myprintf.w3
|
|
clc
|
|
adc _4
|
|
sta myprintf.w3
|
|
lda myprintf.w3+1
|
|
adc _4+1
|
|
sta myprintf.w3+1
|
|
//SEG33 [20] (word) myprintf::w1#0 ← (word) main::u#11
|
|
//SEG34 [21] (word) myprintf::w2#0 ← (word) main::v#1
|
|
//SEG35 [22] call myprintf
|
|
//SEG36 [54] phi from main::@3 to myprintf [phi:main::@3->myprintf]
|
|
myprintf_from_b3:
|
|
//SEG37 [54] phi (word) myprintf::w3#7 = (word) myprintf::w3#0 [phi:main::@3->myprintf#0] -- register_copy
|
|
//SEG38 [54] phi (word) myprintf::w2#7 = (word) myprintf::w2#0 [phi:main::@3->myprintf#1] -- register_copy
|
|
//SEG39 [54] phi (word) myprintf::w1#6 = (word) myprintf::w1#0 [phi:main::@3->myprintf#2] -- register_copy
|
|
//SEG40 [54] phi (byte*) myprintf::str#5 = (const string) main::str [phi:main::@3->myprintf#3] -- pbuz1=pbuc1
|
|
lda #<str
|
|
sta myprintf.str
|
|
lda #>str
|
|
sta myprintf.str+1
|
|
jsr myprintf
|
|
//SEG41 [23] phi from main::@3 to main::@9 [phi:main::@3->main::@9]
|
|
b9_from_b3:
|
|
jmp b9
|
|
//SEG42 main::@9
|
|
b9:
|
|
//SEG43 [24] call Print
|
|
jsr Print
|
|
jmp b10
|
|
//SEG44 main::@10
|
|
b10:
|
|
//SEG45 [25] (word) main::u#2 ← (word) main::u#11 - (word/signed word/dword/signed dword) $4d2 -- vwuz1=vwuz1_minus_vwuc1
|
|
lda u
|
|
sec
|
|
sbc #<$4d2
|
|
sta u
|
|
lda u+1
|
|
sbc #>$4d2
|
|
sta u+1
|
|
//SEG46 [26] *((const byte*) zp1#0) ← ++ *((const byte*) zp1#0) -- _deref_pbuc1=_inc__deref_pbuc1
|
|
inc zp1
|
|
//SEG47 [27] if(*((const byte*) zp1#0)<(byte/signed byte/word/signed word/dword/signed dword) $a) goto main::@1 -- _deref_pbuc1_lt_vbuc2_then_la1
|
|
lda zp1
|
|
cmp #$a
|
|
bcc b1_from_b10
|
|
jmp b4
|
|
//SEG48 main::@4
|
|
b4:
|
|
//SEG49 [28] *((const byte*) zp1#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2
|
|
lda #0
|
|
sta zp1
|
|
//SEG50 [29] phi from main::@4 to main::@5 [phi:main::@4->main::@5]
|
|
b5_from_b4:
|
|
//SEG51 [29] phi (word) main::u#15 = (word/signed word/dword/signed dword) $6e85 [phi:main::@4->main::@5#0] -- vwuz1=vwuc1
|
|
lda #<$6e85
|
|
sta u
|
|
lda #>$6e85
|
|
sta u+1
|
|
jmp b5
|
|
//SEG52 [29] phi from main::@13 to main::@5 [phi:main::@13->main::@5]
|
|
b5_from_b13:
|
|
//SEG53 [29] phi (word) main::u#15 = (word) main::u#4 [phi:main::@13->main::@5#0] -- register_copy
|
|
jmp b5
|
|
//SEG54 main::@5
|
|
b5:
|
|
//SEG55 [30] *((const byte*) TIMEHI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2
|
|
lda #0
|
|
sta TIMEHI
|
|
//SEG56 [31] *((const byte*) TIMELO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2
|
|
lda #0
|
|
sta TIMELO
|
|
//SEG57 [32] *((const byte*) zp2#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2
|
|
lda #0
|
|
sta zp2
|
|
jmp b6
|
|
//SEG58 main::@6
|
|
b6:
|
|
//SEG59 [33] (word) div10::val#4 ← (word) main::u#15
|
|
//SEG60 [34] call div10
|
|
jsr div10
|
|
//SEG61 [35] (word) div10::return#2 ← (word) div10::return#0
|
|
jmp b11
|
|
//SEG62 main::@11
|
|
b11:
|
|
//SEG63 [36] (word) main::v#2 ← (word) div10::return#2
|
|
//SEG64 [37] *((const byte*) zp2#0) ← ++ *((const byte*) zp2#0) -- _deref_pbuc1=_inc__deref_pbuc1
|
|
inc zp2
|
|
//SEG65 [38] if(*((const byte*) zp2#0)<(byte/word/signed word/dword/signed dword) $c8) goto main::@6 -- _deref_pbuc1_lt_vbuc2_then_la1
|
|
lda zp2
|
|
cmp #$c8
|
|
bcc b6
|
|
jmp b7
|
|
//SEG66 main::@7
|
|
b7:
|
|
//SEG67 [39] (word~) main::$11 ← ((word)) *((const byte*) TIMEHI#0) -- vwuz1=_word__deref_pbuc1
|
|
lda TIMEHI
|
|
sta _11
|
|
lda #0
|
|
sta _11+1
|
|
//SEG68 [40] (word~) main::$12 ← (word~) main::$11 << (byte/signed byte/word/signed word/dword/signed dword) 8 -- vwuz1=vwuz1_rol_vbuc1
|
|
ldy #8
|
|
cpy #0
|
|
beq !e+
|
|
!:
|
|
asl _12
|
|
rol _12+1
|
|
dey
|
|
bne !-
|
|
!e:
|
|
//SEG69 [41] (word~) main::$13 ← ((word)) *((const byte*) TIMELO#0) -- vwuz1=_word__deref_pbuc1
|
|
lda TIMELO
|
|
sta _13
|
|
lda #0
|
|
sta _13+1
|
|
//SEG70 [42] (word) myprintf::w3#1 ← (word~) main::$12 + (word~) main::$13 -- vwuz1=vwuz1_plus_vwuz2
|
|
lda myprintf.w3
|
|
clc
|
|
adc _13
|
|
sta myprintf.w3
|
|
lda myprintf.w3+1
|
|
adc _13+1
|
|
sta myprintf.w3+1
|
|
//SEG71 [43] (word) myprintf::w1#1 ← (word) main::u#15
|
|
//SEG72 [44] (word) myprintf::w2#1 ← (word) main::v#2
|
|
//SEG73 [45] call myprintf
|
|
//SEG74 [54] phi from main::@7 to myprintf [phi:main::@7->myprintf]
|
|
myprintf_from_b7:
|
|
//SEG75 [54] phi (word) myprintf::w3#7 = (word) myprintf::w3#1 [phi:main::@7->myprintf#0] -- register_copy
|
|
//SEG76 [54] phi (word) myprintf::w2#7 = (word) myprintf::w2#1 [phi:main::@7->myprintf#1] -- register_copy
|
|
//SEG77 [54] phi (word) myprintf::w1#6 = (word) myprintf::w1#1 [phi:main::@7->myprintf#2] -- register_copy
|
|
//SEG78 [54] phi (byte*) myprintf::str#5 = (const string) main::str1 [phi:main::@7->myprintf#3] -- pbuz1=pbuc1
|
|
lda #<str1
|
|
sta myprintf.str
|
|
lda #>str1
|
|
sta myprintf.str+1
|
|
jsr myprintf
|
|
//SEG79 [46] phi from main::@7 to main::@12 [phi:main::@7->main::@12]
|
|
b12_from_b7:
|
|
jmp b12
|
|
//SEG80 main::@12
|
|
b12:
|
|
//SEG81 [47] call Print
|
|
jsr Print
|
|
jmp b13
|
|
//SEG82 main::@13
|
|
b13:
|
|
//SEG83 [48] (word) main::u#4 ← (word) main::u#15 - (word/signed word/dword/signed dword) $4d2 -- vwuz1=vwuz1_minus_vwuc1
|
|
lda u
|
|
sec
|
|
sbc #<$4d2
|
|
sta u
|
|
lda u+1
|
|
sbc #>$4d2
|
|
sta u+1
|
|
//SEG84 [49] *((const byte*) zp1#0) ← ++ *((const byte*) zp1#0) -- _deref_pbuc1=_inc__deref_pbuc1
|
|
inc zp1
|
|
//SEG85 [50] if(*((const byte*) zp1#0)<(byte/signed byte/word/signed word/dword/signed dword) $a) goto main::@5 -- _deref_pbuc1_lt_vbuc2_then_la1
|
|
lda zp1
|
|
cmp #$a
|
|
bcc b5_from_b13
|
|
jmp breturn
|
|
//SEG86 main::@return
|
|
breturn:
|
|
//SEG87 [51] return
|
|
rts
|
|
str: .text "200 DIV16U: %5d,%4d IN %04d FRAMESm@"
|
|
str1: .text "200 DIV10 : %5d,%4d IN %04d FRAMESm@"
|
|
}
|
|
//SEG88 Print
|
|
Print: {
|
|
//SEG89 asm { ldy#0 loop: ldastrTemp,y beqdone jsr$FFD2 iny jmploop done: }
|
|
// can this assembly be placed in a separate file and call it from the C code here?
|
|
ldy #0
|
|
loop:
|
|
lda strTemp,y
|
|
beq done
|
|
jsr $ffd2
|
|
iny
|
|
jmp loop
|
|
done:
|
|
jmp breturn
|
|
//SEG90 Print::@return
|
|
breturn:
|
|
//SEG91 [53] return
|
|
rts
|
|
}
|
|
//SEG92 myprintf
|
|
// myprintf(byte* zeropage(8) str, word zeropage(2) w1, word zeropage(4) w2, word zeropage(6) w3)
|
|
myprintf: {
|
|
.label _17 = $12
|
|
.label str = 8
|
|
.label bDigits = $11
|
|
.label bLen = $10
|
|
.label digit = $a
|
|
.label bArg = $b
|
|
.label return = $10
|
|
.label w1 = 2
|
|
.label w2 = 4
|
|
.label w3 = 6
|
|
.label bFormat = $a
|
|
.label w = $c
|
|
.label bTrailing = $e
|
|
.label bLeadZero = $f
|
|
//SEG93 [55] phi from myprintf to myprintf::@1 [phi:myprintf->myprintf::@1]
|
|
b1_from_myprintf:
|
|
//SEG94 [55] phi (byte) myprintf::bLeadZero#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:myprintf->myprintf::@1#0] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta bLeadZero
|
|
//SEG95 [55] phi (byte) myprintf::bDigits#14 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:myprintf->myprintf::@1#1] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta bDigits
|
|
//SEG96 [55] phi (byte) myprintf::bTrailing#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:myprintf->myprintf::@1#2] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta bTrailing
|
|
//SEG97 [55] phi (word) myprintf::w#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:myprintf->myprintf::@1#3] -- vwuz1=vbuc1
|
|
lda #0
|
|
sta w
|
|
lda #0
|
|
sta w+1
|
|
//SEG98 [55] phi (byte) myprintf::bLen#14 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:myprintf->myprintf::@1#4] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta bLen
|
|
//SEG99 [55] phi (byte) myprintf::bArg#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:myprintf->myprintf::@1#5] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta bArg
|
|
//SEG100 [55] phi (byte) myprintf::bFormat#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:myprintf->myprintf::@1#6] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta bFormat
|
|
//SEG101 [55] phi (byte*) myprintf::str#10 = (byte*) myprintf::str#5 [phi:myprintf->myprintf::@1#7] -- register_copy
|
|
jmp b1
|
|
//SEG102 [55] phi from myprintf::@27 to myprintf::@1 [phi:myprintf::@27->myprintf::@1]
|
|
b1_from_b27:
|
|
//SEG103 [55] phi (byte) myprintf::bLeadZero#10 = (byte) myprintf::bLeadZero#18 [phi:myprintf::@27->myprintf::@1#0] -- register_copy
|
|
//SEG104 [55] phi (byte) myprintf::bDigits#14 = (byte) myprintf::bDigits#24 [phi:myprintf::@27->myprintf::@1#1] -- register_copy
|
|
//SEG105 [55] phi (byte) myprintf::bTrailing#10 = (byte) myprintf::bTrailing#21 [phi:myprintf::@27->myprintf::@1#2] -- register_copy
|
|
//SEG106 [55] phi (word) myprintf::w#10 = (word) myprintf::w#17 [phi:myprintf::@27->myprintf::@1#3] -- register_copy
|
|
//SEG107 [55] phi (byte) myprintf::bLen#14 = (byte) myprintf::return#0 [phi:myprintf::@27->myprintf::@1#4] -- register_copy
|
|
//SEG108 [55] phi (byte) myprintf::bArg#12 = (byte) myprintf::bArg#10 [phi:myprintf::@27->myprintf::@1#5] -- register_copy
|
|
//SEG109 [55] phi (byte) myprintf::bFormat#10 = (byte) myprintf::bFormat#4 [phi:myprintf::@27->myprintf::@1#6] -- register_copy
|
|
//SEG110 [55] phi (byte*) myprintf::str#10 = (byte*) myprintf::str#0 [phi:myprintf::@27->myprintf::@1#7] -- register_copy
|
|
jmp b1
|
|
//SEG111 myprintf::@1
|
|
b1:
|
|
//SEG112 [56] (byte) myprintf::b#1 ← *((byte*) myprintf::str#10) -- vbuxx=_deref_pbuz1
|
|
ldy #0
|
|
lda (str),y
|
|
tax
|
|
//SEG113 [57] if((byte) myprintf::bFormat#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto myprintf::@2 -- vbuz1_eq_0_then_la1
|
|
lda bFormat
|
|
cmp #0
|
|
beq b2
|
|
jmp b31
|
|
//SEG114 myprintf::@31
|
|
b31:
|
|
//SEG115 [58] if((byte) myprintf::b#1!=(byte) '0') goto myprintf::@3 -- vbuxx_neq_vbuc1_then_la1
|
|
cpx #'0'
|
|
bne b3
|
|
//SEG116 [59] phi from myprintf::@31 to myprintf::@27 [phi:myprintf::@31->myprintf::@27]
|
|
b27_from_b31:
|
|
//SEG117 [59] phi (byte) myprintf::bLeadZero#18 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:myprintf::@31->myprintf::@27#0] -- vbuz1=vbuc1
|
|
lda #1
|
|
sta bLeadZero
|
|
//SEG118 [59] phi (byte) myprintf::bDigits#24 = (byte) myprintf::bDigits#14 [phi:myprintf::@31->myprintf::@27#1] -- register_copy
|
|
//SEG119 [59] phi (byte) myprintf::bTrailing#21 = (byte) myprintf::bTrailing#10 [phi:myprintf::@31->myprintf::@27#2] -- register_copy
|
|
//SEG120 [59] phi (word) myprintf::w#17 = (word) myprintf::w#10 [phi:myprintf::@31->myprintf::@27#3] -- register_copy
|
|
//SEG121 [59] phi (byte) myprintf::bArg#10 = (byte) myprintf::bArg#12 [phi:myprintf::@31->myprintf::@27#4] -- register_copy
|
|
//SEG122 [59] phi (byte) myprintf::return#0 = (byte) myprintf::bLen#14 [phi:myprintf::@31->myprintf::@27#5] -- register_copy
|
|
//SEG123 [59] phi (byte) myprintf::bFormat#4 = (byte) myprintf::bFormat#10 [phi:myprintf::@31->myprintf::@27#6] -- register_copy
|
|
jmp b27
|
|
//SEG124 myprintf::@27
|
|
b27:
|
|
//SEG125 [60] (byte*) myprintf::str#0 ← ++ (byte*) myprintf::str#10 -- pbuz1=_inc_pbuz1
|
|
inc str
|
|
bne !+
|
|
inc str+1
|
|
!:
|
|
//SEG126 [61] if(*((byte*) myprintf::str#0)!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto myprintf::@1 -- _deref_pbuz1_neq_0_then_la1
|
|
ldy #0
|
|
lda (str),y
|
|
cmp #0
|
|
bne b1_from_b27
|
|
jmp b36
|
|
//SEG127 myprintf::@36
|
|
b36:
|
|
//SEG128 [62] *((const byte[$64]) strTemp#0 + (byte) myprintf::return#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuz1=vbuc2
|
|
lda #0
|
|
ldy return
|
|
sta strTemp,y
|
|
jmp breturn
|
|
//SEG129 myprintf::@return
|
|
breturn:
|
|
//SEG130 [63] return
|
|
rts
|
|
//SEG131 myprintf::@3
|
|
b3:
|
|
//SEG132 [64] if((byte) myprintf::b#1>=(byte) '1') goto myprintf::@37 -- vbuxx_ge_vbuc1_then_la1
|
|
cpx #'1'
|
|
bcs b37
|
|
jmp b4
|
|
//SEG133 myprintf::@4
|
|
b4:
|
|
//SEG134 [65] if((byte) myprintf::b#1!=(byte) '-') goto myprintf::@5 -- vbuxx_neq_vbuc1_then_la1
|
|
cpx #'-'
|
|
bne b5
|
|
//SEG135 [59] phi from myprintf::@4 to myprintf::@27 [phi:myprintf::@4->myprintf::@27]
|
|
b27_from_b4:
|
|
//SEG136 [59] phi (byte) myprintf::bLeadZero#18 = (byte) myprintf::bLeadZero#10 [phi:myprintf::@4->myprintf::@27#0] -- register_copy
|
|
//SEG137 [59] phi (byte) myprintf::bDigits#24 = (byte) myprintf::bDigits#14 [phi:myprintf::@4->myprintf::@27#1] -- register_copy
|
|
//SEG138 [59] phi (byte) myprintf::bTrailing#21 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:myprintf::@4->myprintf::@27#2] -- vbuz1=vbuc1
|
|
lda #1
|
|
sta bTrailing
|
|
//SEG139 [59] phi (word) myprintf::w#17 = (word) myprintf::w#10 [phi:myprintf::@4->myprintf::@27#3] -- register_copy
|
|
//SEG140 [59] phi (byte) myprintf::bArg#10 = (byte) myprintf::bArg#12 [phi:myprintf::@4->myprintf::@27#4] -- register_copy
|
|
//SEG141 [59] phi (byte) myprintf::return#0 = (byte) myprintf::bLen#14 [phi:myprintf::@4->myprintf::@27#5] -- register_copy
|
|
//SEG142 [59] phi (byte) myprintf::bFormat#4 = (byte) myprintf::bFormat#10 [phi:myprintf::@4->myprintf::@27#6] -- register_copy
|
|
jmp b27
|
|
//SEG143 myprintf::@5
|
|
b5:
|
|
//SEG144 [66] if((byte) myprintf::b#1==(byte) 'c') goto myprintf::@6 -- vbuxx_eq_vbuc1_then_la1
|
|
cpx #'c'
|
|
beq b6
|
|
jmp b24
|
|
//SEG145 myprintf::@24
|
|
b24:
|
|
//SEG146 [67] if((byte) myprintf::b#1==(byte) 'd') goto myprintf::@7 -- vbuxx_eq_vbuc1_then_la1
|
|
cpx #'d'
|
|
beq b7
|
|
jmp b25
|
|
//SEG147 myprintf::@25
|
|
b25:
|
|
//SEG148 [68] if((byte) myprintf::b#1==(byte) 'x') goto myprintf::@26 -- vbuxx_eq_vbuc1_then_la1
|
|
cpx #'x'
|
|
beq b26
|
|
jmp b38
|
|
//SEG149 myprintf::@38
|
|
b38:
|
|
//SEG150 [69] if((byte) myprintf::b#1==(byte) 'X') goto myprintf::@26 -- vbuxx_eq_vbuc1_then_la1
|
|
cpx #'X'
|
|
beq b26
|
|
//SEG151 [70] phi from myprintf::@11 myprintf::@20 myprintf::@21 myprintf::@38 myprintf::@40 myprintf::@6 to myprintf::@22 [phi:myprintf::@11/myprintf::@20/myprintf::@21/myprintf::@38/myprintf::@40/myprintf::@6->myprintf::@22]
|
|
b22_from_b11:
|
|
b22_from_b20:
|
|
b22_from_b21:
|
|
b22_from_b38:
|
|
b22_from_b40:
|
|
b22_from_b6:
|
|
//SEG152 [70] phi (byte) myprintf::bDigits#25 = (byte) myprintf::bDigits#14 [phi:myprintf::@11/myprintf::@20/myprintf::@21/myprintf::@38/myprintf::@40/myprintf::@6->myprintf::@22#0] -- register_copy
|
|
//SEG153 [70] phi (byte) myprintf::bLen#28 = (byte) myprintf::bLen#3 [phi:myprintf::@11/myprintf::@20/myprintf::@21/myprintf::@38/myprintf::@40/myprintf::@6->myprintf::@22#1] -- register_copy
|
|
jmp b22
|
|
//SEG154 myprintf::@22
|
|
b22:
|
|
//SEG155 [59] phi from myprintf::@22 to myprintf::@27 [phi:myprintf::@22->myprintf::@27]
|
|
b27_from_b22:
|
|
//SEG156 [59] phi (byte) myprintf::bLeadZero#18 = (byte) myprintf::bLeadZero#10 [phi:myprintf::@22->myprintf::@27#0] -- register_copy
|
|
//SEG157 [59] phi (byte) myprintf::bDigits#24 = (byte) myprintf::bDigits#25 [phi:myprintf::@22->myprintf::@27#1] -- register_copy
|
|
//SEG158 [59] phi (byte) myprintf::bTrailing#21 = (byte) myprintf::bTrailing#10 [phi:myprintf::@22->myprintf::@27#2] -- register_copy
|
|
//SEG159 [59] phi (word) myprintf::w#17 = (word) myprintf::w#10 [phi:myprintf::@22->myprintf::@27#3] -- register_copy
|
|
//SEG160 [59] phi (byte) myprintf::bArg#10 = (byte) myprintf::bArg#12 [phi:myprintf::@22->myprintf::@27#4] -- register_copy
|
|
//SEG161 [59] phi (byte) myprintf::return#0 = (byte) myprintf::bLen#28 [phi:myprintf::@22->myprintf::@27#5] -- register_copy
|
|
//SEG162 [59] phi (byte) myprintf::bFormat#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:myprintf::@22->myprintf::@27#6] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta bFormat
|
|
jmp b27
|
|
//SEG163 myprintf::@26
|
|
b26:
|
|
//SEG164 [71] (word~) myprintf::$17 ← (word) myprintf::w#10 >> (byte/signed byte/word/signed word/dword/signed dword) 4 -- vwuz1=vwuz2_ror_4
|
|
lda w+1
|
|
sta _17+1
|
|
lda w
|
|
sta _17
|
|
ldy #4
|
|
!:
|
|
lsr _17+1
|
|
ror _17
|
|
dey
|
|
bne !-
|
|
//SEG165 [72] (byte) myprintf::b#15 ← (word~) myprintf::$17 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuxx=vwuz1_band_vbuc1
|
|
lda _17
|
|
and #$f
|
|
tax
|
|
//SEG166 [73] if((byte) myprintf::b#15<(byte/signed byte/word/signed word/dword/signed dword) $a) goto myprintf::@9 -- vbuxx_lt_vbuc1_then_la1
|
|
cpx #$a
|
|
bcc b9_from_b26
|
|
//SEG167 [74] phi from myprintf::@26 to myprintf::@8 [phi:myprintf::@26->myprintf::@8]
|
|
b8_from_b26:
|
|
jmp b8
|
|
//SEG168 myprintf::@8
|
|
b8:
|
|
//SEG169 [75] phi from myprintf::@8 to myprintf::@9 [phi:myprintf::@8->myprintf::@9]
|
|
b9_from_b8:
|
|
//SEG170 [75] phi (byte~) myprintf::$22 = (byte/signed byte/word/signed word/dword/signed dword) $57 [phi:myprintf::@8->myprintf::@9#0] -- vbuaa=vbuc1
|
|
lda #$57
|
|
jmp b9
|
|
//SEG171 [75] phi from myprintf::@26 to myprintf::@9 [phi:myprintf::@26->myprintf::@9]
|
|
b9_from_b26:
|
|
//SEG172 [75] phi (byte~) myprintf::$22 = (byte) '0' [phi:myprintf::@26->myprintf::@9#0] -- vbuaa=vbuc1
|
|
lda #'0'
|
|
jmp b9
|
|
//SEG173 myprintf::@9
|
|
b9:
|
|
//SEG174 [76] (byte~) myprintf::$23 ← (byte~) myprintf::$22 + (byte) myprintf::b#15 -- vbuaa=vbuaa_plus_vbuxx
|
|
stx $ff
|
|
clc
|
|
adc $ff
|
|
//SEG175 [77] *((const byte[$64]) strTemp#0 + (byte) myprintf::bLen#14) ← (byte~) myprintf::$23 -- pbuc1_derefidx_vbuz1=vbuaa
|
|
ldy bLen
|
|
sta strTemp,y
|
|
//SEG176 [78] (byte) myprintf::bLen#10 ← ++ (byte) myprintf::bLen#14 -- vbuyy=_inc_vbuz1
|
|
ldy bLen
|
|
iny
|
|
//SEG177 [79] (byte) myprintf::b#16 ← (word) myprintf::w#10 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuxx=vwuz1_band_vbuc1
|
|
lda w
|
|
and #$f
|
|
tax
|
|
//SEG178 [80] if((byte) myprintf::b#16<(byte/signed byte/word/signed word/dword/signed dword) $a) goto myprintf::@11 -- vbuxx_lt_vbuc1_then_la1
|
|
cpx #$a
|
|
bcc b11_from_b9
|
|
//SEG179 [81] phi from myprintf::@9 to myprintf::@10 [phi:myprintf::@9->myprintf::@10]
|
|
b10_from_b9:
|
|
jmp b10
|
|
//SEG180 myprintf::@10
|
|
b10:
|
|
//SEG181 [82] phi from myprintf::@10 to myprintf::@11 [phi:myprintf::@10->myprintf::@11]
|
|
b11_from_b10:
|
|
//SEG182 [82] phi (byte~) myprintf::$28 = (byte/signed byte/word/signed word/dword/signed dword) $57 [phi:myprintf::@10->myprintf::@11#0] -- vbuaa=vbuc1
|
|
lda #$57
|
|
jmp b11
|
|
//SEG183 [82] phi from myprintf::@9 to myprintf::@11 [phi:myprintf::@9->myprintf::@11]
|
|
b11_from_b9:
|
|
//SEG184 [82] phi (byte~) myprintf::$28 = (byte) '0' [phi:myprintf::@9->myprintf::@11#0] -- vbuaa=vbuc1
|
|
lda #'0'
|
|
jmp b11
|
|
//SEG185 myprintf::@11
|
|
b11:
|
|
//SEG186 [83] (byte~) myprintf::$29 ← (byte~) myprintf::$28 + (byte) myprintf::b#16 -- vbuaa=vbuaa_plus_vbuxx
|
|
stx $ff
|
|
clc
|
|
adc $ff
|
|
//SEG187 [84] *((const byte[$64]) strTemp#0 + (byte) myprintf::bLen#10) ← (byte~) myprintf::$29 -- pbuc1_derefidx_vbuyy=vbuaa
|
|
sta strTemp,y
|
|
//SEG188 [85] (byte) myprintf::bLen#3 ← ++ (byte) myprintf::bLen#10 -- vbuz1=_inc_vbuyy
|
|
iny
|
|
sty bLen
|
|
jmp b22_from_b11
|
|
//SEG189 myprintf::@7
|
|
b7:
|
|
//SEG190 [86] (word) utoa::value#4 ← (word) myprintf::w#10 -- vwuz1=vwuz2
|
|
lda w
|
|
sta utoa.value
|
|
lda w+1
|
|
sta utoa.value+1
|
|
//SEG191 [87] call utoa
|
|
//SEG192 [133] phi from myprintf::@7 to utoa [phi:myprintf::@7->utoa]
|
|
utoa_from_b7:
|
|
jsr utoa
|
|
//SEG193 [88] phi from myprintf::@7 to myprintf::@12 [phi:myprintf::@7->myprintf::@12]
|
|
b12_from_b7:
|
|
//SEG194 [88] phi (byte) myprintf::b#17 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:myprintf::@7->myprintf::@12#0] -- vbuxx=vbuc1
|
|
ldx #1
|
|
jmp b12
|
|
//SEG195 myprintf::@12
|
|
b12:
|
|
//SEG196 [89] if(*((const byte[6]) myprintf::buf6#0 + (byte) myprintf::b#17)!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto myprintf::@13 -- pbuc1_derefidx_vbuxx_neq_0_then_la1
|
|
lda buf6,x
|
|
cmp #0
|
|
bne b13
|
|
jmp b14
|
|
//SEG197 myprintf::@14
|
|
b14:
|
|
//SEG198 [90] if((byte) myprintf::bTrailing#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto myprintf::@39 -- vbuz1_eq_0_then_la1
|
|
lda bTrailing
|
|
cmp #0
|
|
beq b39
|
|
//SEG199 [91] phi from myprintf::@14 myprintf::@18 to myprintf::@15 [phi:myprintf::@14/myprintf::@18->myprintf::@15]
|
|
b15_from_b14:
|
|
b15_from_b18:
|
|
//SEG200 [91] phi (byte) myprintf::bDigits#16 = (byte) myprintf::bDigits#14 [phi:myprintf::@14/myprintf::@18->myprintf::@15#0] -- register_copy
|
|
//SEG201 [91] phi (byte) myprintf::bLen#23 = (byte) myprintf::bLen#14 [phi:myprintf::@14/myprintf::@18->myprintf::@15#1] -- register_copy
|
|
jmp b15
|
|
//SEG202 myprintf::@15
|
|
b15:
|
|
//SEG203 [92] phi from myprintf::@15 to myprintf::@19 [phi:myprintf::@15->myprintf::@19]
|
|
b19_from_b15:
|
|
//SEG204 [92] phi (byte) myprintf::bLen#12 = (byte) myprintf::bLen#23 [phi:myprintf::@15->myprintf::@19#0] -- register_copy
|
|
//SEG205 [92] phi (byte) myprintf::digit#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:myprintf::@15->myprintf::@19#1] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta digit
|
|
jmp b19
|
|
//SEG206 [92] phi from myprintf::@19 to myprintf::@19 [phi:myprintf::@19->myprintf::@19]
|
|
b19_from_b19:
|
|
//SEG207 [92] phi (byte) myprintf::bLen#12 = (byte) myprintf::bLen#24 [phi:myprintf::@19->myprintf::@19#0] -- register_copy
|
|
//SEG208 [92] phi (byte) myprintf::digit#3 = (byte) myprintf::digit#2 [phi:myprintf::@19->myprintf::@19#1] -- register_copy
|
|
jmp b19
|
|
//SEG209 myprintf::@19
|
|
b19:
|
|
//SEG210 [93] *((const byte[$64]) strTemp#0 + (byte) myprintf::bLen#12) ← *((const byte[6]) myprintf::buf6#0 + (byte) myprintf::digit#3) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz2
|
|
ldy digit
|
|
lda buf6,y
|
|
ldy bLen
|
|
sta strTemp,y
|
|
//SEG211 [94] (byte) myprintf::bLen#24 ← ++ (byte) myprintf::bLen#12 -- vbuz1=_inc_vbuz1
|
|
inc bLen
|
|
//SEG212 [95] (byte) myprintf::digit#2 ← ++ (byte) myprintf::digit#3 -- vbuz1=_inc_vbuz1
|
|
inc digit
|
|
//SEG213 [96] if((byte) myprintf::digit#2<(byte) myprintf::b#17) goto myprintf::@19 -- vbuz1_lt_vbuxx_then_la1
|
|
txa
|
|
cmp digit
|
|
beq !+
|
|
bcs b19_from_b19
|
|
!:
|
|
jmp b20
|
|
//SEG214 myprintf::@20
|
|
b20:
|
|
//SEG215 [97] if((byte) myprintf::bTrailing#10!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto myprintf::@40 -- vbuz1_neq_0_then_la1
|
|
lda bTrailing
|
|
cmp #0
|
|
bne b40
|
|
jmp b22_from_b20
|
|
//SEG216 myprintf::@40
|
|
b40:
|
|
//SEG217 [98] if((byte) myprintf::bDigits#16>(byte) myprintf::b#17) goto myprintf::@21 -- vbuz1_gt_vbuxx_then_la1
|
|
cpx bDigits
|
|
bcc b21_from_b40
|
|
jmp b22_from_b40
|
|
//SEG218 [99] phi from myprintf::@21 myprintf::@40 to myprintf::@21 [phi:myprintf::@21/myprintf::@40->myprintf::@21]
|
|
b21_from_b21:
|
|
b21_from_b40:
|
|
//SEG219 [99] phi (byte) myprintf::bDigits#8 = (byte) myprintf::bDigits#3 [phi:myprintf::@21/myprintf::@40->myprintf::@21#0] -- register_copy
|
|
//SEG220 [99] phi (byte) myprintf::bLen#13 = (byte) myprintf::bLen#6 [phi:myprintf::@21/myprintf::@40->myprintf::@21#1] -- register_copy
|
|
jmp b21
|
|
//SEG221 myprintf::@21
|
|
b21:
|
|
//SEG222 [100] *((const byte[$64]) strTemp#0 + (byte) myprintf::bLen#13) ← (byte) ' ' -- pbuc1_derefidx_vbuz1=vbuc2
|
|
lda #' '
|
|
ldy bLen
|
|
sta strTemp,y
|
|
//SEG223 [101] (byte) myprintf::bLen#6 ← ++ (byte) myprintf::bLen#13 -- vbuz1=_inc_vbuz1
|
|
inc bLen
|
|
//SEG224 [102] (byte) myprintf::bDigits#3 ← -- (byte) myprintf::bDigits#8 -- vbuz1=_dec_vbuz1
|
|
dec bDigits
|
|
//SEG225 [103] if((byte) myprintf::bDigits#3>(byte) myprintf::b#17) goto myprintf::@21 -- vbuz1_gt_vbuxx_then_la1
|
|
cpx bDigits
|
|
bcc b21_from_b21
|
|
jmp b22_from_b21
|
|
//SEG226 myprintf::@39
|
|
b39:
|
|
//SEG227 [104] if((byte) myprintf::bDigits#14>(byte) myprintf::b#17) goto myprintf::@16 -- vbuz1_gt_vbuxx_then_la1
|
|
cpx bDigits
|
|
bcc b16_from_b39
|
|
//SEG228 [91] phi from myprintf::@39 to myprintf::@15 [phi:myprintf::@39->myprintf::@15]
|
|
b15_from_b39:
|
|
jmp b15
|
|
//SEG229 [105] phi from myprintf::@18 myprintf::@39 to myprintf::@16 [phi:myprintf::@18/myprintf::@39->myprintf::@16]
|
|
b16_from_b18:
|
|
b16_from_b39:
|
|
//SEG230 [105] phi (byte) myprintf::bDigits#10 = (byte) myprintf::bDigits#2 [phi:myprintf::@18/myprintf::@39->myprintf::@16#0] -- register_copy
|
|
//SEG231 [105] phi (byte) myprintf::bLen#11 = (byte) myprintf::bLen#4 [phi:myprintf::@18/myprintf::@39->myprintf::@16#1] -- register_copy
|
|
jmp b16
|
|
//SEG232 myprintf::@16
|
|
b16:
|
|
//SEG233 [106] if((byte) myprintf::bLeadZero#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto myprintf::@18 -- vbuz1_eq_0_then_la1
|
|
lda bLeadZero
|
|
cmp #0
|
|
beq b18_from_b16
|
|
//SEG234 [107] phi from myprintf::@16 to myprintf::@17 [phi:myprintf::@16->myprintf::@17]
|
|
b17_from_b16:
|
|
jmp b17
|
|
//SEG235 myprintf::@17
|
|
b17:
|
|
//SEG236 [108] phi from myprintf::@17 to myprintf::@18 [phi:myprintf::@17->myprintf::@18]
|
|
b18_from_b17:
|
|
//SEG237 [108] phi (byte~) myprintf::$39 = (byte) '0' [phi:myprintf::@17->myprintf::@18#0] -- vbuaa=vbuc1
|
|
lda #'0'
|
|
jmp b18
|
|
//SEG238 [108] phi from myprintf::@16 to myprintf::@18 [phi:myprintf::@16->myprintf::@18]
|
|
b18_from_b16:
|
|
//SEG239 [108] phi (byte~) myprintf::$39 = (byte) ' ' [phi:myprintf::@16->myprintf::@18#0] -- vbuaa=vbuc1
|
|
lda #' '
|
|
jmp b18
|
|
//SEG240 myprintf::@18
|
|
b18:
|
|
//SEG241 [109] *((const byte[$64]) strTemp#0 + (byte) myprintf::bLen#11) ← (byte~) myprintf::$39 -- pbuc1_derefidx_vbuz1=vbuaa
|
|
ldy bLen
|
|
sta strTemp,y
|
|
//SEG242 [110] (byte) myprintf::bLen#4 ← ++ (byte) myprintf::bLen#11 -- vbuz1=_inc_vbuz1
|
|
inc bLen
|
|
//SEG243 [111] (byte) myprintf::bDigits#2 ← -- (byte) myprintf::bDigits#10 -- vbuz1=_dec_vbuz1
|
|
dec bDigits
|
|
//SEG244 [112] if((byte) myprintf::bDigits#2>(byte) myprintf::b#17) goto myprintf::@16 -- vbuz1_gt_vbuxx_then_la1
|
|
cpx bDigits
|
|
bcc b16_from_b18
|
|
jmp b15_from_b18
|
|
//SEG245 myprintf::@13
|
|
b13:
|
|
//SEG246 [113] (byte) myprintf::b#5 ← ++ (byte) myprintf::b#17 -- vbuxx=_inc_vbuxx
|
|
inx
|
|
//SEG247 [88] phi from myprintf::@13 to myprintf::@12 [phi:myprintf::@13->myprintf::@12]
|
|
b12_from_b13:
|
|
//SEG248 [88] phi (byte) myprintf::b#17 = (byte) myprintf::b#5 [phi:myprintf::@13->myprintf::@12#0] -- register_copy
|
|
jmp b12
|
|
//SEG249 myprintf::@6
|
|
b6:
|
|
//SEG250 [114] (byte~) myprintf::$47 ← ((byte)) (word) myprintf::w#10 -- vbuaa=_byte_vwuz1
|
|
lda w
|
|
//SEG251 [115] *((const byte[$64]) strTemp#0 + (byte) myprintf::bLen#14) ← (byte~) myprintf::$47 -- pbuc1_derefidx_vbuz1=vbuaa
|
|
// "switch" is the normal way -- not supported -- https://gitlab.com/camelot/kickc/issues/170
|
|
ldy bLen
|
|
sta strTemp,y
|
|
//SEG252 [116] (byte) myprintf::bLen#1 ← ++ (byte) myprintf::bLen#14 -- vbuz1=_inc_vbuz1
|
|
inc bLen
|
|
jmp b22_from_b6
|
|
//SEG253 myprintf::@37
|
|
b37:
|
|
//SEG254 [117] if((byte) myprintf::b#1<=(byte) '9') goto myprintf::@23 -- vbuxx_le_vbuc1_then_la1
|
|
cpx #'9'
|
|
bcc b23
|
|
beq b23
|
|
jmp b4
|
|
//SEG255 myprintf::@23
|
|
b23:
|
|
//SEG256 [118] (byte) myprintf::bDigits#1 ← (byte) myprintf::b#1 - (byte) '0' -- vbuz1=vbuxx_minus_vbuc1
|
|
txa
|
|
axs #'0'
|
|
stx bDigits
|
|
//SEG257 [59] phi from myprintf::@23 myprintf::@30 to myprintf::@27 [phi:myprintf::@23/myprintf::@30->myprintf::@27]
|
|
b27_from_b23:
|
|
b27_from_b30:
|
|
//SEG258 [59] phi (byte) myprintf::bLeadZero#18 = (byte) myprintf::bLeadZero#10 [phi:myprintf::@23/myprintf::@30->myprintf::@27#0] -- register_copy
|
|
//SEG259 [59] phi (byte) myprintf::bDigits#24 = (byte) myprintf::bDigits#1 [phi:myprintf::@23/myprintf::@30->myprintf::@27#1] -- register_copy
|
|
//SEG260 [59] phi (byte) myprintf::bTrailing#21 = (byte) myprintf::bTrailing#10 [phi:myprintf::@23/myprintf::@30->myprintf::@27#2] -- register_copy
|
|
//SEG261 [59] phi (word) myprintf::w#17 = (word) myprintf::w#10 [phi:myprintf::@23/myprintf::@30->myprintf::@27#3] -- register_copy
|
|
//SEG262 [59] phi (byte) myprintf::bArg#10 = (byte) myprintf::bArg#12 [phi:myprintf::@23/myprintf::@30->myprintf::@27#4] -- register_copy
|
|
//SEG263 [59] phi (byte) myprintf::return#0 = (byte) myprintf::bLen#14 [phi:myprintf::@23/myprintf::@30->myprintf::@27#5] -- register_copy
|
|
//SEG264 [59] phi (byte) myprintf::bFormat#4 = (byte) myprintf::bFormat#10 [phi:myprintf::@23/myprintf::@30->myprintf::@27#6] -- register_copy
|
|
jmp b27
|
|
//SEG265 myprintf::@2
|
|
b2:
|
|
//SEG266 [119] if((byte) myprintf::b#1!=(byte) '%') goto myprintf::@28 -- vbuxx_neq_vbuc1_then_la1
|
|
cpx #'%'
|
|
bne b28
|
|
jmp b32
|
|
//SEG267 myprintf::@32
|
|
b32:
|
|
//SEG268 [120] if((byte) myprintf::bArg#12==(byte/signed byte/word/signed word/dword/signed dword) 0) goto myprintf::@42 -- vbuz1_eq_0_then_la1
|
|
// default format
|
|
//w = (bArg == 0) ? w1 : ((bArg == 1) ? w2 : w3); -- "?" is the normal way, but error "sequence does not contain all blocks" -- https://gitlab.com/camelot/kickc/issues/185 [FIXED]
|
|
lda bArg
|
|
cmp #0
|
|
beq b42
|
|
jmp b33
|
|
//SEG269 myprintf::@33
|
|
b33:
|
|
//SEG270 [121] if((byte) myprintf::bArg#12==(byte/signed byte/word/signed word/dword/signed dword) 1) goto myprintf::@43 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #1
|
|
cmp bArg
|
|
beq b43
|
|
jmp b34
|
|
//SEG271 myprintf::@34
|
|
b34:
|
|
//SEG272 [122] (word~) myprintf::w#53 ← (word) myprintf::w3#7 -- vwuz1=vwuz2
|
|
lda w3
|
|
sta w
|
|
lda w3+1
|
|
sta w+1
|
|
//SEG273 [123] phi from myprintf::@34 myprintf::@42 myprintf::@43 to myprintf::@29 [phi:myprintf::@34/myprintf::@42/myprintf::@43->myprintf::@29]
|
|
b29_from_b34:
|
|
b29_from_b42:
|
|
b29_from_b43:
|
|
//SEG274 [123] phi (word) myprintf::w#21 = (word~) myprintf::w#53 [phi:myprintf::@34/myprintf::@42/myprintf::@43->myprintf::@29#0] -- register_copy
|
|
jmp b29
|
|
//SEG275 myprintf::@29
|
|
b29:
|
|
//SEG276 [124] (byte) myprintf::bArg#1 ← ++ (byte) myprintf::bArg#12 -- vbuz1=_inc_vbuz1
|
|
inc bArg
|
|
//SEG277 [59] phi from myprintf::@29 to myprintf::@27 [phi:myprintf::@29->myprintf::@27]
|
|
b27_from_b29:
|
|
//SEG278 [59] phi (byte) myprintf::bLeadZero#18 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:myprintf::@29->myprintf::@27#0] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta bLeadZero
|
|
//SEG279 [59] phi (byte) myprintf::bDigits#24 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:myprintf::@29->myprintf::@27#1] -- vbuz1=vbuc1
|
|
lda #1
|
|
sta bDigits
|
|
//SEG280 [59] phi (byte) myprintf::bTrailing#21 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:myprintf::@29->myprintf::@27#2] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta bTrailing
|
|
//SEG281 [59] phi (word) myprintf::w#17 = (word) myprintf::w#21 [phi:myprintf::@29->myprintf::@27#3] -- register_copy
|
|
//SEG282 [59] phi (byte) myprintf::bArg#10 = (byte) myprintf::bArg#1 [phi:myprintf::@29->myprintf::@27#4] -- register_copy
|
|
//SEG283 [59] phi (byte) myprintf::return#0 = (byte) myprintf::bLen#14 [phi:myprintf::@29->myprintf::@27#5] -- register_copy
|
|
//SEG284 [59] phi (byte) myprintf::bFormat#4 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:myprintf::@29->myprintf::@27#6] -- vbuz1=vbuc1
|
|
lda #1
|
|
sta bFormat
|
|
jmp b27
|
|
//SEG285 myprintf::@43
|
|
b43:
|
|
//SEG286 [125] (word~) myprintf::w#52 ← (word) myprintf::w2#7 -- vwuz1=vwuz2
|
|
lda w2
|
|
sta w
|
|
lda w2+1
|
|
sta w+1
|
|
jmp b29_from_b43
|
|
//SEG287 myprintf::@42
|
|
b42:
|
|
//SEG288 [126] (word~) myprintf::w#51 ← (word) myprintf::w1#6 -- vwuz1=vwuz2
|
|
lda w1
|
|
sta w
|
|
lda w1+1
|
|
sta w+1
|
|
jmp b29_from_b42
|
|
//SEG289 myprintf::@28
|
|
b28:
|
|
//SEG290 [127] if((byte) myprintf::b#1>=(byte/signed byte/word/signed word/dword/signed dword) $41) goto myprintf::@41 -- vbuxx_ge_vbuc1_then_la1
|
|
cpx #$41
|
|
bcs b41
|
|
//SEG291 [128] phi from myprintf::@28 myprintf::@35 to myprintf::@30 [phi:myprintf::@28/myprintf::@35->myprintf::@30]
|
|
b30_from_b28:
|
|
b30_from_b35:
|
|
//SEG292 [128] phi (byte) myprintf::b#25 = (byte) myprintf::b#1 [phi:myprintf::@28/myprintf::@35->myprintf::@30#0] -- register_copy
|
|
jmp b30
|
|
//SEG293 myprintf::@30
|
|
b30:
|
|
//SEG294 [129] *((const byte[$64]) strTemp#0 + (byte) myprintf::bLen#14) ← (byte) myprintf::b#25 -- pbuc1_derefidx_vbuz1=vbuxx
|
|
// swap 0x41 / 0x61 when in lower case mode
|
|
ldy bLen
|
|
txa
|
|
sta strTemp,y
|
|
//SEG295 [130] (byte) myprintf::bLen#7 ← ++ (byte) myprintf::bLen#14 -- vbuz1=_inc_vbuz1
|
|
inc bLen
|
|
jmp b27_from_b30
|
|
//SEG296 myprintf::@41
|
|
b41:
|
|
//SEG297 [131] if((byte) myprintf::b#1<(byte/signed byte/word/signed word/dword/signed dword) $5a+(byte/signed byte/word/signed word/dword/signed dword) 1) goto myprintf::@35 -- vbuxx_lt_vbuc1_then_la1
|
|
cpx #$5a+1
|
|
bcc b35
|
|
//SEG298 [128] phi from myprintf::@41 to myprintf::@30 [phi:myprintf::@41->myprintf::@30]
|
|
b30_from_b41:
|
|
jmp b30
|
|
//SEG299 myprintf::@35
|
|
b35:
|
|
//SEG300 [132] (byte) myprintf::b#6 ← (byte) myprintf::b#1 + (byte/signed byte/word/signed word/dword/signed dword) $20 -- vbuxx=vbuxx_plus_vbuc1
|
|
txa
|
|
axs #-[$20]
|
|
jmp b30_from_b35
|
|
buf6: .fill 6, 0
|
|
}
|
|
//SEG301 utoa
|
|
// utoa(word zeropage($12) value, byte* zeropage($14) dst)
|
|
utoa: {
|
|
.label value = $12
|
|
.label dst = $14
|
|
jmp b13
|
|
//SEG302 utoa::@13
|
|
b13:
|
|
//SEG303 [134] if((word) utoa::value#4>=(word/signed word/dword/signed dword) $2710) goto utoa::@5 -- vwuz1_ge_vwuc1_then_la1
|
|
lda value+1
|
|
cmp #>$2710
|
|
bcc !+
|
|
bne b5
|
|
lda value
|
|
cmp #<$2710
|
|
bcs b5
|
|
!:
|
|
//SEG304 [135] phi from utoa::@13 to utoa::@1 [phi:utoa::@13->utoa::@1]
|
|
b1_from_b13:
|
|
//SEG305 [135] phi (byte*) utoa::dst#16 = (const byte[6]) myprintf::buf6#0 [phi:utoa::@13->utoa::@1#0] -- pbuz1=pbuc1
|
|
lda #<myprintf.buf6
|
|
sta dst
|
|
lda #>myprintf.buf6
|
|
sta dst+1
|
|
//SEG306 [135] phi (word) utoa::value#6 = (word) utoa::value#4 [phi:utoa::@13->utoa::@1#1] -- register_copy
|
|
//SEG307 [135] phi (byte) utoa::bStarted#5 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:utoa::@13->utoa::@1#2] -- vbuxx=vbuc1
|
|
ldx #0
|
|
jmp b1
|
|
//SEG308 utoa::@1
|
|
b1:
|
|
//SEG309 [136] if((byte) utoa::bStarted#5==(byte/signed byte/word/signed word/dword/signed dword) 1) goto utoa::@6 -- vbuxx_eq_vbuc1_then_la1
|
|
cpx #1
|
|
beq b6
|
|
jmp b14
|
|
//SEG310 utoa::@14
|
|
b14:
|
|
//SEG311 [137] if((word) utoa::value#6>=(word/signed word/dword/signed dword) $3e8) goto utoa::@6 -- vwuz1_ge_vwuc1_then_la1
|
|
lda value+1
|
|
cmp #>$3e8
|
|
bcc !+
|
|
bne b6
|
|
lda value
|
|
cmp #<$3e8
|
|
bcs b6
|
|
!:
|
|
//SEG312 [138] phi from utoa::@14 to utoa::@2 [phi:utoa::@14->utoa::@2]
|
|
b2_from_b14:
|
|
//SEG313 [138] phi (byte*) utoa::dst#10 = (byte*) utoa::dst#16 [phi:utoa::@14->utoa::@2#0] -- register_copy
|
|
//SEG314 [138] phi (word) utoa::value#11 = (word) utoa::value#6 [phi:utoa::@14->utoa::@2#1] -- register_copy
|
|
//SEG315 [138] phi (byte) utoa::bStarted#6 = (byte) utoa::bStarted#5 [phi:utoa::@14->utoa::@2#2] -- register_copy
|
|
jmp b2
|
|
//SEG316 utoa::@2
|
|
b2:
|
|
//SEG317 [139] if((byte) utoa::bStarted#6==(byte/signed byte/word/signed word/dword/signed dword) 1) goto utoa::@7 -- vbuxx_eq_vbuc1_then_la1
|
|
cpx #1
|
|
beq b7
|
|
jmp b15
|
|
//SEG318 utoa::@15
|
|
b15:
|
|
//SEG319 [140] if((word) utoa::value#11>=(byte/signed byte/word/signed word/dword/signed dword) $64) goto utoa::@7 -- vwuz1_ge_vwuc1_then_la1
|
|
lda value+1
|
|
cmp #>$64
|
|
bcc !+
|
|
bne b7
|
|
lda value
|
|
cmp #<$64
|
|
bcs b7
|
|
!:
|
|
//SEG320 [141] phi from utoa::@15 to utoa::@3 [phi:utoa::@15->utoa::@3]
|
|
b3_from_b15:
|
|
//SEG321 [141] phi (byte*) utoa::dst#13 = (byte*) utoa::dst#10 [phi:utoa::@15->utoa::@3#0] -- register_copy
|
|
//SEG322 [141] phi (word) utoa::value#10 = (word) utoa::value#11 [phi:utoa::@15->utoa::@3#1] -- register_copy
|
|
//SEG323 [141] phi (byte) utoa::bStarted#7 = (byte) utoa::bStarted#6 [phi:utoa::@15->utoa::@3#2] -- register_copy
|
|
jmp b3
|
|
//SEG324 utoa::@3
|
|
b3:
|
|
//SEG325 [142] if((byte) utoa::bStarted#7==(byte/signed byte/word/signed word/dword/signed dword) 1) goto utoa::@8 -- vbuxx_eq_vbuc1_then_la1
|
|
cpx #1
|
|
beq b8
|
|
jmp b16
|
|
//SEG326 utoa::@16
|
|
b16:
|
|
//SEG327 [143] if((word) utoa::value#10>=(byte/signed byte/word/signed word/dword/signed dword) $a) goto utoa::@8 -- vwuz1_ge_vwuc1_then_la1
|
|
lda value+1
|
|
cmp #>$a
|
|
bcc !+
|
|
bne b8
|
|
lda value
|
|
cmp #<$a
|
|
bcs b8
|
|
!:
|
|
//SEG328 [144] phi from utoa::@12 utoa::@16 to utoa::@4 [phi:utoa::@12/utoa::@16->utoa::@4]
|
|
b4_from_b12:
|
|
b4_from_b16:
|
|
//SEG329 [144] phi (byte*) utoa::dst#12 = (byte*) utoa::dst#4 [phi:utoa::@12/utoa::@16->utoa::@4#0] -- register_copy
|
|
//SEG330 [144] phi (word) utoa::value#12 = (word) utoa::value#3 [phi:utoa::@12/utoa::@16->utoa::@4#1] -- register_copy
|
|
jmp b4
|
|
//SEG331 utoa::@4
|
|
b4:
|
|
//SEG332 [145] (byte~) utoa::$16 ← ((byte)) (word) utoa::value#12 -- vbuaa=_byte_vwuz1
|
|
lda value
|
|
//SEG333 [146] (byte~) utoa::$17 ← (byte) '0' + (byte~) utoa::$16 -- vbuaa=vbuc1_plus_vbuaa
|
|
clc
|
|
adc #'0'
|
|
//SEG334 [147] *((byte*) utoa::dst#12) ← (byte~) utoa::$17 -- _deref_pbuz1=vbuaa
|
|
ldy #0
|
|
sta (dst),y
|
|
//SEG335 [148] (byte*) utoa::dst#3 ← ++ (byte*) utoa::dst#12 -- pbuz1=_inc_pbuz1
|
|
inc dst
|
|
bne !+
|
|
inc dst+1
|
|
!:
|
|
//SEG336 [149] *((byte*) utoa::dst#3) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuz1=vbuc1
|
|
lda #0
|
|
ldy #0
|
|
sta (dst),y
|
|
jmp breturn
|
|
//SEG337 utoa::@return
|
|
breturn:
|
|
//SEG338 [150] return
|
|
rts
|
|
//SEG339 utoa::@8
|
|
b8:
|
|
//SEG340 [151] (byte*) append::dst#3 ← (byte*) utoa::dst#13
|
|
//SEG341 [152] (word) append::value#4 ← (word) utoa::value#10
|
|
//SEG342 [153] call append
|
|
//SEG343 [173] phi from utoa::@8 to append [phi:utoa::@8->append]
|
|
append_from_b8:
|
|
//SEG344 [173] phi (word) append::sub#6 = (byte/signed byte/word/signed word/dword/signed dword) $a [phi:utoa::@8->append#0] -- vwuz1=vbuc1
|
|
lda #$a
|
|
sta append.sub
|
|
lda #0
|
|
sta append.sub+1
|
|
//SEG345 [173] phi (word) append::value#8 = (word) append::value#4 [phi:utoa::@8->append#1] -- register_copy
|
|
//SEG346 [173] phi (byte*) append::dst#4 = (byte*) append::dst#3 [phi:utoa::@8->append#2] -- register_copy
|
|
jsr append
|
|
//SEG347 [154] (word) append::return#10 ← (word) append::value#5
|
|
jmp b12
|
|
//SEG348 utoa::@12
|
|
b12:
|
|
//SEG349 [155] (word) utoa::value#3 ← (word) append::return#10
|
|
//SEG350 [156] (byte*) utoa::dst#4 ← ++ (byte*) utoa::dst#13 -- pbuz1=_inc_pbuz1
|
|
inc dst
|
|
bne !+
|
|
inc dst+1
|
|
!:
|
|
jmp b4_from_b12
|
|
//SEG351 utoa::@7
|
|
b7:
|
|
//SEG352 [157] (byte*) append::dst#2 ← (byte*) utoa::dst#10
|
|
//SEG353 [158] (word) append::value#3 ← (word) utoa::value#11
|
|
//SEG354 [159] call append
|
|
//SEG355 [173] phi from utoa::@7 to append [phi:utoa::@7->append]
|
|
append_from_b7:
|
|
//SEG356 [173] phi (word) append::sub#6 = (byte/signed byte/word/signed word/dword/signed dword) $64 [phi:utoa::@7->append#0] -- vwuz1=vbuc1
|
|
lda #$64
|
|
sta append.sub
|
|
lda #0
|
|
sta append.sub+1
|
|
//SEG357 [173] phi (word) append::value#8 = (word) append::value#3 [phi:utoa::@7->append#1] -- register_copy
|
|
//SEG358 [173] phi (byte*) append::dst#4 = (byte*) append::dst#2 [phi:utoa::@7->append#2] -- register_copy
|
|
jsr append
|
|
//SEG359 [160] (word) append::return#4 ← (word) append::value#5
|
|
jmp b11
|
|
//SEG360 utoa::@11
|
|
b11:
|
|
//SEG361 [161] (word) utoa::value#2 ← (word) append::return#4
|
|
//SEG362 [162] (byte*) utoa::dst#2 ← ++ (byte*) utoa::dst#10 -- pbuz1=_inc_pbuz1
|
|
inc dst
|
|
bne !+
|
|
inc dst+1
|
|
!:
|
|
//SEG363 [141] phi from utoa::@11 to utoa::@3 [phi:utoa::@11->utoa::@3]
|
|
b3_from_b11:
|
|
//SEG364 [141] phi (byte*) utoa::dst#13 = (byte*) utoa::dst#2 [phi:utoa::@11->utoa::@3#0] -- register_copy
|
|
//SEG365 [141] phi (word) utoa::value#10 = (word) utoa::value#2 [phi:utoa::@11->utoa::@3#1] -- register_copy
|
|
//SEG366 [141] phi (byte) utoa::bStarted#7 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:utoa::@11->utoa::@3#2] -- vbuxx=vbuc1
|
|
ldx #1
|
|
jmp b3
|
|
//SEG367 utoa::@6
|
|
b6:
|
|
//SEG368 [163] (byte*) append::dst#1 ← (byte*) utoa::dst#16
|
|
//SEG369 [164] (word) append::value#2 ← (word) utoa::value#6
|
|
//SEG370 [165] call append
|
|
//SEG371 [173] phi from utoa::@6 to append [phi:utoa::@6->append]
|
|
append_from_b6:
|
|
//SEG372 [173] phi (word) append::sub#6 = (word/signed word/dword/signed dword) $3e8 [phi:utoa::@6->append#0] -- vwuz1=vwuc1
|
|
lda #<$3e8
|
|
sta append.sub
|
|
lda #>$3e8
|
|
sta append.sub+1
|
|
//SEG373 [173] phi (word) append::value#8 = (word) append::value#2 [phi:utoa::@6->append#1] -- register_copy
|
|
//SEG374 [173] phi (byte*) append::dst#4 = (byte*) append::dst#1 [phi:utoa::@6->append#2] -- register_copy
|
|
jsr append
|
|
//SEG375 [166] (word) append::return#3 ← (word) append::value#5
|
|
jmp b10
|
|
//SEG376 utoa::@10
|
|
b10:
|
|
//SEG377 [167] (word) utoa::value#1 ← (word) append::return#3
|
|
//SEG378 [168] (byte*) utoa::dst#1 ← ++ (byte*) utoa::dst#16 -- pbuz1=_inc_pbuz1
|
|
inc dst
|
|
bne !+
|
|
inc dst+1
|
|
!:
|
|
//SEG379 [138] phi from utoa::@10 to utoa::@2 [phi:utoa::@10->utoa::@2]
|
|
b2_from_b10:
|
|
//SEG380 [138] phi (byte*) utoa::dst#10 = (byte*) utoa::dst#1 [phi:utoa::@10->utoa::@2#0] -- register_copy
|
|
//SEG381 [138] phi (word) utoa::value#11 = (word) utoa::value#1 [phi:utoa::@10->utoa::@2#1] -- register_copy
|
|
//SEG382 [138] phi (byte) utoa::bStarted#6 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:utoa::@10->utoa::@2#2] -- vbuxx=vbuc1
|
|
ldx #1
|
|
jmp b2
|
|
//SEG383 utoa::@5
|
|
b5:
|
|
//SEG384 [169] (word) append::value#1 ← (word) utoa::value#4
|
|
//SEG385 [170] call append
|
|
//SEG386 [173] phi from utoa::@5 to append [phi:utoa::@5->append]
|
|
append_from_b5:
|
|
//SEG387 [173] phi (word) append::sub#6 = (word/signed word/dword/signed dword) $2710 [phi:utoa::@5->append#0] -- vwuz1=vwuc1
|
|
lda #<$2710
|
|
sta append.sub
|
|
lda #>$2710
|
|
sta append.sub+1
|
|
//SEG388 [173] phi (word) append::value#8 = (word) append::value#1 [phi:utoa::@5->append#1] -- register_copy
|
|
//SEG389 [173] phi (byte*) append::dst#4 = (const byte[6]) myprintf::buf6#0 [phi:utoa::@5->append#2] -- pbuz1=pbuc1
|
|
lda #<myprintf.buf6
|
|
sta append.dst
|
|
lda #>myprintf.buf6
|
|
sta append.dst+1
|
|
jsr append
|
|
//SEG390 [171] (word) append::return#2 ← (word) append::value#5
|
|
jmp b9
|
|
//SEG391 utoa::@9
|
|
b9:
|
|
//SEG392 [172] (word) utoa::value#0 ← (word) append::return#2
|
|
//SEG393 [135] phi from utoa::@9 to utoa::@1 [phi:utoa::@9->utoa::@1]
|
|
b1_from_b9:
|
|
//SEG394 [135] phi (byte*) utoa::dst#16 = ++(const byte[6]) myprintf::buf6#0 [phi:utoa::@9->utoa::@1#0] -- pbuz1=pbuc1
|
|
lda #<myprintf.buf6+1
|
|
sta dst
|
|
lda #>myprintf.buf6+1
|
|
sta dst+1
|
|
//SEG395 [135] phi (word) utoa::value#6 = (word) utoa::value#0 [phi:utoa::@9->utoa::@1#1] -- register_copy
|
|
//SEG396 [135] phi (byte) utoa::bStarted#5 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:utoa::@9->utoa::@1#2] -- vbuxx=vbuc1
|
|
ldx #1
|
|
jmp b1
|
|
}
|
|
//SEG397 append
|
|
// simple 'utoa' without using multiply or divide
|
|
// append(byte* zeropage($14) dst, word zeropage($12) value, word zeropage($16) sub)
|
|
append: {
|
|
.label value = $12
|
|
.label return = $12
|
|
.label dst = $14
|
|
.label sub = $16
|
|
//SEG398 [174] *((byte*) append::dst#4) ← (byte) '0' -- _deref_pbuz1=vbuc1
|
|
lda #'0'
|
|
ldy #0
|
|
sta (dst),y
|
|
//SEG399 [175] phi from append append::@2 to append::@1 [phi:append/append::@2->append::@1]
|
|
b1_from_append:
|
|
b1_from_b2:
|
|
//SEG400 [175] phi (word) append::value#5 = (word) append::value#8 [phi:append/append::@2->append::@1#0] -- register_copy
|
|
jmp b1
|
|
//SEG401 append::@1
|
|
b1:
|
|
//SEG402 [176] if((word) append::value#5>=(word) append::sub#6) goto append::@2 -- vwuz1_ge_vwuz2_then_la1
|
|
lda sub+1
|
|
cmp value+1
|
|
bne !+
|
|
lda sub
|
|
cmp value
|
|
!:
|
|
bcc b2
|
|
beq b2
|
|
jmp breturn
|
|
//SEG403 append::@return
|
|
breturn:
|
|
//SEG404 [177] return
|
|
rts
|
|
//SEG405 append::@2
|
|
b2:
|
|
//SEG406 [178] *((byte*) append::dst#4) ← ++ *((byte*) append::dst#4) -- _deref_pbuz1=_inc__deref_pbuz1
|
|
ldy #0
|
|
lda (dst),y
|
|
clc
|
|
adc #1
|
|
ldy #0
|
|
sta (dst),y
|
|
//SEG407 [179] (word) append::value#0 ← (word) append::value#5 - (word) append::sub#6 -- vwuz1=vwuz1_minus_vwuz2
|
|
lda value
|
|
sec
|
|
sbc sub
|
|
sta value
|
|
lda value+1
|
|
sbc sub+1
|
|
sta value+1
|
|
jmp b1_from_b2
|
|
}
|
|
//SEG408 div10
|
|
// div10(word zeropage(4) val)
|
|
div10: {
|
|
.label _0 = 4
|
|
.label _2 = 6
|
|
.label _3 = 4
|
|
.label _4 = 6
|
|
.label _5 = 6
|
|
.label val = 4
|
|
.label val_1 = 6
|
|
.label return = 4
|
|
.label val_4 = 2
|
|
//SEG409 [180] (word~) div10::$0 ← (word) div10::val#4 >> (byte/signed byte/word/signed word/dword/signed dword) 1 -- vwuz1=vwuz2_ror_1
|
|
lda val_4+1
|
|
lsr
|
|
sta _0+1
|
|
lda val_4
|
|
ror
|
|
sta _0
|
|
//SEG410 [181] (word) div10::val#0 ← (word~) div10::$0 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vwuz1=vwuz1_plus_1
|
|
inc val
|
|
bne !+
|
|
inc val+1
|
|
!:
|
|
//SEG411 [182] (word~) div10::$2 ← (word) div10::val#0 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vwuz1=vwuz2_rol_1
|
|
lda val
|
|
asl
|
|
sta _2
|
|
lda val+1
|
|
rol
|
|
sta _2+1
|
|
//SEG412 [183] (word) div10::val#1 ← (word) div10::val#0 + (word~) div10::$2 -- vwuz1=vwuz2_plus_vwuz1
|
|
lda val_1
|
|
clc
|
|
adc val
|
|
sta val_1
|
|
lda val_1+1
|
|
adc val+1
|
|
sta val_1+1
|
|
//SEG413 [184] (word~) div10::$3 ← (word) div10::val#1 >> (byte/signed byte/word/signed word/dword/signed dword) 4 -- vwuz1=vwuz2_ror_4
|
|
lda val_1+1
|
|
sta _3+1
|
|
lda val_1
|
|
sta _3
|
|
ldy #4
|
|
!:
|
|
lsr _3+1
|
|
ror _3
|
|
dey
|
|
bne !-
|
|
//SEG414 [185] (word) div10::val#2 ← (word) div10::val#1 + (word~) div10::$3 -- vwuz1=vwuz2_plus_vwuz1
|
|
lda val
|
|
clc
|
|
adc val_1
|
|
sta val
|
|
lda val+1
|
|
adc val_1+1
|
|
sta val+1
|
|
//SEG415 [186] (word~) div10::$4 ← (word) div10::val#2 >> (byte/signed byte/word/signed word/dword/signed dword) 4 -- vwuz1=vwuz2_ror_4
|
|
lda val+1
|
|
sta _4+1
|
|
lda val
|
|
sta _4
|
|
ldy #4
|
|
!:
|
|
lsr _4+1
|
|
ror _4
|
|
dey
|
|
bne !-
|
|
//SEG416 [187] (word~) div10::$5 ← (word~) div10::$4 >> (byte/signed byte/word/signed word/dword/signed dword) 4 -- vwuz1=vwuz1_ror_4
|
|
ldy #4
|
|
!:
|
|
lsr _5+1
|
|
ror _5
|
|
dey
|
|
bne !-
|
|
//SEG417 [188] (word) div10::val#3 ← (word) div10::val#2 + (word~) div10::$5 -- vwuz1=vwuz1_plus_vwuz2
|
|
lda val
|
|
clc
|
|
adc _5
|
|
sta val
|
|
lda val+1
|
|
adc _5+1
|
|
sta val+1
|
|
//SEG418 [189] (word) div10::return#0 ← (word) div10::val#3 >> (byte/signed byte/word/signed word/dword/signed dword) 4 -- vwuz1=vwuz1_ror_4
|
|
ldy #4
|
|
!:
|
|
lsr return+1
|
|
ror return
|
|
dey
|
|
bne !-
|
|
jmp breturn
|
|
//SEG419 div10::@return
|
|
breturn:
|
|
//SEG420 [190] return
|
|
rts
|
|
}
|
|
//SEG421 div16u
|
|
// Performs division on two 16 bit unsigned words
|
|
// Returns the quotient dividend/divisor.
|
|
// The remainder will be set into the global variable rem16u
|
|
// Implemented using simple binary division
|
|
// div16u(word zeropage(2) dividend)
|
|
div16u: {
|
|
.label divisor = $a
|
|
.label return = 4
|
|
.label dividend = 2
|
|
//SEG422 [191] (word) divr16u::dividend#1 ← (word) div16u::dividend#0 -- vwuz1=vwuz2
|
|
lda dividend
|
|
sta divr16u.dividend
|
|
lda dividend+1
|
|
sta divr16u.dividend+1
|
|
//SEG423 [192] call divr16u
|
|
//SEG424 [196] phi from div16u to divr16u [phi:div16u->divr16u]
|
|
divr16u_from_div16u:
|
|
jsr divr16u
|
|
//SEG425 [193] (word) divr16u::return#2 ← (word) divr16u::return#0
|
|
jmp b1
|
|
//SEG426 div16u::@1
|
|
b1:
|
|
//SEG427 [194] (word) div16u::return#0 ← (word) divr16u::return#2
|
|
jmp breturn
|
|
//SEG428 div16u::@return
|
|
breturn:
|
|
//SEG429 [195] return
|
|
rts
|
|
}
|
|
//SEG430 divr16u
|
|
// Performs division on two 16 bit unsigned words and an initial remainder
|
|
// Returns the quotient dividend/divisor.
|
|
// The final remainder will be set into the global variable rem16u
|
|
// Implemented using simple binary division
|
|
// divr16u(word zeropage(8) dividend, word zeropage(6) rem)
|
|
divr16u: {
|
|
.label rem = 6
|
|
.label dividend = 8
|
|
.label quotient = 4
|
|
.label return = 4
|
|
//SEG431 [197] phi from divr16u to divr16u::@1 [phi:divr16u->divr16u::@1]
|
|
b1_from_divr16u:
|
|
//SEG432 [197] phi (byte) divr16u::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:divr16u->divr16u::@1#0] -- vbuxx=vbuc1
|
|
ldx #0
|
|
//SEG433 [197] phi (word) divr16u::quotient#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:divr16u->divr16u::@1#1] -- vwuz1=vbuc1
|
|
lda #0
|
|
sta quotient
|
|
lda #0
|
|
sta quotient+1
|
|
//SEG434 [197] phi (word) divr16u::dividend#2 = (word) divr16u::dividend#1 [phi:divr16u->divr16u::@1#2] -- register_copy
|
|
//SEG435 [197] phi (word) divr16u::rem#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:divr16u->divr16u::@1#3] -- vwuz1=vbuc1
|
|
lda #0
|
|
sta rem
|
|
lda #0
|
|
sta rem+1
|
|
jmp b1
|
|
//SEG436 [197] phi from divr16u::@3 to divr16u::@1 [phi:divr16u::@3->divr16u::@1]
|
|
b1_from_b3:
|
|
//SEG437 [197] phi (byte) divr16u::i#2 = (byte) divr16u::i#1 [phi:divr16u::@3->divr16u::@1#0] -- register_copy
|
|
//SEG438 [197] phi (word) divr16u::quotient#3 = (word) divr16u::return#0 [phi:divr16u::@3->divr16u::@1#1] -- register_copy
|
|
//SEG439 [197] phi (word) divr16u::dividend#2 = (word) divr16u::dividend#0 [phi:divr16u::@3->divr16u::@1#2] -- register_copy
|
|
//SEG440 [197] phi (word) divr16u::rem#4 = (word) divr16u::rem#9 [phi:divr16u::@3->divr16u::@1#3] -- register_copy
|
|
jmp b1
|
|
//SEG441 divr16u::@1
|
|
b1:
|
|
//SEG442 [198] (word) divr16u::rem#0 ← (word) divr16u::rem#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vwuz1=vwuz1_rol_1
|
|
asl rem
|
|
rol rem+1
|
|
//SEG443 [199] (byte~) divr16u::$1 ← > (word) divr16u::dividend#2 -- vbuaa=_hi_vwuz1
|
|
lda dividend+1
|
|
//SEG444 [200] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 -- vbuaa=vbuaa_band_vbuc1
|
|
and #$80
|
|
//SEG445 [201] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 -- vbuaa_eq_0_then_la1
|
|
cmp #0
|
|
beq b2_from_b1
|
|
jmp b4
|
|
//SEG446 divr16u::@4
|
|
b4:
|
|
//SEG447 [202] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 -- vwuz1=vwuz1_bor_vbuc1
|
|
lda #1
|
|
ora rem
|
|
sta rem
|
|
//SEG448 [203] phi from divr16u::@1 divr16u::@4 to divr16u::@2 [phi:divr16u::@1/divr16u::@4->divr16u::@2]
|
|
b2_from_b1:
|
|
b2_from_b4:
|
|
//SEG449 [203] phi (word) divr16u::rem#5 = (word) divr16u::rem#0 [phi:divr16u::@1/divr16u::@4->divr16u::@2#0] -- register_copy
|
|
jmp b2
|
|
//SEG450 divr16u::@2
|
|
b2:
|
|
//SEG451 [204] (word) divr16u::dividend#0 ← (word) divr16u::dividend#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vwuz1=vwuz1_rol_1
|
|
asl dividend
|
|
rol dividend+1
|
|
//SEG452 [205] (word) divr16u::quotient#1 ← (word) divr16u::quotient#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vwuz1=vwuz1_rol_1
|
|
asl quotient
|
|
rol quotient+1
|
|
//SEG453 [206] if((word) divr16u::rem#5<(const word) div16u::divisor#0) goto divr16u::@3 -- vwuz1_lt_vwuc1_then_la1
|
|
lda rem+1
|
|
cmp #>div16u.divisor
|
|
bcc b3_from_b2
|
|
bne !+
|
|
lda rem
|
|
cmp #<div16u.divisor
|
|
bcc b3_from_b2
|
|
!:
|
|
jmp b5
|
|
//SEG454 divr16u::@5
|
|
b5:
|
|
//SEG455 [207] (word) divr16u::quotient#2 ← ++ (word) divr16u::quotient#1 -- vwuz1=_inc_vwuz1
|
|
inc quotient
|
|
bne !+
|
|
inc quotient+1
|
|
!:
|
|
//SEG456 [208] (word) divr16u::rem#2 ← (word) divr16u::rem#5 - (const word) div16u::divisor#0 -- vwuz1=vwuz1_minus_vwuc1
|
|
lda rem
|
|
sec
|
|
sbc #<div16u.divisor
|
|
sta rem
|
|
lda rem+1
|
|
sbc #>div16u.divisor
|
|
sta rem+1
|
|
//SEG457 [209] phi from divr16u::@2 divr16u::@5 to divr16u::@3 [phi:divr16u::@2/divr16u::@5->divr16u::@3]
|
|
b3_from_b2:
|
|
b3_from_b5:
|
|
//SEG458 [209] phi (word) divr16u::return#0 = (word) divr16u::quotient#1 [phi:divr16u::@2/divr16u::@5->divr16u::@3#0] -- register_copy
|
|
//SEG459 [209] phi (word) divr16u::rem#9 = (word) divr16u::rem#5 [phi:divr16u::@2/divr16u::@5->divr16u::@3#1] -- register_copy
|
|
jmp b3
|
|
//SEG460 divr16u::@3
|
|
b3:
|
|
//SEG461 [210] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 -- vbuxx=_inc_vbuxx
|
|
inx
|
|
//SEG462 [211] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 -- vbuxx_neq_vbuc1_then_la1
|
|
cpx #$10
|
|
bne b1_from_b3
|
|
jmp breturn
|
|
//SEG463 divr16u::@return
|
|
breturn:
|
|
//SEG464 [212] return
|
|
rts
|
|
}
|
|
// "char buf16[16]" is the normal way -- not supported -- https://gitlab.com/camelot/kickc/issues/162
|
|
strTemp: .fill $64, 0
|
|
|
|
ASSEMBLER OPTIMIZATIONS
|
|
Removing instruction jmp b1
|
|
Removing instruction jmp bend
|
|
Removing instruction jmp b1
|
|
Removing instruction jmp b2
|
|
Removing instruction jmp b8
|
|
Removing instruction jmp b3
|
|
Removing instruction jmp b9
|
|
Removing instruction jmp b10
|
|
Removing instruction jmp b4
|
|
Removing instruction jmp b5
|
|
Removing instruction jmp b6
|
|
Removing instruction jmp b11
|
|
Removing instruction jmp b7
|
|
Removing instruction jmp b12
|
|
Removing instruction jmp b13
|
|
Removing instruction jmp breturn
|
|
Removing instruction jmp breturn
|
|
Removing instruction jmp b1
|
|
Removing instruction jmp b31
|
|
Removing instruction jmp b27
|
|
Removing instruction jmp b36
|
|
Removing instruction jmp breturn
|
|
Removing instruction jmp b4
|
|
Removing instruction jmp b24
|
|
Removing instruction jmp b25
|
|
Removing instruction jmp b38
|
|
Removing instruction jmp b22
|
|
Removing instruction jmp b8
|
|
Removing instruction jmp b9
|
|
Removing instruction jmp b10
|
|
Removing instruction jmp b11
|
|
Removing instruction jmp b12
|
|
Removing instruction jmp b14
|
|
Removing instruction jmp b15
|
|
Removing instruction jmp b19
|
|
Removing instruction jmp b20
|
|
Removing instruction jmp b21
|
|
Removing instruction jmp b16
|
|
Removing instruction jmp b17
|
|
Removing instruction jmp b18
|
|
Removing instruction jmp b32
|
|
Removing instruction jmp b33
|
|
Removing instruction jmp b34
|
|
Removing instruction jmp b29
|
|
Removing instruction jmp b30
|
|
Removing instruction jmp b13
|
|
Removing instruction jmp b1
|
|
Removing instruction jmp b14
|
|
Removing instruction jmp b2
|
|
Removing instruction jmp b15
|
|
Removing instruction jmp b3
|
|
Removing instruction jmp b16
|
|
Removing instruction jmp b4
|
|
Removing instruction jmp breturn
|
|
Removing instruction jmp b12
|
|
Removing instruction jmp b11
|
|
Removing instruction jmp b10
|
|
Removing instruction jmp b9
|
|
Removing instruction jmp b1
|
|
Removing instruction jmp breturn
|
|
Removing instruction jmp breturn
|
|
Removing instruction jmp b1
|
|
Removing instruction jmp breturn
|
|
Removing instruction jmp b1
|
|
Removing instruction jmp b4
|
|
Removing instruction jmp b2
|
|
Removing instruction jmp b5
|
|
Removing instruction jmp b3
|
|
Removing instruction jmp breturn
|
|
Succesful ASM optimization Pass5NextJumpElimination
|
|
Removing instruction lda #0
|
|
Removing instruction lda #0
|
|
Removing instruction lda #0
|
|
Removing instruction lda #0
|
|
Removing instruction lda #0
|
|
Removing instruction lda #0
|
|
Removing instruction lda #0
|
|
Removing instruction lda #0
|
|
Removing instruction lda #0
|
|
Removing instruction lda #0
|
|
Removing instruction lda #0
|
|
Removing instruction ldy bLen
|
|
Replacing instruction ldy #0 with TAY
|
|
Removing instruction ldy #0
|
|
Removing instruction lda val_1+1
|
|
Removing instruction lda val+1
|
|
Replacing instruction lda #0 with TXA
|
|
Removing instruction lda #0
|
|
Removing instruction lda #0
|
|
Removing instruction lda #0
|
|
Succesful ASM optimization Pass5UnnecesaryLoadElimination
|
|
Replacing label b1_from_b10 with b1
|
|
Replacing label b5_from_b13 with b5
|
|
Replacing label b1_from_b27 with b1
|
|
Replacing label b22_from_b11 with b22
|
|
Replacing label b19_from_b19 with b19
|
|
Replacing label b22_from_b20 with b22
|
|
Replacing label b21_from_b40 with b21
|
|
Replacing label b22_from_b40 with b22
|
|
Replacing label b21_from_b21 with b21
|
|
Replacing label b22_from_b21 with b22
|
|
Replacing label b16_from_b39 with b16
|
|
Replacing label b16_from_b18 with b16
|
|
Replacing label b15_from_b18 with b15
|
|
Replacing label b22_from_b6 with b22
|
|
Replacing label b29_from_b43 with b29
|
|
Replacing label b29_from_b42 with b29
|
|
Replacing label b30_from_b35 with b30
|
|
Replacing label b4_from_b12 with b4
|
|
Replacing label b1_from_b2 with b1
|
|
Replacing label b2_from_b1 with b2
|
|
Replacing label b3_from_b2 with b3
|
|
Replacing label b3_from_b2 with b3
|
|
Replacing label b1_from_b3 with b1
|
|
Removing instruction b1_from_bbegin:
|
|
Removing instruction b1:
|
|
Removing instruction bend_from_b1:
|
|
Removing instruction b1_from_b10:
|
|
Removing instruction b9_from_b3:
|
|
Removing instruction b5_from_b13:
|
|
Removing instruction b12_from_b7:
|
|
Removing instruction breturn:
|
|
Removing instruction b1_from_b27:
|
|
Removing instruction b22_from_b11:
|
|
Removing instruction b22_from_b20:
|
|
Removing instruction b22_from_b21:
|
|
Removing instruction b22_from_b38:
|
|
Removing instruction b22_from_b40:
|
|
Removing instruction b22_from_b6:
|
|
Removing instruction b27_from_b22:
|
|
Removing instruction b8_from_b26:
|
|
Removing instruction b9_from_b8:
|
|
Removing instruction b10_from_b9:
|
|
Removing instruction b11_from_b10:
|
|
Removing instruction b15_from_b14:
|
|
Removing instruction b15_from_b18:
|
|
Removing instruction b19_from_b15:
|
|
Removing instruction b19_from_b19:
|
|
Removing instruction b21_from_b21:
|
|
Removing instruction b21_from_b40:
|
|
Removing instruction b16_from_b18:
|
|
Removing instruction b16_from_b39:
|
|
Removing instruction b17_from_b16:
|
|
Removing instruction b18_from_b17:
|
|
Removing instruction b27_from_b23:
|
|
Removing instruction b29_from_b34:
|
|
Removing instruction b29_from_b42:
|
|
Removing instruction b29_from_b43:
|
|
Removing instruction b30_from_b28:
|
|
Removing instruction b30_from_b35:
|
|
Removing instruction b2_from_b14:
|
|
Removing instruction b3_from_b15:
|
|
Removing instruction b4_from_b12:
|
|
Removing instruction b4_from_b16:
|
|
Removing instruction append_from_b8:
|
|
Removing instruction append_from_b7:
|
|
Removing instruction append_from_b6:
|
|
Removing instruction append_from_b5:
|
|
Removing instruction b1_from_b9:
|
|
Removing instruction b1_from_append:
|
|
Removing instruction b1_from_b2:
|
|
Removing instruction breturn:
|
|
Removing instruction b1_from_b3:
|
|
Removing instruction b2_from_b1:
|
|
Removing instruction b2_from_b4:
|
|
Removing instruction b3_from_b2:
|
|
Removing instruction b3_from_b5:
|
|
Succesful ASM optimization Pass5RedundantLabelElimination
|
|
Removing instruction bend:
|
|
Removing instruction b1_from_main:
|
|
Removing instruction b8:
|
|
Removing instruction b3:
|
|
Removing instruction myprintf_from_b3:
|
|
Removing instruction b9:
|
|
Removing instruction b10:
|
|
Removing instruction b4:
|
|
Removing instruction b5_from_b4:
|
|
Removing instruction b11:
|
|
Removing instruction b7:
|
|
Removing instruction myprintf_from_b7:
|
|
Removing instruction b12:
|
|
Removing instruction b13:
|
|
Removing instruction breturn:
|
|
Removing instruction b1_from_myprintf:
|
|
Removing instruction b31:
|
|
Removing instruction b27_from_b31:
|
|
Removing instruction b36:
|
|
Removing instruction breturn:
|
|
Removing instruction b27_from_b4:
|
|
Removing instruction b24:
|
|
Removing instruction b25:
|
|
Removing instruction b38:
|
|
Removing instruction b8:
|
|
Removing instruction b10:
|
|
Removing instruction utoa_from_b7:
|
|
Removing instruction b12_from_b7:
|
|
Removing instruction b14:
|
|
Removing instruction b20:
|
|
Removing instruction b15_from_b39:
|
|
Removing instruction b17:
|
|
Removing instruction b12_from_b13:
|
|
Removing instruction b32:
|
|
Removing instruction b33:
|
|
Removing instruction b34:
|
|
Removing instruction b27_from_b29:
|
|
Removing instruction b30_from_b41:
|
|
Removing instruction b13:
|
|
Removing instruction b1_from_b13:
|
|
Removing instruction b14:
|
|
Removing instruction b15:
|
|
Removing instruction b16:
|
|
Removing instruction breturn:
|
|
Removing instruction b12:
|
|
Removing instruction b11:
|
|
Removing instruction b3_from_b11:
|
|
Removing instruction b10:
|
|
Removing instruction b2_from_b10:
|
|
Removing instruction b9:
|
|
Removing instruction breturn:
|
|
Removing instruction breturn:
|
|
Removing instruction divr16u_from_div16u:
|
|
Removing instruction b1:
|
|
Removing instruction b1_from_divr16u:
|
|
Removing instruction b4:
|
|
Removing instruction b5:
|
|
Removing instruction breturn:
|
|
Succesful ASM optimization Pass5UnusedLabelElimination
|
|
Updating BasicUpstart to call main directly
|
|
Removing instruction jsr main
|
|
Succesful ASM optimization Pass5SkipBegin
|
|
Skipping double jump to b27 in jmp b27_from_b30
|
|
Succesful ASM optimization Pass5DoubleJumpElimination
|
|
Relabelling long label b9_from_b26 to b8
|
|
Relabelling long label b11_from_b9 to b10
|
|
Relabelling long label b18_from_b16 to b14
|
|
Relabelling long label b27_from_b30 to b17
|
|
Succesful ASM optimization Pass5RelabelLongLabels
|
|
Removing instruction jmp b1
|
|
Removing instruction jmp b5
|
|
Removing instruction jmp b1
|
|
Removing instruction jmp b19
|
|
Removing instruction jmp b1
|
|
Succesful ASM optimization Pass5NextJumpElimination
|
|
Replacing instruction lda #0 with TYA
|
|
Removing instruction bbegin:
|
|
Removing instruction b17:
|
|
Succesful ASM optimization Pass5UnusedLabelElimination
|
|
Fixing long branch [183] beq b2 to bne
|
|
Fixing long branch [205] bcs b37 to bcc
|
|
Fixing long branch [216] beq b6 to bne
|
|
Fixing long branch [424] bne b5 to beq
|
|
Fixing long branch [429] bcs b5 to bcc
|
|
|
|
FINAL SYMBOL TABLE
|
|
(label) @1
|
|
(label) @begin
|
|
(label) @end
|
|
(void()) Print()
|
|
(label) Print::@return
|
|
(byte*) TIMEHI
|
|
(const byte*) TIMEHI#0 TIMEHI = ((byte*))(byte/word/signed word/dword/signed dword) $a1
|
|
(byte*) TIMELO
|
|
(const byte*) TIMELO#0 TIMELO = ((byte*))(byte/word/signed word/dword/signed dword) $a2
|
|
(byte*) VICBANK
|
|
(const byte*) VICBANK#0 VICBANK = ((byte*))(word/dword/signed dword) $d018
|
|
(word()) append((byte*) append::dst , (word) append::value , (word) append::sub)
|
|
(label) append::@1
|
|
(label) append::@2
|
|
(label) append::@return
|
|
(byte*) append::dst
|
|
(byte*) append::dst#1 dst zp ZP_WORD:20 2.0
|
|
(byte*) append::dst#2 dst zp ZP_WORD:20 2.0
|
|
(byte*) append::dst#3 dst zp ZP_WORD:20 2.0
|
|
(byte*) append::dst#4 dst zp ZP_WORD:20 335.0
|
|
(word) append::return
|
|
(word) append::return#10 return zp ZP_WORD:18 4.0
|
|
(word) append::return#2 return zp ZP_WORD:18 4.0
|
|
(word) append::return#3 return zp ZP_WORD:18 4.0
|
|
(word) append::return#4 return zp ZP_WORD:18 4.0
|
|
(word) append::sub
|
|
(word) append::sub#6 sub zp ZP_WORD:22 333.6666666666667
|
|
(word) append::value
|
|
(word) append::value#0 value zp ZP_WORD:18 2002.0
|
|
(word) append::value#1 value zp ZP_WORD:18 4.0
|
|
(word) append::value#2 value zp ZP_WORD:18 4.0
|
|
(word) append::value#3 value zp ZP_WORD:18 4.0
|
|
(word) append::value#4 value zp ZP_WORD:18 4.0
|
|
(word) append::value#5 value zp ZP_WORD:18 376.625
|
|
(word) append::value#8 value zp ZP_WORD:18 5.0
|
|
(word()) div10((word) div10::val)
|
|
(word~) div10::$0 $0 zp ZP_WORD:4 4.0
|
|
(word~) div10::$2 $2 zp ZP_WORD:6 4.0
|
|
(word~) div10::$3 $3 zp ZP_WORD:4 4.0
|
|
(word~) div10::$4 $4 zp ZP_WORD:6 4.0
|
|
(word~) div10::$5 $5 zp ZP_WORD:6 4.0
|
|
(label) div10::@return
|
|
(word) div10::return
|
|
(word) div10::return#0 return zp ZP_WORD:4 34.33333333333333
|
|
(word) div10::return#2 return zp ZP_WORD:4 202.0
|
|
(word) div10::val
|
|
(word) div10::val#0 val zp ZP_WORD:4 3.0
|
|
(word) div10::val#1 val#1 zp ZP_WORD:6 3.0
|
|
(word) div10::val#2 val zp ZP_WORD:4 2.0
|
|
(word) div10::val#3 val zp ZP_WORD:4 4.0
|
|
(word) div10::val#4 val#4 zp ZP_WORD:2 103.0
|
|
(word()) div16u((word) div16u::dividend , (word) div16u::divisor)
|
|
(label) div16u::@1
|
|
(label) div16u::@return
|
|
(word) div16u::dividend
|
|
(word) div16u::dividend#0 dividend zp ZP_WORD:2 103.0
|
|
(word) div16u::divisor
|
|
(const word) div16u::divisor#0 divisor = (byte/signed byte/word/signed word/dword/signed dword) $a
|
|
(word) div16u::return
|
|
(word) div16u::return#0 return zp ZP_WORD:4 34.33333333333333
|
|
(word) div16u::return#2 return zp ZP_WORD:4 202.0
|
|
(word()) divr16u((word) divr16u::dividend , (word) divr16u::divisor , (word) divr16u::rem)
|
|
(byte~) divr16u::$1 reg byte a 2002.0
|
|
(byte~) divr16u::$2 reg byte a 2002.0
|
|
(label) divr16u::@1
|
|
(label) divr16u::@2
|
|
(label) divr16u::@3
|
|
(label) divr16u::@4
|
|
(label) divr16u::@5
|
|
(label) divr16u::@return
|
|
(word) divr16u::dividend
|
|
(word) divr16u::dividend#0 dividend zp ZP_WORD:8 250.25
|
|
(word) divr16u::dividend#1 dividend zp ZP_WORD:8 2.0
|
|
(word) divr16u::dividend#2 dividend zp ZP_WORD:8 429.2857142857143
|
|
(word) divr16u::divisor
|
|
(byte) divr16u::i
|
|
(byte) divr16u::i#1 reg byte x 1501.5
|
|
(byte) divr16u::i#2 reg byte x 154.0
|
|
(word) divr16u::quotient
|
|
(word) divr16u::quotient#1 quotient zp ZP_WORD:4 1501.5
|
|
(word) divr16u::quotient#2 quotient zp ZP_WORD:4 1001.0
|
|
(word) divr16u::quotient#3 quotient zp ZP_WORD:4 250.25
|
|
(word) divr16u::rem
|
|
(word) divr16u::rem#0 rem zp ZP_WORD:6 750.75
|
|
(word) divr16u::rem#1 rem zp ZP_WORD:6 2002.0
|
|
(word) divr16u::rem#2 rem zp ZP_WORD:6 2002.0
|
|
(word) divr16u::rem#4 rem zp ZP_WORD:6 2002.0
|
|
(word) divr16u::rem#5 rem zp ZP_WORD:6 1001.0
|
|
(word) divr16u::rem#9 rem zp ZP_WORD:6 1001.0
|
|
(word) divr16u::return
|
|
(word) divr16u::return#0 return zp ZP_WORD:4 601.0
|
|
(word) divr16u::return#2 return zp ZP_WORD:4 4.0
|
|
(signed word()) main()
|
|
(word~) main::$11 $11 zp ZP_WORD:6 22.0
|
|
(word~) main::$12 $12 zp ZP_WORD:6 11.0
|
|
(word~) main::$13 $13 zp ZP_WORD:8 22.0
|
|
(word~) main::$2 $2 zp ZP_WORD:6 22.0
|
|
(word~) main::$3 $3 zp ZP_WORD:6 11.0
|
|
(word~) main::$4 $4 zp ZP_WORD:8 22.0
|
|
(label) main::@1
|
|
(label) main::@10
|
|
(label) main::@11
|
|
(label) main::@12
|
|
(label) main::@13
|
|
(label) main::@2
|
|
(label) main::@3
|
|
(label) main::@4
|
|
(label) main::@5
|
|
(label) main::@6
|
|
(label) main::@7
|
|
(label) main::@8
|
|
(label) main::@9
|
|
(label) main::@return
|
|
(signed word) main::return
|
|
(const string) main::str str = (string) "200 DIV16U: %5d,%4d IN %04d FRAMESm@"
|
|
(const string) main::str1 str1 = (string) "200 DIV10 : %5d,%4d IN %04d FRAMESm@"
|
|
(word) main::u
|
|
(word) main::u#11 u zp ZP_WORD:2 7.05263157894737
|
|
(word) main::u#15 u zp ZP_WORD:2 7.05263157894737
|
|
(word) main::u#2 u zp ZP_WORD:2 7.333333333333333
|
|
(word) main::u#4 u zp ZP_WORD:2 7.333333333333333
|
|
(word) main::v
|
|
(word) main::v#1 v zp ZP_WORD:4 14.0
|
|
(word) main::v#2 v zp ZP_WORD:4 14.0
|
|
(byte()) myprintf((byte*) myprintf::dst , (byte*) myprintf::str , (word) myprintf::w1 , (word) myprintf::w2 , (word) myprintf::w3)
|
|
(word~) myprintf::$17 $17 zp ZP_WORD:18 202.0
|
|
(byte~) myprintf::$22 reg byte a 101.0
|
|
(byte~) myprintf::$23 reg byte a 202.0
|
|
(byte~) myprintf::$28 reg byte a 101.0
|
|
(byte~) myprintf::$29 reg byte a 202.0
|
|
(byte~) myprintf::$39 reg byte a 1001.0
|
|
(byte~) myprintf::$47 reg byte a 202.0
|
|
(label) myprintf::@1
|
|
(label) myprintf::@10
|
|
(label) myprintf::@11
|
|
(label) myprintf::@12
|
|
(label) myprintf::@13
|
|
(label) myprintf::@14
|
|
(label) myprintf::@15
|
|
(label) myprintf::@16
|
|
(label) myprintf::@17
|
|
(label) myprintf::@18
|
|
(label) myprintf::@19
|
|
(label) myprintf::@2
|
|
(label) myprintf::@20
|
|
(label) myprintf::@21
|
|
(label) myprintf::@22
|
|
(label) myprintf::@23
|
|
(label) myprintf::@24
|
|
(label) myprintf::@25
|
|
(label) myprintf::@26
|
|
(label) myprintf::@27
|
|
(label) myprintf::@28
|
|
(label) myprintf::@29
|
|
(label) myprintf::@3
|
|
(label) myprintf::@30
|
|
(label) myprintf::@31
|
|
(label) myprintf::@32
|
|
(label) myprintf::@33
|
|
(label) myprintf::@34
|
|
(label) myprintf::@35
|
|
(label) myprintf::@36
|
|
(label) myprintf::@37
|
|
(label) myprintf::@38
|
|
(label) myprintf::@39
|
|
(label) myprintf::@4
|
|
(label) myprintf::@40
|
|
(label) myprintf::@41
|
|
(label) myprintf::@42
|
|
(label) myprintf::@43
|
|
(label) myprintf::@5
|
|
(label) myprintf::@6
|
|
(label) myprintf::@7
|
|
(label) myprintf::@8
|
|
(label) myprintf::@9
|
|
(label) myprintf::@return
|
|
(byte) myprintf::b
|
|
(byte) myprintf::b#1 reg byte x 126.25000000000003
|
|
(byte) myprintf::b#15 reg byte x 75.75
|
|
(byte) myprintf::b#16 reg byte x 75.75
|
|
(byte) myprintf::b#17 reg byte x 248.32
|
|
(byte) myprintf::b#25 reg byte x 303.0
|
|
(byte) myprintf::b#5 reg byte x 2002.0
|
|
(byte) myprintf::b#6 reg byte x 202.0
|
|
(byte) myprintf::bArg
|
|
(byte) myprintf::bArg#1 bArg zp ZP_BYTE:11 202.0
|
|
(byte) myprintf::bArg#10 bArg zp ZP_BYTE:11 235.66666666666663
|
|
(byte) myprintf::bArg#12 bArg zp ZP_BYTE:11 12.625
|
|
(byte) myprintf::bDigits
|
|
(byte) myprintf::bDigits#1 bDigits zp ZP_BYTE:17 202.0
|
|
(byte) myprintf::bDigits#10 bDigits zp ZP_BYTE:17 350.5
|
|
(byte) myprintf::bDigits#14 bDigits zp ZP_BYTE:17 23.488372093023255
|
|
(byte) myprintf::bDigits#16 bDigits zp ZP_BYTE:17 188.25
|
|
(byte) myprintf::bDigits#2 bDigits zp ZP_BYTE:17 2002.0
|
|
(byte) myprintf::bDigits#24 bDigits zp ZP_BYTE:17 201.99999999999997
|
|
(byte) myprintf::bDigits#25 bDigits zp ZP_BYTE:17 1607.0
|
|
(byte) myprintf::bDigits#3 bDigits zp ZP_BYTE:17 2002.0
|
|
(byte) myprintf::bDigits#8 bDigits zp ZP_BYTE:17 701.0
|
|
(byte) myprintf::bFormat
|
|
(byte) myprintf::bFormat#10 bFormat zp ZP_BYTE:10 40.4
|
|
(byte) myprintf::bFormat#4 bFormat zp ZP_BYTE:10 168.33333333333331
|
|
(byte) myprintf::bLeadZero
|
|
(byte) myprintf::bLeadZero#10 bLeadZero zp ZP_BYTE:15 22.818181818181817
|
|
(byte) myprintf::bLeadZero#18 bLeadZero zp ZP_BYTE:15 168.33333333333331
|
|
(byte) myprintf::bLen
|
|
(byte) myprintf::bLen#1 bLen zp ZP_BYTE:16 202.0
|
|
(byte) myprintf::bLen#10 reg byte y 43.285714285714285
|
|
(byte) myprintf::bLen#11 bLen zp ZP_BYTE:16 620.8
|
|
(byte) myprintf::bLen#12 bLen zp ZP_BYTE:16 1552.0
|
|
(byte) myprintf::bLen#13 bLen zp ZP_BYTE:16 1552.0
|
|
(byte) myprintf::bLen#14 bLen zp ZP_BYTE:16 34.487804878048784
|
|
(byte) myprintf::bLen#23 bLen zp ZP_BYTE:16 1203.0
|
|
(byte) myprintf::bLen#24 bLen zp ZP_BYTE:16 460.99999999999994
|
|
(byte) myprintf::bLen#28 bLen zp ZP_BYTE:16 1607.0
|
|
(byte) myprintf::bLen#3 bLen zp ZP_BYTE:16 202.0
|
|
(byte) myprintf::bLen#4 bLen zp ZP_BYTE:16 1001.0
|
|
(byte) myprintf::bLen#6 bLen zp ZP_BYTE:16 1001.0
|
|
(byte) myprintf::bLen#7 bLen zp ZP_BYTE:16 202.0
|
|
(byte) myprintf::bTrailing
|
|
(byte) myprintf::bTrailing#10 bTrailing zp ZP_BYTE:14 10.712121212121211
|
|
(byte) myprintf::bTrailing#21 bTrailing zp ZP_BYTE:14 168.33333333333331
|
|
(byte[6]) myprintf::buf6
|
|
(const byte[6]) myprintf::buf6#0 buf6 = { fill( 6, 0) }
|
|
(byte) myprintf::digit
|
|
(byte) myprintf::digit#2 digit zp ZP_BYTE:10 1501.5
|
|
(byte) myprintf::digit#3 digit zp ZP_BYTE:10 1001.0
|
|
(byte*) myprintf::dst
|
|
(byte) myprintf::return
|
|
(byte) myprintf::return#0 return zp ZP_BYTE:16 236.3333333333333
|
|
(byte*) myprintf::str
|
|
(byte*) myprintf::str#0 str zp ZP_WORD:8 151.5
|
|
(byte*) myprintf::str#10 str zp ZP_WORD:8 4.121621621621622
|
|
(byte*) myprintf::str#5 str zp ZP_WORD:8 2.0
|
|
(word) myprintf::w
|
|
(word) myprintf::w#10 w zp ZP_WORD:12 15.303030303030305
|
|
(word) myprintf::w#17 w zp ZP_WORD:12 235.66666666666663
|
|
(word) myprintf::w#21 w zp ZP_WORD:12 202.0
|
|
(word~) myprintf::w#51 w zp ZP_WORD:12 202.0
|
|
(word~) myprintf::w#52 w zp ZP_WORD:12 202.0
|
|
(word~) myprintf::w#53 w zp ZP_WORD:12 202.0
|
|
(word) myprintf::w1
|
|
(word) myprintf::w1#0 w1 zp ZP_WORD:2 11.0
|
|
(word) myprintf::w1#1 w1 zp ZP_WORD:2 11.0
|
|
(word) myprintf::w1#6 w1 zp ZP_WORD:2 1.5974025974025974
|
|
(word) myprintf::w2
|
|
(word) myprintf::w2#0 w2 zp ZP_WORD:4 22.0
|
|
(word) myprintf::w2#1 w2 zp ZP_WORD:4 22.0
|
|
(word) myprintf::w2#7 w2 zp ZP_WORD:4 1.5974025974025974
|
|
(word) myprintf::w3
|
|
(word) myprintf::w3#0 w3 zp ZP_WORD:6 7.333333333333333
|
|
(word) myprintf::w3#1 w3 zp ZP_WORD:6 7.333333333333333
|
|
(word) myprintf::w3#7 w3 zp ZP_WORD:6 1.5974025974025974
|
|
(byte[$64]) strTemp
|
|
(const byte[$64]) strTemp#0 strTemp = { fill( $64, 0) }
|
|
(void()) utoa((word) utoa::value , (byte*) utoa::dst)
|
|
(byte~) utoa::$16 reg byte a 4.0
|
|
(byte~) utoa::$17 reg byte a 4.0
|
|
(label) utoa::@1
|
|
(label) utoa::@10
|
|
(label) utoa::@11
|
|
(label) utoa::@12
|
|
(label) utoa::@13
|
|
(label) utoa::@14
|
|
(label) utoa::@15
|
|
(label) utoa::@16
|
|
(label) utoa::@2
|
|
(label) utoa::@3
|
|
(label) utoa::@4
|
|
(label) utoa::@5
|
|
(label) utoa::@6
|
|
(label) utoa::@7
|
|
(label) utoa::@8
|
|
(label) utoa::@9
|
|
(label) utoa::@return
|
|
(byte) utoa::bStarted
|
|
(byte) utoa::bStarted#5 reg byte x 1.3333333333333333
|
|
(byte) utoa::bStarted#6 reg byte x 2.0
|
|
(byte) utoa::bStarted#7 reg byte x 4.0
|
|
(byte*) utoa::dst
|
|
(byte*) utoa::dst#1 dst zp ZP_WORD:20 4.0
|
|
(byte*) utoa::dst#10 dst zp ZP_WORD:20 1.25
|
|
(byte*) utoa::dst#12 dst zp ZP_WORD:20 2.0
|
|
(byte*) utoa::dst#13 dst zp ZP_WORD:20 1.25
|
|
(byte*) utoa::dst#16 dst zp ZP_WORD:20 0.75
|
|
(byte*) utoa::dst#2 dst zp ZP_WORD:20 4.0
|
|
(byte*) utoa::dst#3 dst zp ZP_WORD:20 4.0
|
|
(byte*) utoa::dst#4 dst zp ZP_WORD:20 4.0
|
|
(word) utoa::value
|
|
(word) utoa::value#0 value zp ZP_WORD:18 4.0
|
|
(word) utoa::value#1 value zp ZP_WORD:18 2.0
|
|
(word) utoa::value#10 value zp ZP_WORD:18 2.5
|
|
(word) utoa::value#11 value zp ZP_WORD:18 2.5
|
|
(word) utoa::value#12 value zp ZP_WORD:18 6.0
|
|
(word) utoa::value#2 value zp ZP_WORD:18 2.0
|
|
(word) utoa::value#3 value zp ZP_WORD:18 2.0
|
|
(word) utoa::value#4 value zp ZP_WORD:18 35.66666666666666
|
|
(word) utoa::value#6 value zp ZP_WORD:18 2.5
|
|
(byte*) zp1
|
|
(const byte*) zp1#0 zp1 = ((byte*))(byte/signed byte/word/signed word/dword/signed dword) $61
|
|
(byte*) zp2
|
|
(const byte*) zp2#0 zp2 = ((byte*))(byte/signed byte/word/signed word/dword/signed dword) $62
|
|
|
|
zp ZP_WORD:2 [ main::u#11 main::u#2 myprintf::w1#6 myprintf::w1#0 myprintf::w1#1 div16u::dividend#0 main::u#15 main::u#4 div10::val#4 ]
|
|
zp ZP_WORD:4 [ myprintf::w2#7 myprintf::w2#0 myprintf::w2#1 main::v#1 main::v#2 div16u::return#2 div16u::return#0 div10::return#2 div10::return#0 divr16u::quotient#3 divr16u::return#0 divr16u::quotient#1 divr16u::quotient#2 divr16u::return#2 div10::$3 div10::val#2 div10::val#3 div10::$0 div10::val#0 ]
|
|
zp ZP_WORD:6 [ myprintf::w3#7 myprintf::w3#0 myprintf::w3#1 main::$3 main::$12 main::$2 main::$11 divr16u::rem#4 divr16u::rem#9 divr16u::rem#5 divr16u::rem#0 divr16u::rem#1 divr16u::rem#2 div10::$2 div10::val#1 div10::$4 div10::$5 ]
|
|
zp ZP_WORD:8 [ myprintf::str#10 myprintf::str#5 myprintf::str#0 divr16u::dividend#2 divr16u::dividend#1 divr16u::dividend#0 main::$4 main::$13 ]
|
|
zp ZP_BYTE:10 [ myprintf::bFormat#10 myprintf::bFormat#4 myprintf::digit#3 myprintf::digit#2 ]
|
|
zp ZP_BYTE:11 [ myprintf::bArg#12 myprintf::bArg#10 myprintf::bArg#1 ]
|
|
zp ZP_WORD:12 [ myprintf::w#10 myprintf::w#17 myprintf::w#21 myprintf::w#51 myprintf::w#52 myprintf::w#53 ]
|
|
zp ZP_BYTE:14 [ myprintf::bTrailing#10 myprintf::bTrailing#21 ]
|
|
zp ZP_BYTE:15 [ myprintf::bLeadZero#10 myprintf::bLeadZero#18 ]
|
|
reg byte a [ myprintf::$22 ]
|
|
reg byte a [ myprintf::$28 ]
|
|
reg byte x [ myprintf::b#17 myprintf::b#5 ]
|
|
zp ZP_BYTE:16 [ myprintf::bLen#11 myprintf::bLen#13 myprintf::bLen#12 myprintf::bLen#23 myprintf::bLen#14 myprintf::return#0 myprintf::bLen#28 myprintf::bLen#7 myprintf::bLen#3 myprintf::bLen#24 myprintf::bLen#6 myprintf::bLen#1 myprintf::bLen#4 ]
|
|
zp ZP_BYTE:17 [ myprintf::bDigits#10 myprintf::bDigits#8 myprintf::bDigits#14 myprintf::bDigits#24 myprintf::bDigits#25 myprintf::bDigits#1 myprintf::bDigits#16 myprintf::bDigits#3 myprintf::bDigits#2 ]
|
|
reg byte a [ myprintf::$39 ]
|
|
reg byte x [ myprintf::b#25 myprintf::b#1 myprintf::b#6 ]
|
|
reg byte x [ utoa::bStarted#7 utoa::bStarted#6 utoa::bStarted#5 ]
|
|
zp ZP_WORD:18 [ utoa::value#12 utoa::value#3 utoa::value#10 utoa::value#2 utoa::value#11 utoa::value#6 utoa::value#4 utoa::value#0 utoa::value#1 append::value#5 append::value#8 append::value#1 append::value#2 append::value#3 append::value#4 append::value#0 append::return#10 append::return#4 append::return#3 append::return#2 myprintf::$17 ]
|
|
zp ZP_WORD:20 [ utoa::dst#12 utoa::dst#4 utoa::dst#13 utoa::dst#2 utoa::dst#10 utoa::dst#16 utoa::dst#1 append::dst#4 append::dst#1 append::dst#2 append::dst#3 utoa::dst#3 ]
|
|
zp ZP_WORD:22 [ append::sub#6 ]
|
|
reg byte x [ divr16u::i#2 divr16u::i#1 ]
|
|
reg byte x [ myprintf::b#15 ]
|
|
reg byte a [ myprintf::$23 ]
|
|
reg byte y [ myprintf::bLen#10 ]
|
|
reg byte x [ myprintf::b#16 ]
|
|
reg byte a [ myprintf::$29 ]
|
|
reg byte a [ myprintf::$47 ]
|
|
reg byte a [ utoa::$16 ]
|
|
reg byte a [ utoa::$17 ]
|
|
reg byte a [ divr16u::$1 ]
|
|
reg byte a [ divr16u::$2 ]
|
|
|
|
|
|
FINAL ASSEMBLER
|
|
Score: 355871
|
|
|
|
//SEG0 File Comments
|
|
//SEG1 Basic Upstart
|
|
.pc = $801 "Basic"
|
|
:BasicUpstart(main)
|
|
.pc = $80d "Program"
|
|
//SEG2 Global Constants & labels
|
|
.label zp1 = $61
|
|
// #define zp1 *(byte *)0x61 -- allows "zp1" vs "*zp1" below -- not supported -- https://gitlab.com/camelot/kickc/issues/169
|
|
.label zp2 = $62
|
|
.label TIMEHI = $a1
|
|
.label TIMELO = $a2
|
|
.label VICBANK = $d018
|
|
//SEG3 @begin
|
|
//SEG4 [1] phi from @begin to @1 [phi:@begin->@1]
|
|
//SEG5 @1
|
|
//SEG6 [2] call main
|
|
//SEG7 [3] phi from @1 to @end [phi:@1->@end]
|
|
//SEG8 @end
|
|
//SEG9 main
|
|
main: {
|
|
.label _2 = 6
|
|
.label _3 = 6
|
|
.label _4 = 8
|
|
.label _11 = 6
|
|
.label _12 = 6
|
|
.label _13 = 8
|
|
.label v = 4
|
|
.label u = 2
|
|
//SEG10 [4] *((const byte*) VICBANK#0) ← (byte/signed byte/word/signed word/dword/signed dword) $17 -- _deref_pbuc1=vbuc2
|
|
lda #$17
|
|
sta VICBANK
|
|
//SEG11 [5] *((const byte*) zp1#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2
|
|
lda #0
|
|
sta zp1
|
|
//SEG12 [6] phi from main to main::@1 [phi:main->main::@1]
|
|
//SEG13 [6] phi (word) main::u#11 = (word/signed word/dword/signed dword) $6e85 [phi:main->main::@1#0] -- vwuz1=vwuc1
|
|
lda #<$6e85
|
|
sta u
|
|
lda #>$6e85
|
|
sta u+1
|
|
//SEG14 [6] phi from main::@10 to main::@1 [phi:main::@10->main::@1]
|
|
//SEG15 [6] phi (word) main::u#11 = (word) main::u#2 [phi:main::@10->main::@1#0] -- register_copy
|
|
//SEG16 main::@1
|
|
b1:
|
|
//SEG17 [7] *((const byte*) TIMEHI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2
|
|
lda #0
|
|
sta TIMEHI
|
|
//SEG18 [8] *((const byte*) TIMELO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2
|
|
sta TIMELO
|
|
//SEG19 [9] *((const byte*) zp2#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2
|
|
sta zp2
|
|
//SEG20 main::@2
|
|
b2:
|
|
//SEG21 [10] (word) div16u::dividend#0 ← (word) main::u#11
|
|
//SEG22 [11] call div16u
|
|
jsr div16u
|
|
//SEG23 [12] (word) div16u::return#2 ← (word) div16u::return#0
|
|
//SEG24 main::@8
|
|
//SEG25 [13] (word) main::v#1 ← (word) div16u::return#2
|
|
//SEG26 [14] *((const byte*) zp2#0) ← ++ *((const byte*) zp2#0) -- _deref_pbuc1=_inc__deref_pbuc1
|
|
inc zp2
|
|
//SEG27 [15] if(*((const byte*) zp2#0)<(byte/word/signed word/dword/signed dword) $c8) goto main::@2 -- _deref_pbuc1_lt_vbuc2_then_la1
|
|
lda zp2
|
|
cmp #$c8
|
|
bcc b2
|
|
//SEG28 main::@3
|
|
//SEG29 [16] (word~) main::$2 ← ((word)) *((const byte*) TIMEHI#0) -- vwuz1=_word__deref_pbuc1
|
|
lda TIMEHI
|
|
sta _2
|
|
lda #0
|
|
sta _2+1
|
|
//SEG30 [17] (word~) main::$3 ← (word~) main::$2 << (byte/signed byte/word/signed word/dword/signed dword) 8 -- vwuz1=vwuz1_rol_vbuc1
|
|
ldy #8
|
|
cpy #0
|
|
beq !e+
|
|
!:
|
|
asl _3
|
|
rol _3+1
|
|
dey
|
|
bne !-
|
|
!e:
|
|
//SEG31 [18] (word~) main::$4 ← ((word)) *((const byte*) TIMELO#0) -- vwuz1=_word__deref_pbuc1
|
|
lda TIMELO
|
|
sta _4
|
|
lda #0
|
|
sta _4+1
|
|
//SEG32 [19] (word) myprintf::w3#0 ← (word~) main::$3 + (word~) main::$4 -- vwuz1=vwuz1_plus_vwuz2
|
|
lda myprintf.w3
|
|
clc
|
|
adc _4
|
|
sta myprintf.w3
|
|
lda myprintf.w3+1
|
|
adc _4+1
|
|
sta myprintf.w3+1
|
|
//SEG33 [20] (word) myprintf::w1#0 ← (word) main::u#11
|
|
//SEG34 [21] (word) myprintf::w2#0 ← (word) main::v#1
|
|
//SEG35 [22] call myprintf
|
|
//SEG36 [54] phi from main::@3 to myprintf [phi:main::@3->myprintf]
|
|
//SEG37 [54] phi (word) myprintf::w3#7 = (word) myprintf::w3#0 [phi:main::@3->myprintf#0] -- register_copy
|
|
//SEG38 [54] phi (word) myprintf::w2#7 = (word) myprintf::w2#0 [phi:main::@3->myprintf#1] -- register_copy
|
|
//SEG39 [54] phi (word) myprintf::w1#6 = (word) myprintf::w1#0 [phi:main::@3->myprintf#2] -- register_copy
|
|
//SEG40 [54] phi (byte*) myprintf::str#5 = (const string) main::str [phi:main::@3->myprintf#3] -- pbuz1=pbuc1
|
|
lda #<str
|
|
sta myprintf.str
|
|
lda #>str
|
|
sta myprintf.str+1
|
|
jsr myprintf
|
|
//SEG41 [23] phi from main::@3 to main::@9 [phi:main::@3->main::@9]
|
|
//SEG42 main::@9
|
|
//SEG43 [24] call Print
|
|
jsr Print
|
|
//SEG44 main::@10
|
|
//SEG45 [25] (word) main::u#2 ← (word) main::u#11 - (word/signed word/dword/signed dword) $4d2 -- vwuz1=vwuz1_minus_vwuc1
|
|
lda u
|
|
sec
|
|
sbc #<$4d2
|
|
sta u
|
|
lda u+1
|
|
sbc #>$4d2
|
|
sta u+1
|
|
//SEG46 [26] *((const byte*) zp1#0) ← ++ *((const byte*) zp1#0) -- _deref_pbuc1=_inc__deref_pbuc1
|
|
inc zp1
|
|
//SEG47 [27] if(*((const byte*) zp1#0)<(byte/signed byte/word/signed word/dword/signed dword) $a) goto main::@1 -- _deref_pbuc1_lt_vbuc2_then_la1
|
|
lda zp1
|
|
cmp #$a
|
|
bcc b1
|
|
//SEG48 main::@4
|
|
//SEG49 [28] *((const byte*) zp1#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2
|
|
lda #0
|
|
sta zp1
|
|
//SEG50 [29] phi from main::@4 to main::@5 [phi:main::@4->main::@5]
|
|
//SEG51 [29] phi (word) main::u#15 = (word/signed word/dword/signed dword) $6e85 [phi:main::@4->main::@5#0] -- vwuz1=vwuc1
|
|
lda #<$6e85
|
|
sta u
|
|
lda #>$6e85
|
|
sta u+1
|
|
//SEG52 [29] phi from main::@13 to main::@5 [phi:main::@13->main::@5]
|
|
//SEG53 [29] phi (word) main::u#15 = (word) main::u#4 [phi:main::@13->main::@5#0] -- register_copy
|
|
//SEG54 main::@5
|
|
b5:
|
|
//SEG55 [30] *((const byte*) TIMEHI#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2
|
|
lda #0
|
|
sta TIMEHI
|
|
//SEG56 [31] *((const byte*) TIMELO#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2
|
|
sta TIMELO
|
|
//SEG57 [32] *((const byte*) zp2#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuc1=vbuc2
|
|
sta zp2
|
|
//SEG58 main::@6
|
|
b6:
|
|
//SEG59 [33] (word) div10::val#4 ← (word) main::u#15
|
|
//SEG60 [34] call div10
|
|
jsr div10
|
|
//SEG61 [35] (word) div10::return#2 ← (word) div10::return#0
|
|
//SEG62 main::@11
|
|
//SEG63 [36] (word) main::v#2 ← (word) div10::return#2
|
|
//SEG64 [37] *((const byte*) zp2#0) ← ++ *((const byte*) zp2#0) -- _deref_pbuc1=_inc__deref_pbuc1
|
|
inc zp2
|
|
//SEG65 [38] if(*((const byte*) zp2#0)<(byte/word/signed word/dword/signed dword) $c8) goto main::@6 -- _deref_pbuc1_lt_vbuc2_then_la1
|
|
lda zp2
|
|
cmp #$c8
|
|
bcc b6
|
|
//SEG66 main::@7
|
|
//SEG67 [39] (word~) main::$11 ← ((word)) *((const byte*) TIMEHI#0) -- vwuz1=_word__deref_pbuc1
|
|
lda TIMEHI
|
|
sta _11
|
|
lda #0
|
|
sta _11+1
|
|
//SEG68 [40] (word~) main::$12 ← (word~) main::$11 << (byte/signed byte/word/signed word/dword/signed dword) 8 -- vwuz1=vwuz1_rol_vbuc1
|
|
ldy #8
|
|
cpy #0
|
|
beq !e+
|
|
!:
|
|
asl _12
|
|
rol _12+1
|
|
dey
|
|
bne !-
|
|
!e:
|
|
//SEG69 [41] (word~) main::$13 ← ((word)) *((const byte*) TIMELO#0) -- vwuz1=_word__deref_pbuc1
|
|
lda TIMELO
|
|
sta _13
|
|
lda #0
|
|
sta _13+1
|
|
//SEG70 [42] (word) myprintf::w3#1 ← (word~) main::$12 + (word~) main::$13 -- vwuz1=vwuz1_plus_vwuz2
|
|
lda myprintf.w3
|
|
clc
|
|
adc _13
|
|
sta myprintf.w3
|
|
lda myprintf.w3+1
|
|
adc _13+1
|
|
sta myprintf.w3+1
|
|
//SEG71 [43] (word) myprintf::w1#1 ← (word) main::u#15
|
|
//SEG72 [44] (word) myprintf::w2#1 ← (word) main::v#2
|
|
//SEG73 [45] call myprintf
|
|
//SEG74 [54] phi from main::@7 to myprintf [phi:main::@7->myprintf]
|
|
//SEG75 [54] phi (word) myprintf::w3#7 = (word) myprintf::w3#1 [phi:main::@7->myprintf#0] -- register_copy
|
|
//SEG76 [54] phi (word) myprintf::w2#7 = (word) myprintf::w2#1 [phi:main::@7->myprintf#1] -- register_copy
|
|
//SEG77 [54] phi (word) myprintf::w1#6 = (word) myprintf::w1#1 [phi:main::@7->myprintf#2] -- register_copy
|
|
//SEG78 [54] phi (byte*) myprintf::str#5 = (const string) main::str1 [phi:main::@7->myprintf#3] -- pbuz1=pbuc1
|
|
lda #<str1
|
|
sta myprintf.str
|
|
lda #>str1
|
|
sta myprintf.str+1
|
|
jsr myprintf
|
|
//SEG79 [46] phi from main::@7 to main::@12 [phi:main::@7->main::@12]
|
|
//SEG80 main::@12
|
|
//SEG81 [47] call Print
|
|
jsr Print
|
|
//SEG82 main::@13
|
|
//SEG83 [48] (word) main::u#4 ← (word) main::u#15 - (word/signed word/dword/signed dword) $4d2 -- vwuz1=vwuz1_minus_vwuc1
|
|
lda u
|
|
sec
|
|
sbc #<$4d2
|
|
sta u
|
|
lda u+1
|
|
sbc #>$4d2
|
|
sta u+1
|
|
//SEG84 [49] *((const byte*) zp1#0) ← ++ *((const byte*) zp1#0) -- _deref_pbuc1=_inc__deref_pbuc1
|
|
inc zp1
|
|
//SEG85 [50] if(*((const byte*) zp1#0)<(byte/signed byte/word/signed word/dword/signed dword) $a) goto main::@5 -- _deref_pbuc1_lt_vbuc2_then_la1
|
|
lda zp1
|
|
cmp #$a
|
|
bcc b5
|
|
//SEG86 main::@return
|
|
//SEG87 [51] return
|
|
rts
|
|
str: .text "200 DIV16U: %5d,%4d IN %04d FRAMESm@"
|
|
str1: .text "200 DIV10 : %5d,%4d IN %04d FRAMESm@"
|
|
}
|
|
//SEG88 Print
|
|
Print: {
|
|
//SEG89 asm { ldy#0 loop: ldastrTemp,y beqdone jsr$FFD2 iny jmploop done: }
|
|
// can this assembly be placed in a separate file and call it from the C code here?
|
|
ldy #0
|
|
loop:
|
|
lda strTemp,y
|
|
beq done
|
|
jsr $ffd2
|
|
iny
|
|
jmp loop
|
|
done:
|
|
//SEG90 Print::@return
|
|
//SEG91 [53] return
|
|
rts
|
|
}
|
|
//SEG92 myprintf
|
|
// myprintf(byte* zeropage(8) str, word zeropage(2) w1, word zeropage(4) w2, word zeropage(6) w3)
|
|
myprintf: {
|
|
.label _17 = $12
|
|
.label str = 8
|
|
.label bDigits = $11
|
|
.label bLen = $10
|
|
.label digit = $a
|
|
.label bArg = $b
|
|
.label return = $10
|
|
.label w1 = 2
|
|
.label w2 = 4
|
|
.label w3 = 6
|
|
.label bFormat = $a
|
|
.label w = $c
|
|
.label bTrailing = $e
|
|
.label bLeadZero = $f
|
|
//SEG93 [55] phi from myprintf to myprintf::@1 [phi:myprintf->myprintf::@1]
|
|
//SEG94 [55] phi (byte) myprintf::bLeadZero#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:myprintf->myprintf::@1#0] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta bLeadZero
|
|
//SEG95 [55] phi (byte) myprintf::bDigits#14 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:myprintf->myprintf::@1#1] -- vbuz1=vbuc1
|
|
sta bDigits
|
|
//SEG96 [55] phi (byte) myprintf::bTrailing#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:myprintf->myprintf::@1#2] -- vbuz1=vbuc1
|
|
sta bTrailing
|
|
//SEG97 [55] phi (word) myprintf::w#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:myprintf->myprintf::@1#3] -- vwuz1=vbuc1
|
|
sta w
|
|
sta w+1
|
|
//SEG98 [55] phi (byte) myprintf::bLen#14 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:myprintf->myprintf::@1#4] -- vbuz1=vbuc1
|
|
sta bLen
|
|
//SEG99 [55] phi (byte) myprintf::bArg#12 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:myprintf->myprintf::@1#5] -- vbuz1=vbuc1
|
|
sta bArg
|
|
//SEG100 [55] phi (byte) myprintf::bFormat#10 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:myprintf->myprintf::@1#6] -- vbuz1=vbuc1
|
|
sta bFormat
|
|
//SEG101 [55] phi (byte*) myprintf::str#10 = (byte*) myprintf::str#5 [phi:myprintf->myprintf::@1#7] -- register_copy
|
|
//SEG102 [55] phi from myprintf::@27 to myprintf::@1 [phi:myprintf::@27->myprintf::@1]
|
|
//SEG103 [55] phi (byte) myprintf::bLeadZero#10 = (byte) myprintf::bLeadZero#18 [phi:myprintf::@27->myprintf::@1#0] -- register_copy
|
|
//SEG104 [55] phi (byte) myprintf::bDigits#14 = (byte) myprintf::bDigits#24 [phi:myprintf::@27->myprintf::@1#1] -- register_copy
|
|
//SEG105 [55] phi (byte) myprintf::bTrailing#10 = (byte) myprintf::bTrailing#21 [phi:myprintf::@27->myprintf::@1#2] -- register_copy
|
|
//SEG106 [55] phi (word) myprintf::w#10 = (word) myprintf::w#17 [phi:myprintf::@27->myprintf::@1#3] -- register_copy
|
|
//SEG107 [55] phi (byte) myprintf::bLen#14 = (byte) myprintf::return#0 [phi:myprintf::@27->myprintf::@1#4] -- register_copy
|
|
//SEG108 [55] phi (byte) myprintf::bArg#12 = (byte) myprintf::bArg#10 [phi:myprintf::@27->myprintf::@1#5] -- register_copy
|
|
//SEG109 [55] phi (byte) myprintf::bFormat#10 = (byte) myprintf::bFormat#4 [phi:myprintf::@27->myprintf::@1#6] -- register_copy
|
|
//SEG110 [55] phi (byte*) myprintf::str#10 = (byte*) myprintf::str#0 [phi:myprintf::@27->myprintf::@1#7] -- register_copy
|
|
//SEG111 myprintf::@1
|
|
b1:
|
|
//SEG112 [56] (byte) myprintf::b#1 ← *((byte*) myprintf::str#10) -- vbuxx=_deref_pbuz1
|
|
ldy #0
|
|
lda (str),y
|
|
tax
|
|
//SEG113 [57] if((byte) myprintf::bFormat#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto myprintf::@2 -- vbuz1_eq_0_then_la1
|
|
lda bFormat
|
|
cmp #0
|
|
bne !b2+
|
|
jmp b2
|
|
!b2:
|
|
//SEG114 myprintf::@31
|
|
//SEG115 [58] if((byte) myprintf::b#1!=(byte) '0') goto myprintf::@3 -- vbuxx_neq_vbuc1_then_la1
|
|
cpx #'0'
|
|
bne b3
|
|
//SEG116 [59] phi from myprintf::@31 to myprintf::@27 [phi:myprintf::@31->myprintf::@27]
|
|
//SEG117 [59] phi (byte) myprintf::bLeadZero#18 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:myprintf::@31->myprintf::@27#0] -- vbuz1=vbuc1
|
|
lda #1
|
|
sta bLeadZero
|
|
//SEG118 [59] phi (byte) myprintf::bDigits#24 = (byte) myprintf::bDigits#14 [phi:myprintf::@31->myprintf::@27#1] -- register_copy
|
|
//SEG119 [59] phi (byte) myprintf::bTrailing#21 = (byte) myprintf::bTrailing#10 [phi:myprintf::@31->myprintf::@27#2] -- register_copy
|
|
//SEG120 [59] phi (word) myprintf::w#17 = (word) myprintf::w#10 [phi:myprintf::@31->myprintf::@27#3] -- register_copy
|
|
//SEG121 [59] phi (byte) myprintf::bArg#10 = (byte) myprintf::bArg#12 [phi:myprintf::@31->myprintf::@27#4] -- register_copy
|
|
//SEG122 [59] phi (byte) myprintf::return#0 = (byte) myprintf::bLen#14 [phi:myprintf::@31->myprintf::@27#5] -- register_copy
|
|
//SEG123 [59] phi (byte) myprintf::bFormat#4 = (byte) myprintf::bFormat#10 [phi:myprintf::@31->myprintf::@27#6] -- register_copy
|
|
//SEG124 myprintf::@27
|
|
b27:
|
|
//SEG125 [60] (byte*) myprintf::str#0 ← ++ (byte*) myprintf::str#10 -- pbuz1=_inc_pbuz1
|
|
inc str
|
|
bne !+
|
|
inc str+1
|
|
!:
|
|
//SEG126 [61] if(*((byte*) myprintf::str#0)!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto myprintf::@1 -- _deref_pbuz1_neq_0_then_la1
|
|
ldy #0
|
|
lda (str),y
|
|
cmp #0
|
|
bne b1
|
|
//SEG127 myprintf::@36
|
|
//SEG128 [62] *((const byte[$64]) strTemp#0 + (byte) myprintf::return#0) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- pbuc1_derefidx_vbuz1=vbuc2
|
|
tya
|
|
ldy return
|
|
sta strTemp,y
|
|
//SEG129 myprintf::@return
|
|
//SEG130 [63] return
|
|
rts
|
|
//SEG131 myprintf::@3
|
|
b3:
|
|
//SEG132 [64] if((byte) myprintf::b#1>=(byte) '1') goto myprintf::@37 -- vbuxx_ge_vbuc1_then_la1
|
|
cpx #'1'
|
|
bcc !b37+
|
|
jmp b37
|
|
!b37:
|
|
//SEG133 myprintf::@4
|
|
b4:
|
|
//SEG134 [65] if((byte) myprintf::b#1!=(byte) '-') goto myprintf::@5 -- vbuxx_neq_vbuc1_then_la1
|
|
cpx #'-'
|
|
bne b5
|
|
//SEG135 [59] phi from myprintf::@4 to myprintf::@27 [phi:myprintf::@4->myprintf::@27]
|
|
//SEG136 [59] phi (byte) myprintf::bLeadZero#18 = (byte) myprintf::bLeadZero#10 [phi:myprintf::@4->myprintf::@27#0] -- register_copy
|
|
//SEG137 [59] phi (byte) myprintf::bDigits#24 = (byte) myprintf::bDigits#14 [phi:myprintf::@4->myprintf::@27#1] -- register_copy
|
|
//SEG138 [59] phi (byte) myprintf::bTrailing#21 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:myprintf::@4->myprintf::@27#2] -- vbuz1=vbuc1
|
|
lda #1
|
|
sta bTrailing
|
|
//SEG139 [59] phi (word) myprintf::w#17 = (word) myprintf::w#10 [phi:myprintf::@4->myprintf::@27#3] -- register_copy
|
|
//SEG140 [59] phi (byte) myprintf::bArg#10 = (byte) myprintf::bArg#12 [phi:myprintf::@4->myprintf::@27#4] -- register_copy
|
|
//SEG141 [59] phi (byte) myprintf::return#0 = (byte) myprintf::bLen#14 [phi:myprintf::@4->myprintf::@27#5] -- register_copy
|
|
//SEG142 [59] phi (byte) myprintf::bFormat#4 = (byte) myprintf::bFormat#10 [phi:myprintf::@4->myprintf::@27#6] -- register_copy
|
|
jmp b27
|
|
//SEG143 myprintf::@5
|
|
b5:
|
|
//SEG144 [66] if((byte) myprintf::b#1==(byte) 'c') goto myprintf::@6 -- vbuxx_eq_vbuc1_then_la1
|
|
cpx #'c'
|
|
bne !b6+
|
|
jmp b6
|
|
!b6:
|
|
//SEG145 myprintf::@24
|
|
//SEG146 [67] if((byte) myprintf::b#1==(byte) 'd') goto myprintf::@7 -- vbuxx_eq_vbuc1_then_la1
|
|
cpx #'d'
|
|
beq b7
|
|
//SEG147 myprintf::@25
|
|
//SEG148 [68] if((byte) myprintf::b#1==(byte) 'x') goto myprintf::@26 -- vbuxx_eq_vbuc1_then_la1
|
|
cpx #'x'
|
|
beq b26
|
|
//SEG149 myprintf::@38
|
|
//SEG150 [69] if((byte) myprintf::b#1==(byte) 'X') goto myprintf::@26 -- vbuxx_eq_vbuc1_then_la1
|
|
cpx #'X'
|
|
beq b26
|
|
//SEG151 [70] phi from myprintf::@11 myprintf::@20 myprintf::@21 myprintf::@38 myprintf::@40 myprintf::@6 to myprintf::@22 [phi:myprintf::@11/myprintf::@20/myprintf::@21/myprintf::@38/myprintf::@40/myprintf::@6->myprintf::@22]
|
|
//SEG152 [70] phi (byte) myprintf::bDigits#25 = (byte) myprintf::bDigits#14 [phi:myprintf::@11/myprintf::@20/myprintf::@21/myprintf::@38/myprintf::@40/myprintf::@6->myprintf::@22#0] -- register_copy
|
|
//SEG153 [70] phi (byte) myprintf::bLen#28 = (byte) myprintf::bLen#3 [phi:myprintf::@11/myprintf::@20/myprintf::@21/myprintf::@38/myprintf::@40/myprintf::@6->myprintf::@22#1] -- register_copy
|
|
//SEG154 myprintf::@22
|
|
b22:
|
|
//SEG155 [59] phi from myprintf::@22 to myprintf::@27 [phi:myprintf::@22->myprintf::@27]
|
|
//SEG156 [59] phi (byte) myprintf::bLeadZero#18 = (byte) myprintf::bLeadZero#10 [phi:myprintf::@22->myprintf::@27#0] -- register_copy
|
|
//SEG157 [59] phi (byte) myprintf::bDigits#24 = (byte) myprintf::bDigits#25 [phi:myprintf::@22->myprintf::@27#1] -- register_copy
|
|
//SEG158 [59] phi (byte) myprintf::bTrailing#21 = (byte) myprintf::bTrailing#10 [phi:myprintf::@22->myprintf::@27#2] -- register_copy
|
|
//SEG159 [59] phi (word) myprintf::w#17 = (word) myprintf::w#10 [phi:myprintf::@22->myprintf::@27#3] -- register_copy
|
|
//SEG160 [59] phi (byte) myprintf::bArg#10 = (byte) myprintf::bArg#12 [phi:myprintf::@22->myprintf::@27#4] -- register_copy
|
|
//SEG161 [59] phi (byte) myprintf::return#0 = (byte) myprintf::bLen#28 [phi:myprintf::@22->myprintf::@27#5] -- register_copy
|
|
//SEG162 [59] phi (byte) myprintf::bFormat#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:myprintf::@22->myprintf::@27#6] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta bFormat
|
|
jmp b27
|
|
//SEG163 myprintf::@26
|
|
b26:
|
|
//SEG164 [71] (word~) myprintf::$17 ← (word) myprintf::w#10 >> (byte/signed byte/word/signed word/dword/signed dword) 4 -- vwuz1=vwuz2_ror_4
|
|
lda w+1
|
|
sta _17+1
|
|
lda w
|
|
sta _17
|
|
ldy #4
|
|
!:
|
|
lsr _17+1
|
|
ror _17
|
|
dey
|
|
bne !-
|
|
//SEG165 [72] (byte) myprintf::b#15 ← (word~) myprintf::$17 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuxx=vwuz1_band_vbuc1
|
|
lda _17
|
|
and #$f
|
|
tax
|
|
//SEG166 [73] if((byte) myprintf::b#15<(byte/signed byte/word/signed word/dword/signed dword) $a) goto myprintf::@9 -- vbuxx_lt_vbuc1_then_la1
|
|
cpx #$a
|
|
bcc b8
|
|
//SEG167 [74] phi from myprintf::@26 to myprintf::@8 [phi:myprintf::@26->myprintf::@8]
|
|
//SEG168 myprintf::@8
|
|
//SEG169 [75] phi from myprintf::@8 to myprintf::@9 [phi:myprintf::@8->myprintf::@9]
|
|
//SEG170 [75] phi (byte~) myprintf::$22 = (byte/signed byte/word/signed word/dword/signed dword) $57 [phi:myprintf::@8->myprintf::@9#0] -- vbuaa=vbuc1
|
|
lda #$57
|
|
jmp b9
|
|
//SEG171 [75] phi from myprintf::@26 to myprintf::@9 [phi:myprintf::@26->myprintf::@9]
|
|
b8:
|
|
//SEG172 [75] phi (byte~) myprintf::$22 = (byte) '0' [phi:myprintf::@26->myprintf::@9#0] -- vbuaa=vbuc1
|
|
lda #'0'
|
|
//SEG173 myprintf::@9
|
|
b9:
|
|
//SEG174 [76] (byte~) myprintf::$23 ← (byte~) myprintf::$22 + (byte) myprintf::b#15 -- vbuaa=vbuaa_plus_vbuxx
|
|
stx $ff
|
|
clc
|
|
adc $ff
|
|
//SEG175 [77] *((const byte[$64]) strTemp#0 + (byte) myprintf::bLen#14) ← (byte~) myprintf::$23 -- pbuc1_derefidx_vbuz1=vbuaa
|
|
ldy bLen
|
|
sta strTemp,y
|
|
//SEG176 [78] (byte) myprintf::bLen#10 ← ++ (byte) myprintf::bLen#14 -- vbuyy=_inc_vbuz1
|
|
iny
|
|
//SEG177 [79] (byte) myprintf::b#16 ← (word) myprintf::w#10 & (byte/signed byte/word/signed word/dword/signed dword) $f -- vbuxx=vwuz1_band_vbuc1
|
|
lda w
|
|
and #$f
|
|
tax
|
|
//SEG178 [80] if((byte) myprintf::b#16<(byte/signed byte/word/signed word/dword/signed dword) $a) goto myprintf::@11 -- vbuxx_lt_vbuc1_then_la1
|
|
cpx #$a
|
|
bcc b10
|
|
//SEG179 [81] phi from myprintf::@9 to myprintf::@10 [phi:myprintf::@9->myprintf::@10]
|
|
//SEG180 myprintf::@10
|
|
//SEG181 [82] phi from myprintf::@10 to myprintf::@11 [phi:myprintf::@10->myprintf::@11]
|
|
//SEG182 [82] phi (byte~) myprintf::$28 = (byte/signed byte/word/signed word/dword/signed dword) $57 [phi:myprintf::@10->myprintf::@11#0] -- vbuaa=vbuc1
|
|
lda #$57
|
|
jmp b11
|
|
//SEG183 [82] phi from myprintf::@9 to myprintf::@11 [phi:myprintf::@9->myprintf::@11]
|
|
b10:
|
|
//SEG184 [82] phi (byte~) myprintf::$28 = (byte) '0' [phi:myprintf::@9->myprintf::@11#0] -- vbuaa=vbuc1
|
|
lda #'0'
|
|
//SEG185 myprintf::@11
|
|
b11:
|
|
//SEG186 [83] (byte~) myprintf::$29 ← (byte~) myprintf::$28 + (byte) myprintf::b#16 -- vbuaa=vbuaa_plus_vbuxx
|
|
stx $ff
|
|
clc
|
|
adc $ff
|
|
//SEG187 [84] *((const byte[$64]) strTemp#0 + (byte) myprintf::bLen#10) ← (byte~) myprintf::$29 -- pbuc1_derefidx_vbuyy=vbuaa
|
|
sta strTemp,y
|
|
//SEG188 [85] (byte) myprintf::bLen#3 ← ++ (byte) myprintf::bLen#10 -- vbuz1=_inc_vbuyy
|
|
iny
|
|
sty bLen
|
|
jmp b22
|
|
//SEG189 myprintf::@7
|
|
b7:
|
|
//SEG190 [86] (word) utoa::value#4 ← (word) myprintf::w#10 -- vwuz1=vwuz2
|
|
lda w
|
|
sta utoa.value
|
|
lda w+1
|
|
sta utoa.value+1
|
|
//SEG191 [87] call utoa
|
|
//SEG192 [133] phi from myprintf::@7 to utoa [phi:myprintf::@7->utoa]
|
|
jsr utoa
|
|
//SEG193 [88] phi from myprintf::@7 to myprintf::@12 [phi:myprintf::@7->myprintf::@12]
|
|
//SEG194 [88] phi (byte) myprintf::b#17 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:myprintf::@7->myprintf::@12#0] -- vbuxx=vbuc1
|
|
ldx #1
|
|
//SEG195 myprintf::@12
|
|
b12:
|
|
//SEG196 [89] if(*((const byte[6]) myprintf::buf6#0 + (byte) myprintf::b#17)!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto myprintf::@13 -- pbuc1_derefidx_vbuxx_neq_0_then_la1
|
|
lda buf6,x
|
|
cmp #0
|
|
bne b13
|
|
//SEG197 myprintf::@14
|
|
//SEG198 [90] if((byte) myprintf::bTrailing#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto myprintf::@39 -- vbuz1_eq_0_then_la1
|
|
lda bTrailing
|
|
cmp #0
|
|
beq b39
|
|
//SEG199 [91] phi from myprintf::@14 myprintf::@18 to myprintf::@15 [phi:myprintf::@14/myprintf::@18->myprintf::@15]
|
|
//SEG200 [91] phi (byte) myprintf::bDigits#16 = (byte) myprintf::bDigits#14 [phi:myprintf::@14/myprintf::@18->myprintf::@15#0] -- register_copy
|
|
//SEG201 [91] phi (byte) myprintf::bLen#23 = (byte) myprintf::bLen#14 [phi:myprintf::@14/myprintf::@18->myprintf::@15#1] -- register_copy
|
|
//SEG202 myprintf::@15
|
|
b15:
|
|
//SEG203 [92] phi from myprintf::@15 to myprintf::@19 [phi:myprintf::@15->myprintf::@19]
|
|
//SEG204 [92] phi (byte) myprintf::bLen#12 = (byte) myprintf::bLen#23 [phi:myprintf::@15->myprintf::@19#0] -- register_copy
|
|
//SEG205 [92] phi (byte) myprintf::digit#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:myprintf::@15->myprintf::@19#1] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta digit
|
|
//SEG206 [92] phi from myprintf::@19 to myprintf::@19 [phi:myprintf::@19->myprintf::@19]
|
|
//SEG207 [92] phi (byte) myprintf::bLen#12 = (byte) myprintf::bLen#24 [phi:myprintf::@19->myprintf::@19#0] -- register_copy
|
|
//SEG208 [92] phi (byte) myprintf::digit#3 = (byte) myprintf::digit#2 [phi:myprintf::@19->myprintf::@19#1] -- register_copy
|
|
//SEG209 myprintf::@19
|
|
b19:
|
|
//SEG210 [93] *((const byte[$64]) strTemp#0 + (byte) myprintf::bLen#12) ← *((const byte[6]) myprintf::buf6#0 + (byte) myprintf::digit#3) -- pbuc1_derefidx_vbuz1=pbuc2_derefidx_vbuz2
|
|
ldy digit
|
|
lda buf6,y
|
|
ldy bLen
|
|
sta strTemp,y
|
|
//SEG211 [94] (byte) myprintf::bLen#24 ← ++ (byte) myprintf::bLen#12 -- vbuz1=_inc_vbuz1
|
|
inc bLen
|
|
//SEG212 [95] (byte) myprintf::digit#2 ← ++ (byte) myprintf::digit#3 -- vbuz1=_inc_vbuz1
|
|
inc digit
|
|
//SEG213 [96] if((byte) myprintf::digit#2<(byte) myprintf::b#17) goto myprintf::@19 -- vbuz1_lt_vbuxx_then_la1
|
|
txa
|
|
cmp digit
|
|
beq !+
|
|
bcs b19
|
|
!:
|
|
//SEG214 myprintf::@20
|
|
//SEG215 [97] if((byte) myprintf::bTrailing#10!=(byte/signed byte/word/signed word/dword/signed dword) 0) goto myprintf::@40 -- vbuz1_neq_0_then_la1
|
|
lda bTrailing
|
|
cmp #0
|
|
bne b40
|
|
jmp b22
|
|
//SEG216 myprintf::@40
|
|
b40:
|
|
//SEG217 [98] if((byte) myprintf::bDigits#16>(byte) myprintf::b#17) goto myprintf::@21 -- vbuz1_gt_vbuxx_then_la1
|
|
cpx bDigits
|
|
bcc b21
|
|
jmp b22
|
|
//SEG218 [99] phi from myprintf::@21 myprintf::@40 to myprintf::@21 [phi:myprintf::@21/myprintf::@40->myprintf::@21]
|
|
//SEG219 [99] phi (byte) myprintf::bDigits#8 = (byte) myprintf::bDigits#3 [phi:myprintf::@21/myprintf::@40->myprintf::@21#0] -- register_copy
|
|
//SEG220 [99] phi (byte) myprintf::bLen#13 = (byte) myprintf::bLen#6 [phi:myprintf::@21/myprintf::@40->myprintf::@21#1] -- register_copy
|
|
//SEG221 myprintf::@21
|
|
b21:
|
|
//SEG222 [100] *((const byte[$64]) strTemp#0 + (byte) myprintf::bLen#13) ← (byte) ' ' -- pbuc1_derefidx_vbuz1=vbuc2
|
|
lda #' '
|
|
ldy bLen
|
|
sta strTemp,y
|
|
//SEG223 [101] (byte) myprintf::bLen#6 ← ++ (byte) myprintf::bLen#13 -- vbuz1=_inc_vbuz1
|
|
inc bLen
|
|
//SEG224 [102] (byte) myprintf::bDigits#3 ← -- (byte) myprintf::bDigits#8 -- vbuz1=_dec_vbuz1
|
|
dec bDigits
|
|
//SEG225 [103] if((byte) myprintf::bDigits#3>(byte) myprintf::b#17) goto myprintf::@21 -- vbuz1_gt_vbuxx_then_la1
|
|
cpx bDigits
|
|
bcc b21
|
|
jmp b22
|
|
//SEG226 myprintf::@39
|
|
b39:
|
|
//SEG227 [104] if((byte) myprintf::bDigits#14>(byte) myprintf::b#17) goto myprintf::@16 -- vbuz1_gt_vbuxx_then_la1
|
|
cpx bDigits
|
|
bcc b16
|
|
//SEG228 [91] phi from myprintf::@39 to myprintf::@15 [phi:myprintf::@39->myprintf::@15]
|
|
jmp b15
|
|
//SEG229 [105] phi from myprintf::@18 myprintf::@39 to myprintf::@16 [phi:myprintf::@18/myprintf::@39->myprintf::@16]
|
|
//SEG230 [105] phi (byte) myprintf::bDigits#10 = (byte) myprintf::bDigits#2 [phi:myprintf::@18/myprintf::@39->myprintf::@16#0] -- register_copy
|
|
//SEG231 [105] phi (byte) myprintf::bLen#11 = (byte) myprintf::bLen#4 [phi:myprintf::@18/myprintf::@39->myprintf::@16#1] -- register_copy
|
|
//SEG232 myprintf::@16
|
|
b16:
|
|
//SEG233 [106] if((byte) myprintf::bLeadZero#10==(byte/signed byte/word/signed word/dword/signed dword) 0) goto myprintf::@18 -- vbuz1_eq_0_then_la1
|
|
lda bLeadZero
|
|
cmp #0
|
|
beq b14
|
|
//SEG234 [107] phi from myprintf::@16 to myprintf::@17 [phi:myprintf::@16->myprintf::@17]
|
|
//SEG235 myprintf::@17
|
|
//SEG236 [108] phi from myprintf::@17 to myprintf::@18 [phi:myprintf::@17->myprintf::@18]
|
|
//SEG237 [108] phi (byte~) myprintf::$39 = (byte) '0' [phi:myprintf::@17->myprintf::@18#0] -- vbuaa=vbuc1
|
|
lda #'0'
|
|
jmp b18
|
|
//SEG238 [108] phi from myprintf::@16 to myprintf::@18 [phi:myprintf::@16->myprintf::@18]
|
|
b14:
|
|
//SEG239 [108] phi (byte~) myprintf::$39 = (byte) ' ' [phi:myprintf::@16->myprintf::@18#0] -- vbuaa=vbuc1
|
|
lda #' '
|
|
//SEG240 myprintf::@18
|
|
b18:
|
|
//SEG241 [109] *((const byte[$64]) strTemp#0 + (byte) myprintf::bLen#11) ← (byte~) myprintf::$39 -- pbuc1_derefidx_vbuz1=vbuaa
|
|
ldy bLen
|
|
sta strTemp,y
|
|
//SEG242 [110] (byte) myprintf::bLen#4 ← ++ (byte) myprintf::bLen#11 -- vbuz1=_inc_vbuz1
|
|
inc bLen
|
|
//SEG243 [111] (byte) myprintf::bDigits#2 ← -- (byte) myprintf::bDigits#10 -- vbuz1=_dec_vbuz1
|
|
dec bDigits
|
|
//SEG244 [112] if((byte) myprintf::bDigits#2>(byte) myprintf::b#17) goto myprintf::@16 -- vbuz1_gt_vbuxx_then_la1
|
|
cpx bDigits
|
|
bcc b16
|
|
jmp b15
|
|
//SEG245 myprintf::@13
|
|
b13:
|
|
//SEG246 [113] (byte) myprintf::b#5 ← ++ (byte) myprintf::b#17 -- vbuxx=_inc_vbuxx
|
|
inx
|
|
//SEG247 [88] phi from myprintf::@13 to myprintf::@12 [phi:myprintf::@13->myprintf::@12]
|
|
//SEG248 [88] phi (byte) myprintf::b#17 = (byte) myprintf::b#5 [phi:myprintf::@13->myprintf::@12#0] -- register_copy
|
|
jmp b12
|
|
//SEG249 myprintf::@6
|
|
b6:
|
|
//SEG250 [114] (byte~) myprintf::$47 ← ((byte)) (word) myprintf::w#10 -- vbuaa=_byte_vwuz1
|
|
lda w
|
|
//SEG251 [115] *((const byte[$64]) strTemp#0 + (byte) myprintf::bLen#14) ← (byte~) myprintf::$47 -- pbuc1_derefidx_vbuz1=vbuaa
|
|
// "switch" is the normal way -- not supported -- https://gitlab.com/camelot/kickc/issues/170
|
|
ldy bLen
|
|
sta strTemp,y
|
|
//SEG252 [116] (byte) myprintf::bLen#1 ← ++ (byte) myprintf::bLen#14 -- vbuz1=_inc_vbuz1
|
|
inc bLen
|
|
jmp b22
|
|
//SEG253 myprintf::@37
|
|
b37:
|
|
//SEG254 [117] if((byte) myprintf::b#1<=(byte) '9') goto myprintf::@23 -- vbuxx_le_vbuc1_then_la1
|
|
cpx #'9'
|
|
bcc b23
|
|
beq b23
|
|
jmp b4
|
|
//SEG255 myprintf::@23
|
|
b23:
|
|
//SEG256 [118] (byte) myprintf::bDigits#1 ← (byte) myprintf::b#1 - (byte) '0' -- vbuz1=vbuxx_minus_vbuc1
|
|
txa
|
|
axs #'0'
|
|
stx bDigits
|
|
//SEG257 [59] phi from myprintf::@23 myprintf::@30 to myprintf::@27 [phi:myprintf::@23/myprintf::@30->myprintf::@27]
|
|
//SEG258 [59] phi (byte) myprintf::bLeadZero#18 = (byte) myprintf::bLeadZero#10 [phi:myprintf::@23/myprintf::@30->myprintf::@27#0] -- register_copy
|
|
//SEG259 [59] phi (byte) myprintf::bDigits#24 = (byte) myprintf::bDigits#1 [phi:myprintf::@23/myprintf::@30->myprintf::@27#1] -- register_copy
|
|
//SEG260 [59] phi (byte) myprintf::bTrailing#21 = (byte) myprintf::bTrailing#10 [phi:myprintf::@23/myprintf::@30->myprintf::@27#2] -- register_copy
|
|
//SEG261 [59] phi (word) myprintf::w#17 = (word) myprintf::w#10 [phi:myprintf::@23/myprintf::@30->myprintf::@27#3] -- register_copy
|
|
//SEG262 [59] phi (byte) myprintf::bArg#10 = (byte) myprintf::bArg#12 [phi:myprintf::@23/myprintf::@30->myprintf::@27#4] -- register_copy
|
|
//SEG263 [59] phi (byte) myprintf::return#0 = (byte) myprintf::bLen#14 [phi:myprintf::@23/myprintf::@30->myprintf::@27#5] -- register_copy
|
|
//SEG264 [59] phi (byte) myprintf::bFormat#4 = (byte) myprintf::bFormat#10 [phi:myprintf::@23/myprintf::@30->myprintf::@27#6] -- register_copy
|
|
jmp b27
|
|
//SEG265 myprintf::@2
|
|
b2:
|
|
//SEG266 [119] if((byte) myprintf::b#1!=(byte) '%') goto myprintf::@28 -- vbuxx_neq_vbuc1_then_la1
|
|
cpx #'%'
|
|
bne b28
|
|
//SEG267 myprintf::@32
|
|
//SEG268 [120] if((byte) myprintf::bArg#12==(byte/signed byte/word/signed word/dword/signed dword) 0) goto myprintf::@42 -- vbuz1_eq_0_then_la1
|
|
// default format
|
|
//w = (bArg == 0) ? w1 : ((bArg == 1) ? w2 : w3); -- "?" is the normal way, but error "sequence does not contain all blocks" -- https://gitlab.com/camelot/kickc/issues/185 [FIXED]
|
|
lda bArg
|
|
cmp #0
|
|
beq b42
|
|
//SEG269 myprintf::@33
|
|
//SEG270 [121] if((byte) myprintf::bArg#12==(byte/signed byte/word/signed word/dword/signed dword) 1) goto myprintf::@43 -- vbuz1_eq_vbuc1_then_la1
|
|
lda #1
|
|
cmp bArg
|
|
beq b43
|
|
//SEG271 myprintf::@34
|
|
//SEG272 [122] (word~) myprintf::w#53 ← (word) myprintf::w3#7 -- vwuz1=vwuz2
|
|
lda w3
|
|
sta w
|
|
lda w3+1
|
|
sta w+1
|
|
//SEG273 [123] phi from myprintf::@34 myprintf::@42 myprintf::@43 to myprintf::@29 [phi:myprintf::@34/myprintf::@42/myprintf::@43->myprintf::@29]
|
|
//SEG274 [123] phi (word) myprintf::w#21 = (word~) myprintf::w#53 [phi:myprintf::@34/myprintf::@42/myprintf::@43->myprintf::@29#0] -- register_copy
|
|
//SEG275 myprintf::@29
|
|
b29:
|
|
//SEG276 [124] (byte) myprintf::bArg#1 ← ++ (byte) myprintf::bArg#12 -- vbuz1=_inc_vbuz1
|
|
inc bArg
|
|
//SEG277 [59] phi from myprintf::@29 to myprintf::@27 [phi:myprintf::@29->myprintf::@27]
|
|
//SEG278 [59] phi (byte) myprintf::bLeadZero#18 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:myprintf::@29->myprintf::@27#0] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta bLeadZero
|
|
//SEG279 [59] phi (byte) myprintf::bDigits#24 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:myprintf::@29->myprintf::@27#1] -- vbuz1=vbuc1
|
|
lda #1
|
|
sta bDigits
|
|
//SEG280 [59] phi (byte) myprintf::bTrailing#21 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:myprintf::@29->myprintf::@27#2] -- vbuz1=vbuc1
|
|
lda #0
|
|
sta bTrailing
|
|
//SEG281 [59] phi (word) myprintf::w#17 = (word) myprintf::w#21 [phi:myprintf::@29->myprintf::@27#3] -- register_copy
|
|
//SEG282 [59] phi (byte) myprintf::bArg#10 = (byte) myprintf::bArg#1 [phi:myprintf::@29->myprintf::@27#4] -- register_copy
|
|
//SEG283 [59] phi (byte) myprintf::return#0 = (byte) myprintf::bLen#14 [phi:myprintf::@29->myprintf::@27#5] -- register_copy
|
|
//SEG284 [59] phi (byte) myprintf::bFormat#4 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:myprintf::@29->myprintf::@27#6] -- vbuz1=vbuc1
|
|
lda #1
|
|
sta bFormat
|
|
jmp b27
|
|
//SEG285 myprintf::@43
|
|
b43:
|
|
//SEG286 [125] (word~) myprintf::w#52 ← (word) myprintf::w2#7 -- vwuz1=vwuz2
|
|
lda w2
|
|
sta w
|
|
lda w2+1
|
|
sta w+1
|
|
jmp b29
|
|
//SEG287 myprintf::@42
|
|
b42:
|
|
//SEG288 [126] (word~) myprintf::w#51 ← (word) myprintf::w1#6 -- vwuz1=vwuz2
|
|
lda w1
|
|
sta w
|
|
lda w1+1
|
|
sta w+1
|
|
jmp b29
|
|
//SEG289 myprintf::@28
|
|
b28:
|
|
//SEG290 [127] if((byte) myprintf::b#1>=(byte/signed byte/word/signed word/dword/signed dword) $41) goto myprintf::@41 -- vbuxx_ge_vbuc1_then_la1
|
|
cpx #$41
|
|
bcs b41
|
|
//SEG291 [128] phi from myprintf::@28 myprintf::@35 to myprintf::@30 [phi:myprintf::@28/myprintf::@35->myprintf::@30]
|
|
//SEG292 [128] phi (byte) myprintf::b#25 = (byte) myprintf::b#1 [phi:myprintf::@28/myprintf::@35->myprintf::@30#0] -- register_copy
|
|
//SEG293 myprintf::@30
|
|
b30:
|
|
//SEG294 [129] *((const byte[$64]) strTemp#0 + (byte) myprintf::bLen#14) ← (byte) myprintf::b#25 -- pbuc1_derefidx_vbuz1=vbuxx
|
|
// swap 0x41 / 0x61 when in lower case mode
|
|
ldy bLen
|
|
txa
|
|
sta strTemp,y
|
|
//SEG295 [130] (byte) myprintf::bLen#7 ← ++ (byte) myprintf::bLen#14 -- vbuz1=_inc_vbuz1
|
|
inc bLen
|
|
jmp b27
|
|
//SEG296 myprintf::@41
|
|
b41:
|
|
//SEG297 [131] if((byte) myprintf::b#1<(byte/signed byte/word/signed word/dword/signed dword) $5a+(byte/signed byte/word/signed word/dword/signed dword) 1) goto myprintf::@35 -- vbuxx_lt_vbuc1_then_la1
|
|
cpx #$5a+1
|
|
bcc b35
|
|
//SEG298 [128] phi from myprintf::@41 to myprintf::@30 [phi:myprintf::@41->myprintf::@30]
|
|
jmp b30
|
|
//SEG299 myprintf::@35
|
|
b35:
|
|
//SEG300 [132] (byte) myprintf::b#6 ← (byte) myprintf::b#1 + (byte/signed byte/word/signed word/dword/signed dword) $20 -- vbuxx=vbuxx_plus_vbuc1
|
|
txa
|
|
axs #-[$20]
|
|
jmp b30
|
|
buf6: .fill 6, 0
|
|
}
|
|
//SEG301 utoa
|
|
// utoa(word zeropage($12) value, byte* zeropage($14) dst)
|
|
utoa: {
|
|
.label value = $12
|
|
.label dst = $14
|
|
//SEG302 utoa::@13
|
|
//SEG303 [134] if((word) utoa::value#4>=(word/signed word/dword/signed dword) $2710) goto utoa::@5 -- vwuz1_ge_vwuc1_then_la1
|
|
lda value+1
|
|
cmp #>$2710
|
|
bcc !+
|
|
beq !b5+
|
|
jmp b5
|
|
!b5:
|
|
lda value
|
|
cmp #<$2710
|
|
bcc !b5+
|
|
jmp b5
|
|
!b5:
|
|
!:
|
|
//SEG304 [135] phi from utoa::@13 to utoa::@1 [phi:utoa::@13->utoa::@1]
|
|
//SEG305 [135] phi (byte*) utoa::dst#16 = (const byte[6]) myprintf::buf6#0 [phi:utoa::@13->utoa::@1#0] -- pbuz1=pbuc1
|
|
lda #<myprintf.buf6
|
|
sta dst
|
|
lda #>myprintf.buf6
|
|
sta dst+1
|
|
//SEG306 [135] phi (word) utoa::value#6 = (word) utoa::value#4 [phi:utoa::@13->utoa::@1#1] -- register_copy
|
|
//SEG307 [135] phi (byte) utoa::bStarted#5 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:utoa::@13->utoa::@1#2] -- vbuxx=vbuc1
|
|
ldx #0
|
|
//SEG308 utoa::@1
|
|
b1:
|
|
//SEG309 [136] if((byte) utoa::bStarted#5==(byte/signed byte/word/signed word/dword/signed dword) 1) goto utoa::@6 -- vbuxx_eq_vbuc1_then_la1
|
|
cpx #1
|
|
beq b6
|
|
//SEG310 utoa::@14
|
|
//SEG311 [137] if((word) utoa::value#6>=(word/signed word/dword/signed dword) $3e8) goto utoa::@6 -- vwuz1_ge_vwuc1_then_la1
|
|
lda value+1
|
|
cmp #>$3e8
|
|
bcc !+
|
|
bne b6
|
|
lda value
|
|
cmp #<$3e8
|
|
bcs b6
|
|
!:
|
|
//SEG312 [138] phi from utoa::@14 to utoa::@2 [phi:utoa::@14->utoa::@2]
|
|
//SEG313 [138] phi (byte*) utoa::dst#10 = (byte*) utoa::dst#16 [phi:utoa::@14->utoa::@2#0] -- register_copy
|
|
//SEG314 [138] phi (word) utoa::value#11 = (word) utoa::value#6 [phi:utoa::@14->utoa::@2#1] -- register_copy
|
|
//SEG315 [138] phi (byte) utoa::bStarted#6 = (byte) utoa::bStarted#5 [phi:utoa::@14->utoa::@2#2] -- register_copy
|
|
//SEG316 utoa::@2
|
|
b2:
|
|
//SEG317 [139] if((byte) utoa::bStarted#6==(byte/signed byte/word/signed word/dword/signed dword) 1) goto utoa::@7 -- vbuxx_eq_vbuc1_then_la1
|
|
cpx #1
|
|
beq b7
|
|
//SEG318 utoa::@15
|
|
//SEG319 [140] if((word) utoa::value#11>=(byte/signed byte/word/signed word/dword/signed dword) $64) goto utoa::@7 -- vwuz1_ge_vwuc1_then_la1
|
|
lda value+1
|
|
cmp #>$64
|
|
bcc !+
|
|
bne b7
|
|
lda value
|
|
cmp #<$64
|
|
bcs b7
|
|
!:
|
|
//SEG320 [141] phi from utoa::@15 to utoa::@3 [phi:utoa::@15->utoa::@3]
|
|
//SEG321 [141] phi (byte*) utoa::dst#13 = (byte*) utoa::dst#10 [phi:utoa::@15->utoa::@3#0] -- register_copy
|
|
//SEG322 [141] phi (word) utoa::value#10 = (word) utoa::value#11 [phi:utoa::@15->utoa::@3#1] -- register_copy
|
|
//SEG323 [141] phi (byte) utoa::bStarted#7 = (byte) utoa::bStarted#6 [phi:utoa::@15->utoa::@3#2] -- register_copy
|
|
//SEG324 utoa::@3
|
|
b3:
|
|
//SEG325 [142] if((byte) utoa::bStarted#7==(byte/signed byte/word/signed word/dword/signed dword) 1) goto utoa::@8 -- vbuxx_eq_vbuc1_then_la1
|
|
cpx #1
|
|
beq b8
|
|
//SEG326 utoa::@16
|
|
//SEG327 [143] if((word) utoa::value#10>=(byte/signed byte/word/signed word/dword/signed dword) $a) goto utoa::@8 -- vwuz1_ge_vwuc1_then_la1
|
|
lda value+1
|
|
cmp #>$a
|
|
bcc !+
|
|
bne b8
|
|
lda value
|
|
cmp #<$a
|
|
bcs b8
|
|
!:
|
|
//SEG328 [144] phi from utoa::@12 utoa::@16 to utoa::@4 [phi:utoa::@12/utoa::@16->utoa::@4]
|
|
//SEG329 [144] phi (byte*) utoa::dst#12 = (byte*) utoa::dst#4 [phi:utoa::@12/utoa::@16->utoa::@4#0] -- register_copy
|
|
//SEG330 [144] phi (word) utoa::value#12 = (word) utoa::value#3 [phi:utoa::@12/utoa::@16->utoa::@4#1] -- register_copy
|
|
//SEG331 utoa::@4
|
|
b4:
|
|
//SEG332 [145] (byte~) utoa::$16 ← ((byte)) (word) utoa::value#12 -- vbuaa=_byte_vwuz1
|
|
lda value
|
|
//SEG333 [146] (byte~) utoa::$17 ← (byte) '0' + (byte~) utoa::$16 -- vbuaa=vbuc1_plus_vbuaa
|
|
clc
|
|
adc #'0'
|
|
//SEG334 [147] *((byte*) utoa::dst#12) ← (byte~) utoa::$17 -- _deref_pbuz1=vbuaa
|
|
ldy #0
|
|
sta (dst),y
|
|
//SEG335 [148] (byte*) utoa::dst#3 ← ++ (byte*) utoa::dst#12 -- pbuz1=_inc_pbuz1
|
|
inc dst
|
|
bne !+
|
|
inc dst+1
|
|
!:
|
|
//SEG336 [149] *((byte*) utoa::dst#3) ← (byte/signed byte/word/signed word/dword/signed dword) 0 -- _deref_pbuz1=vbuc1
|
|
lda #0
|
|
tay
|
|
sta (dst),y
|
|
//SEG337 utoa::@return
|
|
//SEG338 [150] return
|
|
rts
|
|
//SEG339 utoa::@8
|
|
b8:
|
|
//SEG340 [151] (byte*) append::dst#3 ← (byte*) utoa::dst#13
|
|
//SEG341 [152] (word) append::value#4 ← (word) utoa::value#10
|
|
//SEG342 [153] call append
|
|
//SEG343 [173] phi from utoa::@8 to append [phi:utoa::@8->append]
|
|
//SEG344 [173] phi (word) append::sub#6 = (byte/signed byte/word/signed word/dword/signed dword) $a [phi:utoa::@8->append#0] -- vwuz1=vbuc1
|
|
lda #$a
|
|
sta append.sub
|
|
lda #0
|
|
sta append.sub+1
|
|
//SEG345 [173] phi (word) append::value#8 = (word) append::value#4 [phi:utoa::@8->append#1] -- register_copy
|
|
//SEG346 [173] phi (byte*) append::dst#4 = (byte*) append::dst#3 [phi:utoa::@8->append#2] -- register_copy
|
|
jsr append
|
|
//SEG347 [154] (word) append::return#10 ← (word) append::value#5
|
|
//SEG348 utoa::@12
|
|
//SEG349 [155] (word) utoa::value#3 ← (word) append::return#10
|
|
//SEG350 [156] (byte*) utoa::dst#4 ← ++ (byte*) utoa::dst#13 -- pbuz1=_inc_pbuz1
|
|
inc dst
|
|
bne !+
|
|
inc dst+1
|
|
!:
|
|
jmp b4
|
|
//SEG351 utoa::@7
|
|
b7:
|
|
//SEG352 [157] (byte*) append::dst#2 ← (byte*) utoa::dst#10
|
|
//SEG353 [158] (word) append::value#3 ← (word) utoa::value#11
|
|
//SEG354 [159] call append
|
|
//SEG355 [173] phi from utoa::@7 to append [phi:utoa::@7->append]
|
|
//SEG356 [173] phi (word) append::sub#6 = (byte/signed byte/word/signed word/dword/signed dword) $64 [phi:utoa::@7->append#0] -- vwuz1=vbuc1
|
|
lda #$64
|
|
sta append.sub
|
|
lda #0
|
|
sta append.sub+1
|
|
//SEG357 [173] phi (word) append::value#8 = (word) append::value#3 [phi:utoa::@7->append#1] -- register_copy
|
|
//SEG358 [173] phi (byte*) append::dst#4 = (byte*) append::dst#2 [phi:utoa::@7->append#2] -- register_copy
|
|
jsr append
|
|
//SEG359 [160] (word) append::return#4 ← (word) append::value#5
|
|
//SEG360 utoa::@11
|
|
//SEG361 [161] (word) utoa::value#2 ← (word) append::return#4
|
|
//SEG362 [162] (byte*) utoa::dst#2 ← ++ (byte*) utoa::dst#10 -- pbuz1=_inc_pbuz1
|
|
inc dst
|
|
bne !+
|
|
inc dst+1
|
|
!:
|
|
//SEG363 [141] phi from utoa::@11 to utoa::@3 [phi:utoa::@11->utoa::@3]
|
|
//SEG364 [141] phi (byte*) utoa::dst#13 = (byte*) utoa::dst#2 [phi:utoa::@11->utoa::@3#0] -- register_copy
|
|
//SEG365 [141] phi (word) utoa::value#10 = (word) utoa::value#2 [phi:utoa::@11->utoa::@3#1] -- register_copy
|
|
//SEG366 [141] phi (byte) utoa::bStarted#7 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:utoa::@11->utoa::@3#2] -- vbuxx=vbuc1
|
|
ldx #1
|
|
jmp b3
|
|
//SEG367 utoa::@6
|
|
b6:
|
|
//SEG368 [163] (byte*) append::dst#1 ← (byte*) utoa::dst#16
|
|
//SEG369 [164] (word) append::value#2 ← (word) utoa::value#6
|
|
//SEG370 [165] call append
|
|
//SEG371 [173] phi from utoa::@6 to append [phi:utoa::@6->append]
|
|
//SEG372 [173] phi (word) append::sub#6 = (word/signed word/dword/signed dword) $3e8 [phi:utoa::@6->append#0] -- vwuz1=vwuc1
|
|
lda #<$3e8
|
|
sta append.sub
|
|
lda #>$3e8
|
|
sta append.sub+1
|
|
//SEG373 [173] phi (word) append::value#8 = (word) append::value#2 [phi:utoa::@6->append#1] -- register_copy
|
|
//SEG374 [173] phi (byte*) append::dst#4 = (byte*) append::dst#1 [phi:utoa::@6->append#2] -- register_copy
|
|
jsr append
|
|
//SEG375 [166] (word) append::return#3 ← (word) append::value#5
|
|
//SEG376 utoa::@10
|
|
//SEG377 [167] (word) utoa::value#1 ← (word) append::return#3
|
|
//SEG378 [168] (byte*) utoa::dst#1 ← ++ (byte*) utoa::dst#16 -- pbuz1=_inc_pbuz1
|
|
inc dst
|
|
bne !+
|
|
inc dst+1
|
|
!:
|
|
//SEG379 [138] phi from utoa::@10 to utoa::@2 [phi:utoa::@10->utoa::@2]
|
|
//SEG380 [138] phi (byte*) utoa::dst#10 = (byte*) utoa::dst#1 [phi:utoa::@10->utoa::@2#0] -- register_copy
|
|
//SEG381 [138] phi (word) utoa::value#11 = (word) utoa::value#1 [phi:utoa::@10->utoa::@2#1] -- register_copy
|
|
//SEG382 [138] phi (byte) utoa::bStarted#6 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:utoa::@10->utoa::@2#2] -- vbuxx=vbuc1
|
|
ldx #1
|
|
jmp b2
|
|
//SEG383 utoa::@5
|
|
b5:
|
|
//SEG384 [169] (word) append::value#1 ← (word) utoa::value#4
|
|
//SEG385 [170] call append
|
|
//SEG386 [173] phi from utoa::@5 to append [phi:utoa::@5->append]
|
|
//SEG387 [173] phi (word) append::sub#6 = (word/signed word/dword/signed dword) $2710 [phi:utoa::@5->append#0] -- vwuz1=vwuc1
|
|
lda #<$2710
|
|
sta append.sub
|
|
lda #>$2710
|
|
sta append.sub+1
|
|
//SEG388 [173] phi (word) append::value#8 = (word) append::value#1 [phi:utoa::@5->append#1] -- register_copy
|
|
//SEG389 [173] phi (byte*) append::dst#4 = (const byte[6]) myprintf::buf6#0 [phi:utoa::@5->append#2] -- pbuz1=pbuc1
|
|
lda #<myprintf.buf6
|
|
sta append.dst
|
|
lda #>myprintf.buf6
|
|
sta append.dst+1
|
|
jsr append
|
|
//SEG390 [171] (word) append::return#2 ← (word) append::value#5
|
|
//SEG391 utoa::@9
|
|
//SEG392 [172] (word) utoa::value#0 ← (word) append::return#2
|
|
//SEG393 [135] phi from utoa::@9 to utoa::@1 [phi:utoa::@9->utoa::@1]
|
|
//SEG394 [135] phi (byte*) utoa::dst#16 = ++(const byte[6]) myprintf::buf6#0 [phi:utoa::@9->utoa::@1#0] -- pbuz1=pbuc1
|
|
lda #<myprintf.buf6+1
|
|
sta dst
|
|
lda #>myprintf.buf6+1
|
|
sta dst+1
|
|
//SEG395 [135] phi (word) utoa::value#6 = (word) utoa::value#0 [phi:utoa::@9->utoa::@1#1] -- register_copy
|
|
//SEG396 [135] phi (byte) utoa::bStarted#5 = (byte/signed byte/word/signed word/dword/signed dword) 1 [phi:utoa::@9->utoa::@1#2] -- vbuxx=vbuc1
|
|
ldx #1
|
|
jmp b1
|
|
}
|
|
//SEG397 append
|
|
// simple 'utoa' without using multiply or divide
|
|
// append(byte* zeropage($14) dst, word zeropage($12) value, word zeropage($16) sub)
|
|
append: {
|
|
.label value = $12
|
|
.label return = $12
|
|
.label dst = $14
|
|
.label sub = $16
|
|
//SEG398 [174] *((byte*) append::dst#4) ← (byte) '0' -- _deref_pbuz1=vbuc1
|
|
lda #'0'
|
|
ldy #0
|
|
sta (dst),y
|
|
//SEG399 [175] phi from append append::@2 to append::@1 [phi:append/append::@2->append::@1]
|
|
//SEG400 [175] phi (word) append::value#5 = (word) append::value#8 [phi:append/append::@2->append::@1#0] -- register_copy
|
|
//SEG401 append::@1
|
|
b1:
|
|
//SEG402 [176] if((word) append::value#5>=(word) append::sub#6) goto append::@2 -- vwuz1_ge_vwuz2_then_la1
|
|
lda sub+1
|
|
cmp value+1
|
|
bne !+
|
|
lda sub
|
|
cmp value
|
|
!:
|
|
bcc b2
|
|
beq b2
|
|
//SEG403 append::@return
|
|
//SEG404 [177] return
|
|
rts
|
|
//SEG405 append::@2
|
|
b2:
|
|
//SEG406 [178] *((byte*) append::dst#4) ← ++ *((byte*) append::dst#4) -- _deref_pbuz1=_inc__deref_pbuz1
|
|
ldy #0
|
|
lda (dst),y
|
|
clc
|
|
adc #1
|
|
sta (dst),y
|
|
//SEG407 [179] (word) append::value#0 ← (word) append::value#5 - (word) append::sub#6 -- vwuz1=vwuz1_minus_vwuz2
|
|
lda value
|
|
sec
|
|
sbc sub
|
|
sta value
|
|
lda value+1
|
|
sbc sub+1
|
|
sta value+1
|
|
jmp b1
|
|
}
|
|
//SEG408 div10
|
|
// div10(word zeropage(4) val)
|
|
div10: {
|
|
.label _0 = 4
|
|
.label _2 = 6
|
|
.label _3 = 4
|
|
.label _4 = 6
|
|
.label _5 = 6
|
|
.label val = 4
|
|
.label val_1 = 6
|
|
.label return = 4
|
|
.label val_4 = 2
|
|
//SEG409 [180] (word~) div10::$0 ← (word) div10::val#4 >> (byte/signed byte/word/signed word/dword/signed dword) 1 -- vwuz1=vwuz2_ror_1
|
|
lda val_4+1
|
|
lsr
|
|
sta _0+1
|
|
lda val_4
|
|
ror
|
|
sta _0
|
|
//SEG410 [181] (word) div10::val#0 ← (word~) div10::$0 + (byte/signed byte/word/signed word/dword/signed dword) 1 -- vwuz1=vwuz1_plus_1
|
|
inc val
|
|
bne !+
|
|
inc val+1
|
|
!:
|
|
//SEG411 [182] (word~) div10::$2 ← (word) div10::val#0 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vwuz1=vwuz2_rol_1
|
|
lda val
|
|
asl
|
|
sta _2
|
|
lda val+1
|
|
rol
|
|
sta _2+1
|
|
//SEG412 [183] (word) div10::val#1 ← (word) div10::val#0 + (word~) div10::$2 -- vwuz1=vwuz2_plus_vwuz1
|
|
lda val_1
|
|
clc
|
|
adc val
|
|
sta val_1
|
|
lda val_1+1
|
|
adc val+1
|
|
sta val_1+1
|
|
//SEG413 [184] (word~) div10::$3 ← (word) div10::val#1 >> (byte/signed byte/word/signed word/dword/signed dword) 4 -- vwuz1=vwuz2_ror_4
|
|
sta _3+1
|
|
lda val_1
|
|
sta _3
|
|
ldy #4
|
|
!:
|
|
lsr _3+1
|
|
ror _3
|
|
dey
|
|
bne !-
|
|
//SEG414 [185] (word) div10::val#2 ← (word) div10::val#1 + (word~) div10::$3 -- vwuz1=vwuz2_plus_vwuz1
|
|
lda val
|
|
clc
|
|
adc val_1
|
|
sta val
|
|
lda val+1
|
|
adc val_1+1
|
|
sta val+1
|
|
//SEG415 [186] (word~) div10::$4 ← (word) div10::val#2 >> (byte/signed byte/word/signed word/dword/signed dword) 4 -- vwuz1=vwuz2_ror_4
|
|
sta _4+1
|
|
lda val
|
|
sta _4
|
|
ldy #4
|
|
!:
|
|
lsr _4+1
|
|
ror _4
|
|
dey
|
|
bne !-
|
|
//SEG416 [187] (word~) div10::$5 ← (word~) div10::$4 >> (byte/signed byte/word/signed word/dword/signed dword) 4 -- vwuz1=vwuz1_ror_4
|
|
ldy #4
|
|
!:
|
|
lsr _5+1
|
|
ror _5
|
|
dey
|
|
bne !-
|
|
//SEG417 [188] (word) div10::val#3 ← (word) div10::val#2 + (word~) div10::$5 -- vwuz1=vwuz1_plus_vwuz2
|
|
lda val
|
|
clc
|
|
adc _5
|
|
sta val
|
|
lda val+1
|
|
adc _5+1
|
|
sta val+1
|
|
//SEG418 [189] (word) div10::return#0 ← (word) div10::val#3 >> (byte/signed byte/word/signed word/dword/signed dword) 4 -- vwuz1=vwuz1_ror_4
|
|
ldy #4
|
|
!:
|
|
lsr return+1
|
|
ror return
|
|
dey
|
|
bne !-
|
|
//SEG419 div10::@return
|
|
//SEG420 [190] return
|
|
rts
|
|
}
|
|
//SEG421 div16u
|
|
// Performs division on two 16 bit unsigned words
|
|
// Returns the quotient dividend/divisor.
|
|
// The remainder will be set into the global variable rem16u
|
|
// Implemented using simple binary division
|
|
// div16u(word zeropage(2) dividend)
|
|
div16u: {
|
|
.label divisor = $a
|
|
.label return = 4
|
|
.label dividend = 2
|
|
//SEG422 [191] (word) divr16u::dividend#1 ← (word) div16u::dividend#0 -- vwuz1=vwuz2
|
|
lda dividend
|
|
sta divr16u.dividend
|
|
lda dividend+1
|
|
sta divr16u.dividend+1
|
|
//SEG423 [192] call divr16u
|
|
//SEG424 [196] phi from div16u to divr16u [phi:div16u->divr16u]
|
|
jsr divr16u
|
|
//SEG425 [193] (word) divr16u::return#2 ← (word) divr16u::return#0
|
|
//SEG426 div16u::@1
|
|
//SEG427 [194] (word) div16u::return#0 ← (word) divr16u::return#2
|
|
//SEG428 div16u::@return
|
|
//SEG429 [195] return
|
|
rts
|
|
}
|
|
//SEG430 divr16u
|
|
// Performs division on two 16 bit unsigned words and an initial remainder
|
|
// Returns the quotient dividend/divisor.
|
|
// The final remainder will be set into the global variable rem16u
|
|
// Implemented using simple binary division
|
|
// divr16u(word zeropage(8) dividend, word zeropage(6) rem)
|
|
divr16u: {
|
|
.label rem = 6
|
|
.label dividend = 8
|
|
.label quotient = 4
|
|
.label return = 4
|
|
//SEG431 [197] phi from divr16u to divr16u::@1 [phi:divr16u->divr16u::@1]
|
|
//SEG432 [197] phi (byte) divr16u::i#2 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:divr16u->divr16u::@1#0] -- vbuxx=vbuc1
|
|
ldx #0
|
|
//SEG433 [197] phi (word) divr16u::quotient#3 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:divr16u->divr16u::@1#1] -- vwuz1=vbuc1
|
|
txa
|
|
sta quotient
|
|
sta quotient+1
|
|
//SEG434 [197] phi (word) divr16u::dividend#2 = (word) divr16u::dividend#1 [phi:divr16u->divr16u::@1#2] -- register_copy
|
|
//SEG435 [197] phi (word) divr16u::rem#4 = (byte/signed byte/word/signed word/dword/signed dword) 0 [phi:divr16u->divr16u::@1#3] -- vwuz1=vbuc1
|
|
sta rem
|
|
sta rem+1
|
|
//SEG436 [197] phi from divr16u::@3 to divr16u::@1 [phi:divr16u::@3->divr16u::@1]
|
|
//SEG437 [197] phi (byte) divr16u::i#2 = (byte) divr16u::i#1 [phi:divr16u::@3->divr16u::@1#0] -- register_copy
|
|
//SEG438 [197] phi (word) divr16u::quotient#3 = (word) divr16u::return#0 [phi:divr16u::@3->divr16u::@1#1] -- register_copy
|
|
//SEG439 [197] phi (word) divr16u::dividend#2 = (word) divr16u::dividend#0 [phi:divr16u::@3->divr16u::@1#2] -- register_copy
|
|
//SEG440 [197] phi (word) divr16u::rem#4 = (word) divr16u::rem#9 [phi:divr16u::@3->divr16u::@1#3] -- register_copy
|
|
//SEG441 divr16u::@1
|
|
b1:
|
|
//SEG442 [198] (word) divr16u::rem#0 ← (word) divr16u::rem#4 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vwuz1=vwuz1_rol_1
|
|
asl rem
|
|
rol rem+1
|
|
//SEG443 [199] (byte~) divr16u::$1 ← > (word) divr16u::dividend#2 -- vbuaa=_hi_vwuz1
|
|
lda dividend+1
|
|
//SEG444 [200] (byte~) divr16u::$2 ← (byte~) divr16u::$1 & (byte/word/signed word/dword/signed dword) $80 -- vbuaa=vbuaa_band_vbuc1
|
|
and #$80
|
|
//SEG445 [201] if((byte~) divr16u::$2==(byte/signed byte/word/signed word/dword/signed dword) 0) goto divr16u::@2 -- vbuaa_eq_0_then_la1
|
|
cmp #0
|
|
beq b2
|
|
//SEG446 divr16u::@4
|
|
//SEG447 [202] (word) divr16u::rem#1 ← (word) divr16u::rem#0 | (byte/signed byte/word/signed word/dword/signed dword) 1 -- vwuz1=vwuz1_bor_vbuc1
|
|
lda #1
|
|
ora rem
|
|
sta rem
|
|
//SEG448 [203] phi from divr16u::@1 divr16u::@4 to divr16u::@2 [phi:divr16u::@1/divr16u::@4->divr16u::@2]
|
|
//SEG449 [203] phi (word) divr16u::rem#5 = (word) divr16u::rem#0 [phi:divr16u::@1/divr16u::@4->divr16u::@2#0] -- register_copy
|
|
//SEG450 divr16u::@2
|
|
b2:
|
|
//SEG451 [204] (word) divr16u::dividend#0 ← (word) divr16u::dividend#2 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vwuz1=vwuz1_rol_1
|
|
asl dividend
|
|
rol dividend+1
|
|
//SEG452 [205] (word) divr16u::quotient#1 ← (word) divr16u::quotient#3 << (byte/signed byte/word/signed word/dword/signed dword) 1 -- vwuz1=vwuz1_rol_1
|
|
asl quotient
|
|
rol quotient+1
|
|
//SEG453 [206] if((word) divr16u::rem#5<(const word) div16u::divisor#0) goto divr16u::@3 -- vwuz1_lt_vwuc1_then_la1
|
|
lda rem+1
|
|
cmp #>div16u.divisor
|
|
bcc b3
|
|
bne !+
|
|
lda rem
|
|
cmp #<div16u.divisor
|
|
bcc b3
|
|
!:
|
|
//SEG454 divr16u::@5
|
|
//SEG455 [207] (word) divr16u::quotient#2 ← ++ (word) divr16u::quotient#1 -- vwuz1=_inc_vwuz1
|
|
inc quotient
|
|
bne !+
|
|
inc quotient+1
|
|
!:
|
|
//SEG456 [208] (word) divr16u::rem#2 ← (word) divr16u::rem#5 - (const word) div16u::divisor#0 -- vwuz1=vwuz1_minus_vwuc1
|
|
lda rem
|
|
sec
|
|
sbc #<div16u.divisor
|
|
sta rem
|
|
lda rem+1
|
|
sbc #>div16u.divisor
|
|
sta rem+1
|
|
//SEG457 [209] phi from divr16u::@2 divr16u::@5 to divr16u::@3 [phi:divr16u::@2/divr16u::@5->divr16u::@3]
|
|
//SEG458 [209] phi (word) divr16u::return#0 = (word) divr16u::quotient#1 [phi:divr16u::@2/divr16u::@5->divr16u::@3#0] -- register_copy
|
|
//SEG459 [209] phi (word) divr16u::rem#9 = (word) divr16u::rem#5 [phi:divr16u::@2/divr16u::@5->divr16u::@3#1] -- register_copy
|
|
//SEG460 divr16u::@3
|
|
b3:
|
|
//SEG461 [210] (byte) divr16u::i#1 ← ++ (byte) divr16u::i#2 -- vbuxx=_inc_vbuxx
|
|
inx
|
|
//SEG462 [211] if((byte) divr16u::i#1!=(byte/signed byte/word/signed word/dword/signed dword) $10) goto divr16u::@1 -- vbuxx_neq_vbuc1_then_la1
|
|
cpx #$10
|
|
bne b1
|
|
//SEG463 divr16u::@return
|
|
//SEG464 [212] return
|
|
rts
|
|
}
|
|
// "char buf16[16]" is the normal way -- not supported -- https://gitlab.com/camelot/kickc/issues/162
|
|
strTemp: .fill $64, 0
|
|
|