diff --git a/src/test/ref/printf-1.asm b/src/test/ref/printf-1.asm index c161646fa..e43f49ca9 100644 --- a/src/test/ref/printf-1.asm +++ b/src/test/ref/printf-1.asm @@ -166,13 +166,15 @@ printf_char: { bne !+ inc.z printf_char_cursor+1 !: - // if(printf_char_cursor==printf_screen+PRINTF_SCREEN_BYTES) + // if(printf_char_cursor>=(printf_screen+PRINTF_SCREEN_BYTES)) lda.z printf_char_cursor+1 cmp #>printf_screen+$28*$19 - bne __breturn + bcc __breturn + bne !+ lda.z printf_char_cursor cmp #= (byte*~) printf_char::$0 (bool~) printf_char::$2 ← ! (bool~) printf_char::$1 if((bool~) printf_char::$2) goto printf_char::@return to:printf_char::@2 @@ -378,7 +382,7 @@ printf_char::@return: scope:[printf_char] from printf_char printf_char::@4 to:@return (void()) printf_ln() -printf_ln: scope:[printf_ln] from main::@2 main::@4 main::@6 +printf_ln: scope:[printf_ln] from main::@2 main::@4 main::@6 printf_str::@6 to:printf_ln::@1 printf_ln::@1: scope:[printf_ln] from printf_ln printf_ln::@1 (byte*) printf_line_cursor ← (byte*) printf_line_cursor + (number) $28 @@ -424,23 +428,44 @@ printf_padding::@return: scope:[printf_padding] from printf_padding::@1 (void()) printf_str((byte*) printf_str::str) printf_str: scope:[printf_str] from printf_string::@2 - (byte*) printf_str::str#5 ← phi( printf_string::@2/(byte*) printf_str::str#1 ) + (byte*) printf_str::str#4 ← phi( printf_string::@2/(byte*) printf_str::str#1 ) to:printf_str::@1 -printf_str::@1: scope:[printf_str] from printf_str printf_str::@7 - (byte*) printf_str::str#2 ← phi( printf_str/(byte*) printf_str::str#5 printf_str::@7/(byte*) printf_str::str#0 ) - (bool~) printf_str::$1 ← (number) 0 != *((byte*) printf_str::str#2) - if((bool~) printf_str::$1) goto printf_str::@2 +printf_str::@1: scope:[printf_str] from printf_str printf_str::@15 printf_str::@16 + (byte*) printf_str::str#3 ← phi( printf_str/(byte*) printf_str::str#4 printf_str::@15/(byte*) printf_str::str#5 printf_str::@16/(byte*) printf_str::str#6 ) + if(true) goto printf_str::@2 to:printf_str::@return printf_str::@2: scope:[printf_str] from printf_str::@1 - (byte*) printf_str::str#3 ← phi( printf_str::@1/(byte*) printf_str::str#2 ) - (byte) printf_char::ch#1 ← *((byte*) printf_str::str#3) - call printf_char - to:printf_str::@7 -printf_str::@7: scope:[printf_str] from printf_str::@2 - (byte*) printf_str::str#4 ← phi( printf_str::@2/(byte*) printf_str::str#3 ) - (byte*) printf_str::str#0 ← ++ (byte*) printf_str::str#4 + (byte*) printf_str::str#2 ← phi( printf_str::@1/(byte*) printf_str::str#3 ) + (byte) printf_str::ch#0 ← *((byte*) printf_str::str#2) + (byte*) printf_str::str#0 ← ++ (byte*) printf_str::str#2 + (bool~) printf_str::$0 ← (byte) printf_str::ch#0 == (number) 0 + (bool~) printf_str::$1 ← ! (bool~) printf_str::$0 + if((bool~) printf_str::$1) goto printf_str::@4 + to:printf_str::@return +printf_str::@4: scope:[printf_str] from printf_str::@2 + (byte*) printf_str::str#9 ← phi( printf_str::@2/(byte*) printf_str::str#0 ) + (byte) printf_str::ch#1 ← phi( printf_str::@2/(byte) printf_str::ch#0 ) + (bool~) printf_str::$2 ← (byte) printf_str::ch#1 == (byte) ' +' + if((bool~) printf_str::$2) goto printf_str::@6 + to:printf_str::@12 +printf_str::@6: scope:[printf_str] from printf_str::@4 + (byte*) printf_str::str#7 ← phi( printf_str::@4/(byte*) printf_str::str#9 ) + call printf_ln + to:printf_str::@15 +printf_str::@15: scope:[printf_str] from printf_str::@6 + (byte*) printf_str::str#5 ← phi( printf_str::@6/(byte*) printf_str::str#7 ) to:printf_str::@1 -printf_str::@return: scope:[printf_str] from printf_str::@1 +printf_str::@12: scope:[printf_str] from printf_str::@4 + (byte*) printf_str::str#8 ← phi( printf_str::@4/(byte*) printf_str::str#9 ) + (byte) printf_str::ch#2 ← phi( printf_str::@4/(byte) printf_str::ch#1 ) + (byte) printf_char::ch#1 ← (byte) printf_str::ch#2 + call printf_char + to:printf_str::@16 +printf_str::@16: scope:[printf_str] from printf_str::@12 + (byte*) printf_str::str#6 ← phi( printf_str::@12/(byte*) printf_str::str#8 ) + to:printf_str::@1 +printf_str::@return: scope:[printf_str] from printf_str::@1 printf_str::@2 return to:@return @@ -751,11 +776,21 @@ SYMBOL TABLE SSA (byte) printf_padding::pad#5 (const byte*) printf_screen = (byte*)(number) $400 (void()) printf_str((byte*) printf_str::str) +(bool~) printf_str::$0 (bool~) printf_str::$1 +(bool~) printf_str::$2 (label) printf_str::@1 +(label) printf_str::@12 +(label) printf_str::@15 +(label) printf_str::@16 (label) printf_str::@2 -(label) printf_str::@7 +(label) printf_str::@4 +(label) printf_str::@6 (label) printf_str::@return +(byte) printf_str::ch +(byte) printf_str::ch#0 +(byte) printf_str::ch#1 +(byte) printf_str::ch#2 (byte*) printf_str::str (byte*) printf_str::str#0 (byte*) printf_str::str#1 @@ -763,6 +798,10 @@ SYMBOL TABLE SSA (byte*) printf_str::str#3 (byte*) printf_str::str#4 (byte*) printf_str::str#5 +(byte*) printf_str::str#6 +(byte*) printf_str::str#7 +(byte*) printf_str::str#8 +(byte*) printf_str::str#9 (void()) printf_string((byte*) printf_string::str , (byte) printf_string::format_min_length , (byte) printf_string::format_justify_left) (bool~) printf_string::$0 (bool~) printf_string::$1 @@ -872,7 +911,7 @@ Adding number conversion cast (unumber) $28 in (byte*~) printf_char::$6 ← (byt Adding number conversion cast (unumber) $28 in (word) memset::num#1 ← (number) $28 Adding number conversion cast (unumber) $28 in (byte*~) printf_char::$8 ← (byte*) printf_char_cursor - (number) $28 Adding number conversion cast (unumber) $28 in (byte*) printf_line_cursor ← (byte*) printf_line_cursor + (number) $28 -Adding number conversion cast (unumber) 0 in (bool~) printf_str::$1 ← (number) 0 != *((byte*) printf_str::str#2) +Adding number conversion cast (unumber) 0 in (bool~) printf_str::$0 ← (byte) printf_str::ch#0 == (number) 0 Adding number conversion cast (unumber) 0 in (bool~) printf_string::$14 ← (number) 0 != (byte) printf_string::format_min_length#4 Adding number conversion cast (unumber) 0 in (bool~) printf_string::$15 ← (number) 0 != (byte) printf_string::format_justify_left#4 Adding number conversion cast (snumber) 0 in (bool~) printf_string::$11 ← (signed byte) printf_string::padding#1 < (number) 0 @@ -948,10 +987,11 @@ Finalized unsigned number type (byte) $a Finalized unsigned number type (byte) 1 Successful SSA optimization PassNFinalizeNumberTypeConversions Inversing boolean not [20] (bool~) memset::$1 ← (word) memset::num#2 <= (byte) 0 from [19] (bool~) memset::$0 ← (word) memset::num#2 > (byte) 0 -Inversing boolean not [66] (bool~) printf_char::$2 ← (byte*) printf_char_cursor != (byte*~) printf_char::$0 from [65] (bool~) printf_char::$1 ← (byte*) printf_char_cursor == (byte*~) printf_char::$0 -Inversing boolean not [114] (bool~) printf_string::$0 ← (byte) 0 == (byte) printf_string::format_min_length#4 from [113] (bool~) printf_string::$14 ← (byte) 0 != (byte) printf_string::format_min_length#4 -Inversing boolean not [118] (bool~) printf_string::$1 ← (byte) 0 == (byte) printf_string::format_justify_left#4 from [117] (bool~) printf_string::$15 ← (byte) 0 != (byte) printf_string::format_justify_left#4 -Inversing boolean not [133] (bool~) printf_string::$12 ← (signed byte) printf_string::padding#1 >= (signed byte) 0 from [132] (bool~) printf_string::$11 ← (signed byte) printf_string::padding#1 < (signed byte) 0 +Inversing boolean not [66] (bool~) printf_char::$2 ← (byte*) printf_char_cursor < (byte*~) printf_char::$0 from [65] (bool~) printf_char::$1 ← (byte*) printf_char_cursor >= (byte*~) printf_char::$0 +Inversing boolean not [108] (bool~) printf_str::$1 ← (byte) printf_str::ch#0 != (byte) 0 from [107] (bool~) printf_str::$0 ← (byte) printf_str::ch#0 == (byte) 0 +Inversing boolean not [124] (bool~) printf_string::$0 ← (byte) 0 == (byte) printf_string::format_min_length#4 from [123] (bool~) printf_string::$14 ← (byte) 0 != (byte) printf_string::format_min_length#4 +Inversing boolean not [128] (bool~) printf_string::$1 ← (byte) 0 == (byte) printf_string::format_justify_left#4 from [127] (bool~) printf_string::$15 ← (byte) 0 != (byte) printf_string::format_justify_left#4 +Inversing boolean not [143] (bool~) printf_string::$12 ← (signed byte) printf_string::padding#1 >= (signed byte) 0 from [142] (bool~) printf_string::$11 ← (signed byte) printf_string::padding#1 < (signed byte) 0 Successful SSA optimization Pass2UnaryNotSimplification Alias candidate removed (volatile)printf_char_cursor = printf_char::$8 Alias memcpy::src_end#0 = memcpy::$0 @@ -973,7 +1013,9 @@ Alias strlen::str#2 = strlen::str#3 Alias printf_padding::pad#2 = printf_padding::pad#3 printf_padding::pad#5 Alias printf_padding::i#2 = printf_padding::i#4 printf_padding::i#3 Alias printf_padding::length#2 = printf_padding::length#5 printf_padding::length#4 -Alias printf_str::str#2 = printf_str::str#3 printf_str::str#4 +Alias printf_str::str#2 = printf_str::str#3 +Alias printf_str::ch#0 = printf_str::ch#1 printf_str::ch#2 +Alias printf_str::str#0 = printf_str::str#9 printf_str::str#7 printf_str::str#5 printf_str::str#8 printf_str::str#6 Alias printf_string::str#10 = printf_string::str#4 printf_string::str#6 printf_string::str#9 Alias printf_string::format_min_length#4 = printf_string::format_min_length#6 printf_string::format_min_length#5 Alias printf_string::format_justify_left#10 = printf_string::format_justify_left#6 printf_string::format_justify_left#8 printf_string::format_justify_left#7 @@ -1002,7 +1044,7 @@ Identical Phi Values (byte) memset::c#2 (byte) memset::c#4 Identical Phi Values (byte*) strlen::str#4 (byte*) strlen::str#1 Identical Phi Values (byte) printf_padding::length#2 (byte) printf_padding::length#3 Identical Phi Values (byte) printf_padding::pad#2 (byte) printf_padding::pad#4 -Identical Phi Values (byte*) printf_str::str#5 (byte*) printf_str::str#1 +Identical Phi Values (byte*) printf_str::str#4 (byte*) printf_str::str#1 Successful SSA optimization Pass2IdenticalPhiElimination Identical Phi Values (void*) memset::return#0 (void*) memset::str#3 Successful SSA optimization Pass2IdenticalPhiElimination @@ -1010,17 +1052,19 @@ Simple Condition (bool~) memcpy::$1 [7] if((byte*) memcpy::src#2!=(byte*) memcpy Simple Condition (bool~) memset::$1 [14] if((word) memset::num#2<=(byte) 0) goto memset::@1 Simple Condition (bool~) memset::$3 [21] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@5 Simple Condition (bool~) strlen::$0 [29] if((byte) 0!=*((byte*) strlen::str#2)) goto strlen::@2 -Simple Condition (bool~) printf_char::$2 [48] if((byte*) printf_char_cursor!=(byte*~) printf_char::$0) goto printf_char::@return +Simple Condition (bool~) printf_char::$2 [48] if((byte*) printf_char_cursor<(byte*~) printf_char::$0) goto printf_char::@return Simple Condition (bool~) printf_ln::$0 [68] if((byte*) printf_line_cursor<(byte*) printf_char_cursor) goto printf_ln::@1 Simple Condition (bool~) printf_padding::$0 [75] if((byte) printf_padding::i#2<(byte) printf_padding::length#3) goto printf_padding::@2 -Simple Condition (bool~) printf_str::$1 [83] if((byte) 0!=*((byte*) printf_str::str#2)) goto printf_str::@2 -Simple Condition (bool~) printf_string::$0 [91] if((byte) 0==(byte) printf_string::format_min_length#4) goto printf_string::@1 -Simple Condition (bool~) printf_string::$12 [105] if((signed byte) printf_string::padding#1>=(signed byte) 0) goto printf_string::@1 +Simple Condition (bool~) printf_str::$1 [86] if((byte) printf_str::ch#0!=(byte) 0) goto printf_str::@4 +Simple Condition (bool~) printf_str::$2 [88] if((byte) printf_str::ch#0==(byte) ' +') goto printf_str::@6 +Simple Condition (bool~) printf_string::$0 [96] if((byte) 0==(byte) printf_string::format_min_length#4) goto printf_string::@1 +Simple Condition (bool~) printf_string::$12 [110] if((signed byte) printf_string::padding#1>=(signed byte) 0) goto printf_string::@1 Successful SSA optimization Pass2ConditionalJumpSimplification -Rewriting ! if()-condition to reversed if() [95] (bool~) printf_string::$3 ← ! (bool~) printf_string::$2 -Rewriting && if()-condition to two if()s [94] (bool~) printf_string::$2 ← (bool~) printf_string::$1 && (signed byte) printf_string::padding#3 -Rewriting ! if()-condition to reversed if() [110] (bool~) printf_string::$7 ← ! (bool~) printf_string::$6 -Rewriting && if()-condition to two if()s [109] (bool~) printf_string::$6 ← (byte) printf_string::format_justify_left#10 && (signed byte) printf_string::padding#3 +Rewriting ! if()-condition to reversed if() [100] (bool~) printf_string::$3 ← ! (bool~) printf_string::$2 +Rewriting && if()-condition to two if()s [99] (bool~) printf_string::$2 ← (bool~) printf_string::$1 && (signed byte) printf_string::padding#3 +Rewriting ! if()-condition to reversed if() [115] (bool~) printf_string::$7 ← ! (bool~) printf_string::$6 +Rewriting && if()-condition to two if()s [114] (bool~) printf_string::$6 ← (byte) printf_string::format_justify_left#10 && (signed byte) printf_string::padding#3 Successful SSA optimization Pass2ConditionalAndOrRewriting Warning! Adding boolean cast to non-boolean condition (byte) printf_string::format_justify_left#10 Warning! Adding boolean cast to non-boolean condition (signed byte) printf_string::padding#3 @@ -1069,6 +1113,8 @@ Successful SSA optimization Pass2ConstantIdentification Constant (const byte*) memcpy::src#0 = (byte*)memcpy::source#0 Constant (const byte*) memcpy::$2 = (byte*)memcpy::source#0 Successful SSA optimization Pass2ConstantIdentification +if() condition always true - replacing block destination [82] if(true) goto printf_str::@2 +Successful SSA optimization Pass2ConstantIfs Consolidated constant strings into (const byte*) main::str Consolidated constant strings into (const byte*) main::str1 Successful SSA optimization Pass2ConstantStringConsolidation @@ -1089,13 +1135,13 @@ Finalized signed number type (signed byte) 0 Finalized signed number type (signed byte) 0 Successful SSA optimization PassNFinalizeNumberTypeConversions Alias candidate removed (volatile)printf_char_cursor = printf_char::$8 -Simple Condition (bool~) printf_string::$1 [61] if((byte) 0==(byte) printf_string::format_justify_left#10) goto printf_string::@13 -Simple Condition (bool~) printf_string::$16 [73] if((byte) 0!=(byte) printf_string::format_justify_left#10) goto printf_string::@14 -Simple Condition (bool~) printf_string::$17 [90] if((signed byte) 0!=(signed byte) printf_string::padding#3) goto printf_string::@6 -Simple Condition (bool~) printf_string::$18 [92] if((signed byte) 0!=(signed byte) printf_string::padding#3) goto printf_string::@7 +Simple Condition (bool~) printf_string::$1 [64] if((byte) 0==(byte) printf_string::format_justify_left#10) goto printf_string::@13 +Simple Condition (bool~) printf_string::$16 [76] if((byte) 0!=(byte) printf_string::format_justify_left#10) goto printf_string::@14 +Simple Condition (bool~) printf_string::$17 [93] if((signed byte) 0!=(signed byte) printf_string::padding#3) goto printf_string::@6 +Simple Condition (bool~) printf_string::$18 [95] if((signed byte) 0!=(signed byte) printf_string::padding#3) goto printf_string::@7 Successful SSA optimization Pass2ConditionalJumpSimplification -Negating conditional jump and destination [61] if((byte) 0!=(byte) printf_string::format_justify_left#10) goto printf_string::@2 -Negating conditional jump and destination [73] if((byte) 0==(byte) printf_string::format_justify_left#10) goto printf_string::@return +Negating conditional jump and destination [64] if((byte) 0!=(byte) printf_string::format_justify_left#10) goto printf_string::@2 +Negating conditional jump and destination [76] if((byte) 0==(byte) printf_string::format_justify_left#10) goto printf_string::@return Successful SSA optimization Pass2ConditionalJumpSequenceImprovement Constant right-side identified [0] (byte*) memcpy::src_end#0 ← (const byte*) memcpy::$2 + (const word) memcpy::num#0 Constant right-side identified [33] (byte*~) printf_char::$6 ← (const byte*) printf_char::$5 - (byte) $28 @@ -1108,7 +1154,7 @@ Successful SSA optimization Pass2ConstantIdentification Alias candidate removed (volatile)printf_char_cursor = printf_char::$8 Inlining Noop Cast [8] (byte*~) memset::$4 ← (byte*)(void*) memset::str#3 keeping memset::str#3 Inlining Noop Cast [10] (byte*) memset::dst#0 ← (byte*)(void*) memset::str#3 keeping memset::str#3 -Inlining Noop Cast [63] (signed byte~) printf_string::$13 ← (signed byte)(byte) printf_string::format_min_length#4 keeping printf_string::format_min_length#4 +Inlining Noop Cast [66] (signed byte~) printf_string::$13 ← (signed byte)(byte) printf_string::format_min_length#4 keeping printf_string::format_min_length#4 Successful SSA optimization Pass2NopCastInlining Inlining constant with var siblings (const byte*) memcpy::dst#0 Inlining constant with var siblings (const byte*) memcpy::src#0 @@ -1173,10 +1219,10 @@ Successful SSA optimization Pass2ConstantInlining Alias candidate removed (volatile)printf_char_cursor = printf_char::$8 Identical Phi Values (byte) printf_string::format_min_length#4 (byte) $a Successful SSA optimization Pass2IdenticalPhiElimination -Constant value identified (signed byte)$a in [61] (signed byte) printf_string::padding#1 ← (signed byte)(byte) $a - (signed byte) printf_string::len#0 +Constant value identified (signed byte)$a in [64] (signed byte) printf_string::padding#1 ← (signed byte)(byte) $a - (signed byte) printf_string::len#0 Successful SSA optimization Pass2ConstantValues Removing PHI-reference to removed block (printf_string) in block printf_string::@1 -if() condition always false - eliminating [53] if((byte) 0==(byte) $a) goto printf_string::@1 +if() condition always false - eliminating [56] if((byte) 0==(byte) $a) goto printf_string::@1 Successful SSA optimization Pass2ConstantIfs Simplifying constant integer cast $a Successful SSA optimization PassNCastSimplification @@ -1204,8 +1250,9 @@ Adding NOP phi() at start of printf_char::@3 Adding NOP phi() at start of memset::@1 Adding NOP phi() at start of memcpy Adding NOP phi() at start of memcpy::@3 -Adding NOP phi() at start of strlen::@3 +Adding NOP phi() at start of printf_str::@6 Adding NOP phi() at start of printf_ln +Adding NOP phi() at start of strlen::@3 Adding NOP phi() at start of printf_cls CALL GRAPH Calls in [] to main:4 @@ -1213,8 +1260,8 @@ Calls in [main] to printf_cls:8 printf_string:10 printf_ln:12 printf_string:14 p Calls in [printf_string] to strlen:27 printf_str:38 printf_padding:44 printf_padding:48 Calls in [printf_padding] to printf_char:57 Calls in [printf_char] to memcpy:65 memset:67 -Calls in [printf_str] to printf_char:99 -Calls in [printf_cls] to memset:117 +Calls in [printf_str] to printf_char:102 printf_ln:105 +Calls in [printf_cls] to memset:122 Created 16 initial phi equivalence classes Coalesced [43] printf_padding::length#7 ← printf_padding::length#1 @@ -1225,12 +1272,13 @@ Coalesced [59] printf_padding::i#5 ← printf_padding::i#1 Coalesced [82] memset::dst#5 ← memset::dst#1 Coalesced [91] memcpy::src#4 ← memcpy::src#1 Coalesced [92] memcpy::dst#4 ← memcpy::dst#1 -Coalesced [93] printf_str::str#6 ← printf_str::str#1 -Coalesced [98] printf_char::ch#4 ← printf_char::ch#1 -Coalesced [101] printf_str::str#7 ← printf_str::str#0 -Coalesced [102] strlen::str#5 ← strlen::str#1 -Coalesced [109] strlen::str#6 ← strlen::str#0 -Coalesced [110] strlen::len#5 ← strlen::len#1 +Coalesced [93] printf_str::str#10 ← printf_str::str#1 +Coalesced [101] printf_char::ch#4 ← printf_char::ch#1 +Coalesced [103] printf_str::str#12 ← printf_str::str#0 +Coalesced (already) [106] printf_str::str#11 ← printf_str::str#0 +Coalesced [112] strlen::str#5 ← strlen::str#1 +Coalesced [119] strlen::str#6 ← strlen::str#0 +Coalesced [120] strlen::len#5 ← strlen::len#1 Coalesced down to 16 phi equivalence classes Culled Empty Block (label) @30 Culled Empty Block (label) main::@8 @@ -1239,6 +1287,8 @@ Culled Empty Block (label) printf_string::@12 Culled Empty Block (label) printf_string::@11 Culled Empty Block (label) memset::@1 Culled Empty Block (label) memcpy::@3 +Culled Empty Block (label) printf_str::@16 +Culled Empty Block (label) printf_str::@15 Culled Empty Block (label) strlen::@3 Renumbering block @15 to @1 Renumbering block @29 to @2 @@ -1249,7 +1299,9 @@ Renumbering block printf_char::@2 to printf_char::@1 Renumbering block printf_char::@3 to printf_char::@2 Renumbering block printf_char::@4 to printf_char::@3 Renumbering block printf_padding::@7 to printf_padding::@3 -Renumbering block printf_str::@7 to printf_str::@3 +Renumbering block printf_str::@4 to printf_str::@3 +Renumbering block printf_str::@6 to printf_str::@4 +Renumbering block printf_str::@12 to printf_str::@5 Renumbering block printf_string::@4 to printf_string::@3 Renumbering block printf_string::@6 to printf_string::@4 Renumbering block printf_string::@7 to printf_string::@5 @@ -1274,8 +1326,9 @@ Adding NOP phi() at start of printf_char::@1 Adding NOP phi() at start of printf_char::@2 Adding NOP phi() at start of memcpy Adding NOP phi() at start of printf_str -Adding NOP phi() at start of strlen +Adding NOP phi() at start of printf_str::@4 Adding NOP phi() at start of printf_ln +Adding NOP phi() at start of strlen Adding NOP phi() at start of printf_cls FINAL CONTROL FLOW GRAPH @@ -1399,11 +1452,11 @@ printf_padding::@3: scope:[printf_padding] from printf_padding::@2 to:printf_padding::@1 (void()) printf_char((byte) printf_char::ch) -printf_char: scope:[printf_char] from printf_padding::@2 printf_str::@2 - [51] (byte) printf_char::ch#2 ← phi( printf_padding::@2/(byte) printf_char::ch#0 printf_str::@2/(byte) printf_char::ch#1 ) +printf_char: scope:[printf_char] from printf_padding::@2 printf_str::@5 + [51] (byte) printf_char::ch#2 ← phi( printf_padding::@2/(byte) printf_char::ch#0 printf_str::@5/(byte) printf_char::ch#1 ) [52] *((byte*) printf_char_cursor) ← (byte) printf_char::ch#2 [53] (byte*) printf_char_cursor ← ++ (byte*) printf_char_cursor - [54] if((byte*) printf_char_cursor!=(const byte*) printf_screen+(word)(number) $28*(number) $19) goto printf_char::@return + [54] if((byte*) printf_char_cursor<(const byte*) printf_screen+(word)(number) $28*(number) $19) goto printf_char::@return to:printf_char::@1 printf_char::@1: scope:[printf_char] from printf_char [55] phi() @@ -1467,68 +1520,78 @@ memcpy::@2: scope:[memcpy] from memcpy::@1 printf_str: scope:[printf_str] from printf_string::@2 [79] phi() to:printf_str::@1 -printf_str::@1: scope:[printf_str] from printf_str printf_str::@3 - [80] (byte*) printf_str::str#2 ← phi( printf_str/(byte*) printf_str::str#1 printf_str::@3/(byte*) printf_str::str#0 ) - [81] if((byte) 0!=*((byte*) printf_str::str#2)) goto printf_str::@2 - to:printf_str::@return -printf_str::@return: scope:[printf_str] from printf_str::@1 - [82] return - to:@return +printf_str::@1: scope:[printf_str] from printf_str printf_str::@4 printf_str::@5 + [80] (byte*) printf_str::str#2 ← phi( printf_str/(byte*) printf_str::str#1 printf_str::@4/(byte*) printf_str::str#0 printf_str::@5/(byte*) printf_str::str#0 ) + to:printf_str::@2 printf_str::@2: scope:[printf_str] from printf_str::@1 - [83] (byte) printf_char::ch#1 ← *((byte*) printf_str::str#2) - [84] call printf_char - to:printf_str::@3 + [81] (byte) printf_str::ch#0 ← *((byte*) printf_str::str#2) + [82] (byte*) printf_str::str#0 ← ++ (byte*) printf_str::str#2 + [83] if((byte) printf_str::ch#0!=(byte) 0) goto printf_str::@3 + to:printf_str::@return +printf_str::@return: scope:[printf_str] from printf_str::@2 + [84] return + to:@return printf_str::@3: scope:[printf_str] from printf_str::@2 - [85] (byte*) printf_str::str#0 ← ++ (byte*) printf_str::str#2 + [85] if((byte) printf_str::ch#0==(byte) ' +') goto printf_str::@4 + to:printf_str::@5 +printf_str::@5: scope:[printf_str] from printf_str::@3 + [86] (byte) printf_char::ch#1 ← (byte) printf_str::ch#0 + [87] call printf_char to:printf_str::@1 +printf_str::@4: scope:[printf_str] from printf_str::@3 + [88] phi() + [89] call printf_ln + to:printf_str::@1 + +(void()) printf_ln() +printf_ln: scope:[printf_ln] from main::@2 main::@4 main::@6 printf_str::@4 + [90] phi() + to:printf_ln::@1 +printf_ln::@1: scope:[printf_ln] from printf_ln printf_ln::@1 + [91] (byte*) printf_line_cursor ← (byte*) printf_line_cursor + (byte) $28 + [92] if((byte*) printf_line_cursor<(byte*) printf_char_cursor) goto printf_ln::@1 + to:printf_ln::@2 +printf_ln::@2: scope:[printf_ln] from printf_ln::@1 + [93] (byte*) printf_char_cursor ← (byte*) printf_line_cursor + to:printf_ln::@return +printf_ln::@return: scope:[printf_ln] from printf_ln::@2 + [94] return + to:@return (word()) strlen((byte*) strlen::str) strlen: scope:[strlen] from printf_string::@3 - [86] phi() + [95] phi() to:strlen::@1 strlen::@1: scope:[strlen] from strlen strlen::@2 - [87] (word) strlen::len#2 ← phi( strlen/(word) 0 strlen::@2/(word) strlen::len#1 ) - [87] (byte*) strlen::str#2 ← phi( strlen/(byte*) strlen::str#1 strlen::@2/(byte*) strlen::str#0 ) - [88] if((byte) 0!=*((byte*) strlen::str#2)) goto strlen::@2 + [96] (word) strlen::len#2 ← phi( strlen/(word) 0 strlen::@2/(word) strlen::len#1 ) + [96] (byte*) strlen::str#2 ← phi( strlen/(byte*) strlen::str#1 strlen::@2/(byte*) strlen::str#0 ) + [97] if((byte) 0!=*((byte*) strlen::str#2)) goto strlen::@2 to:strlen::@return strlen::@return: scope:[strlen] from strlen::@1 - [89] return + [98] return to:@return strlen::@2: scope:[strlen] from strlen::@1 - [90] (word) strlen::len#1 ← ++ (word) strlen::len#2 - [91] (byte*) strlen::str#0 ← ++ (byte*) strlen::str#2 + [99] (word) strlen::len#1 ← ++ (word) strlen::len#2 + [100] (byte*) strlen::str#0 ← ++ (byte*) strlen::str#2 to:strlen::@1 -(void()) printf_ln() -printf_ln: scope:[printf_ln] from main::@2 main::@4 main::@6 - [92] phi() - to:printf_ln::@1 -printf_ln::@1: scope:[printf_ln] from printf_ln printf_ln::@1 - [93] (byte*) printf_line_cursor ← (byte*) printf_line_cursor + (byte) $28 - [94] if((byte*) printf_line_cursor<(byte*) printf_char_cursor) goto printf_ln::@1 - to:printf_ln::@2 -printf_ln::@2: scope:[printf_ln] from printf_ln::@1 - [95] (byte*) printf_char_cursor ← (byte*) printf_line_cursor - to:printf_ln::@return -printf_ln::@return: scope:[printf_ln] from printf_ln::@2 - [96] return - to:@return - (void()) printf_cls() printf_cls: scope:[printf_cls] from main - [97] phi() - [98] call memset + [101] phi() + [102] call memset to:printf_cls::@1 printf_cls::@1: scope:[printf_cls] from printf_cls - [99] (byte*) printf_line_cursor ← (const byte*) printf_screen - [100] (byte*) printf_char_cursor ← (byte*) printf_line_cursor + [103] (byte*) printf_line_cursor ← (const byte*) printf_screen + [104] (byte*) printf_char_cursor ← (byte*) printf_line_cursor to:printf_cls::@return printf_cls::@return: scope:[printf_cls] from printf_cls::@1 - [101] return + [105] return to:@return +null depth in calling loop Loop head: printf_str::@1 tails: printf_str::@5 printf_str::@4 blocks: printf_str::@5 printf_str::@3 printf_str::@2 printf_str::@1 printf_str::@4 in scope printf_ln null depth in calling loop Loop head: printf_padding::@1 tails: printf_padding::@3 blocks: printf_padding::@3 printf_padding::@2 printf_padding::@1 in scope printf_char -null depth in calling loop Loop head: printf_str::@1 tails: printf_str::@3 blocks: printf_str::@3 printf_str::@2 printf_str::@1 in scope printf_char +null depth in calling loop Loop head: printf_str::@1 tails: printf_str::@5 printf_str::@4 blocks: printf_str::@5 printf_str::@3 printf_str::@2 printf_str::@1 printf_str::@4 in scope printf_char VARIABLE REGISTER WEIGHTS (void()) main() @@ -1565,7 +1628,7 @@ VARIABLE REGISTER WEIGHTS (byte) printf_char::ch#0 20002.0 (byte) printf_char::ch#1 20002.0 (byte) printf_char::ch#2 120003.0 -(byte*) printf_char_cursor loadstore 10465.85074626866 +(byte*) printf_char_cursor loadstore 25353.69014084507 (void()) printf_cls() (byte) printf_format_number::justify_left (byte) printf_format_number::min_length @@ -1574,7 +1637,7 @@ VARIABLE REGISTER WEIGHTS (byte) printf_format_number::zero_padding (byte) printf_format_string::justify_left (byte) printf_format_string::min_length -(byte*) printf_line_cursor loadstore 1639.825396825397 +(byte*) printf_line_cursor loadstore 47764.31343283582 (void()) printf_ln() (void()) printf_padding((byte) printf_padding::pad , (byte) printf_padding::length) (byte) printf_padding::i @@ -1587,10 +1650,12 @@ VARIABLE REGISTER WEIGHTS (byte) printf_padding::pad (byte) printf_padding::pad#4 1666.8333333333333 (void()) printf_str((byte*) printf_str::str) +(byte) printf_str::ch +(byte) printf_str::ch#0 10001.0 (byte*) printf_str::str -(byte*) printf_str::str#0 20002.0 +(byte*) printf_str::str#0 4286.142857142857 (byte*) printf_str::str#1 551.0 -(byte*) printf_str::str#2 10251.25 +(byte*) printf_str::str#2 20502.5 (void()) printf_string((byte*) printf_string::str , (byte) printf_string::format_min_length , (byte) printf_string::format_justify_left) (word~) printf_string::$9 101.0 (struct printf_format_string) printf_string::format @@ -1639,6 +1704,7 @@ Added variable printf_string::$9 to live range equivalence class [ printf_string Added variable printf_string::len#0 to live range equivalence class [ printf_string::len#0 ] Added variable printf_char::$8 to live range equivalence class [ printf_char::$8 ] Added variable memset::end#0 to live range equivalence class [ memset::end#0 ] +Added variable printf_str::ch#0 to live range equivalence class [ printf_str::ch#0 ] Complete equivalence classes [ printf_string::format_justify_left#10 ] [ printf_string::str#10 ] @@ -1663,6 +1729,7 @@ Complete equivalence classes [ printf_string::len#0 ] [ printf_char::$8 ] [ memset::end#0 ] +[ printf_str::ch#0 ] Allocated zp[1]:2 [ printf_string::format_justify_left#10 ] Allocated zp[2]:3 [ printf_string::str#10 ] Allocated zp[1]:5 [ printf_string::padding#3 printf_string::padding#1 ] @@ -1686,6 +1753,7 @@ Allocated zp[2]:33 [ printf_string::$9 ] Allocated zp[1]:35 [ printf_string::len#0 ] Allocated zp[2]:36 [ printf_char::$8 ] Allocated zp[2]:38 [ memset::end#0 ] +Allocated zp[1]:40 [ printf_str::ch#0 ] INITIAL ASM Target platform is c64basic / MOS6502X @@ -1732,7 +1800,7 @@ __bend: // main main: { // [7] call printf_cls - // [97] phi from main to printf_cls [phi:main->printf_cls] + // [101] phi from main to printf_cls [phi:main->printf_cls] printf_cls_from_main: jsr printf_cls // [8] phi from main to main::@1 [phi:main->main::@1] @@ -1758,7 +1826,7 @@ main: { // main::@2 __b2: // [11] call printf_ln - // [92] phi from main::@2 to printf_ln [phi:main::@2->printf_ln] + // [90] phi from main::@2 to printf_ln [phi:main::@2->printf_ln] printf_ln_from___b2: jsr printf_ln // [12] phi from main::@2 to main::@3 [phi:main::@2->main::@3] @@ -1784,7 +1852,7 @@ main: { // main::@4 __b4: // [15] call printf_ln - // [92] phi from main::@4 to printf_ln [phi:main::@4->printf_ln] + // [90] phi from main::@4 to printf_ln [phi:main::@4->printf_ln] printf_ln_from___b4: jsr printf_ln // [16] phi from main::@4 to main::@5 [phi:main::@4->main::@5] @@ -1810,7 +1878,7 @@ main: { // main::@6 __b6: // [19] call printf_ln - // [92] phi from main::@6 to printf_ln [phi:main::@6->printf_ln] + // [90] phi from main::@6 to printf_ln [phi:main::@6->printf_ln] printf_ln_from___b6: jsr printf_ln // [20] phi from main::@6 to main::@7 [phi:main::@6->main::@7] @@ -1859,7 +1927,7 @@ printf_string: { lda.z str+1 sta.z strlen.str+1 // [25] call strlen - // [86] phi from printf_string::@3 to strlen [phi:printf_string::@3->strlen] + // [95] phi from printf_string::@3 to strlen [phi:printf_string::@3->strlen] strlen_from___b3: jsr strlen // [26] (word) strlen::return#2 ← (word) strlen::len#2 -- vwuz1=vwuz2 @@ -2035,13 +2103,15 @@ printf_char: { bne !+ inc.z printf_char_cursor+1 !: - // [54] if((byte*) printf_char_cursor!=(const byte*) printf_screen+(word)(number) $28*(number) $19) goto printf_char::@return -- pbuz1_neq_pbuc1_then_la1 + // [54] if((byte*) printf_char_cursor<(const byte*) printf_screen+(word)(number) $28*(number) $19) goto printf_char::@return -- pbuz1_lt_pbuc1_then_la1 lda.z printf_char_cursor+1 cmp #>printf_screen+$28*$19 - bne __breturn + bcc __breturn + bne !+ lda.z printf_char_cursor cmp #printf_char::@1] __b1_from_printf_char: jmp __b1 @@ -2225,92 +2295,68 @@ memcpy: { } // printf_str // Print a zero-terminated string +// Handles escape codes such as newline // printf_str(byte* zp($15) str) printf_str: { + .label ch = $28 .label str = $15 - // [80] phi from printf_str printf_str::@3 to printf_str::@1 [phi:printf_str/printf_str::@3->printf_str::@1] + // [80] phi from printf_str printf_str::@4 printf_str::@5 to printf_str::@1 [phi:printf_str/printf_str::@4/printf_str::@5->printf_str::@1] __b1_from_printf_str: - __b1_from___b3: - // [80] phi (byte*) printf_str::str#2 = (byte*) printf_str::str#1 [phi:printf_str/printf_str::@3->printf_str::@1#0] -- register_copy + __b1_from___b4: + __b1_from___b5: + // [80] phi (byte*) printf_str::str#2 = (byte*) printf_str::str#1 [phi:printf_str/printf_str::@4/printf_str::@5->printf_str::@1#0] -- register_copy jmp __b1 // printf_str::@1 __b1: - // [81] if((byte) 0!=*((byte*) printf_str::str#2)) goto printf_str::@2 -- vbuc1_neq__deref_pbuz1_then_la1 + jmp __b2 + // printf_str::@2 + __b2: + // [81] (byte) printf_str::ch#0 ← *((byte*) printf_str::str#2) -- vbuz1=_deref_pbuz2 ldy #0 lda (str),y + sta.z ch + // [82] (byte*) printf_str::str#0 ← ++ (byte*) printf_str::str#2 -- pbuz1=_inc_pbuz1 + inc.z str + bne !+ + inc.z str+1 + !: + // [83] if((byte) printf_str::ch#0!=(byte) 0) goto printf_str::@3 -- vbuz1_neq_0_then_la1 + lda.z ch cmp #0 - bne __b2 + bne __b3 jmp __breturn // printf_str::@return __breturn: - // [82] return + // [84] return rts - // printf_str::@2 - __b2: - // [83] (byte) printf_char::ch#1 ← *((byte*) printf_str::str#2) -- vbuz1=_deref_pbuz2 - ldy #0 - lda (str),y - sta.z printf_char.ch - // [84] call printf_char - // [51] phi from printf_str::@2 to printf_char [phi:printf_str::@2->printf_char] - printf_char_from___b2: - // [51] phi (byte) printf_char::ch#2 = (byte) printf_char::ch#1 [phi:printf_str::@2->printf_char#0] -- register_copy - jsr printf_char - jmp __b3 // printf_str::@3 __b3: - // [85] (byte*) printf_str::str#0 ← ++ (byte*) printf_str::str#2 -- pbuz1=_inc_pbuz1 - inc.z str - bne !+ - inc.z str+1 - !: - jmp __b1_from___b3 -} - // strlen -// Computes the length of the string str up to but not including the terminating null character. -// strlen(byte* zp($17) str) -strlen: { - .label len = $19 - .label str = $17 - .label return = $1f - // [87] phi from strlen to strlen::@1 [phi:strlen->strlen::@1] - __b1_from_strlen: - // [87] phi (word) strlen::len#2 = (word) 0 [phi:strlen->strlen::@1#0] -- vwuz1=vwuc1 - lda #<0 - sta.z len - lda #>0 - sta.z len+1 - // [87] phi (byte*) strlen::str#2 = (byte*) strlen::str#1 [phi:strlen->strlen::@1#1] -- register_copy - jmp __b1 - // strlen::@1 - __b1: - // [88] if((byte) 0!=*((byte*) strlen::str#2)) goto strlen::@2 -- vbuc1_neq__deref_pbuz1_then_la1 - ldy #0 - lda (str),y - cmp #0 - bne __b2 - jmp __breturn - // strlen::@return - __breturn: - // [89] return - rts - // strlen::@2 - __b2: - // [90] (word) strlen::len#1 ← ++ (word) strlen::len#2 -- vwuz1=_inc_vwuz1 - inc.z len - bne !+ - inc.z len+1 - !: - // [91] (byte*) strlen::str#0 ← ++ (byte*) strlen::str#2 -- pbuz1=_inc_pbuz1 - inc.z str - bne !+ - inc.z str+1 - !: - // [87] phi from strlen::@2 to strlen::@1 [phi:strlen::@2->strlen::@1] - __b1_from___b2: - // [87] phi (word) strlen::len#2 = (word) strlen::len#1 [phi:strlen::@2->strlen::@1#0] -- register_copy - // [87] phi (byte*) strlen::str#2 = (byte*) strlen::str#0 [phi:strlen::@2->strlen::@1#1] -- register_copy - jmp __b1 + // [85] if((byte) printf_str::ch#0==(byte) ' ') goto printf_str::@4 -- vbuz1_eq_vbuc1_then_la1 + lda #'\n' + cmp.z ch + beq __b4_from___b3 + jmp __b5 + // printf_str::@5 + __b5: + // [86] (byte) printf_char::ch#1 ← (byte) printf_str::ch#0 -- vbuz1=vbuz2 + lda.z ch + sta.z printf_char.ch + // [87] call printf_char + // [51] phi from printf_str::@5 to printf_char [phi:printf_str::@5->printf_char] + printf_char_from___b5: + // [51] phi (byte) printf_char::ch#2 = (byte) printf_char::ch#1 [phi:printf_str::@5->printf_char#0] -- register_copy + jsr printf_char + jmp __b1_from___b5 + // [88] phi from printf_str::@3 to printf_str::@4 [phi:printf_str::@3->printf_str::@4] + __b4_from___b3: + jmp __b4 + // printf_str::@4 + __b4: + // [89] call printf_ln + // [90] phi from printf_str::@4 to printf_ln [phi:printf_str::@4->printf_ln] + printf_ln_from___b4: + jsr printf_ln + jmp __b1_from___b4 } // printf_ln // Print a newline @@ -2318,7 +2364,7 @@ printf_ln: { jmp __b1 // printf_ln::@1 __b1: - // [93] (byte*) printf_line_cursor ← (byte*) printf_line_cursor + (byte) $28 -- pbuz1=pbuz1_plus_vbuc1 + // [91] (byte*) printf_line_cursor ← (byte*) printf_line_cursor + (byte) $28 -- pbuz1=pbuz1_plus_vbuc1 lda #$28 clc adc.z printf_line_cursor @@ -2326,7 +2372,7 @@ printf_ln: { bcc !+ inc.z printf_line_cursor+1 !: - // [94] if((byte*) printf_line_cursor<(byte*) printf_char_cursor) goto printf_ln::@1 -- pbuz1_lt_pbuz2_then_la1 + // [92] if((byte*) printf_line_cursor<(byte*) printf_char_cursor) goto printf_ln::@1 -- pbuz1_lt_pbuz2_then_la1 lda.z printf_line_cursor+1 cmp.z printf_char_cursor+1 bcc __b1 @@ -2338,7 +2384,7 @@ printf_ln: { jmp __b2 // printf_ln::@2 __b2: - // [95] (byte*) printf_char_cursor ← (byte*) printf_line_cursor -- pbuz1=pbuz2 + // [93] (byte*) printf_char_cursor ← (byte*) printf_line_cursor -- pbuz1=pbuz2 lda.z printf_line_cursor sta.z printf_char_cursor lda.z printf_line_cursor+1 @@ -2346,13 +2392,59 @@ printf_ln: { jmp __breturn // printf_ln::@return __breturn: - // [96] return + // [94] return rts +} + // strlen +// Computes the length of the string str up to but not including the terminating null character. +// strlen(byte* zp($17) str) +strlen: { + .label len = $19 + .label str = $17 + .label return = $1f + // [96] phi from strlen to strlen::@1 [phi:strlen->strlen::@1] + __b1_from_strlen: + // [96] phi (word) strlen::len#2 = (word) 0 [phi:strlen->strlen::@1#0] -- vwuz1=vwuc1 + lda #<0 + sta.z len + lda #>0 + sta.z len+1 + // [96] phi (byte*) strlen::str#2 = (byte*) strlen::str#1 [phi:strlen->strlen::@1#1] -- register_copy + jmp __b1 + // strlen::@1 + __b1: + // [97] if((byte) 0!=*((byte*) strlen::str#2)) goto strlen::@2 -- vbuc1_neq__deref_pbuz1_then_la1 + ldy #0 + lda (str),y + cmp #0 + bne __b2 + jmp __breturn + // strlen::@return + __breturn: + // [98] return + rts + // strlen::@2 + __b2: + // [99] (word) strlen::len#1 ← ++ (word) strlen::len#2 -- vwuz1=_inc_vwuz1 + inc.z len + bne !+ + inc.z len+1 + !: + // [100] (byte*) strlen::str#0 ← ++ (byte*) strlen::str#2 -- pbuz1=_inc_pbuz1 + inc.z str + bne !+ + inc.z str+1 + !: + // [96] phi from strlen::@2 to strlen::@1 [phi:strlen::@2->strlen::@1] + __b1_from___b2: + // [96] phi (word) strlen::len#2 = (word) strlen::len#1 [phi:strlen::@2->strlen::@1#0] -- register_copy + // [96] phi (byte*) strlen::str#2 = (byte*) strlen::str#0 [phi:strlen::@2->strlen::@1#1] -- register_copy + jmp __b1 } // printf_cls // Clear the screen. Also resets current line/char cursor. printf_cls: { - // [98] call memset + // [102] call memset // [63] phi from printf_cls to memset [phi:printf_cls->memset] memset_from_printf_cls: // [63] phi (byte) memset::c#4 = (byte) ' ' [phi:printf_cls->memset#0] -- vbuz1=vbuc1 @@ -2372,12 +2464,12 @@ printf_cls: { jmp __b1 // printf_cls::@1 __b1: - // [99] (byte*) printf_line_cursor ← (const byte*) printf_screen -- pbuz1=pbuc1 + // [103] (byte*) printf_line_cursor ← (const byte*) printf_screen -- pbuz1=pbuc1 lda #printf_screen sta.z printf_line_cursor+1 - // [100] (byte*) printf_char_cursor ← (byte*) printf_line_cursor -- pbuz1=pbuz2 + // [104] (byte*) printf_char_cursor ← (byte*) printf_line_cursor -- pbuz1=pbuz2 lda.z printf_line_cursor sta.z printf_char_cursor lda.z printf_line_cursor+1 @@ -2385,7 +2477,7 @@ printf_cls: { jmp __breturn // printf_cls::@return __breturn: - // [101] return + // [105] return rts } // File Data @@ -2401,36 +2493,35 @@ Statement [28] (signed byte) printf_string::len#0 ← (signed byte)(word~) print Statement [29] (signed byte) printf_string::padding#1 ← (signed byte) $a - (signed byte) printf_string::len#0 [ printf_line_cursor printf_char_cursor printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#1 ] ( main:4::printf_string:9 [ printf_line_cursor printf_char_cursor printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#1 ] { } main:4::printf_string:13 [ printf_line_cursor printf_char_cursor printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#1 ] { } main:4::printf_string:17 [ printf_line_cursor printf_char_cursor printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#1 ] { } main:4::printf_string:21 [ printf_line_cursor printf_char_cursor printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#1 ] { } ) always clobbers reg byte a Statement [37] (byte*) printf_str::str#1 ← (byte*) printf_string::str#10 [ printf_line_cursor printf_char_cursor printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#1 ] ( main:4::printf_string:9 [ printf_line_cursor printf_char_cursor printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#1 ] { { printf_str::str#1 = printf_string::str#10 } } main:4::printf_string:13 [ printf_line_cursor printf_char_cursor printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#1 ] { { printf_str::str#1 = printf_string::str#10 } } main:4::printf_string:17 [ printf_line_cursor printf_char_cursor printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#1 ] { { printf_str::str#1 = printf_string::str#10 } } main:4::printf_string:21 [ printf_line_cursor printf_char_cursor printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#1 ] { { printf_str::str#1 = printf_string::str#10 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:5 [ printf_string::padding#3 printf_string::padding#1 ] -Statement [52] *((byte*) printf_char_cursor) ← (byte) printf_char::ch#2 [ printf_line_cursor printf_char_cursor ] ( main:4::printf_string:9::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_str:38::printf_char:84 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:13::printf_str:38::printf_char:84 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:17::printf_str:38::printf_char:84 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:21::printf_str:38::printf_char:84 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } ) always clobbers reg byte y +Statement [52] *((byte*) printf_char_cursor) ← (byte) printf_char::ch#2 [ printf_line_cursor printf_char_cursor ] ( main:4::printf_string:9::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_str:38::printf_char:87 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:13::printf_str:38::printf_char:87 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:17::printf_str:38::printf_char:87 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:21::printf_str:38::printf_char:87 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } ) always clobbers reg byte y Removing always clobbered register reg byte y as potential for zp[1]:2 [ printf_string::format_justify_left#10 ] Removing always clobbered register reg byte y as potential for zp[1]:5 [ printf_string::padding#3 printf_string::padding#1 ] Removing always clobbered register reg byte y as potential for zp[1]:6 [ printf_padding::length#3 printf_padding::length#0 printf_padding::length#1 ] Removing always clobbered register reg byte y as potential for zp[1]:7 [ printf_padding::pad#4 ] Removing always clobbered register reg byte y as potential for zp[1]:8 [ printf_padding::i#2 printf_padding::i#1 ] -Statement [54] if((byte*) printf_char_cursor!=(const byte*) printf_screen+(word)(number) $28*(number) $19) goto printf_char::@return [ printf_line_cursor printf_char_cursor ] ( main:4::printf_string:9::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_str:38::printf_char:84 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:13::printf_str:38::printf_char:84 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:17::printf_str:38::printf_char:84 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:21::printf_str:38::printf_char:84 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } ) always clobbers reg byte a +Statement [54] if((byte*) printf_char_cursor<(const byte*) printf_screen+(word)(number) $28*(number) $19) goto printf_char::@return [ printf_line_cursor printf_char_cursor ] ( main:4::printf_string:9::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_str:38::printf_char:87 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:13::printf_str:38::printf_char:87 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:17::printf_str:38::printf_char:87 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:21::printf_str:38::printf_char:87 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:6 [ printf_padding::length#3 printf_padding::length#0 printf_padding::length#1 ] Removing always clobbered register reg byte a as potential for zp[1]:7 [ printf_padding::pad#4 ] Removing always clobbered register reg byte a as potential for zp[1]:8 [ printf_padding::i#2 printf_padding::i#1 ] -Statement [59] (byte*~) printf_char::$8 ← (byte*) printf_char_cursor - (byte) $28 [ printf_char::$8 ] ( main:4::printf_string:9::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char::$8 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char::$8 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char::$8 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char::$8 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char::$8 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char::$8 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char::$8 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char::$8 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_str:38::printf_char:84 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char::$8 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:13::printf_str:38::printf_char:84 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char::$8 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:17::printf_str:38::printf_char:84 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char::$8 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:21::printf_str:38::printf_char:84 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char::$8 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } ) always clobbers reg byte a -Statement [60] (byte*) printf_char_cursor ← (byte*~) printf_char::$8 [ printf_char_cursor ] ( main:4::printf_string:9::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_str:38::printf_char:84 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:13::printf_str:38::printf_char:84 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:17::printf_str:38::printf_char:84 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:21::printf_str:38::printf_char:84 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } ) always clobbers reg byte a -Statement [61] (byte*) printf_line_cursor ← (byte*) printf_char_cursor [ printf_line_cursor printf_char_cursor ] ( main:4::printf_string:9::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_str:38::printf_char:84 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:13::printf_str:38::printf_char:84 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:17::printf_str:38::printf_char:84 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:21::printf_str:38::printf_char:84 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } ) always clobbers reg byte a -Statement [64] if((word) memset::num#2<=(byte) 0) goto memset::@return [ memset::num#2 memset::str#3 memset::c#4 ] ( main:4::printf_string:9::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_str:38::printf_char:84::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:13::printf_str:38::printf_char:84::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:17::printf_str:38::printf_char:84::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:21::printf_str:38::printf_char:84::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_cls:7::memset:98 [ memset::num#2 memset::str#3 memset::c#4 ] { } ) always clobbers reg byte a +Statement [59] (byte*~) printf_char::$8 ← (byte*) printf_char_cursor - (byte) $28 [ printf_char::$8 ] ( main:4::printf_string:9::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char::$8 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char::$8 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char::$8 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char::$8 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char::$8 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char::$8 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char::$8 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char::$8 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_str:38::printf_char:87 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char::$8 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:13::printf_str:38::printf_char:87 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char::$8 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:17::printf_str:38::printf_char:87 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char::$8 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:21::printf_str:38::printf_char:87 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char::$8 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } ) always clobbers reg byte a +Statement [60] (byte*) printf_char_cursor ← (byte*~) printf_char::$8 [ printf_char_cursor ] ( main:4::printf_string:9::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_str:38::printf_char:87 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:13::printf_str:38::printf_char:87 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:17::printf_str:38::printf_char:87 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:21::printf_str:38::printf_char:87 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } ) always clobbers reg byte a +Statement [61] (byte*) printf_line_cursor ← (byte*) printf_char_cursor [ printf_line_cursor printf_char_cursor ] ( main:4::printf_string:9::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_str:38::printf_char:87 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:13::printf_str:38::printf_char:87 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:17::printf_str:38::printf_char:87 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:21::printf_str:38::printf_char:87 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } ) always clobbers reg byte a +Statement [64] if((word) memset::num#2<=(byte) 0) goto memset::@return [ memset::num#2 memset::str#3 memset::c#4 ] ( main:4::printf_string:9::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_str:38::printf_char:87::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:13::printf_str:38::printf_char:87::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:17::printf_str:38::printf_char:87::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:21::printf_str:38::printf_char:87::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_cls:7::memset:102 [ memset::num#2 memset::str#3 memset::c#4 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:14 [ memset::c#4 ] -Statement [65] (byte*) memset::end#0 ← (byte*)(void*) memset::str#3 + (word) memset::num#2 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:4::printf_string:9::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_str:38::printf_char:84::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:13::printf_str:38::printf_char:84::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:17::printf_str:38::printf_char:84::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:21::printf_str:38::printf_char:84::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_cls:7::memset:98 [ memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a -Statement [66] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:4::printf_string:9::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_str:38::printf_char:84::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:13::printf_str:38::printf_char:84::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:17::printf_str:38::printf_char:84::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:21::printf_str:38::printf_char:84::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_cls:7::memset:98 [ memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a -Statement [68] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:4::printf_string:9::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_str:38::printf_char:84::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:13::printf_str:38::printf_char:84::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:17::printf_str:38::printf_char:84::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:21::printf_str:38::printf_char:84::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_cls:7::memset:98 [ memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a -Statement [70] *((byte*) memset::dst#2) ← (byte) memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:4::printf_string:9::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_str:38::printf_char:84::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:13::printf_str:38::printf_char:84::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:17::printf_str:38::printf_char:84::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:21::printf_str:38::printf_char:84::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_cls:7::memset:98 [ memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a reg byte y +Statement [65] (byte*) memset::end#0 ← (byte*)(void*) memset::str#3 + (word) memset::num#2 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:4::printf_string:9::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_str:38::printf_char:87::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:13::printf_str:38::printf_char:87::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:17::printf_str:38::printf_char:87::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:21::printf_str:38::printf_char:87::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_cls:7::memset:102 [ memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a +Statement [66] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:4::printf_string:9::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_str:38::printf_char:87::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:13::printf_str:38::printf_char:87::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:17::printf_str:38::printf_char:87::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:21::printf_str:38::printf_char:87::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_cls:7::memset:102 [ memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a +Statement [68] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:4::printf_string:9::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_str:38::printf_char:87::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:13::printf_str:38::printf_char:87::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:17::printf_str:38::printf_char:87::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:21::printf_str:38::printf_char:87::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_cls:7::memset:102 [ memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a +Statement [70] *((byte*) memset::dst#2) ← (byte) memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:4::printf_string:9::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_str:38::printf_char:87::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:13::printf_str:38::printf_char:87::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:17::printf_str:38::printf_char:87::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:21::printf_str:38::printf_char:87::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_cls:7::memset:102 [ memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:14 [ memset::c#4 ] -Statement [74] if((byte*) memcpy::src#2!=(const byte*) memcpy::src_end#0) goto memcpy::@2 [ memcpy::src#2 memcpy::dst#2 ] ( main:4::printf_string:9::printf_padding:36::printf_char:49::memcpy:56 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:36::printf_char:49::memcpy:56 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:36::printf_char:49::memcpy:56 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:36::printf_char:49::memcpy:56 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_padding:42::printf_char:49::memcpy:56 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:42::printf_char:49::memcpy:56 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:42::printf_char:49::memcpy:56 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:42::printf_char:49::memcpy:56 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_str:38::printf_char:84::memcpy:56 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:13::printf_str:38::printf_char:84::memcpy:56 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:17::printf_str:38::printf_char:84::memcpy:56 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:21::printf_str:38::printf_char:84::memcpy:56 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } ) always clobbers reg byte a -Statement [76] *((byte*) memcpy::dst#2) ← *((byte*) memcpy::src#2) [ memcpy::src#2 memcpy::dst#2 ] ( main:4::printf_string:9::printf_padding:36::printf_char:49::memcpy:56 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:36::printf_char:49::memcpy:56 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:36::printf_char:49::memcpy:56 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:36::printf_char:49::memcpy:56 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_padding:42::printf_char:49::memcpy:56 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:42::printf_char:49::memcpy:56 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:42::printf_char:49::memcpy:56 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:42::printf_char:49::memcpy:56 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_str:38::printf_char:84::memcpy:56 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:13::printf_str:38::printf_char:84::memcpy:56 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:17::printf_str:38::printf_char:84::memcpy:56 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:21::printf_str:38::printf_char:84::memcpy:56 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } ) always clobbers reg byte a reg byte y -Statement [81] if((byte) 0!=*((byte*) printf_str::str#2)) goto printf_str::@2 [ printf_line_cursor printf_char_cursor printf_str::str#2 ] ( main:4::printf_string:9::printf_str:38 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_line_cursor printf_char_cursor printf_str::str#2 ] { { printf_str::str#1 = printf_string::str#10 } } main:4::printf_string:13::printf_str:38 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_line_cursor printf_char_cursor printf_str::str#2 ] { { printf_str::str#1 = printf_string::str#10 } } main:4::printf_string:17::printf_str:38 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_line_cursor printf_char_cursor printf_str::str#2 ] { { printf_str::str#1 = printf_string::str#10 } } main:4::printf_string:21::printf_str:38 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_line_cursor printf_char_cursor printf_str::str#2 ] { { printf_str::str#1 = printf_string::str#10 } } ) always clobbers reg byte a reg byte y -Statement [83] (byte) printf_char::ch#1 ← *((byte*) printf_str::str#2) [ printf_line_cursor printf_char_cursor printf_char::ch#1 printf_str::str#2 ] ( main:4::printf_string:9::printf_str:38 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_line_cursor printf_char_cursor printf_char::ch#1 printf_str::str#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:13::printf_str:38 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_line_cursor printf_char_cursor printf_char::ch#1 printf_str::str#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:17::printf_str:38 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_line_cursor printf_char_cursor printf_char::ch#1 printf_str::str#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:21::printf_str:38 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_line_cursor printf_char_cursor printf_char::ch#1 printf_str::str#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } ) always clobbers reg byte a reg byte y -Statement [88] if((byte) 0!=*((byte*) strlen::str#2)) goto strlen::@2 [ strlen::len#2 strlen::str#2 ] ( main:4::printf_string:9::strlen:25 [ printf_line_cursor printf_char_cursor printf_string::format_justify_left#10 printf_string::str#10 strlen::len#2 strlen::str#2 ] { { strlen::str#1 = printf_string::str#10 } { strlen::return#2 = strlen::len#2 } } main:4::printf_string:13::strlen:25 [ printf_line_cursor printf_char_cursor printf_string::format_justify_left#10 printf_string::str#10 strlen::len#2 strlen::str#2 ] { { strlen::str#1 = printf_string::str#10 } { strlen::return#2 = strlen::len#2 } } main:4::printf_string:17::strlen:25 [ printf_line_cursor printf_char_cursor printf_string::format_justify_left#10 printf_string::str#10 strlen::len#2 strlen::str#2 ] { { strlen::str#1 = printf_string::str#10 } { strlen::return#2 = strlen::len#2 } } main:4::printf_string:21::strlen:25 [ printf_line_cursor printf_char_cursor printf_string::format_justify_left#10 printf_string::str#10 strlen::len#2 strlen::str#2 ] { { strlen::str#1 = printf_string::str#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a reg byte y -Statement [93] (byte*) printf_line_cursor ← (byte*) printf_line_cursor + (byte) $28 [ printf_line_cursor printf_char_cursor ] ( main:4::printf_ln:11 [ printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:15 [ printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:19 [ printf_line_cursor printf_char_cursor ] { } ) always clobbers reg byte a -Statement [94] if((byte*) printf_line_cursor<(byte*) printf_char_cursor) goto printf_ln::@1 [ printf_line_cursor printf_char_cursor ] ( main:4::printf_ln:11 [ printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:15 [ printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:19 [ printf_line_cursor printf_char_cursor ] { } ) always clobbers reg byte a -Statement [95] (byte*) printf_char_cursor ← (byte*) printf_line_cursor [ printf_line_cursor printf_char_cursor ] ( main:4::printf_ln:11 [ printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:15 [ printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:19 [ printf_line_cursor printf_char_cursor ] { } ) always clobbers reg byte a -Statement [99] (byte*) printf_line_cursor ← (const byte*) printf_screen [ printf_line_cursor ] ( main:4::printf_cls:7 [ printf_line_cursor ] { } ) always clobbers reg byte a -Statement [100] (byte*) printf_char_cursor ← (byte*) printf_line_cursor [ printf_line_cursor printf_char_cursor ] ( main:4::printf_cls:7 [ printf_line_cursor printf_char_cursor ] { } ) always clobbers reg byte a +Statement [74] if((byte*) memcpy::src#2!=(const byte*) memcpy::src_end#0) goto memcpy::@2 [ memcpy::src#2 memcpy::dst#2 ] ( main:4::printf_string:9::printf_padding:36::printf_char:49::memcpy:56 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:36::printf_char:49::memcpy:56 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:36::printf_char:49::memcpy:56 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:36::printf_char:49::memcpy:56 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_padding:42::printf_char:49::memcpy:56 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:42::printf_char:49::memcpy:56 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:42::printf_char:49::memcpy:56 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:42::printf_char:49::memcpy:56 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_str:38::printf_char:87::memcpy:56 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:13::printf_str:38::printf_char:87::memcpy:56 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:17::printf_str:38::printf_char:87::memcpy:56 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:21::printf_str:38::printf_char:87::memcpy:56 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } ) always clobbers reg byte a +Statement [76] *((byte*) memcpy::dst#2) ← *((byte*) memcpy::src#2) [ memcpy::src#2 memcpy::dst#2 ] ( main:4::printf_string:9::printf_padding:36::printf_char:49::memcpy:56 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:36::printf_char:49::memcpy:56 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:36::printf_char:49::memcpy:56 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:36::printf_char:49::memcpy:56 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_padding:42::printf_char:49::memcpy:56 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:42::printf_char:49::memcpy:56 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:42::printf_char:49::memcpy:56 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:42::printf_char:49::memcpy:56 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_str:38::printf_char:87::memcpy:56 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:13::printf_str:38::printf_char:87::memcpy:56 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:17::printf_str:38::printf_char:87::memcpy:56 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:21::printf_str:38::printf_char:87::memcpy:56 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } ) always clobbers reg byte a reg byte y +Statement [81] (byte) printf_str::ch#0 ← *((byte*) printf_str::str#2) [ printf_line_cursor printf_char_cursor printf_str::str#2 printf_str::ch#0 ] ( main:4::printf_string:9::printf_str:38 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_line_cursor printf_char_cursor printf_str::str#2 printf_str::ch#0 ] { { printf_str::str#1 = printf_string::str#10 } } main:4::printf_string:13::printf_str:38 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_line_cursor printf_char_cursor printf_str::str#2 printf_str::ch#0 ] { { printf_str::str#1 = printf_string::str#10 } } main:4::printf_string:17::printf_str:38 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_line_cursor printf_char_cursor printf_str::str#2 printf_str::ch#0 ] { { printf_str::str#1 = printf_string::str#10 } } main:4::printf_string:21::printf_str:38 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_line_cursor printf_char_cursor printf_str::str#2 printf_str::ch#0 ] { { printf_str::str#1 = printf_string::str#10 } } ) always clobbers reg byte a reg byte y +Statement [91] (byte*) printf_line_cursor ← (byte*) printf_line_cursor + (byte) $28 [ printf_line_cursor printf_char_cursor ] ( main:4::printf_ln:11 [ printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:15 [ printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:19 [ printf_line_cursor printf_char_cursor ] { } main:4::printf_string:9::printf_str:38::printf_ln:89 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } } main:4::printf_string:13::printf_str:38::printf_ln:89 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } } main:4::printf_string:17::printf_str:38::printf_ln:89 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } } main:4::printf_string:21::printf_str:38::printf_ln:89 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } } ) always clobbers reg byte a +Statement [92] if((byte*) printf_line_cursor<(byte*) printf_char_cursor) goto printf_ln::@1 [ printf_line_cursor printf_char_cursor ] ( main:4::printf_ln:11 [ printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:15 [ printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:19 [ printf_line_cursor printf_char_cursor ] { } main:4::printf_string:9::printf_str:38::printf_ln:89 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } } main:4::printf_string:13::printf_str:38::printf_ln:89 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } } main:4::printf_string:17::printf_str:38::printf_ln:89 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } } main:4::printf_string:21::printf_str:38::printf_ln:89 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } } ) always clobbers reg byte a +Statement [93] (byte*) printf_char_cursor ← (byte*) printf_line_cursor [ printf_line_cursor printf_char_cursor ] ( main:4::printf_ln:11 [ printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:15 [ printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:19 [ printf_line_cursor printf_char_cursor ] { } main:4::printf_string:9::printf_str:38::printf_ln:89 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } } main:4::printf_string:13::printf_str:38::printf_ln:89 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } } main:4::printf_string:17::printf_str:38::printf_ln:89 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } } main:4::printf_string:21::printf_str:38::printf_ln:89 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } } ) always clobbers reg byte a +Statement [97] if((byte) 0!=*((byte*) strlen::str#2)) goto strlen::@2 [ strlen::len#2 strlen::str#2 ] ( main:4::printf_string:9::strlen:25 [ printf_line_cursor printf_char_cursor printf_string::format_justify_left#10 printf_string::str#10 strlen::len#2 strlen::str#2 ] { { strlen::str#1 = printf_string::str#10 } { strlen::return#2 = strlen::len#2 } } main:4::printf_string:13::strlen:25 [ printf_line_cursor printf_char_cursor printf_string::format_justify_left#10 printf_string::str#10 strlen::len#2 strlen::str#2 ] { { strlen::str#1 = printf_string::str#10 } { strlen::return#2 = strlen::len#2 } } main:4::printf_string:17::strlen:25 [ printf_line_cursor printf_char_cursor printf_string::format_justify_left#10 printf_string::str#10 strlen::len#2 strlen::str#2 ] { { strlen::str#1 = printf_string::str#10 } { strlen::return#2 = strlen::len#2 } } main:4::printf_string:21::strlen:25 [ printf_line_cursor printf_char_cursor printf_string::format_justify_left#10 printf_string::str#10 strlen::len#2 strlen::str#2 ] { { strlen::str#1 = printf_string::str#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a reg byte y +Statement [103] (byte*) printf_line_cursor ← (const byte*) printf_screen [ printf_line_cursor ] ( main:4::printf_cls:7 [ printf_line_cursor ] { } ) always clobbers reg byte a +Statement [104] (byte*) printf_char_cursor ← (byte*) printf_line_cursor [ printf_line_cursor printf_char_cursor ] ( main:4::printf_cls:7 [ printf_line_cursor printf_char_cursor ] { } ) always clobbers reg byte a Statement [1] (byte*) printf_line_cursor ← (byte*) 1024 [ ] ( [ ] { } ) always clobbers reg byte a Statement [2] (byte*) printf_char_cursor ← (byte*) 1024 [ ] ( [ ] { } ) always clobbers reg byte a Statement [24] (byte*) strlen::str#1 ← (byte*) printf_string::str#10 [ printf_line_cursor printf_char_cursor printf_string::format_justify_left#10 printf_string::str#10 strlen::str#1 ] ( main:4::printf_string:9 [ printf_line_cursor printf_char_cursor printf_string::format_justify_left#10 printf_string::str#10 strlen::str#1 ] { { strlen::str#1 = printf_string::str#10 } { strlen::return#2 = strlen::len#2 } } main:4::printf_string:13 [ printf_line_cursor printf_char_cursor printf_string::format_justify_left#10 printf_string::str#10 strlen::str#1 ] { { strlen::str#1 = printf_string::str#10 } { strlen::return#2 = strlen::len#2 } } main:4::printf_string:17 [ printf_line_cursor printf_char_cursor printf_string::format_justify_left#10 printf_string::str#10 strlen::str#1 ] { { strlen::str#1 = printf_string::str#10 } { strlen::return#2 = strlen::len#2 } } main:4::printf_string:21 [ printf_line_cursor printf_char_cursor printf_string::format_justify_left#10 printf_string::str#10 strlen::str#1 ] { { strlen::str#1 = printf_string::str#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a @@ -2439,26 +2530,25 @@ Statement [27] (word~) printf_string::$9 ← (word) strlen::return#2 [ printf_li Statement [28] (signed byte) printf_string::len#0 ← (signed byte)(word~) printf_string::$9 [ printf_line_cursor printf_char_cursor printf_string::format_justify_left#10 printf_string::str#10 printf_string::len#0 ] ( main:4::printf_string:9 [ printf_line_cursor printf_char_cursor printf_string::format_justify_left#10 printf_string::str#10 printf_string::len#0 ] { } main:4::printf_string:13 [ printf_line_cursor printf_char_cursor printf_string::format_justify_left#10 printf_string::str#10 printf_string::len#0 ] { } main:4::printf_string:17 [ printf_line_cursor printf_char_cursor printf_string::format_justify_left#10 printf_string::str#10 printf_string::len#0 ] { } main:4::printf_string:21 [ printf_line_cursor printf_char_cursor printf_string::format_justify_left#10 printf_string::str#10 printf_string::len#0 ] { } ) always clobbers reg byte a Statement [29] (signed byte) printf_string::padding#1 ← (signed byte) $a - (signed byte) printf_string::len#0 [ printf_line_cursor printf_char_cursor printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#1 ] ( main:4::printf_string:9 [ printf_line_cursor printf_char_cursor printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#1 ] { } main:4::printf_string:13 [ printf_line_cursor printf_char_cursor printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#1 ] { } main:4::printf_string:17 [ printf_line_cursor printf_char_cursor printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#1 ] { } main:4::printf_string:21 [ printf_line_cursor printf_char_cursor printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#1 ] { } ) always clobbers reg byte a Statement [37] (byte*) printf_str::str#1 ← (byte*) printf_string::str#10 [ printf_line_cursor printf_char_cursor printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#1 ] ( main:4::printf_string:9 [ printf_line_cursor printf_char_cursor printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#1 ] { { printf_str::str#1 = printf_string::str#10 } } main:4::printf_string:13 [ printf_line_cursor printf_char_cursor printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#1 ] { { printf_str::str#1 = printf_string::str#10 } } main:4::printf_string:17 [ printf_line_cursor printf_char_cursor printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#1 ] { { printf_str::str#1 = printf_string::str#10 } } main:4::printf_string:21 [ printf_line_cursor printf_char_cursor printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#1 ] { { printf_str::str#1 = printf_string::str#10 } } ) always clobbers reg byte a -Statement [52] *((byte*) printf_char_cursor) ← (byte) printf_char::ch#2 [ printf_line_cursor printf_char_cursor ] ( main:4::printf_string:9::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_str:38::printf_char:84 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:13::printf_str:38::printf_char:84 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:17::printf_str:38::printf_char:84 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:21::printf_str:38::printf_char:84 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } ) always clobbers reg byte y -Statement [54] if((byte*) printf_char_cursor!=(const byte*) printf_screen+(word)(number) $28*(number) $19) goto printf_char::@return [ printf_line_cursor printf_char_cursor ] ( main:4::printf_string:9::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_str:38::printf_char:84 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:13::printf_str:38::printf_char:84 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:17::printf_str:38::printf_char:84 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:21::printf_str:38::printf_char:84 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } ) always clobbers reg byte a -Statement [59] (byte*~) printf_char::$8 ← (byte*) printf_char_cursor - (byte) $28 [ printf_char::$8 ] ( main:4::printf_string:9::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char::$8 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char::$8 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char::$8 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char::$8 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char::$8 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char::$8 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char::$8 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char::$8 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_str:38::printf_char:84 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char::$8 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:13::printf_str:38::printf_char:84 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char::$8 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:17::printf_str:38::printf_char:84 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char::$8 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:21::printf_str:38::printf_char:84 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char::$8 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } ) always clobbers reg byte a -Statement [60] (byte*) printf_char_cursor ← (byte*~) printf_char::$8 [ printf_char_cursor ] ( main:4::printf_string:9::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_str:38::printf_char:84 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:13::printf_str:38::printf_char:84 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:17::printf_str:38::printf_char:84 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:21::printf_str:38::printf_char:84 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } ) always clobbers reg byte a -Statement [61] (byte*) printf_line_cursor ← (byte*) printf_char_cursor [ printf_line_cursor printf_char_cursor ] ( main:4::printf_string:9::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_str:38::printf_char:84 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:13::printf_str:38::printf_char:84 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:17::printf_str:38::printf_char:84 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:21::printf_str:38::printf_char:84 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } ) always clobbers reg byte a -Statement [64] if((word) memset::num#2<=(byte) 0) goto memset::@return [ memset::num#2 memset::str#3 memset::c#4 ] ( main:4::printf_string:9::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_str:38::printf_char:84::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:13::printf_str:38::printf_char:84::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:17::printf_str:38::printf_char:84::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:21::printf_str:38::printf_char:84::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_cls:7::memset:98 [ memset::num#2 memset::str#3 memset::c#4 ] { } ) always clobbers reg byte a -Statement [65] (byte*) memset::end#0 ← (byte*)(void*) memset::str#3 + (word) memset::num#2 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:4::printf_string:9::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_str:38::printf_char:84::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:13::printf_str:38::printf_char:84::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:17::printf_str:38::printf_char:84::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:21::printf_str:38::printf_char:84::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_cls:7::memset:98 [ memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a -Statement [66] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:4::printf_string:9::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_str:38::printf_char:84::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:13::printf_str:38::printf_char:84::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:17::printf_str:38::printf_char:84::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:21::printf_str:38::printf_char:84::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_cls:7::memset:98 [ memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a -Statement [68] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:4::printf_string:9::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_str:38::printf_char:84::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:13::printf_str:38::printf_char:84::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:17::printf_str:38::printf_char:84::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:21::printf_str:38::printf_char:84::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_cls:7::memset:98 [ memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a -Statement [70] *((byte*) memset::dst#2) ← (byte) memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:4::printf_string:9::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_str:38::printf_char:84::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:13::printf_str:38::printf_char:84::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:17::printf_str:38::printf_char:84::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:21::printf_str:38::printf_char:84::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_cls:7::memset:98 [ memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a reg byte y -Statement [74] if((byte*) memcpy::src#2!=(const byte*) memcpy::src_end#0) goto memcpy::@2 [ memcpy::src#2 memcpy::dst#2 ] ( main:4::printf_string:9::printf_padding:36::printf_char:49::memcpy:56 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:36::printf_char:49::memcpy:56 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:36::printf_char:49::memcpy:56 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:36::printf_char:49::memcpy:56 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_padding:42::printf_char:49::memcpy:56 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:42::printf_char:49::memcpy:56 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:42::printf_char:49::memcpy:56 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:42::printf_char:49::memcpy:56 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_str:38::printf_char:84::memcpy:56 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:13::printf_str:38::printf_char:84::memcpy:56 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:17::printf_str:38::printf_char:84::memcpy:56 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:21::printf_str:38::printf_char:84::memcpy:56 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } ) always clobbers reg byte a -Statement [76] *((byte*) memcpy::dst#2) ← *((byte*) memcpy::src#2) [ memcpy::src#2 memcpy::dst#2 ] ( main:4::printf_string:9::printf_padding:36::printf_char:49::memcpy:56 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:36::printf_char:49::memcpy:56 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:36::printf_char:49::memcpy:56 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:36::printf_char:49::memcpy:56 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_padding:42::printf_char:49::memcpy:56 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:42::printf_char:49::memcpy:56 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:42::printf_char:49::memcpy:56 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:42::printf_char:49::memcpy:56 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_str:38::printf_char:84::memcpy:56 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:13::printf_str:38::printf_char:84::memcpy:56 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:17::printf_str:38::printf_char:84::memcpy:56 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:21::printf_str:38::printf_char:84::memcpy:56 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } ) always clobbers reg byte a reg byte y -Statement [81] if((byte) 0!=*((byte*) printf_str::str#2)) goto printf_str::@2 [ printf_line_cursor printf_char_cursor printf_str::str#2 ] ( main:4::printf_string:9::printf_str:38 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_line_cursor printf_char_cursor printf_str::str#2 ] { { printf_str::str#1 = printf_string::str#10 } } main:4::printf_string:13::printf_str:38 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_line_cursor printf_char_cursor printf_str::str#2 ] { { printf_str::str#1 = printf_string::str#10 } } main:4::printf_string:17::printf_str:38 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_line_cursor printf_char_cursor printf_str::str#2 ] { { printf_str::str#1 = printf_string::str#10 } } main:4::printf_string:21::printf_str:38 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_line_cursor printf_char_cursor printf_str::str#2 ] { { printf_str::str#1 = printf_string::str#10 } } ) always clobbers reg byte a reg byte y -Statement [83] (byte) printf_char::ch#1 ← *((byte*) printf_str::str#2) [ printf_line_cursor printf_char_cursor printf_char::ch#1 printf_str::str#2 ] ( main:4::printf_string:9::printf_str:38 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_line_cursor printf_char_cursor printf_char::ch#1 printf_str::str#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:13::printf_str:38 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_line_cursor printf_char_cursor printf_char::ch#1 printf_str::str#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:17::printf_str:38 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_line_cursor printf_char_cursor printf_char::ch#1 printf_str::str#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } main:4::printf_string:21::printf_str:38 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_line_cursor printf_char_cursor printf_char::ch#1 printf_str::str#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 } } ) always clobbers reg byte a reg byte y -Statement [88] if((byte) 0!=*((byte*) strlen::str#2)) goto strlen::@2 [ strlen::len#2 strlen::str#2 ] ( main:4::printf_string:9::strlen:25 [ printf_line_cursor printf_char_cursor printf_string::format_justify_left#10 printf_string::str#10 strlen::len#2 strlen::str#2 ] { { strlen::str#1 = printf_string::str#10 } { strlen::return#2 = strlen::len#2 } } main:4::printf_string:13::strlen:25 [ printf_line_cursor printf_char_cursor printf_string::format_justify_left#10 printf_string::str#10 strlen::len#2 strlen::str#2 ] { { strlen::str#1 = printf_string::str#10 } { strlen::return#2 = strlen::len#2 } } main:4::printf_string:17::strlen:25 [ printf_line_cursor printf_char_cursor printf_string::format_justify_left#10 printf_string::str#10 strlen::len#2 strlen::str#2 ] { { strlen::str#1 = printf_string::str#10 } { strlen::return#2 = strlen::len#2 } } main:4::printf_string:21::strlen:25 [ printf_line_cursor printf_char_cursor printf_string::format_justify_left#10 printf_string::str#10 strlen::len#2 strlen::str#2 ] { { strlen::str#1 = printf_string::str#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a reg byte y -Statement [93] (byte*) printf_line_cursor ← (byte*) printf_line_cursor + (byte) $28 [ printf_line_cursor printf_char_cursor ] ( main:4::printf_ln:11 [ printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:15 [ printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:19 [ printf_line_cursor printf_char_cursor ] { } ) always clobbers reg byte a -Statement [94] if((byte*) printf_line_cursor<(byte*) printf_char_cursor) goto printf_ln::@1 [ printf_line_cursor printf_char_cursor ] ( main:4::printf_ln:11 [ printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:15 [ printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:19 [ printf_line_cursor printf_char_cursor ] { } ) always clobbers reg byte a -Statement [95] (byte*) printf_char_cursor ← (byte*) printf_line_cursor [ printf_line_cursor printf_char_cursor ] ( main:4::printf_ln:11 [ printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:15 [ printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:19 [ printf_line_cursor printf_char_cursor ] { } ) always clobbers reg byte a -Statement [99] (byte*) printf_line_cursor ← (const byte*) printf_screen [ printf_line_cursor ] ( main:4::printf_cls:7 [ printf_line_cursor ] { } ) always clobbers reg byte a -Statement [100] (byte*) printf_char_cursor ← (byte*) printf_line_cursor [ printf_line_cursor printf_char_cursor ] ( main:4::printf_cls:7 [ printf_line_cursor printf_char_cursor ] { } ) always clobbers reg byte a +Statement [52] *((byte*) printf_char_cursor) ← (byte) printf_char::ch#2 [ printf_line_cursor printf_char_cursor ] ( main:4::printf_string:9::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_str:38::printf_char:87 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:13::printf_str:38::printf_char:87 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:17::printf_str:38::printf_char:87 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:21::printf_str:38::printf_char:87 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } ) always clobbers reg byte y +Statement [54] if((byte*) printf_char_cursor<(const byte*) printf_screen+(word)(number) $28*(number) $19) goto printf_char::@return [ printf_line_cursor printf_char_cursor ] ( main:4::printf_string:9::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_str:38::printf_char:87 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:13::printf_str:38::printf_char:87 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:17::printf_str:38::printf_char:87 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:21::printf_str:38::printf_char:87 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } ) always clobbers reg byte a +Statement [59] (byte*~) printf_char::$8 ← (byte*) printf_char_cursor - (byte) $28 [ printf_char::$8 ] ( main:4::printf_string:9::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char::$8 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char::$8 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char::$8 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char::$8 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char::$8 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char::$8 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char::$8 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char::$8 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_str:38::printf_char:87 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char::$8 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:13::printf_str:38::printf_char:87 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char::$8 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:17::printf_str:38::printf_char:87 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char::$8 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:21::printf_str:38::printf_char:87 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char::$8 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } ) always clobbers reg byte a +Statement [60] (byte*) printf_char_cursor ← (byte*~) printf_char::$8 [ printf_char_cursor ] ( main:4::printf_string:9::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_str:38::printf_char:87 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:13::printf_str:38::printf_char:87 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:17::printf_str:38::printf_char:87 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:21::printf_str:38::printf_char:87 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } ) always clobbers reg byte a +Statement [61] (byte*) printf_line_cursor ← (byte*) printf_char_cursor [ printf_line_cursor printf_char_cursor ] ( main:4::printf_string:9::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:36::printf_char:49 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:42::printf_char:49 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_str:38::printf_char:87 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:13::printf_str:38::printf_char:87 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:17::printf_str:38::printf_char:87 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:21::printf_str:38::printf_char:87 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } ) always clobbers reg byte a +Statement [64] if((word) memset::num#2<=(byte) 0) goto memset::@return [ memset::num#2 memset::str#3 memset::c#4 ] ( main:4::printf_string:9::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_str:38::printf_char:87::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:13::printf_str:38::printf_char:87::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:17::printf_str:38::printf_char:87::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:21::printf_str:38::printf_char:87::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_cls:7::memset:102 [ memset::num#2 memset::str#3 memset::c#4 ] { } ) always clobbers reg byte a +Statement [65] (byte*) memset::end#0 ← (byte*)(void*) memset::str#3 + (word) memset::num#2 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:4::printf_string:9::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_str:38::printf_char:87::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:13::printf_str:38::printf_char:87::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:17::printf_str:38::printf_char:87::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:21::printf_str:38::printf_char:87::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_cls:7::memset:102 [ memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a +Statement [66] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:4::printf_string:9::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_str:38::printf_char:87::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:13::printf_str:38::printf_char:87::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:17::printf_str:38::printf_char:87::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:21::printf_str:38::printf_char:87::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_cls:7::memset:102 [ memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a +Statement [68] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:4::printf_string:9::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_str:38::printf_char:87::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:13::printf_str:38::printf_char:87::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:17::printf_str:38::printf_char:87::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:21::printf_str:38::printf_char:87::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_cls:7::memset:102 [ memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a +Statement [70] *((byte*) memset::dst#2) ← (byte) memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:4::printf_string:9::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:36::printf_char:49::memset:58 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:42::printf_char:49::memset:58 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_str:38::printf_char:87::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:13::printf_str:38::printf_char:87::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:17::printf_str:38::printf_char:87::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:21::printf_str:38::printf_char:87::memset:58 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_cls:7::memset:102 [ memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a reg byte y +Statement [74] if((byte*) memcpy::src#2!=(const byte*) memcpy::src_end#0) goto memcpy::@2 [ memcpy::src#2 memcpy::dst#2 ] ( main:4::printf_string:9::printf_padding:36::printf_char:49::memcpy:56 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:36::printf_char:49::memcpy:56 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:36::printf_char:49::memcpy:56 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:36::printf_char:49::memcpy:56 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_padding:42::printf_char:49::memcpy:56 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:42::printf_char:49::memcpy:56 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:42::printf_char:49::memcpy:56 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:42::printf_char:49::memcpy:56 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_str:38::printf_char:87::memcpy:56 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:13::printf_str:38::printf_char:87::memcpy:56 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:17::printf_str:38::printf_char:87::memcpy:56 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:21::printf_str:38::printf_char:87::memcpy:56 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } ) always clobbers reg byte a +Statement [76] *((byte*) memcpy::dst#2) ← *((byte*) memcpy::src#2) [ memcpy::src#2 memcpy::dst#2 ] ( main:4::printf_string:9::printf_padding:36::printf_char:49::memcpy:56 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:36::printf_char:49::memcpy:56 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:36::printf_char:49::memcpy:56 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:36::printf_char:49::memcpy:56 [ printf_string::format_justify_left#10 printf_string::str#10 printf_string::padding#3 printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#0 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_padding:42::printf_char:49::memcpy:56 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:13::printf_padding:42::printf_char:49::memcpy:56 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:17::printf_padding:42::printf_char:49::memcpy:56 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:21::printf_padding:42::printf_char:49::memcpy:56 [ printf_padding::length#3 printf_padding::pad#4 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_padding::length#1 = printf_padding::length#3 } { printf_char::ch#0 = printf_char::ch#2 printf_padding::pad#4 } } main:4::printf_string:9::printf_str:38::printf_char:87::memcpy:56 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:13::printf_str:38::printf_char:87::memcpy:56 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:17::printf_str:38::printf_char:87::memcpy:56 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } main:4::printf_string:21::printf_str:38::printf_char:87::memcpy:56 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_str::str#1 = printf_string::str#10 } { printf_char::ch#1 = printf_char::ch#2 printf_str::ch#0 } } ) always clobbers reg byte a reg byte y +Statement [81] (byte) printf_str::ch#0 ← *((byte*) printf_str::str#2) [ printf_line_cursor printf_char_cursor printf_str::str#2 printf_str::ch#0 ] ( main:4::printf_string:9::printf_str:38 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_line_cursor printf_char_cursor printf_str::str#2 printf_str::ch#0 ] { { printf_str::str#1 = printf_string::str#10 } } main:4::printf_string:13::printf_str:38 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_line_cursor printf_char_cursor printf_str::str#2 printf_str::ch#0 ] { { printf_str::str#1 = printf_string::str#10 } } main:4::printf_string:17::printf_str:38 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_line_cursor printf_char_cursor printf_str::str#2 printf_str::ch#0 ] { { printf_str::str#1 = printf_string::str#10 } } main:4::printf_string:21::printf_str:38 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_line_cursor printf_char_cursor printf_str::str#2 printf_str::ch#0 ] { { printf_str::str#1 = printf_string::str#10 } } ) always clobbers reg byte a reg byte y +Statement [91] (byte*) printf_line_cursor ← (byte*) printf_line_cursor + (byte) $28 [ printf_line_cursor printf_char_cursor ] ( main:4::printf_ln:11 [ printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:15 [ printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:19 [ printf_line_cursor printf_char_cursor ] { } main:4::printf_string:9::printf_str:38::printf_ln:89 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } } main:4::printf_string:13::printf_str:38::printf_ln:89 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } } main:4::printf_string:17::printf_str:38::printf_ln:89 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } } main:4::printf_string:21::printf_str:38::printf_ln:89 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } } ) always clobbers reg byte a +Statement [92] if((byte*) printf_line_cursor<(byte*) printf_char_cursor) goto printf_ln::@1 [ printf_line_cursor printf_char_cursor ] ( main:4::printf_ln:11 [ printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:15 [ printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:19 [ printf_line_cursor printf_char_cursor ] { } main:4::printf_string:9::printf_str:38::printf_ln:89 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } } main:4::printf_string:13::printf_str:38::printf_ln:89 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } } main:4::printf_string:17::printf_str:38::printf_ln:89 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } } main:4::printf_string:21::printf_str:38::printf_ln:89 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } } ) always clobbers reg byte a +Statement [93] (byte*) printf_char_cursor ← (byte*) printf_line_cursor [ printf_line_cursor printf_char_cursor ] ( main:4::printf_ln:11 [ printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:15 [ printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:19 [ printf_line_cursor printf_char_cursor ] { } main:4::printf_string:9::printf_str:38::printf_ln:89 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } } main:4::printf_string:13::printf_str:38::printf_ln:89 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } } main:4::printf_string:17::printf_str:38::printf_ln:89 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } } main:4::printf_string:21::printf_str:38::printf_ln:89 [ printf_string::format_justify_left#10 printf_string::padding#3 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_str::str#1 = printf_string::str#10 } } ) always clobbers reg byte a +Statement [97] if((byte) 0!=*((byte*) strlen::str#2)) goto strlen::@2 [ strlen::len#2 strlen::str#2 ] ( main:4::printf_string:9::strlen:25 [ printf_line_cursor printf_char_cursor printf_string::format_justify_left#10 printf_string::str#10 strlen::len#2 strlen::str#2 ] { { strlen::str#1 = printf_string::str#10 } { strlen::return#2 = strlen::len#2 } } main:4::printf_string:13::strlen:25 [ printf_line_cursor printf_char_cursor printf_string::format_justify_left#10 printf_string::str#10 strlen::len#2 strlen::str#2 ] { { strlen::str#1 = printf_string::str#10 } { strlen::return#2 = strlen::len#2 } } main:4::printf_string:17::strlen:25 [ printf_line_cursor printf_char_cursor printf_string::format_justify_left#10 printf_string::str#10 strlen::len#2 strlen::str#2 ] { { strlen::str#1 = printf_string::str#10 } { strlen::return#2 = strlen::len#2 } } main:4::printf_string:21::strlen:25 [ printf_line_cursor printf_char_cursor printf_string::format_justify_left#10 printf_string::str#10 strlen::len#2 strlen::str#2 ] { { strlen::str#1 = printf_string::str#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a reg byte y +Statement [103] (byte*) printf_line_cursor ← (const byte*) printf_screen [ printf_line_cursor ] ( main:4::printf_cls:7 [ printf_line_cursor ] { } ) always clobbers reg byte a +Statement [104] (byte*) printf_char_cursor ← (byte*) printf_line_cursor [ printf_line_cursor printf_char_cursor ] ( main:4::printf_cls:7 [ printf_line_cursor printf_char_cursor ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ printf_string::format_justify_left#10 ] : zp[1]:2 , reg byte x , Potential registers zp[2]:3 [ printf_string::str#10 ] : zp[2]:3 , Potential registers zp[1]:5 [ printf_string::padding#3 printf_string::padding#1 ] : zp[1]:5 , reg byte x , @@ -2482,15 +2572,16 @@ Potential registers zp[2]:33 [ printf_string::$9 ] : zp[2]:33 , Potential registers zp[1]:35 [ printf_string::len#0 ] : zp[1]:35 , reg byte a , reg byte x , reg byte y , Potential registers zp[2]:36 [ printf_char::$8 ] : zp[2]:36 , Potential registers zp[2]:38 [ memset::end#0 ] : zp[2]:38 , +Potential registers zp[1]:40 [ printf_str::ch#0 ] : zp[1]:40 , reg byte a , reg byte x , reg byte y , REGISTER UPLIFT SCOPES Uplift Scope [memcpy] 300,000,003: zp[2]:17 [ memcpy::src#2 memcpy::src#1 ] 200,000,002: zp[2]:19 [ memcpy::dst#2 memcpy::dst#1 ] Uplift Scope [memset] 35,666,672.33: zp[2]:15 [ memset::dst#2 memset::dst#4 memset::dst#1 ] 1,833,333.67: zp[2]:38 [ memset::end#0 ] 1,250,000.12: zp[1]:14 [ memset::c#4 ] 1,000,001: zp[2]:10 [ memset::num#2 ] 0: zp[2]:12 [ memset::str#3 ] Uplift Scope [printf_char] 200,002: zp[2]:36 [ printf_char::$8 ] 160,007: zp[1]:9 [ printf_char::ch#2 printf_char::ch#0 printf_char::ch#1 ] +Uplift Scope [] 47,764.31: zp[2]:27 [ printf_line_cursor ] 25,353.69: zp[2]:29 [ printf_char_cursor ] Uplift Scope [strlen] 30,887.67: zp[2]:23 [ strlen::str#2 strlen::str#1 strlen::str#0 ] 15,026.75: zp[2]:25 [ strlen::len#2 strlen::len#1 ] 202: zp[2]:31 [ strlen::return#2 ] +Uplift Scope [printf_str] 25,339.64: zp[2]:21 [ printf_str::str#2 printf_str::str#1 printf_str::str#0 ] 10,001: zp[1]:40 [ printf_str::ch#0 ] Uplift Scope [printf_padding] 27,502.75: zp[1]:8 [ printf_padding::i#2 printf_padding::i#1 ] 2,104.5: zp[1]:6 [ printf_padding::length#3 printf_padding::length#0 printf_padding::length#1 ] 1,666.83: zp[1]:7 [ printf_padding::pad#4 ] -Uplift Scope [printf_str] 30,804.25: zp[2]:21 [ printf_str::str#2 printf_str::str#1 printf_str::str#0 ] -Uplift Scope [] 10,465.85: zp[2]:29 [ printf_char_cursor ] 1,639.83: zp[2]:27 [ printf_line_cursor ] Uplift Scope [printf_string] 202: zp[1]:35 [ printf_string::len#0 ] 134.67: zp[1]:5 [ printf_string::padding#3 printf_string::padding#1 ] 101: zp[2]:33 [ printf_string::$9 ] 14.43: zp[2]:3 [ printf_string::str#10 ] 12.62: zp[1]:2 [ printf_string::format_justify_left#10 ] Uplift Scope [RADIX] Uplift Scope [printf_format_number] @@ -2500,31 +2591,31 @@ Uplift Scope [printf_cls] Uplift Scope [printf_ln] Uplift Scope [main] -Uplifting [memcpy] best 11444 combination zp[2]:17 [ memcpy::src#2 memcpy::src#1 ] zp[2]:19 [ memcpy::dst#2 memcpy::dst#1 ] -Uplifting [memset] best 11428 combination zp[2]:15 [ memset::dst#2 memset::dst#4 memset::dst#1 ] zp[2]:38 [ memset::end#0 ] reg byte x [ memset::c#4 ] zp[2]:10 [ memset::num#2 ] zp[2]:12 [ memset::str#3 ] -Uplifting [printf_char] best 11365 combination zp[2]:36 [ printf_char::$8 ] reg byte a [ printf_char::ch#2 printf_char::ch#0 printf_char::ch#1 ] -Uplifting [strlen] best 11365 combination zp[2]:23 [ strlen::str#2 strlen::str#1 strlen::str#0 ] zp[2]:25 [ strlen::len#2 strlen::len#1 ] zp[2]:31 [ strlen::return#2 ] -Uplifting [printf_padding] best 11365 combination zp[1]:8 [ printf_padding::i#2 printf_padding::i#1 ] zp[1]:6 [ printf_padding::length#3 printf_padding::length#0 printf_padding::length#1 ] zp[1]:7 [ printf_padding::pad#4 ] -Uplifting [printf_str] best 11365 combination zp[2]:21 [ printf_str::str#2 printf_str::str#1 printf_str::str#0 ] -Uplifting [] best 11365 combination zp[2]:29 [ printf_char_cursor ] zp[2]:27 [ printf_line_cursor ] -Uplifting [printf_string] best 11361 combination reg byte a [ printf_string::len#0 ] zp[1]:5 [ printf_string::padding#3 printf_string::padding#1 ] zp[2]:33 [ printf_string::$9 ] zp[2]:3 [ printf_string::str#10 ] zp[1]:2 [ printf_string::format_justify_left#10 ] -Uplifting [RADIX] best 11361 combination -Uplifting [printf_format_number] best 11361 combination -Uplifting [printf_buffer_number] best 11361 combination -Uplifting [printf_format_string] best 11361 combination -Uplifting [printf_cls] best 11361 combination -Uplifting [printf_ln] best 11361 combination -Uplifting [main] best 11361 combination +Uplifting [memcpy] best 11605 combination zp[2]:17 [ memcpy::src#2 memcpy::src#1 ] zp[2]:19 [ memcpy::dst#2 memcpy::dst#1 ] +Uplifting [memset] best 11589 combination zp[2]:15 [ memset::dst#2 memset::dst#4 memset::dst#1 ] zp[2]:38 [ memset::end#0 ] reg byte x [ memset::c#4 ] zp[2]:10 [ memset::num#2 ] zp[2]:12 [ memset::str#3 ] +Uplifting [printf_char] best 11526 combination zp[2]:36 [ printf_char::$8 ] reg byte a [ printf_char::ch#2 printf_char::ch#0 printf_char::ch#1 ] +Uplifting [] best 11526 combination zp[2]:27 [ printf_line_cursor ] zp[2]:29 [ printf_char_cursor ] +Uplifting [strlen] best 11526 combination zp[2]:23 [ strlen::str#2 strlen::str#1 strlen::str#0 ] zp[2]:25 [ strlen::len#2 strlen::len#1 ] zp[2]:31 [ strlen::return#2 ] +Uplifting [printf_str] best 11406 combination zp[2]:21 [ printf_str::str#2 printf_str::str#1 printf_str::str#0 ] reg byte a [ printf_str::ch#0 ] +Uplifting [printf_padding] best 11406 combination zp[1]:8 [ printf_padding::i#2 printf_padding::i#1 ] zp[1]:6 [ printf_padding::length#3 printf_padding::length#0 printf_padding::length#1 ] zp[1]:7 [ printf_padding::pad#4 ] +Uplifting [printf_string] best 11402 combination reg byte a [ printf_string::len#0 ] zp[1]:5 [ printf_string::padding#3 printf_string::padding#1 ] zp[2]:33 [ printf_string::$9 ] zp[2]:3 [ printf_string::str#10 ] zp[1]:2 [ printf_string::format_justify_left#10 ] +Uplifting [RADIX] best 11402 combination +Uplifting [printf_format_number] best 11402 combination +Uplifting [printf_buffer_number] best 11402 combination +Uplifting [printf_format_string] best 11402 combination +Uplifting [printf_cls] best 11402 combination +Uplifting [printf_ln] best 11402 combination +Uplifting [main] best 11402 combination Attempting to uplift remaining variables inzp[1]:8 [ printf_padding::i#2 printf_padding::i#1 ] -Uplifting [printf_padding] best 11361 combination zp[1]:8 [ printf_padding::i#2 printf_padding::i#1 ] +Uplifting [printf_padding] best 11402 combination zp[1]:8 [ printf_padding::i#2 printf_padding::i#1 ] Attempting to uplift remaining variables inzp[1]:6 [ printf_padding::length#3 printf_padding::length#0 printf_padding::length#1 ] -Uplifting [printf_padding] best 11361 combination zp[1]:6 [ printf_padding::length#3 printf_padding::length#0 printf_padding::length#1 ] +Uplifting [printf_padding] best 11402 combination zp[1]:6 [ printf_padding::length#3 printf_padding::length#0 printf_padding::length#1 ] Attempting to uplift remaining variables inzp[1]:7 [ printf_padding::pad#4 ] -Uplifting [printf_padding] best 11361 combination zp[1]:7 [ printf_padding::pad#4 ] +Uplifting [printf_padding] best 11402 combination zp[1]:7 [ printf_padding::pad#4 ] Attempting to uplift remaining variables inzp[1]:5 [ printf_string::padding#3 printf_string::padding#1 ] -Uplifting [printf_string] best 11361 combination zp[1]:5 [ printf_string::padding#3 printf_string::padding#1 ] +Uplifting [printf_string] best 11402 combination zp[1]:5 [ printf_string::padding#3 printf_string::padding#1 ] Attempting to uplift remaining variables inzp[1]:2 [ printf_string::format_justify_left#10 ] -Uplifting [printf_string] best 11361 combination zp[1]:2 [ printf_string::format_justify_left#10 ] +Uplifting [printf_string] best 11402 combination zp[1]:2 [ printf_string::format_justify_left#10 ] Coalescing zero page register [ zp[2]:29 [ printf_char_cursor ] ] with [ zp[2]:36 [ printf_char::$8 ] ] - score: 2 Coalescing zero page register [ zp[2]:3 [ printf_string::str#10 ] ] with [ zp[2]:21 [ printf_str::str#2 printf_str::str#1 printf_str::str#0 ] ] - score: 1 Coalescing zero page register [ zp[2]:10 [ memset::num#2 ] ] with [ zp[2]:38 [ memset::end#0 ] ] - score: 1 @@ -2584,7 +2675,7 @@ __bend: // main main: { // [7] call printf_cls - // [97] phi from main to printf_cls [phi:main->printf_cls] + // [101] phi from main to printf_cls [phi:main->printf_cls] printf_cls_from_main: jsr printf_cls // [8] phi from main to main::@1 [phi:main->main::@1] @@ -2610,7 +2701,7 @@ main: { // main::@2 __b2: // [11] call printf_ln - // [92] phi from main::@2 to printf_ln [phi:main::@2->printf_ln] + // [90] phi from main::@2 to printf_ln [phi:main::@2->printf_ln] printf_ln_from___b2: jsr printf_ln // [12] phi from main::@2 to main::@3 [phi:main::@2->main::@3] @@ -2636,7 +2727,7 @@ main: { // main::@4 __b4: // [15] call printf_ln - // [92] phi from main::@4 to printf_ln [phi:main::@4->printf_ln] + // [90] phi from main::@4 to printf_ln [phi:main::@4->printf_ln] printf_ln_from___b4: jsr printf_ln // [16] phi from main::@4 to main::@5 [phi:main::@4->main::@5] @@ -2662,7 +2753,7 @@ main: { // main::@6 __b6: // [19] call printf_ln - // [92] phi from main::@6 to printf_ln [phi:main::@6->printf_ln] + // [90] phi from main::@6 to printf_ln [phi:main::@6->printf_ln] printf_ln_from___b6: jsr printf_ln // [20] phi from main::@6 to main::@7 [phi:main::@6->main::@7] @@ -2710,7 +2801,7 @@ printf_string: { lda.z str+1 sta.z strlen.str+1 // [25] call strlen - // [86] phi from printf_string::@3 to strlen [phi:printf_string::@3->strlen] + // [95] phi from printf_string::@3 to strlen [phi:printf_string::@3->strlen] strlen_from___b3: jsr strlen // [26] (word) strlen::return#2 ← (word) strlen::len#2 @@ -2870,13 +2961,15 @@ printf_char: { bne !+ inc.z printf_char_cursor+1 !: - // [54] if((byte*) printf_char_cursor!=(const byte*) printf_screen+(word)(number) $28*(number) $19) goto printf_char::@return -- pbuz1_neq_pbuc1_then_la1 + // [54] if((byte*) printf_char_cursor<(const byte*) printf_screen+(word)(number) $28*(number) $19) goto printf_char::@return -- pbuz1_lt_pbuc1_then_la1 lda.z printf_char_cursor+1 cmp #>printf_screen+$28*$19 - bne __breturn + bcc __breturn + bne !+ lda.z printf_char_cursor cmp #printf_char::@1] __b1_from_printf_char: jmp __b1 @@ -3050,91 +3143,62 @@ memcpy: { } // printf_str // Print a zero-terminated string +// Handles escape codes such as newline // printf_str(byte* zp(3) str) printf_str: { .label str = 3 - // [80] phi from printf_str printf_str::@3 to printf_str::@1 [phi:printf_str/printf_str::@3->printf_str::@1] + // [80] phi from printf_str printf_str::@4 printf_str::@5 to printf_str::@1 [phi:printf_str/printf_str::@4/printf_str::@5->printf_str::@1] __b1_from_printf_str: - __b1_from___b3: - // [80] phi (byte*) printf_str::str#2 = (byte*) printf_str::str#1 [phi:printf_str/printf_str::@3->printf_str::@1#0] -- register_copy + __b1_from___b4: + __b1_from___b5: + // [80] phi (byte*) printf_str::str#2 = (byte*) printf_str::str#1 [phi:printf_str/printf_str::@4/printf_str::@5->printf_str::@1#0] -- register_copy jmp __b1 // printf_str::@1 __b1: - // [81] if((byte) 0!=*((byte*) printf_str::str#2)) goto printf_str::@2 -- vbuc1_neq__deref_pbuz1_then_la1 + jmp __b2 + // printf_str::@2 + __b2: + // [81] (byte) printf_str::ch#0 ← *((byte*) printf_str::str#2) -- vbuaa=_deref_pbuz1 ldy #0 lda (str),y + // [82] (byte*) printf_str::str#0 ← ++ (byte*) printf_str::str#2 -- pbuz1=_inc_pbuz1 + inc.z str + bne !+ + inc.z str+1 + !: + // [83] if((byte) printf_str::ch#0!=(byte) 0) goto printf_str::@3 -- vbuaa_neq_0_then_la1 cmp #0 - bne __b2 + bne __b3 jmp __breturn // printf_str::@return __breturn: - // [82] return + // [84] return rts - // printf_str::@2 - __b2: - // [83] (byte) printf_char::ch#1 ← *((byte*) printf_str::str#2) -- vbuaa=_deref_pbuz1 - ldy #0 - lda (str),y - // [84] call printf_char - // [51] phi from printf_str::@2 to printf_char [phi:printf_str::@2->printf_char] - printf_char_from___b2: - // [51] phi (byte) printf_char::ch#2 = (byte) printf_char::ch#1 [phi:printf_str::@2->printf_char#0] -- register_copy - jsr printf_char - jmp __b3 // printf_str::@3 __b3: - // [85] (byte*) printf_str::str#0 ← ++ (byte*) printf_str::str#2 -- pbuz1=_inc_pbuz1 - inc.z str - bne !+ - inc.z str+1 - !: - jmp __b1_from___b3 -} - // strlen -// Computes the length of the string str up to but not including the terminating null character. -// strlen(byte* zp(9) str) -strlen: { - .label len = $b - .label str = 9 - .label return = $b - // [87] phi from strlen to strlen::@1 [phi:strlen->strlen::@1] - __b1_from_strlen: - // [87] phi (word) strlen::len#2 = (word) 0 [phi:strlen->strlen::@1#0] -- vwuz1=vwuc1 - lda #<0 - sta.z len - lda #>0 - sta.z len+1 - // [87] phi (byte*) strlen::str#2 = (byte*) strlen::str#1 [phi:strlen->strlen::@1#1] -- register_copy - jmp __b1 - // strlen::@1 - __b1: - // [88] if((byte) 0!=*((byte*) strlen::str#2)) goto strlen::@2 -- vbuc1_neq__deref_pbuz1_then_la1 - ldy #0 - lda (str),y - cmp #0 - bne __b2 - jmp __breturn - // strlen::@return - __breturn: - // [89] return - rts - // strlen::@2 - __b2: - // [90] (word) strlen::len#1 ← ++ (word) strlen::len#2 -- vwuz1=_inc_vwuz1 - inc.z len - bne !+ - inc.z len+1 - !: - // [91] (byte*) strlen::str#0 ← ++ (byte*) strlen::str#2 -- pbuz1=_inc_pbuz1 - inc.z str - bne !+ - inc.z str+1 - !: - // [87] phi from strlen::@2 to strlen::@1 [phi:strlen::@2->strlen::@1] - __b1_from___b2: - // [87] phi (word) strlen::len#2 = (word) strlen::len#1 [phi:strlen::@2->strlen::@1#0] -- register_copy - // [87] phi (byte*) strlen::str#2 = (byte*) strlen::str#0 [phi:strlen::@2->strlen::@1#1] -- register_copy - jmp __b1 + // [85] if((byte) printf_str::ch#0==(byte) ' ') goto printf_str::@4 -- vbuaa_eq_vbuc1_then_la1 + cmp #'\n' + beq __b4_from___b3 + jmp __b5 + // printf_str::@5 + __b5: + // [86] (byte) printf_char::ch#1 ← (byte) printf_str::ch#0 + // [87] call printf_char + // [51] phi from printf_str::@5 to printf_char [phi:printf_str::@5->printf_char] + printf_char_from___b5: + // [51] phi (byte) printf_char::ch#2 = (byte) printf_char::ch#1 [phi:printf_str::@5->printf_char#0] -- register_copy + jsr printf_char + jmp __b1_from___b5 + // [88] phi from printf_str::@3 to printf_str::@4 [phi:printf_str::@3->printf_str::@4] + __b4_from___b3: + jmp __b4 + // printf_str::@4 + __b4: + // [89] call printf_ln + // [90] phi from printf_str::@4 to printf_ln [phi:printf_str::@4->printf_ln] + printf_ln_from___b4: + jsr printf_ln + jmp __b1_from___b4 } // printf_ln // Print a newline @@ -3142,7 +3206,7 @@ printf_ln: { jmp __b1 // printf_ln::@1 __b1: - // [93] (byte*) printf_line_cursor ← (byte*) printf_line_cursor + (byte) $28 -- pbuz1=pbuz1_plus_vbuc1 + // [91] (byte*) printf_line_cursor ← (byte*) printf_line_cursor + (byte) $28 -- pbuz1=pbuz1_plus_vbuc1 lda #$28 clc adc.z printf_line_cursor @@ -3150,7 +3214,7 @@ printf_ln: { bcc !+ inc.z printf_line_cursor+1 !: - // [94] if((byte*) printf_line_cursor<(byte*) printf_char_cursor) goto printf_ln::@1 -- pbuz1_lt_pbuz2_then_la1 + // [92] if((byte*) printf_line_cursor<(byte*) printf_char_cursor) goto printf_ln::@1 -- pbuz1_lt_pbuz2_then_la1 lda.z printf_line_cursor+1 cmp.z printf_char_cursor+1 bcc __b1 @@ -3162,7 +3226,7 @@ printf_ln: { jmp __b2 // printf_ln::@2 __b2: - // [95] (byte*) printf_char_cursor ← (byte*) printf_line_cursor -- pbuz1=pbuz2 + // [93] (byte*) printf_char_cursor ← (byte*) printf_line_cursor -- pbuz1=pbuz2 lda.z printf_line_cursor sta.z printf_char_cursor lda.z printf_line_cursor+1 @@ -3170,13 +3234,59 @@ printf_ln: { jmp __breturn // printf_ln::@return __breturn: - // [96] return + // [94] return rts +} + // strlen +// Computes the length of the string str up to but not including the terminating null character. +// strlen(byte* zp(9) str) +strlen: { + .label len = $b + .label str = 9 + .label return = $b + // [96] phi from strlen to strlen::@1 [phi:strlen->strlen::@1] + __b1_from_strlen: + // [96] phi (word) strlen::len#2 = (word) 0 [phi:strlen->strlen::@1#0] -- vwuz1=vwuc1 + lda #<0 + sta.z len + lda #>0 + sta.z len+1 + // [96] phi (byte*) strlen::str#2 = (byte*) strlen::str#1 [phi:strlen->strlen::@1#1] -- register_copy + jmp __b1 + // strlen::@1 + __b1: + // [97] if((byte) 0!=*((byte*) strlen::str#2)) goto strlen::@2 -- vbuc1_neq__deref_pbuz1_then_la1 + ldy #0 + lda (str),y + cmp #0 + bne __b2 + jmp __breturn + // strlen::@return + __breturn: + // [98] return + rts + // strlen::@2 + __b2: + // [99] (word) strlen::len#1 ← ++ (word) strlen::len#2 -- vwuz1=_inc_vwuz1 + inc.z len + bne !+ + inc.z len+1 + !: + // [100] (byte*) strlen::str#0 ← ++ (byte*) strlen::str#2 -- pbuz1=_inc_pbuz1 + inc.z str + bne !+ + inc.z str+1 + !: + // [96] phi from strlen::@2 to strlen::@1 [phi:strlen::@2->strlen::@1] + __b1_from___b2: + // [96] phi (word) strlen::len#2 = (word) strlen::len#1 [phi:strlen::@2->strlen::@1#0] -- register_copy + // [96] phi (byte*) strlen::str#2 = (byte*) strlen::str#0 [phi:strlen::@2->strlen::@1#1] -- register_copy + jmp __b1 } // printf_cls // Clear the screen. Also resets current line/char cursor. printf_cls: { - // [98] call memset + // [102] call memset // [63] phi from printf_cls to memset [phi:printf_cls->memset] memset_from_printf_cls: // [63] phi (byte) memset::c#4 = (byte) ' ' [phi:printf_cls->memset#0] -- vbuxx=vbuc1 @@ -3195,12 +3305,12 @@ printf_cls: { jmp __b1 // printf_cls::@1 __b1: - // [99] (byte*) printf_line_cursor ← (const byte*) printf_screen -- pbuz1=pbuc1 + // [103] (byte*) printf_line_cursor ← (const byte*) printf_screen -- pbuz1=pbuc1 lda #printf_screen sta.z printf_line_cursor+1 - // [100] (byte*) printf_char_cursor ← (byte*) printf_line_cursor -- pbuz1=pbuz2 + // [104] (byte*) printf_char_cursor ← (byte*) printf_line_cursor -- pbuz1=pbuz2 lda.z printf_line_cursor sta.z printf_char_cursor lda.z printf_line_cursor+1 @@ -3208,7 +3318,7 @@ printf_cls: { jmp __breturn // printf_cls::@return __breturn: - // [101] return + // [105] return rts } // File Data @@ -3247,15 +3357,17 @@ Removing instruction jmp __breturn Removing instruction jmp __b1 Removing instruction jmp __breturn Removing instruction jmp __b1 +Removing instruction jmp __b2 Removing instruction jmp __breturn -Removing instruction jmp __b3 -Removing instruction jmp __b1 -Removing instruction jmp __breturn +Removing instruction jmp __b5 +Removing instruction jmp __b4 Removing instruction jmp __b1 Removing instruction jmp __b2 Removing instruction jmp __breturn Removing instruction jmp __b1 Removing instruction jmp __breturn +Removing instruction jmp __b1 +Removing instruction jmp __breturn Succesful ASM optimization Pass5NextJumpElimination Removing instruction lda.z padding Removing instruction ldy #0 @@ -3263,7 +3375,9 @@ Removing instruction lda #>0 Succesful ASM optimization Pass5UnnecesaryLoadElimination Replacing label __b10_from___b6 with __b1 Replacing label __b2_from___b3 with __b2 -Replacing label __b1_from___b3 with __b1 +Replacing label __b4_from___b3 with __b4 +Replacing label __b1_from___b5 with __b2 +Replacing label __b1_from___b4 with __b2 Removing instruction __b1: Removing instruction __b2_from___b1: Removing instruction main_from___b2: @@ -3293,7 +3407,12 @@ Removing instruction memset_from___b2: Removing instruction __b2_from___b1: Removing instruction __b2_from___b3: Removing instruction __b1_from_printf_str: -Removing instruction __b1_from___b3: +Removing instruction __b1_from___b4: +Removing instruction __b1_from___b5: +Removing instruction __b1: +Removing instruction printf_char_from___b5: +Removing instruction __b4_from___b3: +Removing instruction printf_ln_from___b4: Succesful ASM optimization Pass5RedundantLabelElimination Removing instruction __b2: Removing instruction __bend: @@ -3328,13 +3447,12 @@ Removing instruction __b1_from_memcpy: Removing instruction __breturn: Removing instruction __b1_from___b2: Removing instruction __breturn: -Removing instruction printf_char_from___b2: -Removing instruction __b3: +Removing instruction __b5: +Removing instruction __b2: +Removing instruction __breturn: Removing instruction __b1_from_strlen: Removing instruction __breturn: Removing instruction __b1_from___b2: -Removing instruction __b2: -Removing instruction __breturn: Removing instruction memset_from_printf_cls: Removing instruction __b1: Removing instruction __breturn: @@ -3418,7 +3536,7 @@ FINAL SYMBOL TABLE (byte) printf_char::ch#0 reg byte a 20002.0 (byte) printf_char::ch#1 reg byte a 20002.0 (byte) printf_char::ch#2 reg byte a 120003.0 -(byte*) printf_char_cursor loadstore zp[2]:15 10465.85074626866 +(byte*) printf_char_cursor loadstore zp[2]:15 25353.69014084507 (void()) printf_cls() (label) printf_cls::@1 (label) printf_cls::@return @@ -3429,7 +3547,7 @@ FINAL SYMBOL TABLE (byte) printf_format_number::zero_padding (byte) printf_format_string::justify_left (byte) printf_format_string::min_length -(byte*) printf_line_cursor loadstore zp[2]:13 1639.825396825397 +(byte*) printf_line_cursor loadstore zp[2]:13 47764.31343283582 (void()) printf_ln() (label) printf_ln::@1 (label) printf_ln::@2 @@ -3453,11 +3571,15 @@ FINAL SYMBOL TABLE (label) printf_str::@1 (label) printf_str::@2 (label) printf_str::@3 +(label) printf_str::@4 +(label) printf_str::@5 (label) printf_str::@return +(byte) printf_str::ch +(byte) printf_str::ch#0 reg byte a 10001.0 (byte*) printf_str::str -(byte*) printf_str::str#0 str zp[2]:3 20002.0 +(byte*) printf_str::str#0 str zp[2]:3 4286.142857142857 (byte*) printf_str::str#1 str zp[2]:3 551.0 -(byte*) printf_str::str#2 str zp[2]:3 10251.25 +(byte*) printf_str::str#2 str zp[2]:3 20502.5 (void()) printf_string((byte*) printf_string::str , (byte) printf_string::format_min_length , (byte) printf_string::format_justify_left) (word~) printf_string::$9 zp[2]:11 101.0 (label) printf_string::@1 @@ -3509,10 +3631,11 @@ zp[2]:11 [ strlen::len#2 strlen::len#1 strlen::return#2 printf_string::$9 memcpy zp[2]:13 [ printf_line_cursor ] zp[2]:15 [ printf_char_cursor printf_char::$8 ] reg byte a [ printf_string::len#0 ] +reg byte a [ printf_str::ch#0 ] FINAL ASSEMBLER -Score: 10036 +Score: 9990 // File Comments // Tests printf implementation @@ -3552,7 +3675,7 @@ __bbegin: main: { // printf_cls() // [7] call printf_cls - // [97] phi from main to printf_cls [phi:main->printf_cls] + // [101] phi from main to printf_cls [phi:main->printf_cls] jsr printf_cls // [8] phi from main to main::@1 [phi:main->main::@1] // main::@1 @@ -3572,7 +3695,7 @@ main: { // main::@2 // printf_ln() // [11] call printf_ln - // [92] phi from main::@2 to printf_ln [phi:main::@2->printf_ln] + // [90] phi from main::@2 to printf_ln [phi:main::@2->printf_ln] jsr printf_ln // [12] phi from main::@2 to main::@3 [phi:main::@2->main::@3] // main::@3 @@ -3592,7 +3715,7 @@ main: { // main::@4 // printf_ln() // [15] call printf_ln - // [92] phi from main::@4 to printf_ln [phi:main::@4->printf_ln] + // [90] phi from main::@4 to printf_ln [phi:main::@4->printf_ln] jsr printf_ln // [16] phi from main::@4 to main::@5 [phi:main::@4->main::@5] // main::@5 @@ -3612,7 +3735,7 @@ main: { // main::@6 // printf_ln() // [19] call printf_ln - // [92] phi from main::@6 to printf_ln [phi:main::@6->printf_ln] + // [90] phi from main::@6 to printf_ln [phi:main::@6->printf_ln] jsr printf_ln // [20] phi from main::@6 to main::@7 [phi:main::@6->main::@7] // main::@7 @@ -3654,7 +3777,7 @@ printf_string: { lda.z str+1 sta.z strlen.str+1 // [25] call strlen - // [86] phi from printf_string::@3 to strlen [phi:printf_string::@3->strlen] + // [95] phi from printf_string::@3 to strlen [phi:printf_string::@3->strlen] jsr strlen // strlen(str) // [26] (word) strlen::return#2 ← (word) strlen::len#2 @@ -3798,14 +3921,16 @@ printf_char: { bne !+ inc.z printf_char_cursor+1 !: - // if(printf_char_cursor==printf_screen+PRINTF_SCREEN_BYTES) - // [54] if((byte*) printf_char_cursor!=(const byte*) printf_screen+(word)(number) $28*(number) $19) goto printf_char::@return -- pbuz1_neq_pbuc1_then_la1 + // if(printf_char_cursor>=(printf_screen+PRINTF_SCREEN_BYTES)) + // [54] if((byte*) printf_char_cursor<(const byte*) printf_screen+(word)(number) $28*(number) $19) goto printf_char::@return -- pbuz1_lt_pbuc1_then_la1 lda.z printf_char_cursor+1 cmp #>printf_screen+$28*$19 - bne __breturn + bcc __breturn + bne !+ lda.z printf_char_cursor cmp #printf_char::@1] // printf_char::@1 // memcpy(printf_screen, printf_screen+PRINTF_SCREEN_WIDTH, PRINTF_SCREEN_BYTES-PRINTF_SCREEN_WIDTH) @@ -3972,85 +4097,54 @@ memcpy: { } // printf_str // Print a zero-terminated string +// Handles escape codes such as newline // printf_str(byte* zp(3) str) printf_str: { .label str = 3 - // [80] phi from printf_str printf_str::@3 to printf_str::@1 [phi:printf_str/printf_str::@3->printf_str::@1] - // [80] phi (byte*) printf_str::str#2 = (byte*) printf_str::str#1 [phi:printf_str/printf_str::@3->printf_str::@1#0] -- register_copy + // [80] phi from printf_str printf_str::@4 printf_str::@5 to printf_str::@1 [phi:printf_str/printf_str::@4/printf_str::@5->printf_str::@1] + // [80] phi (byte*) printf_str::str#2 = (byte*) printf_str::str#1 [phi:printf_str/printf_str::@4/printf_str::@5->printf_str::@1#0] -- register_copy // printf_str::@1 - __b1: - // while(*str) - // [81] if((byte) 0!=*((byte*) printf_str::str#2)) goto printf_str::@2 -- vbuc1_neq__deref_pbuz1_then_la1 - ldy #0 - lda (str),y - cmp #0 - bne __b2 - // printf_str::@return - // } - // [82] return - rts // printf_str::@2 __b2: - // printf_char(*str++) - // [83] (byte) printf_char::ch#1 ← *((byte*) printf_str::str#2) -- vbuaa=_deref_pbuz1 + // ch = *str++ + // [81] (byte) printf_str::ch#0 ← *((byte*) printf_str::str#2) -- vbuaa=_deref_pbuz1 ldy #0 lda (str),y - // [84] call printf_char - // [51] phi from printf_str::@2 to printf_char [phi:printf_str::@2->printf_char] - // [51] phi (byte) printf_char::ch#2 = (byte) printf_char::ch#1 [phi:printf_str::@2->printf_char#0] -- register_copy - jsr printf_char - // printf_str::@3 - // printf_char(*str++); - // [85] (byte*) printf_str::str#0 ← ++ (byte*) printf_str::str#2 -- pbuz1=_inc_pbuz1 + // [82] (byte*) printf_str::str#0 ← ++ (byte*) printf_str::str#2 -- pbuz1=_inc_pbuz1 inc.z str bne !+ inc.z str+1 !: - jmp __b1 -} - // strlen -// Computes the length of the string str up to but not including the terminating null character. -// strlen(byte* zp(9) str) -strlen: { - .label len = $b - .label str = 9 - .label return = $b - // [87] phi from strlen to strlen::@1 [phi:strlen->strlen::@1] - // [87] phi (word) strlen::len#2 = (word) 0 [phi:strlen->strlen::@1#0] -- vwuz1=vwuc1 - lda #<0 - sta.z len - sta.z len+1 - // [87] phi (byte*) strlen::str#2 = (byte*) strlen::str#1 [phi:strlen->strlen::@1#1] -- register_copy - // strlen::@1 - __b1: - // while(*str) - // [88] if((byte) 0!=*((byte*) strlen::str#2)) goto strlen::@2 -- vbuc1_neq__deref_pbuz1_then_la1 - ldy #0 - lda (str),y + // if(ch==0) + // [83] if((byte) printf_str::ch#0!=(byte) 0) goto printf_str::@3 -- vbuaa_neq_0_then_la1 cmp #0 - bne __b2 - // strlen::@return + bne __b3 + // printf_str::@return // } - // [89] return + // [84] return rts - // strlen::@2 - __b2: - // len++; - // [90] (word) strlen::len#1 ← ++ (word) strlen::len#2 -- vwuz1=_inc_vwuz1 - inc.z len - bne !+ - inc.z len+1 - !: - // str++; - // [91] (byte*) strlen::str#0 ← ++ (byte*) strlen::str#2 -- pbuz1=_inc_pbuz1 - inc.z str - bne !+ - inc.z str+1 - !: - // [87] phi from strlen::@2 to strlen::@1 [phi:strlen::@2->strlen::@1] - // [87] phi (word) strlen::len#2 = (word) strlen::len#1 [phi:strlen::@2->strlen::@1#0] -- register_copy - // [87] phi (byte*) strlen::str#2 = (byte*) strlen::str#0 [phi:strlen::@2->strlen::@1#1] -- register_copy - jmp __b1 + // printf_str::@3 + __b3: + // if(ch=='\n') + // [85] if((byte) printf_str::ch#0==(byte) ' ') goto printf_str::@4 -- vbuaa_eq_vbuc1_then_la1 + cmp #'\n' + beq __b4 + // printf_str::@5 + // printf_char(ch) + // [86] (byte) printf_char::ch#1 ← (byte) printf_str::ch#0 + // [87] call printf_char + // [51] phi from printf_str::@5 to printf_char [phi:printf_str::@5->printf_char] + // [51] phi (byte) printf_char::ch#2 = (byte) printf_char::ch#1 [phi:printf_str::@5->printf_char#0] -- register_copy + jsr printf_char + jmp __b2 + // [88] phi from printf_str::@3 to printf_str::@4 [phi:printf_str::@3->printf_str::@4] + // printf_str::@4 + __b4: + // printf_ln() + // [89] call printf_ln + // [90] phi from printf_str::@4 to printf_ln [phi:printf_str::@4->printf_ln] + jsr printf_ln + jmp __b2 } // printf_ln // Print a newline @@ -4058,7 +4152,7 @@ printf_ln: { // printf_ln::@1 __b1: // printf_line_cursor += PRINTF_SCREEN_WIDTH - // [93] (byte*) printf_line_cursor ← (byte*) printf_line_cursor + (byte) $28 -- pbuz1=pbuz1_plus_vbuc1 + // [91] (byte*) printf_line_cursor ← (byte*) printf_line_cursor + (byte) $28 -- pbuz1=pbuz1_plus_vbuc1 lda #$28 clc adc.z printf_line_cursor @@ -4067,7 +4161,7 @@ printf_ln: { inc.z printf_line_cursor+1 !: // while (printf_line_cursorstrlen::@1] + // [96] phi (word) strlen::len#2 = (word) 0 [phi:strlen->strlen::@1#0] -- vwuz1=vwuc1 + lda #<0 + sta.z len + sta.z len+1 + // [96] phi (byte*) strlen::str#2 = (byte*) strlen::str#1 [phi:strlen->strlen::@1#1] -- register_copy + // strlen::@1 + __b1: + // while(*str) + // [97] if((byte) 0!=*((byte*) strlen::str#2)) goto strlen::@2 -- vbuc1_neq__deref_pbuz1_then_la1 + ldy #0 + lda (str),y + cmp #0 + bne __b2 + // strlen::@return + // } + // [98] return + rts + // strlen::@2 + __b2: + // len++; + // [99] (word) strlen::len#1 ← ++ (word) strlen::len#2 -- vwuz1=_inc_vwuz1 + inc.z len + bne !+ + inc.z len+1 + !: + // str++; + // [100] (byte*) strlen::str#0 ← ++ (byte*) strlen::str#2 -- pbuz1=_inc_pbuz1 + inc.z str + bne !+ + inc.z str+1 + !: + // [96] phi from strlen::@2 to strlen::@1 [phi:strlen::@2->strlen::@1] + // [96] phi (word) strlen::len#2 = (word) strlen::len#1 [phi:strlen::@2->strlen::@1#0] -- register_copy + // [96] phi (byte*) strlen::str#2 = (byte*) strlen::str#0 [phi:strlen::@2->strlen::@1#1] -- register_copy + jmp __b1 } // printf_cls // Clear the screen. Also resets current line/char cursor. printf_cls: { // memset(printf_screen, ' ', PRINTF_SCREEN_BYTES) - // [98] call memset + // [102] call memset // [63] phi from printf_cls to memset [phi:printf_cls->memset] // [63] phi (byte) memset::c#4 = (byte) ' ' [phi:printf_cls->memset#0] -- vbuxx=vbuc1 ldx #' ' @@ -4109,20 +4247,20 @@ printf_cls: { jsr memset // printf_cls::@1 // printf_line_cursor = printf_screen - // [99] (byte*) printf_line_cursor ← (const byte*) printf_screen -- pbuz1=pbuc1 + // [103] (byte*) printf_line_cursor ← (const byte*) printf_screen -- pbuz1=pbuc1 lda #printf_screen sta.z printf_line_cursor+1 // printf_char_cursor = printf_line_cursor - // [100] (byte*) printf_char_cursor ← (byte*) printf_line_cursor -- pbuz1=pbuz2 + // [104] (byte*) printf_char_cursor ← (byte*) printf_line_cursor -- pbuz1=pbuz2 lda.z printf_line_cursor sta.z printf_char_cursor lda.z printf_line_cursor+1 sta.z printf_char_cursor+1 // printf_cls::@return // } - // [101] return + // [105] return rts } // File Data diff --git a/src/test/ref/printf-1.sym b/src/test/ref/printf-1.sym index 764f7333c..589c54d32 100644 --- a/src/test/ref/printf-1.sym +++ b/src/test/ref/printf-1.sym @@ -66,7 +66,7 @@ (byte) printf_char::ch#0 reg byte a 20002.0 (byte) printf_char::ch#1 reg byte a 20002.0 (byte) printf_char::ch#2 reg byte a 120003.0 -(byte*) printf_char_cursor loadstore zp[2]:15 10465.85074626866 +(byte*) printf_char_cursor loadstore zp[2]:15 25353.69014084507 (void()) printf_cls() (label) printf_cls::@1 (label) printf_cls::@return @@ -77,7 +77,7 @@ (byte) printf_format_number::zero_padding (byte) printf_format_string::justify_left (byte) printf_format_string::min_length -(byte*) printf_line_cursor loadstore zp[2]:13 1639.825396825397 +(byte*) printf_line_cursor loadstore zp[2]:13 47764.31343283582 (void()) printf_ln() (label) printf_ln::@1 (label) printf_ln::@2 @@ -101,11 +101,15 @@ (label) printf_str::@1 (label) printf_str::@2 (label) printf_str::@3 +(label) printf_str::@4 +(label) printf_str::@5 (label) printf_str::@return +(byte) printf_str::ch +(byte) printf_str::ch#0 reg byte a 10001.0 (byte*) printf_str::str -(byte*) printf_str::str#0 str zp[2]:3 20002.0 +(byte*) printf_str::str#0 str zp[2]:3 4286.142857142857 (byte*) printf_str::str#1 str zp[2]:3 551.0 -(byte*) printf_str::str#2 str zp[2]:3 10251.25 +(byte*) printf_str::str#2 str zp[2]:3 20502.5 (void()) printf_string((byte*) printf_string::str , (byte) printf_string::format_min_length , (byte) printf_string::format_justify_left) (word~) printf_string::$9 zp[2]:11 101.0 (label) printf_string::@1 @@ -157,3 +161,4 @@ zp[2]:11 [ strlen::len#2 strlen::len#1 strlen::return#2 printf_string::$9 memcpy zp[2]:13 [ printf_line_cursor ] zp[2]:15 [ printf_char_cursor printf_char::$8 ] reg byte a [ printf_string::len#0 ] +reg byte a [ printf_str::ch#0 ] diff --git a/src/test/ref/printf-2.asm b/src/test/ref/printf-2.asm index 0ad8decc0..0e74c170d 100644 --- a/src/test/ref/printf-2.asm +++ b/src/test/ref/printf-2.asm @@ -255,13 +255,15 @@ printf_char: { bne !+ inc.z printf_char_cursor+1 !: - // if(printf_char_cursor==printf_screen+PRINTF_SCREEN_BYTES) + // if(printf_char_cursor>=(printf_screen+PRINTF_SCREEN_BYTES)) lda.z printf_char_cursor+1 cmp #>printf_screen+$28*$19 - bne __breturn + bcc __breturn + bne !+ lda.z printf_char_cursor cmp #=(word) utoa::digit_value#0) goto utoa::@5 + [129] if((word) utoa::value#2>=(word) utoa::digit_value#0) goto utoa::@5 to:utoa::@4 utoa::@4: scope:[utoa] from utoa::@6 utoa::@7 - [126] (byte*) utoa::buffer#14 ← phi( utoa::@7/(byte*) utoa::buffer#11 utoa::@6/(byte*) utoa::buffer#4 ) - [126] (byte) utoa::started#4 ← phi( utoa::@7/(byte) utoa::started#2 utoa::@6/(byte) 1 ) - [126] (word) utoa::value#6 ← phi( utoa::@7/(word) utoa::value#2 utoa::@6/(word) utoa::value#0 ) - [127] (byte) utoa::digit#1 ← ++ (byte) utoa::digit#2 + [130] (byte*) utoa::buffer#14 ← phi( utoa::@7/(byte*) utoa::buffer#11 utoa::@6/(byte*) utoa::buffer#4 ) + [130] (byte) utoa::started#4 ← phi( utoa::@7/(byte) utoa::started#2 utoa::@6/(byte) 1 ) + [130] (word) utoa::value#6 ← phi( utoa::@7/(word) utoa::value#2 utoa::@6/(word) utoa::value#0 ) + [131] (byte) utoa::digit#1 ← ++ (byte) utoa::digit#2 to:utoa::@1 utoa::@5: scope:[utoa] from utoa::@2 utoa::@7 - [128] (byte*) utoa_append::buffer#0 ← (byte*) utoa::buffer#11 - [129] (word) utoa_append::value#0 ← (word) utoa::value#2 - [130] (word) utoa_append::sub#0 ← (word) utoa::digit_value#0 - [131] call utoa_append - [132] (word) utoa_append::return#0 ← (word) utoa_append::value#2 + [132] (byte*) utoa_append::buffer#0 ← (byte*) utoa::buffer#11 + [133] (word) utoa_append::value#0 ← (word) utoa::value#2 + [134] (word) utoa_append::sub#0 ← (word) utoa::digit_value#0 + [135] call utoa_append + [136] (word) utoa_append::return#0 ← (word) utoa_append::value#2 to:utoa::@6 utoa::@6: scope:[utoa] from utoa::@5 - [133] (word) utoa::value#0 ← (word) utoa_append::return#0 - [134] (byte*) utoa::buffer#4 ← ++ (byte*) utoa::buffer#11 + [137] (word) utoa::value#0 ← (word) utoa_append::return#0 + [138] (byte*) utoa::buffer#4 ← ++ (byte*) utoa::buffer#11 to:utoa::@4 (word()) utoa_append((byte*) utoa_append::buffer , (word) utoa_append::value , (word) utoa_append::sub) utoa_append: scope:[utoa_append] from utoa::@5 - [135] phi() + [139] phi() to:utoa_append::@1 utoa_append::@1: scope:[utoa_append] from utoa_append utoa_append::@2 - [136] (byte) utoa_append::digit#2 ← phi( utoa_append/(byte) 0 utoa_append::@2/(byte) utoa_append::digit#1 ) - [136] (word) utoa_append::value#2 ← phi( utoa_append/(word) utoa_append::value#0 utoa_append::@2/(word) utoa_append::value#1 ) - [137] if((word) utoa_append::value#2>=(word) utoa_append::sub#0) goto utoa_append::@2 + [140] (byte) utoa_append::digit#2 ← phi( utoa_append/(byte) 0 utoa_append::@2/(byte) utoa_append::digit#1 ) + [140] (word) utoa_append::value#2 ← phi( utoa_append/(word) utoa_append::value#0 utoa_append::@2/(word) utoa_append::value#1 ) + [141] if((word) utoa_append::value#2>=(word) utoa_append::sub#0) goto utoa_append::@2 to:utoa_append::@3 utoa_append::@3: scope:[utoa_append] from utoa_append::@1 - [138] *((byte*) utoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) utoa_append::digit#2) + [142] *((byte*) utoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) utoa_append::digit#2) to:utoa_append::@return utoa_append::@return: scope:[utoa_append] from utoa_append::@3 - [139] return + [143] return to:@return utoa_append::@2: scope:[utoa_append] from utoa_append::@1 - [140] (byte) utoa_append::digit#1 ← ++ (byte) utoa_append::digit#2 - [141] (word) utoa_append::value#1 ← (word) utoa_append::value#2 - (word) utoa_append::sub#0 + [144] (byte) utoa_append::digit#1 ← ++ (byte) utoa_append::digit#2 + [145] (word) utoa_append::value#1 ← (word) utoa_append::value#2 - (word) utoa_append::sub#0 to:utoa_append::@1 (void()) printf_schar((signed byte) printf_schar::value , (byte) printf_schar::format_min_length , (byte) printf_schar::format_justify_left , (byte) printf_schar::format_sign_always , (byte) printf_schar::format_zero_padding , (byte) printf_schar::format_radix) printf_schar: scope:[printf_schar] from main::@1 main::@3 - [142] (byte) printf_schar::format_zero_padding#2 ← phi( main::@1/(byte) 0 main::@3/(byte) 1 ) - [142] (byte) printf_schar::format_radix#2 ← phi( main::@1/(const byte) DECIMAL main::@3/(const byte) OCTAL ) - [142] (byte) printf_schar::format_sign_always#2 ← phi( main::@1/(byte) 0 main::@3/(byte) 1 ) - [142] (signed byte) printf_schar::value#3 ← phi( main::@1/(signed byte) -$4d main::@3/(signed byte) $63 ) - [143] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 - [144] if((signed byte) printf_schar::value#3<(signed byte) 0) goto printf_schar::@1 + [146] (byte) printf_schar::format_zero_padding#2 ← phi( main::@1/(byte) 0 main::@3/(byte) 1 ) + [146] (byte) printf_schar::format_radix#2 ← phi( main::@1/(const byte) DECIMAL main::@3/(const byte) OCTAL ) + [146] (byte) printf_schar::format_sign_always#2 ← phi( main::@1/(byte) 0 main::@3/(byte) 1 ) + [146] (signed byte) printf_schar::value#3 ← phi( main::@1/(signed byte) -$4d main::@3/(signed byte) $63 ) + [147] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 + [148] if((signed byte) printf_schar::value#3<(signed byte) 0) goto printf_schar::@1 to:printf_schar::@3 printf_schar::@3: scope:[printf_schar] from printf_schar - [145] if((byte) 0==(byte) printf_schar::format_sign_always#2) goto printf_schar::@2 + [149] if((byte) 0==(byte) printf_schar::format_sign_always#2) goto printf_schar::@2 to:printf_schar::@4 printf_schar::@4: scope:[printf_schar] from printf_schar::@3 - [146] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) '+' + [150] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) '+' to:printf_schar::@2 printf_schar::@2: scope:[printf_schar] from printf_schar::@1 printf_schar::@3 printf_schar::@4 - [147] (signed byte) printf_schar::value#5 ← phi( printf_schar::@1/(signed byte) printf_schar::value#0 printf_schar::@3/(signed byte) printf_schar::value#3 printf_schar::@4/(signed byte) printf_schar::value#3 ) - [148] (byte) uctoa::value#1 ← (byte)(signed byte) printf_schar::value#5 - [149] (byte) uctoa::radix#0 ← (byte) printf_schar::format_radix#2 - [150] call uctoa + [151] (signed byte) printf_schar::value#5 ← phi( printf_schar::@1/(signed byte) printf_schar::value#0 printf_schar::@3/(signed byte) printf_schar::value#3 printf_schar::@4/(signed byte) printf_schar::value#3 ) + [152] (byte) uctoa::value#1 ← (byte)(signed byte) printf_schar::value#5 + [153] (byte) uctoa::radix#0 ← (byte) printf_schar::format_radix#2 + [154] call uctoa to:printf_schar::@5 printf_schar::@5: scope:[printf_schar] from printf_schar::@2 - [151] (byte) printf_number_buffer::buffer_sign#1 ← *((byte*)&(struct printf_buffer_number) printf_buffer) - [152] (byte) printf_number_buffer::format_zero_padding#1 ← (byte) printf_schar::format_zero_padding#2 - [153] call printf_number_buffer + [155] (byte) printf_number_buffer::buffer_sign#1 ← *((byte*)&(struct printf_buffer_number) printf_buffer) + [156] (byte) printf_number_buffer::format_zero_padding#1 ← (byte) printf_schar::format_zero_padding#2 + [157] call printf_number_buffer to:printf_schar::@return printf_schar::@return: scope:[printf_schar] from printf_schar::@5 - [154] return + [158] return to:@return printf_schar::@1: scope:[printf_schar] from printf_schar - [155] (signed byte) printf_schar::value#0 ← - (signed byte) printf_schar::value#3 - [156] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) '-' + [159] (signed byte) printf_schar::value#0 ← - (signed byte) printf_schar::value#3 + [160] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) '-' to:printf_schar::@2 (void()) uctoa((byte) uctoa::value , (byte*) uctoa::buffer , (byte) uctoa::radix) uctoa: scope:[uctoa] from printf_schar::@2 - [157] if((byte) uctoa::radix#0==(const byte) DECIMAL) goto uctoa::@1 + [161] if((byte) uctoa::radix#0==(const byte) DECIMAL) goto uctoa::@1 to:uctoa::@2 uctoa::@2: scope:[uctoa] from uctoa - [158] if((byte) uctoa::radix#0==(const byte) HEXADECIMAL) goto uctoa::@1 + [162] if((byte) uctoa::radix#0==(const byte) HEXADECIMAL) goto uctoa::@1 to:uctoa::@3 uctoa::@3: scope:[uctoa] from uctoa::@2 - [159] if((byte) uctoa::radix#0==(const byte) OCTAL) goto uctoa::@1 + [163] if((byte) uctoa::radix#0==(const byte) OCTAL) goto uctoa::@1 to:uctoa::@4 uctoa::@4: scope:[uctoa] from uctoa::@3 - [160] if((byte) uctoa::radix#0==(const byte) BINARY) goto uctoa::@1 + [164] if((byte) uctoa::radix#0==(const byte) BINARY) goto uctoa::@1 to:uctoa::@5 uctoa::@5: scope:[uctoa] from uctoa::@4 - [161] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS) ← (byte) 'e' - [162] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(byte) 1) ← (byte) 'r' - [163] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(byte) 2) ← (byte) 'r' - [164] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(byte) 3) ← (byte) 0 + [165] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS) ← (byte) 'e' + [166] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(byte) 1) ← (byte) 'r' + [167] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(byte) 2) ← (byte) 'r' + [168] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(byte) 3) ← (byte) 0 to:uctoa::@return uctoa::@return: scope:[uctoa] from uctoa::@5 uctoa::@8 - [165] return + [169] return to:@return uctoa::@1: scope:[uctoa] from uctoa uctoa::@2 uctoa::@3 uctoa::@4 - [166] (byte*) uctoa::digit_values#8 ← phi( uctoa/(const byte*) RADIX_DECIMAL_VALUES_CHAR uctoa::@2/(const byte*) RADIX_HEXADECIMAL_VALUES_CHAR uctoa::@3/(const byte*) RADIX_OCTAL_VALUES_CHAR uctoa::@4/(const byte*) RADIX_BINARY_VALUES_CHAR ) - [166] (byte) uctoa::max_digits#7 ← phi( uctoa/(byte) 3 uctoa::@2/(byte) 2 uctoa::@3/(byte) 3 uctoa::@4/(byte) 8 ) + [170] (byte*) uctoa::digit_values#8 ← phi( uctoa/(const byte*) RADIX_DECIMAL_VALUES_CHAR uctoa::@2/(const byte*) RADIX_HEXADECIMAL_VALUES_CHAR uctoa::@3/(const byte*) RADIX_OCTAL_VALUES_CHAR uctoa::@4/(const byte*) RADIX_BINARY_VALUES_CHAR ) + [170] (byte) uctoa::max_digits#7 ← phi( uctoa/(byte) 3 uctoa::@2/(byte) 2 uctoa::@3/(byte) 3 uctoa::@4/(byte) 8 ) to:uctoa::@6 uctoa::@6: scope:[uctoa] from uctoa::@1 uctoa::@9 - [167] (byte*) uctoa::buffer#11 ← phi( uctoa::@9/(byte*) uctoa::buffer#14 uctoa::@1/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) - [167] (byte) uctoa::started#2 ← phi( uctoa::@9/(byte) uctoa::started#4 uctoa::@1/(byte) 0 ) - [167] (byte) uctoa::value#2 ← phi( uctoa::@9/(byte) uctoa::value#6 uctoa::@1/(byte) uctoa::value#1 ) - [167] (byte) uctoa::digit#2 ← phi( uctoa::@9/(byte) uctoa::digit#1 uctoa::@1/(byte) 0 ) - [168] (byte~) uctoa::$4 ← (byte) uctoa::max_digits#7 - (byte) 1 - [169] if((byte) uctoa::digit#2<(byte~) uctoa::$4) goto uctoa::@7 + [171] (byte*) uctoa::buffer#11 ← phi( uctoa::@9/(byte*) uctoa::buffer#14 uctoa::@1/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) + [171] (byte) uctoa::started#2 ← phi( uctoa::@9/(byte) uctoa::started#4 uctoa::@1/(byte) 0 ) + [171] (byte) uctoa::value#2 ← phi( uctoa::@9/(byte) uctoa::value#6 uctoa::@1/(byte) uctoa::value#1 ) + [171] (byte) uctoa::digit#2 ← phi( uctoa::@9/(byte) uctoa::digit#1 uctoa::@1/(byte) 0 ) + [172] (byte~) uctoa::$4 ← (byte) uctoa::max_digits#7 - (byte) 1 + [173] if((byte) uctoa::digit#2<(byte~) uctoa::$4) goto uctoa::@7 to:uctoa::@8 uctoa::@8: scope:[uctoa] from uctoa::@6 - [170] *((byte*) uctoa::buffer#11) ← *((const byte*) DIGITS + (byte) uctoa::value#2) - [171] (byte*) uctoa::buffer#3 ← ++ (byte*) uctoa::buffer#11 - [172] *((byte*) uctoa::buffer#3) ← (byte) 0 + [174] *((byte*) uctoa::buffer#11) ← *((const byte*) DIGITS + (byte) uctoa::value#2) + [175] (byte*) uctoa::buffer#3 ← ++ (byte*) uctoa::buffer#11 + [176] *((byte*) uctoa::buffer#3) ← (byte) 0 to:uctoa::@return uctoa::@7: scope:[uctoa] from uctoa::@6 - [173] (byte) uctoa::digit_value#0 ← *((byte*) uctoa::digit_values#8 + (byte) uctoa::digit#2) - [174] if((byte) 0!=(byte) uctoa::started#2) goto uctoa::@10 + [177] (byte) uctoa::digit_value#0 ← *((byte*) uctoa::digit_values#8 + (byte) uctoa::digit#2) + [178] if((byte) 0!=(byte) uctoa::started#2) goto uctoa::@10 to:uctoa::@12 uctoa::@12: scope:[uctoa] from uctoa::@7 - [175] if((byte) uctoa::value#2>=(byte) uctoa::digit_value#0) goto uctoa::@10 + [179] if((byte) uctoa::value#2>=(byte) uctoa::digit_value#0) goto uctoa::@10 to:uctoa::@9 uctoa::@9: scope:[uctoa] from uctoa::@11 uctoa::@12 - [176] (byte*) uctoa::buffer#14 ← phi( uctoa::@12/(byte*) uctoa::buffer#11 uctoa::@11/(byte*) uctoa::buffer#4 ) - [176] (byte) uctoa::started#4 ← phi( uctoa::@12/(byte) uctoa::started#2 uctoa::@11/(byte) 1 ) - [176] (byte) uctoa::value#6 ← phi( uctoa::@12/(byte) uctoa::value#2 uctoa::@11/(byte) uctoa::value#0 ) - [177] (byte) uctoa::digit#1 ← ++ (byte) uctoa::digit#2 + [180] (byte*) uctoa::buffer#14 ← phi( uctoa::@12/(byte*) uctoa::buffer#11 uctoa::@11/(byte*) uctoa::buffer#4 ) + [180] (byte) uctoa::started#4 ← phi( uctoa::@12/(byte) uctoa::started#2 uctoa::@11/(byte) 1 ) + [180] (byte) uctoa::value#6 ← phi( uctoa::@12/(byte) uctoa::value#2 uctoa::@11/(byte) uctoa::value#0 ) + [181] (byte) uctoa::digit#1 ← ++ (byte) uctoa::digit#2 to:uctoa::@6 uctoa::@10: scope:[uctoa] from uctoa::@12 uctoa::@7 - [178] (byte*) uctoa_append::buffer#0 ← (byte*) uctoa::buffer#11 - [179] (byte) uctoa_append::value#0 ← (byte) uctoa::value#2 - [180] (byte) uctoa_append::sub#0 ← (byte) uctoa::digit_value#0 - [181] call uctoa_append - [182] (byte) uctoa_append::return#0 ← (byte) uctoa_append::value#2 + [182] (byte*) uctoa_append::buffer#0 ← (byte*) uctoa::buffer#11 + [183] (byte) uctoa_append::value#0 ← (byte) uctoa::value#2 + [184] (byte) uctoa_append::sub#0 ← (byte) uctoa::digit_value#0 + [185] call uctoa_append + [186] (byte) uctoa_append::return#0 ← (byte) uctoa_append::value#2 to:uctoa::@11 uctoa::@11: scope:[uctoa] from uctoa::@10 - [183] (byte) uctoa::value#0 ← (byte) uctoa_append::return#0 - [184] (byte*) uctoa::buffer#4 ← ++ (byte*) uctoa::buffer#11 + [187] (byte) uctoa::value#0 ← (byte) uctoa_append::return#0 + [188] (byte*) uctoa::buffer#4 ← ++ (byte*) uctoa::buffer#11 to:uctoa::@9 (byte()) uctoa_append((byte*) uctoa_append::buffer , (byte) uctoa_append::value , (byte) uctoa_append::sub) uctoa_append: scope:[uctoa_append] from uctoa::@10 - [185] phi() + [189] phi() to:uctoa_append::@1 uctoa_append::@1: scope:[uctoa_append] from uctoa_append uctoa_append::@2 - [186] (byte) uctoa_append::digit#2 ← phi( uctoa_append/(byte) 0 uctoa_append::@2/(byte) uctoa_append::digit#1 ) - [186] (byte) uctoa_append::value#2 ← phi( uctoa_append/(byte) uctoa_append::value#0 uctoa_append::@2/(byte) uctoa_append::value#1 ) - [187] if((byte) uctoa_append::value#2>=(byte) uctoa_append::sub#0) goto uctoa_append::@2 + [190] (byte) uctoa_append::digit#2 ← phi( uctoa_append/(byte) 0 uctoa_append::@2/(byte) uctoa_append::digit#1 ) + [190] (byte) uctoa_append::value#2 ← phi( uctoa_append/(byte) uctoa_append::value#0 uctoa_append::@2/(byte) uctoa_append::value#1 ) + [191] if((byte) uctoa_append::value#2>=(byte) uctoa_append::sub#0) goto uctoa_append::@2 to:uctoa_append::@3 uctoa_append::@3: scope:[uctoa_append] from uctoa_append::@1 - [188] *((byte*) uctoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) uctoa_append::digit#2) + [192] *((byte*) uctoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) uctoa_append::digit#2) to:uctoa_append::@return uctoa_append::@return: scope:[uctoa_append] from uctoa_append::@3 - [189] return + [193] return to:@return uctoa_append::@2: scope:[uctoa_append] from uctoa_append::@1 - [190] (byte) uctoa_append::digit#1 ← ++ (byte) uctoa_append::digit#2 - [191] (byte) uctoa_append::value#1 ← (byte) uctoa_append::value#2 - (byte) uctoa_append::sub#0 + [194] (byte) uctoa_append::digit#1 ← ++ (byte) uctoa_append::digit#2 + [195] (byte) uctoa_append::value#1 ← (byte) uctoa_append::value#2 - (byte) uctoa_append::sub#0 to:uctoa_append::@1 (void()) printf_cls() printf_cls: scope:[printf_cls] from main - [192] phi() - [193] call memset + [196] phi() + [197] call memset to:printf_cls::@1 printf_cls::@1: scope:[printf_cls] from printf_cls - [194] (byte*) printf_line_cursor ← (const byte*) printf_screen - [195] (byte*) printf_char_cursor ← (byte*) printf_line_cursor + [198] (byte*) printf_line_cursor ← (const byte*) printf_screen + [199] (byte*) printf_char_cursor ← (byte*) printf_line_cursor to:printf_cls::@return printf_cls::@return: scope:[printf_cls] from printf_cls::@1 - [196] return + [200] return to:@return diff --git a/src/test/ref/printf-2.log b/src/test/ref/printf-2.log index 541ca9cf5..7ff2b1e09 100644 --- a/src/test/ref/printf-2.log +++ b/src/test/ref/printf-2.log @@ -136,7 +136,6 @@ De-inlining cast (signed byte)printf_number_buffer::format_min_length De-inlining cast (signed byte)printf_string::format_min_length Warning! Adding boolean cast to non-boolean condition *((byte*) strcpy::src) Warning! Adding boolean cast to non-boolean condition *((byte*) strlen::str) -Warning! Adding boolean cast to non-boolean condition *((byte*) printf_str::str) Warning! Adding boolean cast to non-boolean condition (byte) printf_ulong::format_sign_always Warning! Adding boolean cast to non-boolean condition (byte) printf_uint::format_sign_always Warning! Adding boolean cast to non-boolean condition (byte) printf_uchar::format_sign_always @@ -219,10 +218,15 @@ Culled Empty Block (label) printf_padding::@3 Culled Empty Block (label) printf_padding::@5 Culled Empty Block (label) printf_padding::@6 Culled Empty Block (label) @19 -Culled Empty Block (label) printf_str::@4 +Culled Empty Block (label) printf_str::@8 Culled Empty Block (label) printf_str::@3 +Culled Empty Block (label) printf_str::@9 +Culled Empty Block (label) printf_str::@10 Culled Empty Block (label) printf_str::@5 -Culled Empty Block (label) printf_str::@6 +Culled Empty Block (label) printf_str::@11 +Culled Empty Block (label) printf_str::@7 +Culled Empty Block (label) printf_str::@13 +Culled Empty Block (label) printf_str::@14 Culled Empty Block (label) @20 Culled Empty Block (label) @21 Culled Empty Block (label) @22 @@ -730,12 +734,12 @@ printf_cls::@return: scope:[printf_cls] from printf_cls::@1 to:@return (void()) printf_char((byte) printf_char::ch) -printf_char: scope:[printf_char] from printf_number_buffer::@9 printf_padding::@2 printf_str::@2 - (byte) printf_char::ch#3 ← phi( printf_number_buffer::@9/(byte) printf_char::ch#2 printf_padding::@2/(byte) printf_char::ch#0 printf_str::@2/(byte) printf_char::ch#1 ) +printf_char: scope:[printf_char] from printf_number_buffer::@9 printf_padding::@2 printf_str::@12 + (byte) printf_char::ch#3 ← phi( printf_number_buffer::@9/(byte) printf_char::ch#2 printf_padding::@2/(byte) printf_char::ch#0 printf_str::@12/(byte) printf_char::ch#1 ) *((byte*) printf_char_cursor) ← (byte) printf_char::ch#3 (byte*) printf_char_cursor ← ++ (byte*) printf_char_cursor (byte*~) printf_char::$0 ← (const byte*) printf_screen + (number) $28*(number) $19 - (bool~) printf_char::$1 ← (byte*) printf_char_cursor == (byte*~) printf_char::$0 + (bool~) printf_char::$1 ← (byte*) printf_char_cursor >= (byte*~) printf_char::$0 (bool~) printf_char::$2 ← ! (bool~) printf_char::$1 if((bool~) printf_char::$2) goto printf_char::@return to:printf_char::@2 @@ -766,7 +770,7 @@ printf_char::@return: scope:[printf_char] from printf_char printf_char::@4 to:@return (void()) printf_ln() -printf_ln: scope:[printf_ln] from main::@2 main::@4 main::@6 +printf_ln: scope:[printf_ln] from main::@2 main::@4 main::@6 printf_str::@6 to:printf_ln::@1 printf_ln::@1: scope:[printf_ln] from printf_ln printf_ln::@1 (byte*) printf_line_cursor ← (byte*) printf_line_cursor + (number) $28 @@ -812,23 +816,44 @@ printf_padding::@return: scope:[printf_padding] from printf_padding::@1 (void()) printf_str((byte*) printf_str::str) printf_str: scope:[printf_str] from printf_number_buffer::@4 - (byte*) printf_str::str#5 ← phi( printf_number_buffer::@4/(byte*) printf_str::str#1 ) + (byte*) printf_str::str#4 ← phi( printf_number_buffer::@4/(byte*) printf_str::str#1 ) to:printf_str::@1 -printf_str::@1: scope:[printf_str] from printf_str printf_str::@7 - (byte*) printf_str::str#2 ← phi( printf_str/(byte*) printf_str::str#5 printf_str::@7/(byte*) printf_str::str#0 ) - (bool~) printf_str::$1 ← (number) 0 != *((byte*) printf_str::str#2) - if((bool~) printf_str::$1) goto printf_str::@2 +printf_str::@1: scope:[printf_str] from printf_str printf_str::@15 printf_str::@16 + (byte*) printf_str::str#3 ← phi( printf_str/(byte*) printf_str::str#4 printf_str::@15/(byte*) printf_str::str#5 printf_str::@16/(byte*) printf_str::str#6 ) + if(true) goto printf_str::@2 to:printf_str::@return printf_str::@2: scope:[printf_str] from printf_str::@1 - (byte*) printf_str::str#3 ← phi( printf_str::@1/(byte*) printf_str::str#2 ) - (byte) printf_char::ch#1 ← *((byte*) printf_str::str#3) - call printf_char - to:printf_str::@7 -printf_str::@7: scope:[printf_str] from printf_str::@2 - (byte*) printf_str::str#4 ← phi( printf_str::@2/(byte*) printf_str::str#3 ) - (byte*) printf_str::str#0 ← ++ (byte*) printf_str::str#4 + (byte*) printf_str::str#2 ← phi( printf_str::@1/(byte*) printf_str::str#3 ) + (byte) printf_str::ch#0 ← *((byte*) printf_str::str#2) + (byte*) printf_str::str#0 ← ++ (byte*) printf_str::str#2 + (bool~) printf_str::$0 ← (byte) printf_str::ch#0 == (number) 0 + (bool~) printf_str::$1 ← ! (bool~) printf_str::$0 + if((bool~) printf_str::$1) goto printf_str::@4 + to:printf_str::@return +printf_str::@4: scope:[printf_str] from printf_str::@2 + (byte*) printf_str::str#9 ← phi( printf_str::@2/(byte*) printf_str::str#0 ) + (byte) printf_str::ch#1 ← phi( printf_str::@2/(byte) printf_str::ch#0 ) + (bool~) printf_str::$2 ← (byte) printf_str::ch#1 == (byte) ' +' + if((bool~) printf_str::$2) goto printf_str::@6 + to:printf_str::@12 +printf_str::@6: scope:[printf_str] from printf_str::@4 + (byte*) printf_str::str#7 ← phi( printf_str::@4/(byte*) printf_str::str#9 ) + call printf_ln + to:printf_str::@15 +printf_str::@15: scope:[printf_str] from printf_str::@6 + (byte*) printf_str::str#5 ← phi( printf_str::@6/(byte*) printf_str::str#7 ) to:printf_str::@1 -printf_str::@return: scope:[printf_str] from printf_str::@1 +printf_str::@12: scope:[printf_str] from printf_str::@4 + (byte*) printf_str::str#8 ← phi( printf_str::@4/(byte*) printf_str::str#9 ) + (byte) printf_str::ch#2 ← phi( printf_str::@4/(byte) printf_str::ch#1 ) + (byte) printf_char::ch#1 ← (byte) printf_str::ch#2 + call printf_char + to:printf_str::@16 +printf_str::@16: scope:[printf_str] from printf_str::@12 + (byte*) printf_str::str#6 ← phi( printf_str::@12/(byte*) printf_str::str#8 ) + to:printf_str::@1 +printf_str::@return: scope:[printf_str] from printf_str::@1 printf_str::@2 return to:@return @@ -1613,11 +1638,21 @@ SYMBOL TABLE SSA (signed byte) printf_schar::value#7 (const byte*) printf_screen = (byte*)(number) $400 (void()) printf_str((byte*) printf_str::str) +(bool~) printf_str::$0 (bool~) printf_str::$1 +(bool~) printf_str::$2 (label) printf_str::@1 +(label) printf_str::@12 +(label) printf_str::@15 +(label) printf_str::@16 (label) printf_str::@2 -(label) printf_str::@7 +(label) printf_str::@4 +(label) printf_str::@6 (label) printf_str::@return +(byte) printf_str::ch +(byte) printf_str::ch#0 +(byte) printf_str::ch#1 +(byte) printf_str::ch#2 (byte*) printf_str::str (byte*) printf_str::str#0 (byte*) printf_str::str#1 @@ -1625,6 +1660,10 @@ SYMBOL TABLE SSA (byte*) printf_str::str#3 (byte*) printf_str::str#4 (byte*) printf_str::str#5 +(byte*) printf_str::str#6 +(byte*) printf_str::str#7 +(byte*) printf_str::str#8 +(byte*) printf_str::str#9 (void()) printf_uint((word) printf_uint::uvalue , (byte) printf_uint::format_min_length , (byte) printf_uint::format_justify_left , (byte) printf_uint::format_sign_always , (byte) printf_uint::format_zero_padding , (byte) printf_uint::format_radix) (number~) printf_uint::$0 (byte~) printf_uint::$1 @@ -2035,7 +2074,7 @@ Adding number conversion cast (unumber) $28 in (byte*~) printf_char::$6 ← (byt Adding number conversion cast (unumber) $28 in (word) memset::num#1 ← (number) $28 Adding number conversion cast (unumber) $28 in (byte*~) printf_char::$8 ← (byte*) printf_char_cursor - (number) $28 Adding number conversion cast (unumber) $28 in (byte*) printf_line_cursor ← (byte*) printf_line_cursor + (number) $28 -Adding number conversion cast (unumber) 0 in (bool~) printf_str::$1 ← (number) 0 != *((byte*) printf_str::str#2) +Adding number conversion cast (unumber) 0 in (bool~) printf_str::$0 ← (byte) printf_str::ch#0 == (number) 0 Adding number conversion cast (unumber) 0 in (bool~) printf_uint::$5 ← (number) 0 != (byte) printf_uint::format_sign_always#1 Adding number conversion cast (unumber) printf_uint::$2 in (byte) printf_uint::format_zero_padding#2 ← phi( printf_uint::@1/(byte) printf_uint::format_zero_padding#3 printf_uint::@2/(byte) printf_uint::format_zero_padding#4 ) (byte) printf_uint::format_sign_always#3 ← phi( printf_uint::@1/(byte) printf_uint::format_sign_always#4 printf_uint::@2/(byte) printf_uint::format_sign_always#5 ) @@ -2234,15 +2273,16 @@ Inferred type updated to byte in (unumber~) utoa::$4 ← (byte) utoa::max_digits Inferred type updated to byte in (unumber~) printf_uint::$0 ← (byte) 0 Inferred type updated to byte for (unumber~) printf_uint::$2 Inversing boolean not [20] (bool~) memset::$1 ← (word) memset::num#2 <= (byte) 0 from [19] (bool~) memset::$0 ← (word) memset::num#2 > (byte) 0 -Inversing boolean not [227] (bool~) printf_char::$2 ← (byte*) printf_char_cursor != (byte*~) printf_char::$0 from [226] (bool~) printf_char::$1 ← (byte*) printf_char_cursor == (byte*~) printf_char::$0 -Inversing boolean not [305] (bool~) printf_schar::$3 ← (byte) 0 == (byte) printf_schar::format_sign_always#2 from [304] (bool~) printf_schar::$5 ← (byte) 0 != (byte) printf_schar::format_sign_always#2 -Inversing boolean not [328] (bool~) printf_number_buffer::$0 ← (byte) 0 == (byte) printf_number_buffer::format_min_length#2 from [327] (bool~) printf_number_buffer::$24 ← (byte) 0 != (byte) printf_number_buffer::format_min_length#2 -Inversing boolean not [332] (bool~) printf_number_buffer::$1 ← (byte) 0 == (byte) printf_number_buffer::format_justify_left#2 from [331] (bool~) printf_number_buffer::$25 ← (byte) 0 != (byte) printf_number_buffer::format_justify_left#2 -Inversing boolean not [334] (bool~) printf_number_buffer::$2 ← (byte) 0 == (byte) printf_number_buffer::format_zero_padding#2 from [333] (bool~) printf_number_buffer::$26 ← (byte) 0 != (byte) printf_number_buffer::format_zero_padding#2 -Inversing boolean not [347] (bool~) printf_number_buffer::$19 ← (byte) 0 == (byte) printf_number_buffer::buffer_sign#2 from [346] (bool~) printf_number_buffer::$27 ← (byte) 0 != (byte) printf_number_buffer::buffer_sign#2 -Inversing boolean not [354] (bool~) printf_number_buffer::$22 ← (signed byte) printf_number_buffer::padding#1 >= (signed byte) 0 from [353] (bool~) printf_number_buffer::$21 ← (signed byte) printf_number_buffer::padding#1 < (signed byte) 0 -Inversing boolean not [362] (bool~) printf_number_buffer::$7 ← (byte) 0 == (byte) printf_number_buffer::buffer_sign#3 from [361] (bool~) printf_number_buffer::$28 ← (byte) 0 != (byte) printf_number_buffer::buffer_sign#3 -Inversing boolean not [382] (bool~) printf_number_buffer::$13 ← (byte) 0 == (byte) printf_number_buffer::format_zero_padding#4 from [381] (bool~) printf_number_buffer::$29 ← (byte) 0 != (byte) printf_number_buffer::format_zero_padding#4 +Inversing boolean not [227] (bool~) printf_char::$2 ← (byte*) printf_char_cursor < (byte*~) printf_char::$0 from [226] (bool~) printf_char::$1 ← (byte*) printf_char_cursor >= (byte*~) printf_char::$0 +Inversing boolean not [269] (bool~) printf_str::$1 ← (byte) printf_str::ch#0 != (byte) 0 from [268] (bool~) printf_str::$0 ← (byte) printf_str::ch#0 == (byte) 0 +Inversing boolean not [315] (bool~) printf_schar::$3 ← (byte) 0 == (byte) printf_schar::format_sign_always#2 from [314] (bool~) printf_schar::$5 ← (byte) 0 != (byte) printf_schar::format_sign_always#2 +Inversing boolean not [338] (bool~) printf_number_buffer::$0 ← (byte) 0 == (byte) printf_number_buffer::format_min_length#2 from [337] (bool~) printf_number_buffer::$24 ← (byte) 0 != (byte) printf_number_buffer::format_min_length#2 +Inversing boolean not [342] (bool~) printf_number_buffer::$1 ← (byte) 0 == (byte) printf_number_buffer::format_justify_left#2 from [341] (bool~) printf_number_buffer::$25 ← (byte) 0 != (byte) printf_number_buffer::format_justify_left#2 +Inversing boolean not [344] (bool~) printf_number_buffer::$2 ← (byte) 0 == (byte) printf_number_buffer::format_zero_padding#2 from [343] (bool~) printf_number_buffer::$26 ← (byte) 0 != (byte) printf_number_buffer::format_zero_padding#2 +Inversing boolean not [357] (bool~) printf_number_buffer::$19 ← (byte) 0 == (byte) printf_number_buffer::buffer_sign#2 from [356] (bool~) printf_number_buffer::$27 ← (byte) 0 != (byte) printf_number_buffer::buffer_sign#2 +Inversing boolean not [364] (bool~) printf_number_buffer::$22 ← (signed byte) printf_number_buffer::padding#1 >= (signed byte) 0 from [363] (bool~) printf_number_buffer::$21 ← (signed byte) printf_number_buffer::padding#1 < (signed byte) 0 +Inversing boolean not [372] (bool~) printf_number_buffer::$7 ← (byte) 0 == (byte) printf_number_buffer::buffer_sign#3 from [371] (bool~) printf_number_buffer::$28 ← (byte) 0 != (byte) printf_number_buffer::buffer_sign#3 +Inversing boolean not [392] (bool~) printf_number_buffer::$13 ← (byte) 0 == (byte) printf_number_buffer::format_zero_padding#4 from [391] (bool~) printf_number_buffer::$29 ← (byte) 0 != (byte) printf_number_buffer::format_zero_padding#4 Successful SSA optimization Pass2UnaryNotSimplification Alias candidate removed (volatile)printf_char_cursor = printf_char::$8 Alias memcpy::src_end#0 = memcpy::$0 @@ -2296,7 +2336,9 @@ Alias utoa_append::buffer#1 = utoa_append::buffer#4 utoa_append::buffer#2 Alias printf_padding::pad#3 = printf_padding::pad#4 printf_padding::pad#6 Alias printf_padding::i#2 = printf_padding::i#4 printf_padding::i#3 Alias printf_padding::length#3 = printf_padding::length#6 printf_padding::length#5 -Alias printf_str::str#2 = printf_str::str#3 printf_str::str#4 +Alias printf_str::str#2 = printf_str::str#3 +Alias printf_str::ch#0 = printf_str::ch#1 printf_str::ch#2 +Alias printf_str::str#0 = printf_str::str#9 printf_str::str#7 printf_str::str#5 printf_str::str#8 printf_str::str#6 Alias printf_uint::uvalue#2 = printf_uint::uvalue#4 printf_uint::uvalue#3 Alias printf_uint::format_radix#3 = printf_uint::format_radix#5 printf_uint::format_radix#4 Alias printf_uint::format_min_length#3 = printf_uint::format_min_length#5 printf_uint::format_min_length#4 @@ -2421,7 +2463,7 @@ Identical Phi Values (word) utoa_append::sub#1 (word) utoa_append::sub#3 Identical Phi Values (byte*) utoa_append::buffer#1 (byte*) utoa_append::buffer#3 Identical Phi Values (byte) printf_padding::length#3 (byte) printf_padding::length#4 Identical Phi Values (byte) printf_padding::pad#3 (byte) printf_padding::pad#5 -Identical Phi Values (byte*) printf_str::str#5 (byte*) printf_str::str#1 +Identical Phi Values (byte*) printf_str::str#4 (byte*) printf_str::str#1 Identical Phi Values (byte) printf_uint::format_sign_always#1 (byte) printf_uint::format_sign_always#0 Identical Phi Values (word) printf_uint::uvalue#1 (word) printf_uint::uvalue#0 Identical Phi Values (byte) printf_uint::format_radix#1 (byte) printf_uint::format_radix#0 @@ -2447,30 +2489,32 @@ Simple Condition (bool~) utoa::$2 [106] if((byte) utoa::radix#0==(const byte) OC Simple Condition (bool~) utoa::$3 [110] if((byte) utoa::radix#0==(const byte) BINARY) goto utoa::@4 Simple Condition (bool~) utoa::$5 [127] if((byte) utoa::digit#2<(byte~) utoa::$4) goto utoa::@19 Simple Condition (bool~) utoa_append::$0 [152] if((word) utoa_append::value#2>=(word) utoa_append::sub#0) goto utoa_append::@2 -Simple Condition (bool~) printf_char::$2 [172] if((byte*) printf_char_cursor!=(byte*~) printf_char::$0) goto printf_char::@return +Simple Condition (bool~) printf_char::$2 [172] if((byte*) printf_char_cursor<(byte*~) printf_char::$0) goto printf_char::@return Simple Condition (bool~) printf_ln::$0 [192] if((byte*) printf_line_cursor<(byte*) printf_char_cursor) goto printf_ln::@1 Simple Condition (bool~) printf_padding::$0 [199] if((byte) printf_padding::i#2<(byte) printf_padding::length#4) goto printf_padding::@2 -Simple Condition (bool~) printf_str::$1 [207] if((byte) 0!=*((byte*) printf_str::str#2)) goto printf_str::@2 -Simple Condition (bool~) printf_uint::$5 [214] if((byte) 0!=(byte) printf_uint::format_sign_always#0) goto printf_uint::@1 -Simple Condition (bool~) printf_schar::$0 [235] if((signed byte) printf_schar::value#3<(signed byte) 0) goto printf_schar::@1 -Simple Condition (bool~) printf_schar::$3 [239] if((byte) 0==(byte) printf_schar::format_sign_always#2) goto printf_schar::@2 -Simple Condition (bool~) printf_number_buffer::$0 [259] if((byte) 0==(byte) printf_number_buffer::format_min_length#2) goto printf_number_buffer::@1 -Simple Condition (bool~) printf_number_buffer::$19 [273] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@12 -Simple Condition (bool~) printf_number_buffer::$22 [278] if((signed byte) printf_number_buffer::padding#1>=(signed byte) 0) goto printf_number_buffer::@1 -Simple Condition (bool~) printf_number_buffer::$7 [282] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 +Simple Condition (bool~) printf_str::$1 [210] if((byte) printf_str::ch#0!=(byte) 0) goto printf_str::@4 +Simple Condition (bool~) printf_str::$2 [212] if((byte) printf_str::ch#0==(byte) ' +') goto printf_str::@6 +Simple Condition (bool~) printf_uint::$5 [219] if((byte) 0!=(byte) printf_uint::format_sign_always#0) goto printf_uint::@1 +Simple Condition (bool~) printf_schar::$0 [240] if((signed byte) printf_schar::value#3<(signed byte) 0) goto printf_schar::@1 +Simple Condition (bool~) printf_schar::$3 [244] if((byte) 0==(byte) printf_schar::format_sign_always#2) goto printf_schar::@2 +Simple Condition (bool~) printf_number_buffer::$0 [264] if((byte) 0==(byte) printf_number_buffer::format_min_length#2) goto printf_number_buffer::@1 +Simple Condition (bool~) printf_number_buffer::$19 [278] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@12 +Simple Condition (bool~) printf_number_buffer::$22 [283] if((signed byte) printf_number_buffer::padding#1>=(signed byte) 0) goto printf_number_buffer::@1 +Simple Condition (bool~) printf_number_buffer::$7 [287] if((byte) 0==(byte) printf_number_buffer::buffer_sign#10) goto printf_number_buffer::@3 Successful SSA optimization Pass2ConditionalJumpSimplification Rewriting ! if()-condition to reversed if() [70] (bool~) uctoa::$8 ← ! (bool~) uctoa::$7 Rewriting || if()-condition to two if()s [69] (bool~) uctoa::$7 ← (byte) uctoa::started#2 || (bool~) uctoa::$6 Rewriting ! if()-condition to reversed if() [132] (bool~) utoa::$8 ← ! (bool~) utoa::$7 Rewriting || if()-condition to two if()s [131] (bool~) utoa::$7 ← (byte) utoa::started#2 || (bool~) utoa::$6 -Rewriting ! if()-condition to reversed if() [265] (bool~) printf_number_buffer::$5 ← ! (bool~) printf_number_buffer::$4 -Rewriting && if()-condition to two if()s [264] (bool~) printf_number_buffer::$4 ← (bool~) printf_number_buffer::$3 && (signed byte) printf_number_buffer::padding#10 -Rewriting && if()-condition to two if()s [263] (bool~) printf_number_buffer::$3 ← (bool~) printf_number_buffer::$1 && (bool~) printf_number_buffer::$2 -Rewriting ! if()-condition to reversed if() [287] (bool~) printf_number_buffer::$10 ← ! (bool~) printf_number_buffer::$9 -Rewriting && if()-condition to two if()s [286] (bool~) printf_number_buffer::$9 ← (byte) printf_number_buffer::format_zero_padding#10 && (signed byte) printf_number_buffer::padding#10 -Rewriting ! if()-condition to reversed if() [296] (bool~) printf_number_buffer::$16 ← ! (bool~) printf_number_buffer::$15 -Rewriting && if()-condition to two if()s [295] (bool~) printf_number_buffer::$15 ← (bool~) printf_number_buffer::$14 && (signed byte) printf_number_buffer::padding#10 -Rewriting && if()-condition to two if()s [294] (bool~) printf_number_buffer::$14 ← (byte) printf_number_buffer::format_justify_left#10 && (bool~) printf_number_buffer::$13 +Rewriting ! if()-condition to reversed if() [270] (bool~) printf_number_buffer::$5 ← ! (bool~) printf_number_buffer::$4 +Rewriting && if()-condition to two if()s [269] (bool~) printf_number_buffer::$4 ← (bool~) printf_number_buffer::$3 && (signed byte) printf_number_buffer::padding#10 +Rewriting && if()-condition to two if()s [268] (bool~) printf_number_buffer::$3 ← (bool~) printf_number_buffer::$1 && (bool~) printf_number_buffer::$2 +Rewriting ! if()-condition to reversed if() [292] (bool~) printf_number_buffer::$10 ← ! (bool~) printf_number_buffer::$9 +Rewriting && if()-condition to two if()s [291] (bool~) printf_number_buffer::$9 ← (byte) printf_number_buffer::format_zero_padding#10 && (signed byte) printf_number_buffer::padding#10 +Rewriting ! if()-condition to reversed if() [301] (bool~) printf_number_buffer::$16 ← ! (bool~) printf_number_buffer::$15 +Rewriting && if()-condition to two if()s [300] (bool~) printf_number_buffer::$15 ← (bool~) printf_number_buffer::$14 && (signed byte) printf_number_buffer::padding#10 +Rewriting && if()-condition to two if()s [299] (bool~) printf_number_buffer::$14 ← (byte) printf_number_buffer::format_justify_left#10 && (bool~) printf_number_buffer::$13 Successful SSA optimization Pass2ConditionalAndOrRewriting Warning! Adding boolean cast to non-boolean condition (byte) uctoa::started#2 Warning! Adding boolean cast to non-boolean condition (byte) utoa::started#2 @@ -2575,19 +2619,20 @@ if() condition always false - eliminating [98] if((const byte) utoa::radix#0==(c if() condition always true - replacing block destination [102] if((const byte) utoa::radix#0==(const byte) HEXADECIMAL) goto utoa::@2 if() condition always false - eliminating [106] if((const byte) utoa::radix#0==(const byte) OCTAL) goto utoa::@3 if() condition always false - eliminating [110] if((const byte) utoa::radix#0==(const byte) BINARY) goto utoa::@4 -if() condition always false - eliminating [214] if((byte) 0!=(const byte) printf_uint::format_sign_always#0) goto printf_uint::@1 +if() condition always true - replacing block destination [206] if(true) goto printf_str::@2 +if() condition always false - eliminating [219] if((byte) 0!=(const byte) printf_uint::format_sign_always#0) goto printf_uint::@1 Successful SSA optimization Pass2ConstantIfs -Simplifying expression containing zero (byte*)&printf_buffer in [218] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) ← (byte~) printf_uint::$2 -Simplifying expression containing zero (byte*)&printf_buffer in [223] (byte) printf_number_buffer::buffer_sign#0 ← *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) -Simplifying expression containing zero (byte*)&printf_buffer in [233] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) ← (byte) 0 -Simplifying expression containing zero (byte*)&printf_buffer in [237] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) ← (byte) '-' -Simplifying expression containing zero (byte*)&printf_buffer in [240] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) ← (byte) '+' -Simplifying expression containing zero (byte*)&printf_buffer in [247] (byte) printf_number_buffer::buffer_sign#1 ← *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) +Simplifying expression containing zero (byte*)&printf_buffer in [223] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) ← (byte~) printf_uint::$2 +Simplifying expression containing zero (byte*)&printf_buffer in [228] (byte) printf_number_buffer::buffer_sign#0 ← *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) +Simplifying expression containing zero (byte*)&printf_buffer in [238] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) ← (byte) 0 +Simplifying expression containing zero (byte*)&printf_buffer in [242] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) ← (byte) '-' +Simplifying expression containing zero (byte*)&printf_buffer in [245] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) ← (byte) '+' +Simplifying expression containing zero (byte*)&printf_buffer in [252] (byte) printf_number_buffer::buffer_sign#1 ← *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_SIGN) Successful SSA optimization PassNSimplifyExpressionWithZero Eliminating unused variable (void*) memset::return#2 and assignment [99] (void*) memset::return#2 ← (void*) memset::str#3 Eliminating unused variable (void*) memset::return#3 and assignment [111] (void*) memset::return#3 ← (void*) memset::str#3 -Eliminating unused variable (byte) printf_number_buffer::format_sign_always#1 and assignment [154] (byte) printf_number_buffer::format_sign_always#1 ← (byte) printf_schar::format_sign_always#2 -Eliminating unused variable (byte) printf_number_buffer::format_radix#1 and assignment [156] (byte) printf_number_buffer::format_radix#1 ← (byte) printf_schar::format_radix#2 +Eliminating unused variable (byte) printf_number_buffer::format_sign_always#1 and assignment [157] (byte) printf_number_buffer::format_sign_always#1 ← (byte) printf_schar::format_sign_always#2 +Eliminating unused variable (byte) printf_number_buffer::format_radix#1 and assignment [159] (byte) printf_number_buffer::format_radix#1 ← (byte) printf_schar::format_radix#2 Eliminating unused constant (const void*) memcpy::return#2 Eliminating unused constant (const byte) uctoa::max_digits#0 Eliminating unused constant (const byte*) uctoa::digit_values#0 @@ -2650,22 +2695,22 @@ Identical Phi Values (byte~) printf_uint::$2 (const byte) printf_uint::$0 Successful SSA optimization Pass2IdenticalPhiElimination Simple Condition (bool~) uctoa::$11 [41] if((byte) 0!=(byte) uctoa::started#2) goto uctoa::@24 Simple Condition (bool~) utoa::$12 [69] if((byte) 0!=(byte) utoa::started#2) goto utoa::@24 -Simple Condition (bool~) printf_number_buffer::$1 [153] if((byte) 0==(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@22 -Simple Condition (bool~) printf_number_buffer::$30 [169] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@23 -Simple Condition (bool~) printf_number_buffer::$31 [176] if((byte) 0!=(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@25 -Simple Condition (bool~) uctoa::$6 [191] if((byte) uctoa::value#2>=(byte) uctoa::digit_value#0) goto uctoa::@24 -Simple Condition (bool~) utoa::$6 [192] if((word) utoa::value#2>=(word) utoa::digit_value#0) goto utoa::@24 -Simple Condition (bool~) printf_number_buffer::$32 [194] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@8 -Simple Condition (bool~) printf_number_buffer::$2 [195] if((byte) 0==(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@21 -Simple Condition (bool~) printf_number_buffer::$33 [197] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@10 -Simple Condition (bool~) printf_number_buffer::$34 [199] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@11 -Simple Condition (bool~) printf_number_buffer::$13 [200] if((byte) 0==(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@24 +Simple Condition (bool~) printf_number_buffer::$1 [156] if((byte) 0==(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@22 +Simple Condition (bool~) printf_number_buffer::$30 [172] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@23 +Simple Condition (bool~) printf_number_buffer::$31 [179] if((byte) 0!=(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@25 +Simple Condition (bool~) uctoa::$6 [194] if((byte) uctoa::value#2>=(byte) uctoa::digit_value#0) goto uctoa::@24 +Simple Condition (bool~) utoa::$6 [195] if((word) utoa::value#2>=(word) utoa::digit_value#0) goto utoa::@24 +Simple Condition (bool~) printf_number_buffer::$32 [197] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@8 +Simple Condition (bool~) printf_number_buffer::$2 [198] if((byte) 0==(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@21 +Simple Condition (bool~) printf_number_buffer::$33 [200] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@10 +Simple Condition (bool~) printf_number_buffer::$34 [202] if((signed byte) 0!=(signed byte) printf_number_buffer::padding#10) goto printf_number_buffer::@11 +Simple Condition (bool~) printf_number_buffer::$13 [203] if((byte) 0==(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@24 Successful SSA optimization Pass2ConditionalJumpSimplification -Negating conditional jump and destination [153] if((byte) 0!=(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 -Negating conditional jump and destination [169] if((byte) 0==(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 -Negating conditional jump and destination [176] if((byte) 0==(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return -Negating conditional jump and destination [195] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 -Negating conditional jump and destination [200] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return +Negating conditional jump and destination [156] if((byte) 0!=(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@2 +Negating conditional jump and destination [172] if((byte) 0==(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@4 +Negating conditional jump and destination [179] if((byte) 0==(byte) printf_number_buffer::format_justify_left#10) goto printf_number_buffer::@return +Negating conditional jump and destination [198] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@2 +Negating conditional jump and destination [203] if((byte) 0!=(byte) printf_number_buffer::format_zero_padding#10) goto printf_number_buffer::@return Successful SSA optimization Pass2ConditionalJumpSequenceImprovement Constant right-side identified [0] (byte*) memcpy::src_end#0 ← (const byte*) memcpy::$2 + (const word) memcpy::num#0 Constant right-side identified [27] (byte*) uctoa::buffer#0 ← ++ (const byte*) uctoa::buffer#5 @@ -2704,8 +2749,8 @@ Successful SSA optimization Pass2ConstantIdentification Alias candidate removed (volatile)printf_char_cursor = printf_char::$8 Inlining Noop Cast [8] (byte*~) memset::$4 ← (byte*)(void*) memset::str#3 keeping memset::str#3 Inlining Noop Cast [10] (byte*) memset::dst#0 ← (byte*)(void*) memset::str#3 keeping memset::str#3 -Inlining Noop Cast [125] (byte) printf_schar::uvalue#0 ← (byte)(signed byte) printf_schar::value#5 keeping printf_schar::value#5 -Inlining Noop Cast [146] (signed byte~) printf_number_buffer::$23 ← (signed byte)(byte) printf_number_buffer::format_min_length#2 keeping printf_number_buffer::format_min_length#2 +Inlining Noop Cast [128] (byte) printf_schar::uvalue#0 ← (byte)(signed byte) printf_schar::value#5 keeping printf_schar::value#5 +Inlining Noop Cast [149] (signed byte~) printf_number_buffer::$23 ← (signed byte)(byte) printf_number_buffer::format_min_length#2 keeping printf_number_buffer::format_min_length#2 Successful SSA optimization Pass2NopCastInlining Rewriting multiplication to use shift [57] (byte~) utoa::$10 ← (byte) utoa::digit#2 * (const byte) SIZEOF_WORD Successful SSA optimization Pass2MultiplyToShiftRewriting @@ -2892,6 +2937,7 @@ Adding NOP phi() at start of printf_char::@3 Adding NOP phi() at start of memset::@1 Adding NOP phi() at start of memcpy Adding NOP phi() at start of memcpy::@3 +Adding NOP phi() at start of printf_str::@6 Adding NOP phi() at start of strlen::@3 Adding NOP phi() at start of utoa Adding NOP phi() at start of utoa::@9 @@ -2910,11 +2956,11 @@ Calls in [printf_uint] to utoa:31 printf_number_buffer:34 Calls in [printf_number_buffer] to strlen:40 printf_char:58 printf_str:63 printf_padding:70 printf_padding:74 printf_padding:78 Calls in [printf_padding] to printf_char:88 Calls in [printf_char] to memcpy:96 memset:98 -Calls in [printf_str] to printf_char:130 -Calls in [utoa] to utoa_append:169 -Calls in [printf_schar] to uctoa:193 printf_number_buffer:198 -Calls in [uctoa] to uctoa_append:238 -Calls in [printf_cls] to memset:257 +Calls in [printf_str] to printf_char:133 printf_ln:136 +Calls in [utoa] to utoa_append:174 +Calls in [printf_schar] to uctoa:198 printf_number_buffer:203 +Calls in [uctoa] to uctoa_append:243 +Calls in [printf_cls] to memset:262 Created 45 initial phi equivalence classes Coalesced [33] printf_number_buffer::buffer_sign#14 ← printf_number_buffer::buffer_sign#0 @@ -2930,42 +2976,43 @@ Coalesced [90] printf_padding::i#5 ← printf_padding::i#1 Coalesced [113] memset::dst#5 ← memset::dst#1 Coalesced [122] memcpy::src#4 ← memcpy::src#1 Coalesced [123] memcpy::dst#4 ← memcpy::dst#1 -Coalesced [124] printf_str::str#6 ← printf_str::str#1 -Coalesced [129] printf_char::ch#6 ← printf_char::ch#1 -Coalesced [132] printf_str::str#7 ← printf_str::str#0 -Coalesced [133] strlen::str#5 ← strlen::str#1 -Coalesced [140] strlen::str#6 ← strlen::str#0 -Coalesced [141] strlen::len#5 ← strlen::len#1 -Coalesced [157] utoa::value#17 ← utoa::value#2 -Coalesced [158] utoa::started#6 ← utoa::started#2 -Coalesced [159] utoa::buffer#23 ← utoa::buffer#11 -Coalesced [162] utoa::digit#7 ← utoa::digit#1 -Coalesced (already) [163] utoa::value#16 ← utoa::value#6 -Coalesced (already) [164] utoa::started#5 ← utoa::started#4 -Coalesced (already) [165] utoa::buffer#22 ← utoa::buffer#14 -Coalesced [173] utoa::value#18 ← utoa::value#0 -Coalesced [174] utoa::buffer#24 ← utoa::buffer#4 -Coalesced [175] utoa_append::value#6 ← utoa_append::value#0 -Coalesced [182] utoa_append::value#7 ← utoa_append::value#1 -Coalesced [183] utoa_append::digit#5 ← utoa_append::digit#1 -Coalesced [189] printf_schar::value#10 ← printf_schar::value#3 -Coalesced [196] printf_number_buffer::format_zero_padding#19 ← printf_number_buffer::format_zero_padding#1 -Coalesced [197] printf_number_buffer::buffer_sign#13 ← printf_number_buffer::buffer_sign#1 -Coalesced (already) [201] printf_schar::value#9 ← printf_schar::value#3 -Coalesced [204] printf_schar::value#8 ← printf_schar::value#0 -Coalesced [216] uctoa::value#17 ← uctoa::value#1 -Coalesced [226] uctoa::value#18 ← uctoa::value#2 -Coalesced [227] uctoa::started#6 ← uctoa::started#2 -Coalesced [228] uctoa::buffer#23 ← uctoa::buffer#11 -Coalesced [231] uctoa::digit#7 ← uctoa::digit#1 -Coalesced (already) [232] uctoa::value#16 ← uctoa::value#6 -Coalesced (already) [233] uctoa::started#5 ← uctoa::started#4 -Coalesced (already) [234] uctoa::buffer#22 ← uctoa::buffer#14 -Coalesced [242] uctoa::value#19 ← uctoa::value#0 -Coalesced [243] uctoa::buffer#24 ← uctoa::buffer#4 -Coalesced [247] uctoa_append::value#6 ← uctoa_append::value#0 -Coalesced [254] uctoa_append::value#7 ← uctoa_append::value#1 -Coalesced [255] uctoa_append::digit#5 ← uctoa_append::digit#1 +Coalesced [124] printf_str::str#10 ← printf_str::str#1 +Coalesced [132] printf_char::ch#6 ← printf_char::ch#1 +Coalesced [134] printf_str::str#12 ← printf_str::str#0 +Coalesced (already) [137] printf_str::str#11 ← printf_str::str#0 +Coalesced [138] strlen::str#5 ← strlen::str#1 +Coalesced [145] strlen::str#6 ← strlen::str#0 +Coalesced [146] strlen::len#5 ← strlen::len#1 +Coalesced [162] utoa::value#17 ← utoa::value#2 +Coalesced [163] utoa::started#6 ← utoa::started#2 +Coalesced [164] utoa::buffer#23 ← utoa::buffer#11 +Coalesced [167] utoa::digit#7 ← utoa::digit#1 +Coalesced (already) [168] utoa::value#16 ← utoa::value#6 +Coalesced (already) [169] utoa::started#5 ← utoa::started#4 +Coalesced (already) [170] utoa::buffer#22 ← utoa::buffer#14 +Coalesced [178] utoa::value#18 ← utoa::value#0 +Coalesced [179] utoa::buffer#24 ← utoa::buffer#4 +Coalesced [180] utoa_append::value#6 ← utoa_append::value#0 +Coalesced [187] utoa_append::value#7 ← utoa_append::value#1 +Coalesced [188] utoa_append::digit#5 ← utoa_append::digit#1 +Coalesced [194] printf_schar::value#10 ← printf_schar::value#3 +Coalesced [201] printf_number_buffer::format_zero_padding#19 ← printf_number_buffer::format_zero_padding#1 +Coalesced [202] printf_number_buffer::buffer_sign#13 ← printf_number_buffer::buffer_sign#1 +Coalesced (already) [206] printf_schar::value#9 ← printf_schar::value#3 +Coalesced [209] printf_schar::value#8 ← printf_schar::value#0 +Coalesced [221] uctoa::value#17 ← uctoa::value#1 +Coalesced [231] uctoa::value#18 ← uctoa::value#2 +Coalesced [232] uctoa::started#6 ← uctoa::started#2 +Coalesced [233] uctoa::buffer#23 ← uctoa::buffer#11 +Coalesced [236] uctoa::digit#7 ← uctoa::digit#1 +Coalesced (already) [237] uctoa::value#16 ← uctoa::value#6 +Coalesced (already) [238] uctoa::started#5 ← uctoa::started#4 +Coalesced (already) [239] uctoa::buffer#22 ← uctoa::buffer#14 +Coalesced [247] uctoa::value#19 ← uctoa::value#0 +Coalesced [248] uctoa::buffer#24 ← uctoa::buffer#4 +Coalesced [252] uctoa_append::value#6 ← uctoa_append::value#0 +Coalesced [259] uctoa_append::value#7 ← uctoa_append::value#1 +Coalesced [260] uctoa_append::digit#5 ← uctoa_append::digit#1 Coalesced down to 38 phi equivalence classes Culled Empty Block (label) @30 Culled Empty Block (label) main::@7 @@ -2979,6 +3026,8 @@ Culled Empty Block (label) printf_number_buffer::@16 Culled Empty Block (label) printf_number_buffer::@27 Culled Empty Block (label) memset::@1 Culled Empty Block (label) memcpy::@3 +Culled Empty Block (label) printf_str::@16 +Culled Empty Block (label) printf_str::@15 Culled Empty Block (label) strlen::@3 Culled Empty Block (label) utoa::@9 Culled Empty Block (label) utoa::@2 @@ -3019,7 +3068,9 @@ Renumbering block printf_char::@2 to printf_char::@1 Renumbering block printf_char::@3 to printf_char::@2 Renumbering block printf_char::@4 to printf_char::@3 Renumbering block printf_padding::@7 to printf_padding::@3 -Renumbering block printf_str::@7 to printf_str::@3 +Renumbering block printf_str::@4 to printf_str::@3 +Renumbering block printf_str::@6 to printf_str::@4 +Renumbering block printf_str::@12 to printf_str::@5 Renumbering block printf_uint::@3 to printf_uint::@1 Renumbering block printf_uint::@6 to printf_uint::@2 Renumbering block printf_schar::@7 to printf_schar::@5 @@ -3055,6 +3106,7 @@ Adding NOP phi() at start of printf_char::@1 Adding NOP phi() at start of printf_char::@2 Adding NOP phi() at start of memcpy Adding NOP phi() at start of printf_str +Adding NOP phi() at start of printf_str::@4 Adding NOP phi() at start of strlen Adding NOP phi() at start of utoa Adding NOP phi() at start of utoa_append @@ -3110,7 +3162,7 @@ main::@return: scope:[main] from main::@6 to:@return (void()) printf_ln() -printf_ln: scope:[printf_ln] from main::@2 main::@4 main::@6 +printf_ln: scope:[printf_ln] from main::@2 main::@4 main::@6 printf_str::@4 [21] phi() to:printf_ln::@1 printf_ln::@1: scope:[printf_ln] from printf_ln printf_ln::@1 @@ -3243,11 +3295,11 @@ printf_padding::@3: scope:[printf_padding] from printf_padding::@2 to:printf_padding::@1 (void()) printf_char((byte) printf_char::ch) -printf_char: scope:[printf_char] from printf_number_buffer::@8 printf_padding::@2 printf_str::@2 - [73] (byte) printf_char::ch#3 ← phi( printf_number_buffer::@8/(byte) printf_char::ch#2 printf_padding::@2/(byte) printf_char::ch#0 printf_str::@2/(byte) printf_char::ch#1 ) +printf_char: scope:[printf_char] from printf_number_buffer::@8 printf_padding::@2 printf_str::@5 + [73] (byte) printf_char::ch#3 ← phi( printf_number_buffer::@8/(byte) printf_char::ch#2 printf_padding::@2/(byte) printf_char::ch#0 printf_str::@5/(byte) printf_char::ch#1 ) [74] *((byte*) printf_char_cursor) ← (byte) printf_char::ch#3 [75] (byte*) printf_char_cursor ← ++ (byte*) printf_char_cursor - [76] if((byte*) printf_char_cursor!=(const byte*) printf_screen+(word)(number) $28*(number) $19) goto printf_char::@return + [76] if((byte*) printf_char_cursor<(const byte*) printf_screen+(word)(number) $28*(number) $19) goto printf_char::@return to:printf_char::@1 printf_char::@1: scope:[printf_char] from printf_char [77] phi() @@ -3311,238 +3363,248 @@ memcpy::@2: scope:[memcpy] from memcpy::@1 printf_str: scope:[printf_str] from printf_number_buffer::@4 [101] phi() to:printf_str::@1 -printf_str::@1: scope:[printf_str] from printf_str printf_str::@3 - [102] (byte*) printf_str::str#2 ← phi( printf_str/(byte*) printf_str::str#1 printf_str::@3/(byte*) printf_str::str#0 ) - [103] if((byte) 0!=*((byte*) printf_str::str#2)) goto printf_str::@2 - to:printf_str::@return -printf_str::@return: scope:[printf_str] from printf_str::@1 - [104] return - to:@return +printf_str::@1: scope:[printf_str] from printf_str printf_str::@4 printf_str::@5 + [102] (byte*) printf_str::str#2 ← phi( printf_str/(byte*) printf_str::str#1 printf_str::@4/(byte*) printf_str::str#0 printf_str::@5/(byte*) printf_str::str#0 ) + to:printf_str::@2 printf_str::@2: scope:[printf_str] from printf_str::@1 - [105] (byte) printf_char::ch#1 ← *((byte*) printf_str::str#2) - [106] call printf_char - to:printf_str::@3 + [103] (byte) printf_str::ch#0 ← *((byte*) printf_str::str#2) + [104] (byte*) printf_str::str#0 ← ++ (byte*) printf_str::str#2 + [105] if((byte) printf_str::ch#0!=(byte) 0) goto printf_str::@3 + to:printf_str::@return +printf_str::@return: scope:[printf_str] from printf_str::@2 + [106] return + to:@return printf_str::@3: scope:[printf_str] from printf_str::@2 - [107] (byte*) printf_str::str#0 ← ++ (byte*) printf_str::str#2 + [107] if((byte) printf_str::ch#0==(byte) ' +') goto printf_str::@4 + to:printf_str::@5 +printf_str::@5: scope:[printf_str] from printf_str::@3 + [108] (byte) printf_char::ch#1 ← (byte) printf_str::ch#0 + [109] call printf_char + to:printf_str::@1 +printf_str::@4: scope:[printf_str] from printf_str::@3 + [110] phi() + [111] call printf_ln to:printf_str::@1 (word()) strlen((byte*) strlen::str) strlen: scope:[strlen] from printf_number_buffer::@5 - [108] phi() + [112] phi() to:strlen::@1 strlen::@1: scope:[strlen] from strlen strlen::@2 - [109] (word) strlen::len#2 ← phi( strlen/(word) 0 strlen::@2/(word) strlen::len#1 ) - [109] (byte*) strlen::str#2 ← phi( strlen/(byte*) strlen::str#1 strlen::@2/(byte*) strlen::str#0 ) - [110] if((byte) 0!=*((byte*) strlen::str#2)) goto strlen::@2 + [113] (word) strlen::len#2 ← phi( strlen/(word) 0 strlen::@2/(word) strlen::len#1 ) + [113] (byte*) strlen::str#2 ← phi( strlen/(byte*) strlen::str#1 strlen::@2/(byte*) strlen::str#0 ) + [114] if((byte) 0!=*((byte*) strlen::str#2)) goto strlen::@2 to:strlen::@return strlen::@return: scope:[strlen] from strlen::@1 - [111] return + [115] return to:@return strlen::@2: scope:[strlen] from strlen::@1 - [112] (word) strlen::len#1 ← ++ (word) strlen::len#2 - [113] (byte*) strlen::str#0 ← ++ (byte*) strlen::str#2 + [116] (word) strlen::len#1 ← ++ (word) strlen::len#2 + [117] (byte*) strlen::str#0 ← ++ (byte*) strlen::str#2 to:strlen::@1 (void()) utoa((word) utoa::value , (byte*) utoa::buffer , (byte) utoa::radix) utoa: scope:[utoa] from printf_uint::@1 - [114] phi() + [118] phi() to:utoa::@1 utoa::@1: scope:[utoa] from utoa utoa::@4 - [115] (byte*) utoa::buffer#11 ← phi( utoa::@4/(byte*) utoa::buffer#14 utoa/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) - [115] (byte) utoa::started#2 ← phi( utoa::@4/(byte) utoa::started#4 utoa/(byte) 0 ) - [115] (word) utoa::value#2 ← phi( utoa::@4/(word) utoa::value#6 utoa/(const word) printf_uint::uvalue#0 ) - [115] (byte) utoa::digit#2 ← phi( utoa::@4/(byte) utoa::digit#1 utoa/(byte) 0 ) - [116] if((byte) utoa::digit#2<(const byte) utoa::max_digits#2-(byte) 1) goto utoa::@2 + [119] (byte*) utoa::buffer#11 ← phi( utoa::@4/(byte*) utoa::buffer#14 utoa/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) + [119] (byte) utoa::started#2 ← phi( utoa::@4/(byte) utoa::started#4 utoa/(byte) 0 ) + [119] (word) utoa::value#2 ← phi( utoa::@4/(word) utoa::value#6 utoa/(const word) printf_uint::uvalue#0 ) + [119] (byte) utoa::digit#2 ← phi( utoa::@4/(byte) utoa::digit#1 utoa/(byte) 0 ) + [120] if((byte) utoa::digit#2<(const byte) utoa::max_digits#2-(byte) 1) goto utoa::@2 to:utoa::@3 utoa::@3: scope:[utoa] from utoa::@1 - [117] (byte~) utoa::$11 ← (byte)(word) utoa::value#2 - [118] *((byte*) utoa::buffer#11) ← *((const byte*) DIGITS + (byte~) utoa::$11) - [119] (byte*) utoa::buffer#3 ← ++ (byte*) utoa::buffer#11 - [120] *((byte*) utoa::buffer#3) ← (byte) 0 + [121] (byte~) utoa::$11 ← (byte)(word) utoa::value#2 + [122] *((byte*) utoa::buffer#11) ← *((const byte*) DIGITS + (byte~) utoa::$11) + [123] (byte*) utoa::buffer#3 ← ++ (byte*) utoa::buffer#11 + [124] *((byte*) utoa::buffer#3) ← (byte) 0 to:utoa::@return utoa::@return: scope:[utoa] from utoa::@3 - [121] return + [125] return to:@return utoa::@2: scope:[utoa] from utoa::@1 - [122] (byte~) utoa::$10 ← (byte) utoa::digit#2 << (byte) 1 - [123] (word) utoa::digit_value#0 ← *((const word*) RADIX_HEXADECIMAL_VALUES + (byte~) utoa::$10) - [124] if((byte) 0!=(byte) utoa::started#2) goto utoa::@5 + [126] (byte~) utoa::$10 ← (byte) utoa::digit#2 << (byte) 1 + [127] (word) utoa::digit_value#0 ← *((const word*) RADIX_HEXADECIMAL_VALUES + (byte~) utoa::$10) + [128] if((byte) 0!=(byte) utoa::started#2) goto utoa::@5 to:utoa::@7 utoa::@7: scope:[utoa] from utoa::@2 - [125] if((word) utoa::value#2>=(word) utoa::digit_value#0) goto utoa::@5 + [129] if((word) utoa::value#2>=(word) utoa::digit_value#0) goto utoa::@5 to:utoa::@4 utoa::@4: scope:[utoa] from utoa::@6 utoa::@7 - [126] (byte*) utoa::buffer#14 ← phi( utoa::@7/(byte*) utoa::buffer#11 utoa::@6/(byte*) utoa::buffer#4 ) - [126] (byte) utoa::started#4 ← phi( utoa::@7/(byte) utoa::started#2 utoa::@6/(byte) 1 ) - [126] (word) utoa::value#6 ← phi( utoa::@7/(word) utoa::value#2 utoa::@6/(word) utoa::value#0 ) - [127] (byte) utoa::digit#1 ← ++ (byte) utoa::digit#2 + [130] (byte*) utoa::buffer#14 ← phi( utoa::@7/(byte*) utoa::buffer#11 utoa::@6/(byte*) utoa::buffer#4 ) + [130] (byte) utoa::started#4 ← phi( utoa::@7/(byte) utoa::started#2 utoa::@6/(byte) 1 ) + [130] (word) utoa::value#6 ← phi( utoa::@7/(word) utoa::value#2 utoa::@6/(word) utoa::value#0 ) + [131] (byte) utoa::digit#1 ← ++ (byte) utoa::digit#2 to:utoa::@1 utoa::@5: scope:[utoa] from utoa::@2 utoa::@7 - [128] (byte*) utoa_append::buffer#0 ← (byte*) utoa::buffer#11 - [129] (word) utoa_append::value#0 ← (word) utoa::value#2 - [130] (word) utoa_append::sub#0 ← (word) utoa::digit_value#0 - [131] call utoa_append - [132] (word) utoa_append::return#0 ← (word) utoa_append::value#2 + [132] (byte*) utoa_append::buffer#0 ← (byte*) utoa::buffer#11 + [133] (word) utoa_append::value#0 ← (word) utoa::value#2 + [134] (word) utoa_append::sub#0 ← (word) utoa::digit_value#0 + [135] call utoa_append + [136] (word) utoa_append::return#0 ← (word) utoa_append::value#2 to:utoa::@6 utoa::@6: scope:[utoa] from utoa::@5 - [133] (word) utoa::value#0 ← (word) utoa_append::return#0 - [134] (byte*) utoa::buffer#4 ← ++ (byte*) utoa::buffer#11 + [137] (word) utoa::value#0 ← (word) utoa_append::return#0 + [138] (byte*) utoa::buffer#4 ← ++ (byte*) utoa::buffer#11 to:utoa::@4 (word()) utoa_append((byte*) utoa_append::buffer , (word) utoa_append::value , (word) utoa_append::sub) utoa_append: scope:[utoa_append] from utoa::@5 - [135] phi() + [139] phi() to:utoa_append::@1 utoa_append::@1: scope:[utoa_append] from utoa_append utoa_append::@2 - [136] (byte) utoa_append::digit#2 ← phi( utoa_append/(byte) 0 utoa_append::@2/(byte) utoa_append::digit#1 ) - [136] (word) utoa_append::value#2 ← phi( utoa_append/(word) utoa_append::value#0 utoa_append::@2/(word) utoa_append::value#1 ) - [137] if((word) utoa_append::value#2>=(word) utoa_append::sub#0) goto utoa_append::@2 + [140] (byte) utoa_append::digit#2 ← phi( utoa_append/(byte) 0 utoa_append::@2/(byte) utoa_append::digit#1 ) + [140] (word) utoa_append::value#2 ← phi( utoa_append/(word) utoa_append::value#0 utoa_append::@2/(word) utoa_append::value#1 ) + [141] if((word) utoa_append::value#2>=(word) utoa_append::sub#0) goto utoa_append::@2 to:utoa_append::@3 utoa_append::@3: scope:[utoa_append] from utoa_append::@1 - [138] *((byte*) utoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) utoa_append::digit#2) + [142] *((byte*) utoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) utoa_append::digit#2) to:utoa_append::@return utoa_append::@return: scope:[utoa_append] from utoa_append::@3 - [139] return + [143] return to:@return utoa_append::@2: scope:[utoa_append] from utoa_append::@1 - [140] (byte) utoa_append::digit#1 ← ++ (byte) utoa_append::digit#2 - [141] (word) utoa_append::value#1 ← (word) utoa_append::value#2 - (word) utoa_append::sub#0 + [144] (byte) utoa_append::digit#1 ← ++ (byte) utoa_append::digit#2 + [145] (word) utoa_append::value#1 ← (word) utoa_append::value#2 - (word) utoa_append::sub#0 to:utoa_append::@1 (void()) printf_schar((signed byte) printf_schar::value , (byte) printf_schar::format_min_length , (byte) printf_schar::format_justify_left , (byte) printf_schar::format_sign_always , (byte) printf_schar::format_zero_padding , (byte) printf_schar::format_radix) printf_schar: scope:[printf_schar] from main::@1 main::@3 - [142] (byte) printf_schar::format_zero_padding#2 ← phi( main::@1/(byte) 0 main::@3/(byte) 1 ) - [142] (byte) printf_schar::format_radix#2 ← phi( main::@1/(const byte) DECIMAL main::@3/(const byte) OCTAL ) - [142] (byte) printf_schar::format_sign_always#2 ← phi( main::@1/(byte) 0 main::@3/(byte) 1 ) - [142] (signed byte) printf_schar::value#3 ← phi( main::@1/(signed byte) -$4d main::@3/(signed byte) $63 ) - [143] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 - [144] if((signed byte) printf_schar::value#3<(signed byte) 0) goto printf_schar::@1 + [146] (byte) printf_schar::format_zero_padding#2 ← phi( main::@1/(byte) 0 main::@3/(byte) 1 ) + [146] (byte) printf_schar::format_radix#2 ← phi( main::@1/(const byte) DECIMAL main::@3/(const byte) OCTAL ) + [146] (byte) printf_schar::format_sign_always#2 ← phi( main::@1/(byte) 0 main::@3/(byte) 1 ) + [146] (signed byte) printf_schar::value#3 ← phi( main::@1/(signed byte) -$4d main::@3/(signed byte) $63 ) + [147] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 + [148] if((signed byte) printf_schar::value#3<(signed byte) 0) goto printf_schar::@1 to:printf_schar::@3 printf_schar::@3: scope:[printf_schar] from printf_schar - [145] if((byte) 0==(byte) printf_schar::format_sign_always#2) goto printf_schar::@2 + [149] if((byte) 0==(byte) printf_schar::format_sign_always#2) goto printf_schar::@2 to:printf_schar::@4 printf_schar::@4: scope:[printf_schar] from printf_schar::@3 - [146] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) '+' + [150] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) '+' to:printf_schar::@2 printf_schar::@2: scope:[printf_schar] from printf_schar::@1 printf_schar::@3 printf_schar::@4 - [147] (signed byte) printf_schar::value#5 ← phi( printf_schar::@1/(signed byte) printf_schar::value#0 printf_schar::@3/(signed byte) printf_schar::value#3 printf_schar::@4/(signed byte) printf_schar::value#3 ) - [148] (byte) uctoa::value#1 ← (byte)(signed byte) printf_schar::value#5 - [149] (byte) uctoa::radix#0 ← (byte) printf_schar::format_radix#2 - [150] call uctoa + [151] (signed byte) printf_schar::value#5 ← phi( printf_schar::@1/(signed byte) printf_schar::value#0 printf_schar::@3/(signed byte) printf_schar::value#3 printf_schar::@4/(signed byte) printf_schar::value#3 ) + [152] (byte) uctoa::value#1 ← (byte)(signed byte) printf_schar::value#5 + [153] (byte) uctoa::radix#0 ← (byte) printf_schar::format_radix#2 + [154] call uctoa to:printf_schar::@5 printf_schar::@5: scope:[printf_schar] from printf_schar::@2 - [151] (byte) printf_number_buffer::buffer_sign#1 ← *((byte*)&(struct printf_buffer_number) printf_buffer) - [152] (byte) printf_number_buffer::format_zero_padding#1 ← (byte) printf_schar::format_zero_padding#2 - [153] call printf_number_buffer + [155] (byte) printf_number_buffer::buffer_sign#1 ← *((byte*)&(struct printf_buffer_number) printf_buffer) + [156] (byte) printf_number_buffer::format_zero_padding#1 ← (byte) printf_schar::format_zero_padding#2 + [157] call printf_number_buffer to:printf_schar::@return printf_schar::@return: scope:[printf_schar] from printf_schar::@5 - [154] return + [158] return to:@return printf_schar::@1: scope:[printf_schar] from printf_schar - [155] (signed byte) printf_schar::value#0 ← - (signed byte) printf_schar::value#3 - [156] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) '-' + [159] (signed byte) printf_schar::value#0 ← - (signed byte) printf_schar::value#3 + [160] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) '-' to:printf_schar::@2 (void()) uctoa((byte) uctoa::value , (byte*) uctoa::buffer , (byte) uctoa::radix) uctoa: scope:[uctoa] from printf_schar::@2 - [157] if((byte) uctoa::radix#0==(const byte) DECIMAL) goto uctoa::@1 + [161] if((byte) uctoa::radix#0==(const byte) DECIMAL) goto uctoa::@1 to:uctoa::@2 uctoa::@2: scope:[uctoa] from uctoa - [158] if((byte) uctoa::radix#0==(const byte) HEXADECIMAL) goto uctoa::@1 + [162] if((byte) uctoa::radix#0==(const byte) HEXADECIMAL) goto uctoa::@1 to:uctoa::@3 uctoa::@3: scope:[uctoa] from uctoa::@2 - [159] if((byte) uctoa::radix#0==(const byte) OCTAL) goto uctoa::@1 + [163] if((byte) uctoa::radix#0==(const byte) OCTAL) goto uctoa::@1 to:uctoa::@4 uctoa::@4: scope:[uctoa] from uctoa::@3 - [160] if((byte) uctoa::radix#0==(const byte) BINARY) goto uctoa::@1 + [164] if((byte) uctoa::radix#0==(const byte) BINARY) goto uctoa::@1 to:uctoa::@5 uctoa::@5: scope:[uctoa] from uctoa::@4 - [161] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS) ← (byte) 'e' - [162] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(byte) 1) ← (byte) 'r' - [163] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(byte) 2) ← (byte) 'r' - [164] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(byte) 3) ← (byte) 0 + [165] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS) ← (byte) 'e' + [166] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(byte) 1) ← (byte) 'r' + [167] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(byte) 2) ← (byte) 'r' + [168] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(byte) 3) ← (byte) 0 to:uctoa::@return uctoa::@return: scope:[uctoa] from uctoa::@5 uctoa::@8 - [165] return + [169] return to:@return uctoa::@1: scope:[uctoa] from uctoa uctoa::@2 uctoa::@3 uctoa::@4 - [166] (byte*) uctoa::digit_values#8 ← phi( uctoa/(const byte*) RADIX_DECIMAL_VALUES_CHAR uctoa::@2/(const byte*) RADIX_HEXADECIMAL_VALUES_CHAR uctoa::@3/(const byte*) RADIX_OCTAL_VALUES_CHAR uctoa::@4/(const byte*) RADIX_BINARY_VALUES_CHAR ) - [166] (byte) uctoa::max_digits#7 ← phi( uctoa/(byte) 3 uctoa::@2/(byte) 2 uctoa::@3/(byte) 3 uctoa::@4/(byte) 8 ) + [170] (byte*) uctoa::digit_values#8 ← phi( uctoa/(const byte*) RADIX_DECIMAL_VALUES_CHAR uctoa::@2/(const byte*) RADIX_HEXADECIMAL_VALUES_CHAR uctoa::@3/(const byte*) RADIX_OCTAL_VALUES_CHAR uctoa::@4/(const byte*) RADIX_BINARY_VALUES_CHAR ) + [170] (byte) uctoa::max_digits#7 ← phi( uctoa/(byte) 3 uctoa::@2/(byte) 2 uctoa::@3/(byte) 3 uctoa::@4/(byte) 8 ) to:uctoa::@6 uctoa::@6: scope:[uctoa] from uctoa::@1 uctoa::@9 - [167] (byte*) uctoa::buffer#11 ← phi( uctoa::@9/(byte*) uctoa::buffer#14 uctoa::@1/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) - [167] (byte) uctoa::started#2 ← phi( uctoa::@9/(byte) uctoa::started#4 uctoa::@1/(byte) 0 ) - [167] (byte) uctoa::value#2 ← phi( uctoa::@9/(byte) uctoa::value#6 uctoa::@1/(byte) uctoa::value#1 ) - [167] (byte) uctoa::digit#2 ← phi( uctoa::@9/(byte) uctoa::digit#1 uctoa::@1/(byte) 0 ) - [168] (byte~) uctoa::$4 ← (byte) uctoa::max_digits#7 - (byte) 1 - [169] if((byte) uctoa::digit#2<(byte~) uctoa::$4) goto uctoa::@7 + [171] (byte*) uctoa::buffer#11 ← phi( uctoa::@9/(byte*) uctoa::buffer#14 uctoa::@1/(byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS ) + [171] (byte) uctoa::started#2 ← phi( uctoa::@9/(byte) uctoa::started#4 uctoa::@1/(byte) 0 ) + [171] (byte) uctoa::value#2 ← phi( uctoa::@9/(byte) uctoa::value#6 uctoa::@1/(byte) uctoa::value#1 ) + [171] (byte) uctoa::digit#2 ← phi( uctoa::@9/(byte) uctoa::digit#1 uctoa::@1/(byte) 0 ) + [172] (byte~) uctoa::$4 ← (byte) uctoa::max_digits#7 - (byte) 1 + [173] if((byte) uctoa::digit#2<(byte~) uctoa::$4) goto uctoa::@7 to:uctoa::@8 uctoa::@8: scope:[uctoa] from uctoa::@6 - [170] *((byte*) uctoa::buffer#11) ← *((const byte*) DIGITS + (byte) uctoa::value#2) - [171] (byte*) uctoa::buffer#3 ← ++ (byte*) uctoa::buffer#11 - [172] *((byte*) uctoa::buffer#3) ← (byte) 0 + [174] *((byte*) uctoa::buffer#11) ← *((const byte*) DIGITS + (byte) uctoa::value#2) + [175] (byte*) uctoa::buffer#3 ← ++ (byte*) uctoa::buffer#11 + [176] *((byte*) uctoa::buffer#3) ← (byte) 0 to:uctoa::@return uctoa::@7: scope:[uctoa] from uctoa::@6 - [173] (byte) uctoa::digit_value#0 ← *((byte*) uctoa::digit_values#8 + (byte) uctoa::digit#2) - [174] if((byte) 0!=(byte) uctoa::started#2) goto uctoa::@10 + [177] (byte) uctoa::digit_value#0 ← *((byte*) uctoa::digit_values#8 + (byte) uctoa::digit#2) + [178] if((byte) 0!=(byte) uctoa::started#2) goto uctoa::@10 to:uctoa::@12 uctoa::@12: scope:[uctoa] from uctoa::@7 - [175] if((byte) uctoa::value#2>=(byte) uctoa::digit_value#0) goto uctoa::@10 + [179] if((byte) uctoa::value#2>=(byte) uctoa::digit_value#0) goto uctoa::@10 to:uctoa::@9 uctoa::@9: scope:[uctoa] from uctoa::@11 uctoa::@12 - [176] (byte*) uctoa::buffer#14 ← phi( uctoa::@12/(byte*) uctoa::buffer#11 uctoa::@11/(byte*) uctoa::buffer#4 ) - [176] (byte) uctoa::started#4 ← phi( uctoa::@12/(byte) uctoa::started#2 uctoa::@11/(byte) 1 ) - [176] (byte) uctoa::value#6 ← phi( uctoa::@12/(byte) uctoa::value#2 uctoa::@11/(byte) uctoa::value#0 ) - [177] (byte) uctoa::digit#1 ← ++ (byte) uctoa::digit#2 + [180] (byte*) uctoa::buffer#14 ← phi( uctoa::@12/(byte*) uctoa::buffer#11 uctoa::@11/(byte*) uctoa::buffer#4 ) + [180] (byte) uctoa::started#4 ← phi( uctoa::@12/(byte) uctoa::started#2 uctoa::@11/(byte) 1 ) + [180] (byte) uctoa::value#6 ← phi( uctoa::@12/(byte) uctoa::value#2 uctoa::@11/(byte) uctoa::value#0 ) + [181] (byte) uctoa::digit#1 ← ++ (byte) uctoa::digit#2 to:uctoa::@6 uctoa::@10: scope:[uctoa] from uctoa::@12 uctoa::@7 - [178] (byte*) uctoa_append::buffer#0 ← (byte*) uctoa::buffer#11 - [179] (byte) uctoa_append::value#0 ← (byte) uctoa::value#2 - [180] (byte) uctoa_append::sub#0 ← (byte) uctoa::digit_value#0 - [181] call uctoa_append - [182] (byte) uctoa_append::return#0 ← (byte) uctoa_append::value#2 + [182] (byte*) uctoa_append::buffer#0 ← (byte*) uctoa::buffer#11 + [183] (byte) uctoa_append::value#0 ← (byte) uctoa::value#2 + [184] (byte) uctoa_append::sub#0 ← (byte) uctoa::digit_value#0 + [185] call uctoa_append + [186] (byte) uctoa_append::return#0 ← (byte) uctoa_append::value#2 to:uctoa::@11 uctoa::@11: scope:[uctoa] from uctoa::@10 - [183] (byte) uctoa::value#0 ← (byte) uctoa_append::return#0 - [184] (byte*) uctoa::buffer#4 ← ++ (byte*) uctoa::buffer#11 + [187] (byte) uctoa::value#0 ← (byte) uctoa_append::return#0 + [188] (byte*) uctoa::buffer#4 ← ++ (byte*) uctoa::buffer#11 to:uctoa::@9 (byte()) uctoa_append((byte*) uctoa_append::buffer , (byte) uctoa_append::value , (byte) uctoa_append::sub) uctoa_append: scope:[uctoa_append] from uctoa::@10 - [185] phi() + [189] phi() to:uctoa_append::@1 uctoa_append::@1: scope:[uctoa_append] from uctoa_append uctoa_append::@2 - [186] (byte) uctoa_append::digit#2 ← phi( uctoa_append/(byte) 0 uctoa_append::@2/(byte) uctoa_append::digit#1 ) - [186] (byte) uctoa_append::value#2 ← phi( uctoa_append/(byte) uctoa_append::value#0 uctoa_append::@2/(byte) uctoa_append::value#1 ) - [187] if((byte) uctoa_append::value#2>=(byte) uctoa_append::sub#0) goto uctoa_append::@2 + [190] (byte) uctoa_append::digit#2 ← phi( uctoa_append/(byte) 0 uctoa_append::@2/(byte) uctoa_append::digit#1 ) + [190] (byte) uctoa_append::value#2 ← phi( uctoa_append/(byte) uctoa_append::value#0 uctoa_append::@2/(byte) uctoa_append::value#1 ) + [191] if((byte) uctoa_append::value#2>=(byte) uctoa_append::sub#0) goto uctoa_append::@2 to:uctoa_append::@3 uctoa_append::@3: scope:[uctoa_append] from uctoa_append::@1 - [188] *((byte*) uctoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) uctoa_append::digit#2) + [192] *((byte*) uctoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) uctoa_append::digit#2) to:uctoa_append::@return uctoa_append::@return: scope:[uctoa_append] from uctoa_append::@3 - [189] return + [193] return to:@return uctoa_append::@2: scope:[uctoa_append] from uctoa_append::@1 - [190] (byte) uctoa_append::digit#1 ← ++ (byte) uctoa_append::digit#2 - [191] (byte) uctoa_append::value#1 ← (byte) uctoa_append::value#2 - (byte) uctoa_append::sub#0 + [194] (byte) uctoa_append::digit#1 ← ++ (byte) uctoa_append::digit#2 + [195] (byte) uctoa_append::value#1 ← (byte) uctoa_append::value#2 - (byte) uctoa_append::sub#0 to:uctoa_append::@1 (void()) printf_cls() printf_cls: scope:[printf_cls] from main - [192] phi() - [193] call memset + [196] phi() + [197] call memset to:printf_cls::@1 printf_cls::@1: scope:[printf_cls] from printf_cls - [194] (byte*) printf_line_cursor ← (const byte*) printf_screen - [195] (byte*) printf_char_cursor ← (byte*) printf_line_cursor + [198] (byte*) printf_line_cursor ← (const byte*) printf_screen + [199] (byte*) printf_char_cursor ← (byte*) printf_line_cursor to:printf_cls::@return printf_cls::@return: scope:[printf_cls] from printf_cls::@1 - [196] return + [200] return to:@return +null depth in calling loop Loop head: printf_str::@1 tails: printf_str::@5 printf_str::@4 blocks: printf_str::@5 printf_str::@3 printf_str::@2 printf_str::@1 printf_str::@4 in scope printf_ln null depth in calling loop Loop head: printf_padding::@1 tails: printf_padding::@3 blocks: printf_padding::@3 printf_padding::@2 printf_padding::@1 in scope printf_char -null depth in calling loop Loop head: printf_str::@1 tails: printf_str::@3 blocks: printf_str::@3 printf_str::@2 printf_str::@1 in scope printf_char -null depth in calling loop Loop head: printf_str::@1 tails: printf_str::@3 blocks: printf_str::@3 printf_str::@2 printf_str::@1 in scope printf_char +null depth in calling loop Loop head: printf_str::@1 tails: printf_str::@5 printf_str::@4 blocks: printf_str::@5 printf_str::@3 printf_str::@2 printf_str::@1 printf_str::@4 in scope printf_char +null depth in calling loop Loop head: printf_str::@1 tails: printf_str::@5 printf_str::@4 blocks: printf_str::@5 printf_str::@3 printf_str::@2 printf_str::@1 printf_str::@4 in scope printf_char VARIABLE REGISTER WEIGHTS (void()) main() @@ -3581,7 +3643,7 @@ VARIABLE REGISTER WEIGHTS (byte) printf_char::ch#1 200002.0 (byte) printf_char::ch#2 2002.0 (byte) printf_char::ch#3 1201004.0 -(byte*) printf_char_cursor loadstore 70719.31313131312 +(byte*) printf_char_cursor loadstore 174758.36893203887 (void()) printf_cls() (byte) printf_format_number::justify_left (byte) printf_format_number::min_length @@ -3590,7 +3652,7 @@ VARIABLE REGISTER WEIGHTS (byte) printf_format_number::zero_padding (byte) printf_format_string::justify_left (byte) printf_format_string::min_length -(byte*) printf_line_cursor loadstore 10561.147368421056 +(byte*) printf_line_cursor loadstore 323234.4343434343 (void()) printf_ln() (void()) printf_number_buffer((byte) printf_number_buffer::buffer_sign , (byte*) printf_number_buffer::buffer_digits , (byte) printf_number_buffer::format_min_length , (byte) printf_number_buffer::format_justify_left , (byte) printf_number_buffer::format_sign_always , (byte) printf_number_buffer::format_zero_padding , (byte) printf_number_buffer::format_radix) (word~) printf_number_buffer::$18 1001.0 @@ -3645,10 +3707,12 @@ VARIABLE REGISTER WEIGHTS (signed byte) printf_schar::value#3 80.8 (signed byte) printf_schar::value#5 303.0 (void()) printf_str((byte*) printf_str::str) +(byte) printf_str::ch +(byte) printf_str::ch#0 100001.0 (byte*) printf_str::str -(byte*) printf_str::str#0 200002.0 +(byte*) printf_str::str#0 42857.57142857143 (byte*) printf_str::str#1 5501.0 -(byte*) printf_str::str#2 102501.25 +(byte*) printf_str::str#2 205002.5 (void()) printf_uint((word) printf_uint::uvalue , (byte) printf_uint::format_min_length , (byte) printf_uint::format_justify_left , (byte) printf_uint::format_sign_always , (byte) printf_uint::format_zero_padding , (byte) printf_uint::format_radix) (struct printf_format_number) printf_uint::format (byte) printf_uint::format_justify_left @@ -3790,6 +3854,7 @@ Added variable strlen::return#2 to live range equivalence class [ strlen::return Added variable printf_number_buffer::$18 to live range equivalence class [ printf_number_buffer::$18 ] Added variable printf_char::$8 to live range equivalence class [ printf_char::$8 ] Added variable memset::end#0 to live range equivalence class [ memset::end#0 ] +Added variable printf_str::ch#0 to live range equivalence class [ printf_str::ch#0 ] Added variable utoa::$11 to live range equivalence class [ utoa::$11 ] Added variable utoa::buffer#3 to live range equivalence class [ utoa::buffer#3 ] Added variable utoa::$10 to live range equivalence class [ utoa::$10 ] @@ -3850,6 +3915,7 @@ Complete equivalence classes [ printf_number_buffer::$18 ] [ printf_char::$8 ] [ memset::end#0 ] +[ printf_str::ch#0 ] [ utoa::$11 ] [ utoa::buffer#3 ] [ utoa::$10 ] @@ -3909,20 +3975,21 @@ Allocated zp[2]:58 [ strlen::return#2 ] Allocated zp[2]:60 [ printf_number_buffer::$18 ] Allocated zp[2]:62 [ printf_char::$8 ] Allocated zp[2]:64 [ memset::end#0 ] -Allocated zp[1]:66 [ utoa::$11 ] -Allocated zp[2]:67 [ utoa::buffer#3 ] -Allocated zp[1]:69 [ utoa::$10 ] -Allocated zp[2]:70 [ utoa::digit_value#0 ] -Allocated zp[2]:72 [ utoa_append::buffer#0 ] -Allocated zp[2]:74 [ utoa_append::sub#0 ] -Allocated zp[2]:76 [ utoa_append::return#0 ] -Allocated zp[1]:78 [ uctoa::radix#0 ] -Allocated zp[1]:79 [ uctoa::$4 ] -Allocated zp[2]:80 [ uctoa::buffer#3 ] -Allocated zp[1]:82 [ uctoa::digit_value#0 ] -Allocated zp[2]:83 [ uctoa_append::buffer#0 ] -Allocated zp[1]:85 [ uctoa_append::sub#0 ] -Allocated zp[1]:86 [ uctoa_append::return#0 ] +Allocated zp[1]:66 [ printf_str::ch#0 ] +Allocated zp[1]:67 [ utoa::$11 ] +Allocated zp[2]:68 [ utoa::buffer#3 ] +Allocated zp[1]:70 [ utoa::$10 ] +Allocated zp[2]:71 [ utoa::digit_value#0 ] +Allocated zp[2]:73 [ utoa_append::buffer#0 ] +Allocated zp[2]:75 [ utoa_append::sub#0 ] +Allocated zp[2]:77 [ utoa_append::return#0 ] +Allocated zp[1]:79 [ uctoa::radix#0 ] +Allocated zp[1]:80 [ uctoa::$4 ] +Allocated zp[2]:81 [ uctoa::buffer#3 ] +Allocated zp[1]:83 [ uctoa::digit_value#0 ] +Allocated zp[2]:84 [ uctoa_append::buffer#0 ] +Allocated zp[1]:86 [ uctoa_append::sub#0 ] +Allocated zp[1]:87 [ uctoa_append::return#0 ] Allocated mem[12] [ printf_buffer ] INITIAL ASM @@ -3975,7 +4042,7 @@ __bend: // main main: { // [7] call printf_cls - // [192] phi from main to printf_cls [phi:main->printf_cls] + // [196] phi from main to printf_cls [phi:main->printf_cls] printf_cls_from_main: jsr printf_cls // [8] phi from main to main::@1 [phi:main->main::@1] @@ -3984,18 +4051,18 @@ main: { // main::@1 __b1: // [9] call printf_schar - // [142] phi from main::@1 to printf_schar [phi:main::@1->printf_schar] + // [146] phi from main::@1 to printf_schar [phi:main::@1->printf_schar] printf_schar_from___b1: - // [142] phi (byte) printf_schar::format_zero_padding#2 = (byte) 0 [phi:main::@1->printf_schar#0] -- vbuz1=vbuc1 + // [146] phi (byte) printf_schar::format_zero_padding#2 = (byte) 0 [phi:main::@1->printf_schar#0] -- vbuz1=vbuc1 lda #0 sta.z printf_schar.format_zero_padding - // [142] phi (byte) printf_schar::format_radix#2 = (const byte) DECIMAL [phi:main::@1->printf_schar#1] -- vbuz1=vbuc1 + // [146] phi (byte) printf_schar::format_radix#2 = (const byte) DECIMAL [phi:main::@1->printf_schar#1] -- vbuz1=vbuc1 lda #DECIMAL sta.z printf_schar.format_radix - // [142] phi (byte) printf_schar::format_sign_always#2 = (byte) 0 [phi:main::@1->printf_schar#2] -- vbuz1=vbuc1 + // [146] phi (byte) printf_schar::format_sign_always#2 = (byte) 0 [phi:main::@1->printf_schar#2] -- vbuz1=vbuc1 lda #0 sta.z printf_schar.format_sign_always - // [142] phi (signed byte) printf_schar::value#3 = (signed byte) -$4d [phi:main::@1->printf_schar#3] -- vbsz1=vbsc1 + // [146] phi (signed byte) printf_schar::value#3 = (signed byte) -$4d [phi:main::@1->printf_schar#3] -- vbsz1=vbsc1 lda #-$4d sta.z printf_schar.value jsr printf_schar @@ -4014,18 +4081,18 @@ main: { // main::@3 __b3: // [13] call printf_schar - // [142] phi from main::@3 to printf_schar [phi:main::@3->printf_schar] + // [146] phi from main::@3 to printf_schar [phi:main::@3->printf_schar] printf_schar_from___b3: - // [142] phi (byte) printf_schar::format_zero_padding#2 = (byte) 1 [phi:main::@3->printf_schar#0] -- vbuz1=vbuc1 + // [146] phi (byte) printf_schar::format_zero_padding#2 = (byte) 1 [phi:main::@3->printf_schar#0] -- vbuz1=vbuc1 lda #1 sta.z printf_schar.format_zero_padding - // [142] phi (byte) printf_schar::format_radix#2 = (const byte) OCTAL [phi:main::@3->printf_schar#1] -- vbuz1=vbuc1 + // [146] phi (byte) printf_schar::format_radix#2 = (const byte) OCTAL [phi:main::@3->printf_schar#1] -- vbuz1=vbuc1 lda #OCTAL sta.z printf_schar.format_radix - // [142] phi (byte) printf_schar::format_sign_always#2 = (byte) 1 [phi:main::@3->printf_schar#2] -- vbuz1=vbuc1 + // [146] phi (byte) printf_schar::format_sign_always#2 = (byte) 1 [phi:main::@3->printf_schar#2] -- vbuz1=vbuc1 lda #1 sta.z printf_schar.format_sign_always - // [142] phi (signed byte) printf_schar::value#3 = (signed byte) $63 [phi:main::@3->printf_schar#3] -- vbsz1=vbsc1 + // [146] phi (signed byte) printf_schar::value#3 = (signed byte) $63 [phi:main::@3->printf_schar#3] -- vbsz1=vbsc1 lda #$63 sta.z printf_schar.value jsr printf_schar @@ -4115,7 +4182,7 @@ printf_uint: { sta printf_buffer // [28] call utoa // Format number into buffer - // [114] phi from printf_uint::@1 to utoa [phi:printf_uint::@1->utoa] + // [118] phi from printf_uint::@1 to utoa [phi:printf_uint::@1->utoa] utoa_from___b1: jsr utoa jmp __b2 @@ -4176,7 +4243,7 @@ printf_number_buffer: { lda.z buffer_digits+1 sta.z strlen.str+1 // [35] call strlen - // [108] phi from printf_number_buffer::@5 to strlen [phi:printf_number_buffer::@5->strlen] + // [112] phi from printf_number_buffer::@5 to strlen [phi:printf_number_buffer::@5->strlen] strlen_from___b5: jsr strlen // [36] (word) strlen::return#2 ← (word) strlen::len#2 -- vwuz1=vwuz2 @@ -4430,13 +4497,15 @@ printf_char: { bne !+ inc.z printf_char_cursor+1 !: - // [76] if((byte*) printf_char_cursor!=(const byte*) printf_screen+(word)(number) $28*(number) $19) goto printf_char::@return -- pbuz1_neq_pbuc1_then_la1 + // [76] if((byte*) printf_char_cursor<(const byte*) printf_screen+(word)(number) $28*(number) $19) goto printf_char::@return -- pbuz1_lt_pbuc1_then_la1 lda.z printf_char_cursor+1 cmp #>printf_screen+$28*$19 - bne __breturn + bcc __breturn + bne !+ lda.z printf_char_cursor cmp #printf_char::@1] __b1_from_printf_char: jmp __b1 @@ -4620,46 +4689,68 @@ memcpy: { } // printf_str // Print a zero-terminated string +// Handles escape codes such as newline // printf_str(byte* zp($19) str) printf_str: { + .label ch = $42 .label str = $19 - // [102] phi from printf_str printf_str::@3 to printf_str::@1 [phi:printf_str/printf_str::@3->printf_str::@1] + // [102] phi from printf_str printf_str::@4 printf_str::@5 to printf_str::@1 [phi:printf_str/printf_str::@4/printf_str::@5->printf_str::@1] __b1_from_printf_str: - __b1_from___b3: - // [102] phi (byte*) printf_str::str#2 = (byte*) printf_str::str#1 [phi:printf_str/printf_str::@3->printf_str::@1#0] -- register_copy + __b1_from___b4: + __b1_from___b5: + // [102] phi (byte*) printf_str::str#2 = (byte*) printf_str::str#1 [phi:printf_str/printf_str::@4/printf_str::@5->printf_str::@1#0] -- register_copy jmp __b1 // printf_str::@1 __b1: - // [103] if((byte) 0!=*((byte*) printf_str::str#2)) goto printf_str::@2 -- vbuc1_neq__deref_pbuz1_then_la1 - ldy #0 - lda (str),y - cmp #0 - bne __b2 - jmp __breturn - // printf_str::@return - __breturn: - // [104] return - rts + jmp __b2 // printf_str::@2 __b2: - // [105] (byte) printf_char::ch#1 ← *((byte*) printf_str::str#2) -- vbuz1=_deref_pbuz2 + // [103] (byte) printf_str::ch#0 ← *((byte*) printf_str::str#2) -- vbuz1=_deref_pbuz2 ldy #0 lda (str),y - sta.z printf_char.ch - // [106] call printf_char - // [73] phi from printf_str::@2 to printf_char [phi:printf_str::@2->printf_char] - printf_char_from___b2: - // [73] phi (byte) printf_char::ch#3 = (byte) printf_char::ch#1 [phi:printf_str::@2->printf_char#0] -- register_copy - jsr printf_char - jmp __b3 - // printf_str::@3 - __b3: - // [107] (byte*) printf_str::str#0 ← ++ (byte*) printf_str::str#2 -- pbuz1=_inc_pbuz1 + sta.z ch + // [104] (byte*) printf_str::str#0 ← ++ (byte*) printf_str::str#2 -- pbuz1=_inc_pbuz1 inc.z str bne !+ inc.z str+1 !: - jmp __b1_from___b3 + // [105] if((byte) printf_str::ch#0!=(byte) 0) goto printf_str::@3 -- vbuz1_neq_0_then_la1 + lda.z ch + cmp #0 + bne __b3 + jmp __breturn + // printf_str::@return + __breturn: + // [106] return + rts + // printf_str::@3 + __b3: + // [107] if((byte) printf_str::ch#0==(byte) ' ') goto printf_str::@4 -- vbuz1_eq_vbuc1_then_la1 + lda #'\n' + cmp.z ch + beq __b4_from___b3 + jmp __b5 + // printf_str::@5 + __b5: + // [108] (byte) printf_char::ch#1 ← (byte) printf_str::ch#0 -- vbuz1=vbuz2 + lda.z ch + sta.z printf_char.ch + // [109] call printf_char + // [73] phi from printf_str::@5 to printf_char [phi:printf_str::@5->printf_char] + printf_char_from___b5: + // [73] phi (byte) printf_char::ch#3 = (byte) printf_char::ch#1 [phi:printf_str::@5->printf_char#0] -- register_copy + jsr printf_char + jmp __b1_from___b5 + // [110] phi from printf_str::@3 to printf_str::@4 [phi:printf_str::@3->printf_str::@4] + __b4_from___b3: + jmp __b4 + // printf_str::@4 + __b4: + // [111] call printf_ln + // [21] phi from printf_str::@4 to printf_ln [phi:printf_str::@4->printf_ln] + printf_ln_from___b4: + jsr printf_ln + jmp __b1_from___b4 } // strlen // Computes the length of the string str up to but not including the terminating null character. @@ -4668,18 +4759,18 @@ strlen: { .label len = $1d .label str = $1b .label return = $3a - // [109] phi from strlen to strlen::@1 [phi:strlen->strlen::@1] + // [113] phi from strlen to strlen::@1 [phi:strlen->strlen::@1] __b1_from_strlen: - // [109] phi (word) strlen::len#2 = (word) 0 [phi:strlen->strlen::@1#0] -- vwuz1=vwuc1 + // [113] phi (word) strlen::len#2 = (word) 0 [phi:strlen->strlen::@1#0] -- vwuz1=vwuc1 lda #<0 sta.z len lda #>0 sta.z len+1 - // [109] phi (byte*) strlen::str#2 = (byte*) strlen::str#1 [phi:strlen->strlen::@1#1] -- register_copy + // [113] phi (byte*) strlen::str#2 = (byte*) strlen::str#1 [phi:strlen->strlen::@1#1] -- register_copy jmp __b1 // strlen::@1 __b1: - // [110] if((byte) 0!=*((byte*) strlen::str#2)) goto strlen::@2 -- vbuc1_neq__deref_pbuz1_then_la1 + // [114] if((byte) 0!=*((byte*) strlen::str#2)) goto strlen::@2 -- vbuc1_neq__deref_pbuz1_then_la1 ldy #0 lda (str),y cmp #0 @@ -4687,24 +4778,24 @@ strlen: { jmp __breturn // strlen::@return __breturn: - // [111] return + // [115] return rts // strlen::@2 __b2: - // [112] (word) strlen::len#1 ← ++ (word) strlen::len#2 -- vwuz1=_inc_vwuz1 + // [116] (word) strlen::len#1 ← ++ (word) strlen::len#2 -- vwuz1=_inc_vwuz1 inc.z len bne !+ inc.z len+1 !: - // [113] (byte*) strlen::str#0 ← ++ (byte*) strlen::str#2 -- pbuz1=_inc_pbuz1 + // [117] (byte*) strlen::str#0 ← ++ (byte*) strlen::str#2 -- pbuz1=_inc_pbuz1 inc.z str bne !+ inc.z str+1 !: - // [109] phi from strlen::@2 to strlen::@1 [phi:strlen::@2->strlen::@1] + // [113] phi from strlen::@2 to strlen::@1 [phi:strlen::@2->strlen::@1] __b1_from___b2: - // [109] phi (word) strlen::len#2 = (word) strlen::len#1 [phi:strlen::@2->strlen::@1#0] -- register_copy - // [109] phi (byte*) strlen::str#2 = (byte*) strlen::str#0 [phi:strlen::@2->strlen::@1#1] -- register_copy + // [113] phi (word) strlen::len#2 = (word) strlen::len#1 [phi:strlen::@2->strlen::@1#0] -- register_copy + // [113] phi (byte*) strlen::str#2 = (byte*) strlen::str#0 [phi:strlen::@2->strlen::@1#1] -- register_copy jmp __b1 } // utoa @@ -4713,54 +4804,54 @@ strlen: { // - value : The number to be converted to RADIX // - buffer : receives the string representing the number and zero-termination. // - radix : The radix to convert the number to (from the enum RADIX) -// utoa(word zp($20) value, byte* zp($43) buffer) +// utoa(word zp($20) value, byte* zp($44) buffer) utoa: { .const max_digits = 4 - .label __10 = $45 - .label __11 = $42 - .label digit_value = $46 - .label buffer = $43 + .label __10 = $46 + .label __11 = $43 + .label digit_value = $47 + .label buffer = $44 .label digit = $1f .label value = $20 .label buffer_1 = $23 .label started = $22 - // [115] phi from utoa to utoa::@1 [phi:utoa->utoa::@1] + // [119] phi from utoa to utoa::@1 [phi:utoa->utoa::@1] __b1_from_utoa: - // [115] phi (byte*) utoa::buffer#11 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:utoa->utoa::@1#0] -- pbuz1=pbuc1 + // [119] phi (byte*) utoa::buffer#11 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:utoa->utoa::@1#0] -- pbuz1=pbuc1 lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS sta.z buffer_1+1 - // [115] phi (byte) utoa::started#2 = (byte) 0 [phi:utoa->utoa::@1#1] -- vbuz1=vbuc1 + // [119] phi (byte) utoa::started#2 = (byte) 0 [phi:utoa->utoa::@1#1] -- vbuz1=vbuc1 lda #0 sta.z started - // [115] phi (word) utoa::value#2 = (const word) printf_uint::uvalue#0 [phi:utoa->utoa::@1#2] -- vwuz1=vwuc1 + // [119] phi (word) utoa::value#2 = (const word) printf_uint::uvalue#0 [phi:utoa->utoa::@1#2] -- vwuz1=vwuc1 lda #printf_uint.uvalue sta.z value+1 - // [115] phi (byte) utoa::digit#2 = (byte) 0 [phi:utoa->utoa::@1#3] -- vbuz1=vbuc1 + // [119] phi (byte) utoa::digit#2 = (byte) 0 [phi:utoa->utoa::@1#3] -- vbuz1=vbuc1 lda #0 sta.z digit jmp __b1 // utoa::@1 __b1: - // [116] if((byte) utoa::digit#2<(const byte) utoa::max_digits#2-(byte) 1) goto utoa::@2 -- vbuz1_lt_vbuc1_then_la1 + // [120] if((byte) utoa::digit#2<(const byte) utoa::max_digits#2-(byte) 1) goto utoa::@2 -- vbuz1_lt_vbuc1_then_la1 lda.z digit cmp #max_digits-1 bcc __b2 jmp __b3 // utoa::@3 __b3: - // [117] (byte~) utoa::$11 ← (byte)(word) utoa::value#2 -- vbuz1=_byte_vwuz2 + // [121] (byte~) utoa::$11 ← (byte)(word) utoa::value#2 -- vbuz1=_byte_vwuz2 lda.z value sta.z __11 - // [118] *((byte*) utoa::buffer#11) ← *((const byte*) DIGITS + (byte~) utoa::$11) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 + // [122] *((byte*) utoa::buffer#11) ← *((const byte*) DIGITS + (byte~) utoa::$11) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 ldy.z __11 lda DIGITS,y ldy #0 sta (buffer_1),y - // [119] (byte*) utoa::buffer#3 ← ++ (byte*) utoa::buffer#11 -- pbuz1=_inc_pbuz2 + // [123] (byte*) utoa::buffer#3 ← ++ (byte*) utoa::buffer#11 -- pbuz1=_inc_pbuz2 lda.z buffer_1 clc adc #1 @@ -4768,35 +4859,35 @@ utoa: { lda.z buffer_1+1 adc #0 sta.z buffer+1 - // [120] *((byte*) utoa::buffer#3) ← (byte) 0 -- _deref_pbuz1=vbuc1 + // [124] *((byte*) utoa::buffer#3) ← (byte) 0 -- _deref_pbuz1=vbuc1 lda #0 ldy #0 sta (buffer),y jmp __breturn // utoa::@return __breturn: - // [121] return + // [125] return rts // utoa::@2 __b2: - // [122] (byte~) utoa::$10 ← (byte) utoa::digit#2 << (byte) 1 -- vbuz1=vbuz2_rol_1 + // [126] (byte~) utoa::$10 ← (byte) utoa::digit#2 << (byte) 1 -- vbuz1=vbuz2_rol_1 lda.z digit asl sta.z __10 - // [123] (word) utoa::digit_value#0 ← *((const word*) RADIX_HEXADECIMAL_VALUES + (byte~) utoa::$10) -- vwuz1=pwuc1_derefidx_vbuz2 + // [127] (word) utoa::digit_value#0 ← *((const word*) RADIX_HEXADECIMAL_VALUES + (byte~) utoa::$10) -- vwuz1=pwuc1_derefidx_vbuz2 ldy.z __10 lda RADIX_HEXADECIMAL_VALUES,y sta.z digit_value lda RADIX_HEXADECIMAL_VALUES+1,y sta.z digit_value+1 - // [124] if((byte) 0!=(byte) utoa::started#2) goto utoa::@5 -- vbuc1_neq_vbuz1_then_la1 + // [128] if((byte) 0!=(byte) utoa::started#2) goto utoa::@5 -- vbuc1_neq_vbuz1_then_la1 lda #0 cmp.z started bne __b5 jmp __b7 // utoa::@7 __b7: - // [125] if((word) utoa::value#2>=(word) utoa::digit_value#0) goto utoa::@5 -- vwuz1_ge_vwuz2_then_la1 + // [129] if((word) utoa::value#2>=(word) utoa::digit_value#0) goto utoa::@5 -- vwuz1_ge_vwuz2_then_la1 lda.z digit_value+1 cmp.z value+1 bne !+ @@ -4805,45 +4896,45 @@ utoa: { beq __b5 !: bcc __b5 - // [126] phi from utoa::@7 to utoa::@4 [phi:utoa::@7->utoa::@4] + // [130] phi from utoa::@7 to utoa::@4 [phi:utoa::@7->utoa::@4] __b4_from___b7: - // [126] phi (byte*) utoa::buffer#14 = (byte*) utoa::buffer#11 [phi:utoa::@7->utoa::@4#0] -- register_copy - // [126] phi (byte) utoa::started#4 = (byte) utoa::started#2 [phi:utoa::@7->utoa::@4#1] -- register_copy - // [126] phi (word) utoa::value#6 = (word) utoa::value#2 [phi:utoa::@7->utoa::@4#2] -- register_copy + // [130] phi (byte*) utoa::buffer#14 = (byte*) utoa::buffer#11 [phi:utoa::@7->utoa::@4#0] -- register_copy + // [130] phi (byte) utoa::started#4 = (byte) utoa::started#2 [phi:utoa::@7->utoa::@4#1] -- register_copy + // [130] phi (word) utoa::value#6 = (word) utoa::value#2 [phi:utoa::@7->utoa::@4#2] -- register_copy jmp __b4 // utoa::@4 __b4: - // [127] (byte) utoa::digit#1 ← ++ (byte) utoa::digit#2 -- vbuz1=_inc_vbuz1 + // [131] (byte) utoa::digit#1 ← ++ (byte) utoa::digit#2 -- vbuz1=_inc_vbuz1 inc.z digit - // [115] phi from utoa::@4 to utoa::@1 [phi:utoa::@4->utoa::@1] + // [119] phi from utoa::@4 to utoa::@1 [phi:utoa::@4->utoa::@1] __b1_from___b4: - // [115] phi (byte*) utoa::buffer#11 = (byte*) utoa::buffer#14 [phi:utoa::@4->utoa::@1#0] -- register_copy - // [115] phi (byte) utoa::started#2 = (byte) utoa::started#4 [phi:utoa::@4->utoa::@1#1] -- register_copy - // [115] phi (word) utoa::value#2 = (word) utoa::value#6 [phi:utoa::@4->utoa::@1#2] -- register_copy - // [115] phi (byte) utoa::digit#2 = (byte) utoa::digit#1 [phi:utoa::@4->utoa::@1#3] -- register_copy + // [119] phi (byte*) utoa::buffer#11 = (byte*) utoa::buffer#14 [phi:utoa::@4->utoa::@1#0] -- register_copy + // [119] phi (byte) utoa::started#2 = (byte) utoa::started#4 [phi:utoa::@4->utoa::@1#1] -- register_copy + // [119] phi (word) utoa::value#2 = (word) utoa::value#6 [phi:utoa::@4->utoa::@1#2] -- register_copy + // [119] phi (byte) utoa::digit#2 = (byte) utoa::digit#1 [phi:utoa::@4->utoa::@1#3] -- register_copy jmp __b1 // utoa::@5 __b5: - // [128] (byte*) utoa_append::buffer#0 ← (byte*) utoa::buffer#11 -- pbuz1=pbuz2 + // [132] (byte*) utoa_append::buffer#0 ← (byte*) utoa::buffer#11 -- pbuz1=pbuz2 lda.z buffer_1 sta.z utoa_append.buffer lda.z buffer_1+1 sta.z utoa_append.buffer+1 - // [129] (word) utoa_append::value#0 ← (word) utoa::value#2 -- vwuz1=vwuz2 + // [133] (word) utoa_append::value#0 ← (word) utoa::value#2 -- vwuz1=vwuz2 lda.z value sta.z utoa_append.value lda.z value+1 sta.z utoa_append.value+1 - // [130] (word) utoa_append::sub#0 ← (word) utoa::digit_value#0 -- vwuz1=vwuz2 + // [134] (word) utoa_append::sub#0 ← (word) utoa::digit_value#0 -- vwuz1=vwuz2 lda.z digit_value sta.z utoa_append.sub lda.z digit_value+1 sta.z utoa_append.sub+1 - // [131] call utoa_append - // [135] phi from utoa::@5 to utoa_append [phi:utoa::@5->utoa_append] + // [135] call utoa_append + // [139] phi from utoa::@5 to utoa_append [phi:utoa::@5->utoa_append] utoa_append_from___b5: jsr utoa_append - // [132] (word) utoa_append::return#0 ← (word) utoa_append::value#2 -- vwuz1=vwuz2 + // [136] (word) utoa_append::return#0 ← (word) utoa_append::value#2 -- vwuz1=vwuz2 lda.z utoa_append.value sta.z utoa_append.return lda.z utoa_append.value+1 @@ -4851,23 +4942,23 @@ utoa: { jmp __b6 // utoa::@6 __b6: - // [133] (word) utoa::value#0 ← (word) utoa_append::return#0 -- vwuz1=vwuz2 + // [137] (word) utoa::value#0 ← (word) utoa_append::return#0 -- vwuz1=vwuz2 lda.z utoa_append.return sta.z value lda.z utoa_append.return+1 sta.z value+1 - // [134] (byte*) utoa::buffer#4 ← ++ (byte*) utoa::buffer#11 -- pbuz1=_inc_pbuz1 + // [138] (byte*) utoa::buffer#4 ← ++ (byte*) utoa::buffer#11 -- pbuz1=_inc_pbuz1 inc.z buffer_1 bne !+ inc.z buffer_1+1 !: - // [126] phi from utoa::@6 to utoa::@4 [phi:utoa::@6->utoa::@4] + // [130] phi from utoa::@6 to utoa::@4 [phi:utoa::@6->utoa::@4] __b4_from___b6: - // [126] phi (byte*) utoa::buffer#14 = (byte*) utoa::buffer#4 [phi:utoa::@6->utoa::@4#0] -- register_copy - // [126] phi (byte) utoa::started#4 = (byte) 1 [phi:utoa::@6->utoa::@4#1] -- vbuz1=vbuc1 + // [130] phi (byte*) utoa::buffer#14 = (byte*) utoa::buffer#4 [phi:utoa::@6->utoa::@4#0] -- register_copy + // [130] phi (byte) utoa::started#4 = (byte) 1 [phi:utoa::@6->utoa::@4#1] -- vbuz1=vbuc1 lda #1 sta.z started - // [126] phi (word) utoa::value#6 = (word) utoa::value#0 [phi:utoa::@6->utoa::@4#2] -- register_copy + // [130] phi (word) utoa::value#6 = (word) utoa::value#0 [phi:utoa::@6->utoa::@4#2] -- register_copy jmp __b4 } // utoa_append @@ -4879,23 +4970,23 @@ utoa: { // - sub : the value of a '1' in the digit. Subtracted continually while the digit is increased. // (For decimal the subs used are 10000, 1000, 100, 10, 1) // returns : the value reduced by sub * digit so that it is less than sub. -// utoa_append(byte* zp($48) buffer, word zp($25) value, word zp($4a) sub) +// utoa_append(byte* zp($49) buffer, word zp($25) value, word zp($4b) sub) utoa_append: { - .label buffer = $48 + .label buffer = $49 .label value = $25 - .label sub = $4a - .label return = $4c + .label sub = $4b + .label return = $4d .label digit = $27 - // [136] phi from utoa_append to utoa_append::@1 [phi:utoa_append->utoa_append::@1] + // [140] phi from utoa_append to utoa_append::@1 [phi:utoa_append->utoa_append::@1] __b1_from_utoa_append: - // [136] phi (byte) utoa_append::digit#2 = (byte) 0 [phi:utoa_append->utoa_append::@1#0] -- vbuz1=vbuc1 + // [140] phi (byte) utoa_append::digit#2 = (byte) 0 [phi:utoa_append->utoa_append::@1#0] -- vbuz1=vbuc1 lda #0 sta.z digit - // [136] phi (word) utoa_append::value#2 = (word) utoa_append::value#0 [phi:utoa_append->utoa_append::@1#1] -- register_copy + // [140] phi (word) utoa_append::value#2 = (word) utoa_append::value#0 [phi:utoa_append->utoa_append::@1#1] -- register_copy jmp __b1 // utoa_append::@1 __b1: - // [137] if((word) utoa_append::value#2>=(word) utoa_append::sub#0) goto utoa_append::@2 -- vwuz1_ge_vwuz2_then_la1 + // [141] if((word) utoa_append::value#2>=(word) utoa_append::sub#0) goto utoa_append::@2 -- vwuz1_ge_vwuz2_then_la1 lda.z sub+1 cmp.z value+1 bne !+ @@ -4907,7 +4998,7 @@ utoa_append: { jmp __b3 // utoa_append::@3 __b3: - // [138] *((byte*) utoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) utoa_append::digit#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 + // [142] *((byte*) utoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) utoa_append::digit#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 ldy.z digit lda DIGITS,y ldy #0 @@ -4915,13 +5006,13 @@ utoa_append: { jmp __breturn // utoa_append::@return __breturn: - // [139] return + // [143] return rts // utoa_append::@2 __b2: - // [140] (byte) utoa_append::digit#1 ← ++ (byte) utoa_append::digit#2 -- vbuz1=_inc_vbuz1 + // [144] (byte) utoa_append::digit#1 ← ++ (byte) utoa_append::digit#2 -- vbuz1=_inc_vbuz1 inc.z digit - // [141] (word) utoa_append::value#1 ← (word) utoa_append::value#2 - (word) utoa_append::sub#0 -- vwuz1=vwuz1_minus_vwuz2 + // [145] (word) utoa_append::value#1 ← (word) utoa_append::value#2 - (word) utoa_append::sub#0 -- vwuz1=vwuz1_minus_vwuz2 lda.z value sec sbc.z sub @@ -4929,10 +5020,10 @@ utoa_append: { lda.z value+1 sbc.z sub+1 sta.z value+1 - // [136] phi from utoa_append::@2 to utoa_append::@1 [phi:utoa_append::@2->utoa_append::@1] + // [140] phi from utoa_append::@2 to utoa_append::@1 [phi:utoa_append::@2->utoa_append::@1] __b1_from___b2: - // [136] phi (byte) utoa_append::digit#2 = (byte) utoa_append::digit#1 [phi:utoa_append::@2->utoa_append::@1#0] -- register_copy - // [136] phi (word) utoa_append::value#2 = (word) utoa_append::value#1 [phi:utoa_append::@2->utoa_append::@1#1] -- register_copy + // [140] phi (byte) utoa_append::digit#2 = (byte) utoa_append::digit#1 [phi:utoa_append::@2->utoa_append::@1#0] -- register_copy + // [140] phi (word) utoa_append::value#2 = (word) utoa_append::value#1 [phi:utoa_append::@2->utoa_append::@1#1] -- register_copy jmp __b1 } // printf_schar @@ -4943,52 +5034,52 @@ printf_schar: { .label format_sign_always = $28 .label format_radix = $29 .label format_zero_padding = $2a - // [143] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 -- _deref_pbuc1=vbuc2 + // [147] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 -- _deref_pbuc1=vbuc2 // Handle any sign lda #0 sta printf_buffer - // [144] if((signed byte) printf_schar::value#3<(signed byte) 0) goto printf_schar::@1 -- vbsz1_lt_0_then_la1 + // [148] if((signed byte) printf_schar::value#3<(signed byte) 0) goto printf_schar::@1 -- vbsz1_lt_0_then_la1 lda.z value bmi __b1 jmp __b3 // printf_schar::@3 __b3: - // [145] if((byte) 0==(byte) printf_schar::format_sign_always#2) goto printf_schar::@2 -- vbuc1_eq_vbuz1_then_la1 + // [149] if((byte) 0==(byte) printf_schar::format_sign_always#2) goto printf_schar::@2 -- vbuc1_eq_vbuz1_then_la1 lda #0 cmp.z format_sign_always beq __b2_from___b3 jmp __b4 // printf_schar::@4 __b4: - // [146] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) '+' -- _deref_pbuc1=vbuc2 + // [150] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) '+' -- _deref_pbuc1=vbuc2 lda #'+' sta printf_buffer - // [147] phi from printf_schar::@1 printf_schar::@3 printf_schar::@4 to printf_schar::@2 [phi:printf_schar::@1/printf_schar::@3/printf_schar::@4->printf_schar::@2] + // [151] phi from printf_schar::@1 printf_schar::@3 printf_schar::@4 to printf_schar::@2 [phi:printf_schar::@1/printf_schar::@3/printf_schar::@4->printf_schar::@2] __b2_from___b1: __b2_from___b3: __b2_from___b4: - // [147] phi (signed byte) printf_schar::value#5 = (signed byte) printf_schar::value#0 [phi:printf_schar::@1/printf_schar::@3/printf_schar::@4->printf_schar::@2#0] -- register_copy + // [151] phi (signed byte) printf_schar::value#5 = (signed byte) printf_schar::value#0 [phi:printf_schar::@1/printf_schar::@3/printf_schar::@4->printf_schar::@2#0] -- register_copy jmp __b2 // printf_schar::@2 __b2: - // [148] (byte) uctoa::value#1 ← (byte)(signed byte) printf_schar::value#5 -- vbuz1=vbuz2 + // [152] (byte) uctoa::value#1 ← (byte)(signed byte) printf_schar::value#5 -- vbuz1=vbuz2 lda.z value sta.z uctoa.value - // [149] (byte) uctoa::radix#0 ← (byte) printf_schar::format_radix#2 -- vbuz1=vbuz2 + // [153] (byte) uctoa::radix#0 ← (byte) printf_schar::format_radix#2 -- vbuz1=vbuz2 lda.z format_radix sta.z uctoa.radix - // [150] call uctoa + // [154] call uctoa jsr uctoa jmp __b5 // printf_schar::@5 __b5: - // [151] (byte) printf_number_buffer::buffer_sign#1 ← *((byte*)&(struct printf_buffer_number) printf_buffer) -- vbuz1=_deref_pbuc1 + // [155] (byte) printf_number_buffer::buffer_sign#1 ← *((byte*)&(struct printf_buffer_number) printf_buffer) -- vbuz1=_deref_pbuc1 lda printf_buffer sta.z printf_number_buffer.buffer_sign - // [152] (byte) printf_number_buffer::format_zero_padding#1 ← (byte) printf_schar::format_zero_padding#2 -- vbuz1=vbuz2 + // [156] (byte) printf_number_buffer::format_zero_padding#1 ← (byte) printf_schar::format_zero_padding#2 -- vbuz1=vbuz2 lda.z format_zero_padding sta.z printf_number_buffer.format_zero_padding - // [153] call printf_number_buffer + // [157] call printf_number_buffer // Print using format // [32] phi from printf_schar::@5 to printf_number_buffer [phi:printf_schar::@5->printf_number_buffer] printf_number_buffer_from___b5: @@ -5009,17 +5100,17 @@ printf_schar: { jmp __breturn // printf_schar::@return __breturn: - // [154] return + // [158] return rts // printf_schar::@1 __b1: - // [155] (signed byte) printf_schar::value#0 ← - (signed byte) printf_schar::value#3 -- vbsz1=_neg_vbsz1 + // [159] (signed byte) printf_schar::value#0 ← - (signed byte) printf_schar::value#3 -- vbsz1=_neg_vbsz1 lda.z value eor #$ff clc adc #1 sta.z value - // [156] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) '-' -- _deref_pbuc1=vbuc2 + // [160] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) '-' -- _deref_pbuc1=vbuc2 lda #'-' sta printf_buffer jmp __b2_from___b1 @@ -5030,144 +5121,144 @@ printf_schar: { // - value : The number to be converted to RADIX // - buffer : receives the string representing the number and zero-termination. // - radix : The radix to convert the number to (from the enum RADIX) -// uctoa(byte zp($30) value, byte* zp($50) buffer, byte zp($4e) radix) +// uctoa(byte zp($30) value, byte* zp($51) buffer, byte zp($4f) radix) uctoa: { - .label __4 = $4f - .label digit_value = $52 - .label buffer = $50 + .label __4 = $50 + .label digit_value = $53 + .label buffer = $51 .label digit = $2f .label value = $30 .label buffer_1 = $32 - .label radix = $4e + .label radix = $4f .label started = $31 .label max_digits = $2c .label digit_values = $2d - // [157] if((byte) uctoa::radix#0==(const byte) DECIMAL) goto uctoa::@1 -- vbuz1_eq_vbuc1_then_la1 + // [161] if((byte) uctoa::radix#0==(const byte) DECIMAL) goto uctoa::@1 -- vbuz1_eq_vbuc1_then_la1 lda #DECIMAL cmp.z radix beq __b1_from_uctoa jmp __b2 // uctoa::@2 __b2: - // [158] if((byte) uctoa::radix#0==(const byte) HEXADECIMAL) goto uctoa::@1 -- vbuz1_eq_vbuc1_then_la1 + // [162] if((byte) uctoa::radix#0==(const byte) HEXADECIMAL) goto uctoa::@1 -- vbuz1_eq_vbuc1_then_la1 lda #HEXADECIMAL cmp.z radix beq __b1_from___b2 jmp __b3 // uctoa::@3 __b3: - // [159] if((byte) uctoa::radix#0==(const byte) OCTAL) goto uctoa::@1 -- vbuz1_eq_vbuc1_then_la1 + // [163] if((byte) uctoa::radix#0==(const byte) OCTAL) goto uctoa::@1 -- vbuz1_eq_vbuc1_then_la1 lda #OCTAL cmp.z radix beq __b1_from___b3 jmp __b4 // uctoa::@4 __b4: - // [160] if((byte) uctoa::radix#0==(const byte) BINARY) goto uctoa::@1 -- vbuz1_eq_vbuc1_then_la1 + // [164] if((byte) uctoa::radix#0==(const byte) BINARY) goto uctoa::@1 -- vbuz1_eq_vbuc1_then_la1 lda #BINARY cmp.z radix beq __b1_from___b4 jmp __b5 // uctoa::@5 __b5: - // [161] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS) ← (byte) 'e' -- _deref_pbuc1=vbuc2 + // [165] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS) ← (byte) 'e' -- _deref_pbuc1=vbuc2 // Unknown radix lda #'e' sta printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - // [162] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(byte) 1) ← (byte) 'r' -- _deref_pbuc1=vbuc2 + // [166] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(byte) 1) ← (byte) 'r' -- _deref_pbuc1=vbuc2 lda #'r' sta printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1 - // [163] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(byte) 2) ← (byte) 'r' -- _deref_pbuc1=vbuc2 + // [167] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(byte) 2) ← (byte) 'r' -- _deref_pbuc1=vbuc2 lda #'r' sta printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2 - // [164] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(byte) 3) ← (byte) 0 -- _deref_pbuc1=vbuc2 + // [168] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(byte) 3) ← (byte) 0 -- _deref_pbuc1=vbuc2 lda #0 sta printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+3 jmp __breturn // uctoa::@return __breturn: - // [165] return + // [169] return rts - // [166] phi from uctoa to uctoa::@1 [phi:uctoa->uctoa::@1] + // [170] phi from uctoa to uctoa::@1 [phi:uctoa->uctoa::@1] __b1_from_uctoa: - // [166] phi (byte*) uctoa::digit_values#8 = (const byte*) RADIX_DECIMAL_VALUES_CHAR [phi:uctoa->uctoa::@1#0] -- pbuz1=pbuc1 + // [170] phi (byte*) uctoa::digit_values#8 = (const byte*) RADIX_DECIMAL_VALUES_CHAR [phi:uctoa->uctoa::@1#0] -- pbuz1=pbuc1 lda #RADIX_DECIMAL_VALUES_CHAR sta.z digit_values+1 - // [166] phi (byte) uctoa::max_digits#7 = (byte) 3 [phi:uctoa->uctoa::@1#1] -- vbuz1=vbuc1 + // [170] phi (byte) uctoa::max_digits#7 = (byte) 3 [phi:uctoa->uctoa::@1#1] -- vbuz1=vbuc1 lda #3 sta.z max_digits jmp __b1 - // [166] phi from uctoa::@2 to uctoa::@1 [phi:uctoa::@2->uctoa::@1] + // [170] phi from uctoa::@2 to uctoa::@1 [phi:uctoa::@2->uctoa::@1] __b1_from___b2: - // [166] phi (byte*) uctoa::digit_values#8 = (const byte*) RADIX_HEXADECIMAL_VALUES_CHAR [phi:uctoa::@2->uctoa::@1#0] -- pbuz1=pbuc1 + // [170] phi (byte*) uctoa::digit_values#8 = (const byte*) RADIX_HEXADECIMAL_VALUES_CHAR [phi:uctoa::@2->uctoa::@1#0] -- pbuz1=pbuc1 lda #RADIX_HEXADECIMAL_VALUES_CHAR sta.z digit_values+1 - // [166] phi (byte) uctoa::max_digits#7 = (byte) 2 [phi:uctoa::@2->uctoa::@1#1] -- vbuz1=vbuc1 + // [170] phi (byte) uctoa::max_digits#7 = (byte) 2 [phi:uctoa::@2->uctoa::@1#1] -- vbuz1=vbuc1 lda #2 sta.z max_digits jmp __b1 - // [166] phi from uctoa::@3 to uctoa::@1 [phi:uctoa::@3->uctoa::@1] + // [170] phi from uctoa::@3 to uctoa::@1 [phi:uctoa::@3->uctoa::@1] __b1_from___b3: - // [166] phi (byte*) uctoa::digit_values#8 = (const byte*) RADIX_OCTAL_VALUES_CHAR [phi:uctoa::@3->uctoa::@1#0] -- pbuz1=pbuc1 + // [170] phi (byte*) uctoa::digit_values#8 = (const byte*) RADIX_OCTAL_VALUES_CHAR [phi:uctoa::@3->uctoa::@1#0] -- pbuz1=pbuc1 lda #RADIX_OCTAL_VALUES_CHAR sta.z digit_values+1 - // [166] phi (byte) uctoa::max_digits#7 = (byte) 3 [phi:uctoa::@3->uctoa::@1#1] -- vbuz1=vbuc1 + // [170] phi (byte) uctoa::max_digits#7 = (byte) 3 [phi:uctoa::@3->uctoa::@1#1] -- vbuz1=vbuc1 lda #3 sta.z max_digits jmp __b1 - // [166] phi from uctoa::@4 to uctoa::@1 [phi:uctoa::@4->uctoa::@1] + // [170] phi from uctoa::@4 to uctoa::@1 [phi:uctoa::@4->uctoa::@1] __b1_from___b4: - // [166] phi (byte*) uctoa::digit_values#8 = (const byte*) RADIX_BINARY_VALUES_CHAR [phi:uctoa::@4->uctoa::@1#0] -- pbuz1=pbuc1 + // [170] phi (byte*) uctoa::digit_values#8 = (const byte*) RADIX_BINARY_VALUES_CHAR [phi:uctoa::@4->uctoa::@1#0] -- pbuz1=pbuc1 lda #RADIX_BINARY_VALUES_CHAR sta.z digit_values+1 - // [166] phi (byte) uctoa::max_digits#7 = (byte) 8 [phi:uctoa::@4->uctoa::@1#1] -- vbuz1=vbuc1 + // [170] phi (byte) uctoa::max_digits#7 = (byte) 8 [phi:uctoa::@4->uctoa::@1#1] -- vbuz1=vbuc1 lda #8 sta.z max_digits jmp __b1 // uctoa::@1 __b1: - // [167] phi from uctoa::@1 to uctoa::@6 [phi:uctoa::@1->uctoa::@6] + // [171] phi from uctoa::@1 to uctoa::@6 [phi:uctoa::@1->uctoa::@6] __b6_from___b1: - // [167] phi (byte*) uctoa::buffer#11 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:uctoa::@1->uctoa::@6#0] -- pbuz1=pbuc1 + // [171] phi (byte*) uctoa::buffer#11 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:uctoa::@1->uctoa::@6#0] -- pbuz1=pbuc1 lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS sta.z buffer_1+1 - // [167] phi (byte) uctoa::started#2 = (byte) 0 [phi:uctoa::@1->uctoa::@6#1] -- vbuz1=vbuc1 + // [171] phi (byte) uctoa::started#2 = (byte) 0 [phi:uctoa::@1->uctoa::@6#1] -- vbuz1=vbuc1 lda #0 sta.z started - // [167] phi (byte) uctoa::value#2 = (byte) uctoa::value#1 [phi:uctoa::@1->uctoa::@6#2] -- register_copy - // [167] phi (byte) uctoa::digit#2 = (byte) 0 [phi:uctoa::@1->uctoa::@6#3] -- vbuz1=vbuc1 + // [171] phi (byte) uctoa::value#2 = (byte) uctoa::value#1 [phi:uctoa::@1->uctoa::@6#2] -- register_copy + // [171] phi (byte) uctoa::digit#2 = (byte) 0 [phi:uctoa::@1->uctoa::@6#3] -- vbuz1=vbuc1 lda #0 sta.z digit jmp __b6 // uctoa::@6 __b6: - // [168] (byte~) uctoa::$4 ← (byte) uctoa::max_digits#7 - (byte) 1 -- vbuz1=vbuz2_minus_1 + // [172] (byte~) uctoa::$4 ← (byte) uctoa::max_digits#7 - (byte) 1 -- vbuz1=vbuz2_minus_1 ldx.z max_digits dex stx.z __4 - // [169] if((byte) uctoa::digit#2<(byte~) uctoa::$4) goto uctoa::@7 -- vbuz1_lt_vbuz2_then_la1 + // [173] if((byte) uctoa::digit#2<(byte~) uctoa::$4) goto uctoa::@7 -- vbuz1_lt_vbuz2_then_la1 lda.z digit cmp.z __4 bcc __b7 jmp __b8 // uctoa::@8 __b8: - // [170] *((byte*) uctoa::buffer#11) ← *((const byte*) DIGITS + (byte) uctoa::value#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 + // [174] *((byte*) uctoa::buffer#11) ← *((const byte*) DIGITS + (byte) uctoa::value#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 ldy.z value lda DIGITS,y ldy #0 sta (buffer_1),y - // [171] (byte*) uctoa::buffer#3 ← ++ (byte*) uctoa::buffer#11 -- pbuz1=_inc_pbuz2 + // [175] (byte*) uctoa::buffer#3 ← ++ (byte*) uctoa::buffer#11 -- pbuz1=_inc_pbuz2 lda.z buffer_1 clc adc #1 @@ -5175,83 +5266,83 @@ uctoa: { lda.z buffer_1+1 adc #0 sta.z buffer+1 - // [172] *((byte*) uctoa::buffer#3) ← (byte) 0 -- _deref_pbuz1=vbuc1 + // [176] *((byte*) uctoa::buffer#3) ← (byte) 0 -- _deref_pbuz1=vbuc1 lda #0 ldy #0 sta (buffer),y jmp __breturn // uctoa::@7 __b7: - // [173] (byte) uctoa::digit_value#0 ← *((byte*) uctoa::digit_values#8 + (byte) uctoa::digit#2) -- vbuz1=pbuz2_derefidx_vbuz3 + // [177] (byte) uctoa::digit_value#0 ← *((byte*) uctoa::digit_values#8 + (byte) uctoa::digit#2) -- vbuz1=pbuz2_derefidx_vbuz3 ldy.z digit lda (digit_values),y sta.z digit_value - // [174] if((byte) 0!=(byte) uctoa::started#2) goto uctoa::@10 -- vbuc1_neq_vbuz1_then_la1 + // [178] if((byte) 0!=(byte) uctoa::started#2) goto uctoa::@10 -- vbuc1_neq_vbuz1_then_la1 lda #0 cmp.z started bne __b10 jmp __b12 // uctoa::@12 __b12: - // [175] if((byte) uctoa::value#2>=(byte) uctoa::digit_value#0) goto uctoa::@10 -- vbuz1_ge_vbuz2_then_la1 + // [179] if((byte) uctoa::value#2>=(byte) uctoa::digit_value#0) goto uctoa::@10 -- vbuz1_ge_vbuz2_then_la1 lda.z value cmp.z digit_value bcs __b10 - // [176] phi from uctoa::@12 to uctoa::@9 [phi:uctoa::@12->uctoa::@9] + // [180] phi from uctoa::@12 to uctoa::@9 [phi:uctoa::@12->uctoa::@9] __b9_from___b12: - // [176] phi (byte*) uctoa::buffer#14 = (byte*) uctoa::buffer#11 [phi:uctoa::@12->uctoa::@9#0] -- register_copy - // [176] phi (byte) uctoa::started#4 = (byte) uctoa::started#2 [phi:uctoa::@12->uctoa::@9#1] -- register_copy - // [176] phi (byte) uctoa::value#6 = (byte) uctoa::value#2 [phi:uctoa::@12->uctoa::@9#2] -- register_copy + // [180] phi (byte*) uctoa::buffer#14 = (byte*) uctoa::buffer#11 [phi:uctoa::@12->uctoa::@9#0] -- register_copy + // [180] phi (byte) uctoa::started#4 = (byte) uctoa::started#2 [phi:uctoa::@12->uctoa::@9#1] -- register_copy + // [180] phi (byte) uctoa::value#6 = (byte) uctoa::value#2 [phi:uctoa::@12->uctoa::@9#2] -- register_copy jmp __b9 // uctoa::@9 __b9: - // [177] (byte) uctoa::digit#1 ← ++ (byte) uctoa::digit#2 -- vbuz1=_inc_vbuz1 + // [181] (byte) uctoa::digit#1 ← ++ (byte) uctoa::digit#2 -- vbuz1=_inc_vbuz1 inc.z digit - // [167] phi from uctoa::@9 to uctoa::@6 [phi:uctoa::@9->uctoa::@6] + // [171] phi from uctoa::@9 to uctoa::@6 [phi:uctoa::@9->uctoa::@6] __b6_from___b9: - // [167] phi (byte*) uctoa::buffer#11 = (byte*) uctoa::buffer#14 [phi:uctoa::@9->uctoa::@6#0] -- register_copy - // [167] phi (byte) uctoa::started#2 = (byte) uctoa::started#4 [phi:uctoa::@9->uctoa::@6#1] -- register_copy - // [167] phi (byte) uctoa::value#2 = (byte) uctoa::value#6 [phi:uctoa::@9->uctoa::@6#2] -- register_copy - // [167] phi (byte) uctoa::digit#2 = (byte) uctoa::digit#1 [phi:uctoa::@9->uctoa::@6#3] -- register_copy + // [171] phi (byte*) uctoa::buffer#11 = (byte*) uctoa::buffer#14 [phi:uctoa::@9->uctoa::@6#0] -- register_copy + // [171] phi (byte) uctoa::started#2 = (byte) uctoa::started#4 [phi:uctoa::@9->uctoa::@6#1] -- register_copy + // [171] phi (byte) uctoa::value#2 = (byte) uctoa::value#6 [phi:uctoa::@9->uctoa::@6#2] -- register_copy + // [171] phi (byte) uctoa::digit#2 = (byte) uctoa::digit#1 [phi:uctoa::@9->uctoa::@6#3] -- register_copy jmp __b6 // uctoa::@10 __b10: - // [178] (byte*) uctoa_append::buffer#0 ← (byte*) uctoa::buffer#11 -- pbuz1=pbuz2 + // [182] (byte*) uctoa_append::buffer#0 ← (byte*) uctoa::buffer#11 -- pbuz1=pbuz2 lda.z buffer_1 sta.z uctoa_append.buffer lda.z buffer_1+1 sta.z uctoa_append.buffer+1 - // [179] (byte) uctoa_append::value#0 ← (byte) uctoa::value#2 -- vbuz1=vbuz2 + // [183] (byte) uctoa_append::value#0 ← (byte) uctoa::value#2 -- vbuz1=vbuz2 lda.z value sta.z uctoa_append.value - // [180] (byte) uctoa_append::sub#0 ← (byte) uctoa::digit_value#0 -- vbuz1=vbuz2 + // [184] (byte) uctoa_append::sub#0 ← (byte) uctoa::digit_value#0 -- vbuz1=vbuz2 lda.z digit_value sta.z uctoa_append.sub - // [181] call uctoa_append - // [185] phi from uctoa::@10 to uctoa_append [phi:uctoa::@10->uctoa_append] + // [185] call uctoa_append + // [189] phi from uctoa::@10 to uctoa_append [phi:uctoa::@10->uctoa_append] uctoa_append_from___b10: jsr uctoa_append - // [182] (byte) uctoa_append::return#0 ← (byte) uctoa_append::value#2 -- vbuz1=vbuz2 + // [186] (byte) uctoa_append::return#0 ← (byte) uctoa_append::value#2 -- vbuz1=vbuz2 lda.z uctoa_append.value sta.z uctoa_append.return jmp __b11 // uctoa::@11 __b11: - // [183] (byte) uctoa::value#0 ← (byte) uctoa_append::return#0 -- vbuz1=vbuz2 + // [187] (byte) uctoa::value#0 ← (byte) uctoa_append::return#0 -- vbuz1=vbuz2 lda.z uctoa_append.return sta.z value - // [184] (byte*) uctoa::buffer#4 ← ++ (byte*) uctoa::buffer#11 -- pbuz1=_inc_pbuz1 + // [188] (byte*) uctoa::buffer#4 ← ++ (byte*) uctoa::buffer#11 -- pbuz1=_inc_pbuz1 inc.z buffer_1 bne !+ inc.z buffer_1+1 !: - // [176] phi from uctoa::@11 to uctoa::@9 [phi:uctoa::@11->uctoa::@9] + // [180] phi from uctoa::@11 to uctoa::@9 [phi:uctoa::@11->uctoa::@9] __b9_from___b11: - // [176] phi (byte*) uctoa::buffer#14 = (byte*) uctoa::buffer#4 [phi:uctoa::@11->uctoa::@9#0] -- register_copy - // [176] phi (byte) uctoa::started#4 = (byte) 1 [phi:uctoa::@11->uctoa::@9#1] -- vbuz1=vbuc1 + // [180] phi (byte*) uctoa::buffer#14 = (byte*) uctoa::buffer#4 [phi:uctoa::@11->uctoa::@9#0] -- register_copy + // [180] phi (byte) uctoa::started#4 = (byte) 1 [phi:uctoa::@11->uctoa::@9#1] -- vbuz1=vbuc1 lda #1 sta.z started - // [176] phi (byte) uctoa::value#6 = (byte) uctoa::value#0 [phi:uctoa::@11->uctoa::@9#2] -- register_copy + // [180] phi (byte) uctoa::value#6 = (byte) uctoa::value#0 [phi:uctoa::@11->uctoa::@9#2] -- register_copy jmp __b9 } // uctoa_append @@ -5263,30 +5354,30 @@ uctoa: { // - sub : the value of a '1' in the digit. Subtracted continually while the digit is increased. // (For decimal the subs used are 10000, 1000, 100, 10, 1) // returns : the value reduced by sub * digit so that it is less than sub. -// uctoa_append(byte* zp($53) buffer, byte zp($34) value, byte zp($55) sub) +// uctoa_append(byte* zp($54) buffer, byte zp($34) value, byte zp($56) sub) uctoa_append: { - .label buffer = $53 + .label buffer = $54 .label value = $34 - .label sub = $55 - .label return = $56 + .label sub = $56 + .label return = $57 .label digit = $35 - // [186] phi from uctoa_append to uctoa_append::@1 [phi:uctoa_append->uctoa_append::@1] + // [190] phi from uctoa_append to uctoa_append::@1 [phi:uctoa_append->uctoa_append::@1] __b1_from_uctoa_append: - // [186] phi (byte) uctoa_append::digit#2 = (byte) 0 [phi:uctoa_append->uctoa_append::@1#0] -- vbuz1=vbuc1 + // [190] phi (byte) uctoa_append::digit#2 = (byte) 0 [phi:uctoa_append->uctoa_append::@1#0] -- vbuz1=vbuc1 lda #0 sta.z digit - // [186] phi (byte) uctoa_append::value#2 = (byte) uctoa_append::value#0 [phi:uctoa_append->uctoa_append::@1#1] -- register_copy + // [190] phi (byte) uctoa_append::value#2 = (byte) uctoa_append::value#0 [phi:uctoa_append->uctoa_append::@1#1] -- register_copy jmp __b1 // uctoa_append::@1 __b1: - // [187] if((byte) uctoa_append::value#2>=(byte) uctoa_append::sub#0) goto uctoa_append::@2 -- vbuz1_ge_vbuz2_then_la1 + // [191] if((byte) uctoa_append::value#2>=(byte) uctoa_append::sub#0) goto uctoa_append::@2 -- vbuz1_ge_vbuz2_then_la1 lda.z value cmp.z sub bcs __b2 jmp __b3 // uctoa_append::@3 __b3: - // [188] *((byte*) uctoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) uctoa_append::digit#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 + // [192] *((byte*) uctoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) uctoa_append::digit#2) -- _deref_pbuz1=pbuc1_derefidx_vbuz2 ldy.z digit lda DIGITS,y ldy #0 @@ -5294,27 +5385,27 @@ uctoa_append: { jmp __breturn // uctoa_append::@return __breturn: - // [189] return + // [193] return rts // uctoa_append::@2 __b2: - // [190] (byte) uctoa_append::digit#1 ← ++ (byte) uctoa_append::digit#2 -- vbuz1=_inc_vbuz1 + // [194] (byte) uctoa_append::digit#1 ← ++ (byte) uctoa_append::digit#2 -- vbuz1=_inc_vbuz1 inc.z digit - // [191] (byte) uctoa_append::value#1 ← (byte) uctoa_append::value#2 - (byte) uctoa_append::sub#0 -- vbuz1=vbuz1_minus_vbuz2 + // [195] (byte) uctoa_append::value#1 ← (byte) uctoa_append::value#2 - (byte) uctoa_append::sub#0 -- vbuz1=vbuz1_minus_vbuz2 lda.z value sec sbc.z sub sta.z value - // [186] phi from uctoa_append::@2 to uctoa_append::@1 [phi:uctoa_append::@2->uctoa_append::@1] + // [190] phi from uctoa_append::@2 to uctoa_append::@1 [phi:uctoa_append::@2->uctoa_append::@1] __b1_from___b2: - // [186] phi (byte) uctoa_append::digit#2 = (byte) uctoa_append::digit#1 [phi:uctoa_append::@2->uctoa_append::@1#0] -- register_copy - // [186] phi (byte) uctoa_append::value#2 = (byte) uctoa_append::value#1 [phi:uctoa_append::@2->uctoa_append::@1#1] -- register_copy + // [190] phi (byte) uctoa_append::digit#2 = (byte) uctoa_append::digit#1 [phi:uctoa_append::@2->uctoa_append::@1#0] -- register_copy + // [190] phi (byte) uctoa_append::value#2 = (byte) uctoa_append::value#1 [phi:uctoa_append::@2->uctoa_append::@1#1] -- register_copy jmp __b1 } // printf_cls // Clear the screen. Also resets current line/char cursor. printf_cls: { - // [193] call memset + // [197] call memset // [85] phi from printf_cls to memset [phi:printf_cls->memset] memset_from_printf_cls: // [85] phi (byte) memset::c#4 = (byte) ' ' [phi:printf_cls->memset#0] -- vbuz1=vbuc1 @@ -5334,12 +5425,12 @@ printf_cls: { jmp __b1 // printf_cls::@1 __b1: - // [194] (byte*) printf_line_cursor ← (const byte*) printf_screen -- pbuz1=pbuc1 + // [198] (byte*) printf_line_cursor ← (const byte*) printf_screen -- pbuz1=pbuc1 lda #printf_screen sta.z printf_line_cursor+1 - // [195] (byte*) printf_char_cursor ← (byte*) printf_line_cursor -- pbuz1=pbuz2 + // [199] (byte*) printf_char_cursor ← (byte*) printf_line_cursor -- pbuz1=pbuz2 lda.z printf_line_cursor sta.z printf_char_cursor lda.z printf_line_cursor+1 @@ -5347,7 +5438,7 @@ printf_cls: { jmp __breturn // printf_cls::@return __breturn: - // [196] return + // [200] return rts } // File Data @@ -5369,22 +5460,22 @@ printf_cls: { REGISTER UPLIFT POTENTIAL REGISTERS Statement [1] (byte*) printf_line_cursor ← (byte*) 1024 [ printf_buffer ] ( [ printf_buffer ] { } ) always clobbers reg byte a Statement [2] (byte*) printf_char_cursor ← (byte*) 1024 [ printf_buffer ] ( [ printf_buffer ] { } ) always clobbers reg byte a -Statement [22] (byte*) printf_line_cursor ← (byte*) printf_line_cursor + (byte) $28 [ printf_line_cursor printf_char_cursor ] ( main:4::printf_ln:11 [ printf_buffer printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:15 [ printf_buffer printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:19 [ printf_line_cursor printf_char_cursor ] { } ) always clobbers reg byte a -Statement [23] if((byte*) printf_line_cursor<(byte*) printf_char_cursor) goto printf_ln::@1 [ printf_line_cursor printf_char_cursor ] ( main:4::printf_ln:11 [ printf_buffer printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:15 [ printf_buffer printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:19 [ printf_line_cursor printf_char_cursor ] { } ) always clobbers reg byte a -Statement [24] (byte*) printf_char_cursor ← (byte*) printf_line_cursor [ printf_line_cursor printf_char_cursor ] ( main:4::printf_ln:11 [ printf_buffer printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:15 [ printf_buffer printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:19 [ printf_line_cursor printf_char_cursor ] { } ) always clobbers reg byte a -Statement [27] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 [ printf_line_cursor printf_char_cursor printf_buffer ] ( main:4::printf_uint:17 [ printf_line_cursor printf_char_cursor printf_buffer ] { } ) always clobbers reg byte a -Statement [34] (byte*) strlen::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::str#1 ] ( main:4::printf_uint:17::printf_number_buffer:30 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::str#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:4::printf_schar:9::printf_number_buffer:153 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::str#1 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:4::printf_schar:13::printf_number_buffer:153 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::str#1 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:2 [ printf_number_buffer::format_min_length#2 ] +Statement [22] (byte*) printf_line_cursor ← (byte*) printf_line_cursor + (byte) $28 [ printf_line_cursor printf_char_cursor ] ( main:4::printf_ln:11 [ printf_buffer printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:15 [ printf_buffer printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:19 [ printf_line_cursor printf_char_cursor ] { } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_ln:111 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } main:4::printf_schar:9::printf_number_buffer:157::printf_str:59::printf_ln:111 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } main:4::printf_schar:13::printf_number_buffer:157::printf_str:59::printf_ln:111 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:3 [ printf_number_buffer::format_justify_left#10 ] Removing always clobbered register reg byte a as potential for zp[1]:4 [ printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_zero_padding#1 ] -Removing always clobbered register reg byte a as potential for zp[1]:7 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] -Statement [36] (word) strlen::return#2 ← (word) strlen::len#2 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::return#2 ] ( main:4::printf_uint:17::printf_number_buffer:30 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:4::printf_schar:9::printf_number_buffer:153 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::return#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:4::printf_schar:13::printf_number_buffer:153 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::return#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a -Statement [37] (word~) printf_number_buffer::$18 ← (word) strlen::return#2 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::$18 ] ( main:4::printf_uint:17::printf_number_buffer:30 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::$18 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:4::printf_schar:9::printf_number_buffer:153 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::$18 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:4::printf_schar:13::printf_number_buffer:153 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::$18 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [38] (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$18 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::len#0 ] ( main:4::printf_uint:17::printf_number_buffer:30 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:4::printf_schar:9::printf_number_buffer:153 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::len#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:4::printf_schar:13::printf_number_buffer:153 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::len#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [42] (signed byte) printf_number_buffer::padding#1 ← (signed byte)(byte) printf_number_buffer::format_min_length#2 - (signed byte) printf_number_buffer::len#2 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#1 ] ( main:4::printf_uint:17::printf_number_buffer:30 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:4::printf_schar:9::printf_number_buffer:153 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:4::printf_schar:13::printf_number_buffer:153 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [58] (byte*) printf_str::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#1 ] ( main:4::printf_uint:17::printf_number_buffer:30 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } main:4::printf_schar:9::printf_number_buffer:153 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#1 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } main:4::printf_schar:13::printf_number_buffer:153 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#1 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:9 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] -Statement [74] *((byte*) printf_char_cursor) ← (byte) printf_char::ch#3 [ printf_line_cursor printf_char_cursor ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:153::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:153::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:106 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:9::printf_number_buffer:153::printf_str:59::printf_char:106 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:13::printf_number_buffer:153::printf_str:59::printf_char:106 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } ) always clobbers reg byte y +Statement [23] if((byte*) printf_line_cursor<(byte*) printf_char_cursor) goto printf_ln::@1 [ printf_line_cursor printf_char_cursor ] ( main:4::printf_ln:11 [ printf_buffer printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:15 [ printf_buffer printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:19 [ printf_line_cursor printf_char_cursor ] { } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_ln:111 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } main:4::printf_schar:9::printf_number_buffer:157::printf_str:59::printf_ln:111 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } main:4::printf_schar:13::printf_number_buffer:157::printf_str:59::printf_ln:111 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a +Statement [24] (byte*) printf_char_cursor ← (byte*) printf_line_cursor [ printf_line_cursor printf_char_cursor ] ( main:4::printf_ln:11 [ printf_buffer printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:15 [ printf_buffer printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:19 [ printf_line_cursor printf_char_cursor ] { } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_ln:111 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } main:4::printf_schar:9::printf_number_buffer:157::printf_str:59::printf_ln:111 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } main:4::printf_schar:13::printf_number_buffer:157::printf_str:59::printf_ln:111 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a +Statement [27] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 [ printf_line_cursor printf_char_cursor printf_buffer ] ( main:4::printf_uint:17 [ printf_line_cursor printf_char_cursor printf_buffer ] { } ) always clobbers reg byte a +Statement [34] (byte*) strlen::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::str#1 ] ( main:4::printf_uint:17::printf_number_buffer:30 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::str#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:4::printf_schar:9::printf_number_buffer:157 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::str#1 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:4::printf_schar:13::printf_number_buffer:157 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::str#1 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:2 [ printf_number_buffer::format_min_length#2 ] +Removing always clobbered register reg byte a as potential for zp[1]:7 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] +Statement [36] (word) strlen::return#2 ← (word) strlen::len#2 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::return#2 ] ( main:4::printf_uint:17::printf_number_buffer:30 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:4::printf_schar:9::printf_number_buffer:157 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::return#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:4::printf_schar:13::printf_number_buffer:157 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::return#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a +Statement [37] (word~) printf_number_buffer::$18 ← (word) strlen::return#2 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::$18 ] ( main:4::printf_uint:17::printf_number_buffer:30 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::$18 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:4::printf_schar:9::printf_number_buffer:157 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::$18 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:4::printf_schar:13::printf_number_buffer:157 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::$18 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [38] (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$18 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::len#0 ] ( main:4::printf_uint:17::printf_number_buffer:30 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:4::printf_schar:9::printf_number_buffer:157 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::len#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:4::printf_schar:13::printf_number_buffer:157 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::len#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [42] (signed byte) printf_number_buffer::padding#1 ← (signed byte)(byte) printf_number_buffer::format_min_length#2 - (signed byte) printf_number_buffer::len#2 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#1 ] ( main:4::printf_uint:17::printf_number_buffer:30 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:4::printf_schar:9::printf_number_buffer:157 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:4::printf_schar:13::printf_number_buffer:157 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [58] (byte*) printf_str::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#1 ] ( main:4::printf_uint:17::printf_number_buffer:30 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } main:4::printf_schar:9::printf_number_buffer:157 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#1 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } main:4::printf_schar:13::printf_number_buffer:157 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#1 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a +Statement [74] *((byte*) printf_char_cursor) ← (byte) printf_char::ch#3 [ printf_line_cursor printf_char_cursor ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:157::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:109 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_str:59::printf_char:109 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:13::printf_number_buffer:157::printf_str:59::printf_char:109 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } ) always clobbers reg byte y Removing always clobbered register reg byte y as potential for zp[1]:3 [ printf_number_buffer::format_justify_left#10 ] Removing always clobbered register reg byte y as potential for zp[1]:4 [ printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_zero_padding#1 ] Removing always clobbered register reg byte y as potential for zp[1]:9 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] @@ -5392,198 +5483,195 @@ Removing always clobbered register reg byte y as potential for zp[1]:7 [ printf_ Removing always clobbered register reg byte y as potential for zp[1]:10 [ printf_padding::length#4 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] Removing always clobbered register reg byte y as potential for zp[1]:11 [ printf_padding::pad#5 ] Removing always clobbered register reg byte y as potential for zp[1]:12 [ printf_padding::i#2 printf_padding::i#1 ] -Statement [76] if((byte*) printf_char_cursor!=(const byte*) printf_screen+(word)(number) $28*(number) $19) goto printf_char::@return [ printf_line_cursor printf_char_cursor ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:153::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:153::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:106 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:9::printf_number_buffer:153::printf_str:59::printf_char:106 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:13::printf_number_buffer:153::printf_str:59::printf_char:106 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } ) always clobbers reg byte a +Statement [76] if((byte*) printf_char_cursor<(const byte*) printf_screen+(word)(number) $28*(number) $19) goto printf_char::@return [ printf_line_cursor printf_char_cursor ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:157::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:109 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_str:59::printf_char:109 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:13::printf_number_buffer:157::printf_str:59::printf_char:109 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:10 [ printf_padding::length#4 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] Removing always clobbered register reg byte a as potential for zp[1]:11 [ printf_padding::pad#5 ] Removing always clobbered register reg byte a as potential for zp[1]:12 [ printf_padding::i#2 printf_padding::i#1 ] -Statement [81] (byte*~) printf_char::$8 ← (byte*) printf_char_cursor - (byte) $28 [ printf_char::$8 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char::$8 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:153::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:153::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:106 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char::$8 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:9::printf_number_buffer:153::printf_str:59::printf_char:106 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:13::printf_number_buffer:153::printf_str:59::printf_char:106 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } ) always clobbers reg byte a -Statement [82] (byte*) printf_char_cursor ← (byte*~) printf_char::$8 [ printf_char_cursor ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:153::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:153::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:106 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:9::printf_number_buffer:153::printf_str:59::printf_char:106 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:13::printf_number_buffer:153::printf_str:59::printf_char:106 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } ) always clobbers reg byte a -Statement [83] (byte*) printf_line_cursor ← (byte*) printf_char_cursor [ printf_line_cursor printf_char_cursor ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:153::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:153::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:106 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:9::printf_number_buffer:153::printf_str:59::printf_char:106 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:13::printf_number_buffer:153::printf_str:59::printf_char:106 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } ) always clobbers reg byte a -Statement [86] if((word) memset::num#2<=(byte) 0) goto memset::@return [ memset::num#2 memset::str#3 memset::c#4 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:153::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:153::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:106::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:9::printf_number_buffer:153::printf_str:59::printf_char:106::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:13::printf_number_buffer:153::printf_str:59::printf_char:106::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_cls:7::memset:193 [ printf_buffer memset::num#2 memset::str#3 memset::c#4 ] { } ) always clobbers reg byte a +Statement [81] (byte*~) printf_char::$8 ← (byte*) printf_char_cursor - (byte) $28 [ printf_char::$8 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char::$8 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:157::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:109 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char::$8 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_str:59::printf_char:109 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:13::printf_number_buffer:157::printf_str:59::printf_char:109 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } ) always clobbers reg byte a +Statement [82] (byte*) printf_char_cursor ← (byte*~) printf_char::$8 [ printf_char_cursor ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:157::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:109 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_str:59::printf_char:109 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:13::printf_number_buffer:157::printf_str:59::printf_char:109 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } ) always clobbers reg byte a +Statement [83] (byte*) printf_line_cursor ← (byte*) printf_char_cursor [ printf_line_cursor printf_char_cursor ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:157::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:109 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_str:59::printf_char:109 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:13::printf_number_buffer:157::printf_str:59::printf_char:109 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } ) always clobbers reg byte a +Statement [86] if((word) memset::num#2<=(byte) 0) goto memset::@return [ memset::num#2 memset::str#3 memset::c#4 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:157::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:109::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_str:59::printf_char:109::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:13::printf_number_buffer:157::printf_str:59::printf_char:109::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_cls:7::memset:197 [ printf_buffer memset::num#2 memset::str#3 memset::c#4 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:18 [ memset::c#4 ] -Statement [87] (byte*) memset::end#0 ← (byte*)(void*) memset::str#3 + (word) memset::num#2 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:153::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:153::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:106::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:9::printf_number_buffer:153::printf_str:59::printf_char:106::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:13::printf_number_buffer:153::printf_str:59::printf_char:106::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_cls:7::memset:193 [ printf_buffer memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a -Statement [88] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:153::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:153::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:106::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:9::printf_number_buffer:153::printf_str:59::printf_char:106::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:13::printf_number_buffer:153::printf_str:59::printf_char:106::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_cls:7::memset:193 [ printf_buffer memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a -Statement [90] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:153::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:153::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:106::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:9::printf_number_buffer:153::printf_str:59::printf_char:106::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:13::printf_number_buffer:153::printf_str:59::printf_char:106::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_cls:7::memset:193 [ printf_buffer memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a -Statement [92] *((byte*) memset::dst#2) ← (byte) memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:153::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:153::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:106::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:9::printf_number_buffer:153::printf_str:59::printf_char:106::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:13::printf_number_buffer:153::printf_str:59::printf_char:106::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_cls:7::memset:193 [ printf_buffer memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a reg byte y +Statement [87] (byte*) memset::end#0 ← (byte*)(void*) memset::str#3 + (word) memset::num#2 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:157::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:109::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_str:59::printf_char:109::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:13::printf_number_buffer:157::printf_str:59::printf_char:109::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_cls:7::memset:197 [ printf_buffer memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a +Statement [88] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:157::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:109::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_str:59::printf_char:109::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:13::printf_number_buffer:157::printf_str:59::printf_char:109::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_cls:7::memset:197 [ printf_buffer memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a +Statement [90] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:157::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:109::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_str:59::printf_char:109::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:13::printf_number_buffer:157::printf_str:59::printf_char:109::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_cls:7::memset:197 [ printf_buffer memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a +Statement [92] *((byte*) memset::dst#2) ← (byte) memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:157::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:109::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_str:59::printf_char:109::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:13::printf_number_buffer:157::printf_str:59::printf_char:109::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_cls:7::memset:197 [ printf_buffer memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:18 [ memset::c#4 ] -Statement [96] if((byte*) memcpy::src#2!=(const byte*) memcpy::src_end#0) goto memcpy::@2 [ memcpy::src#2 memcpy::dst#2 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:153::printf_char:53::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:153::printf_char:53::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:50::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:50::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:57::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:57::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71::memcpy:78 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:64::printf_char:71::memcpy:78 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:64::printf_char:71::memcpy:78 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:106::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:9::printf_number_buffer:153::printf_str:59::printf_char:106::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:13::printf_number_buffer:153::printf_str:59::printf_char:106::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } ) always clobbers reg byte a -Statement [98] *((byte*) memcpy::dst#2) ← *((byte*) memcpy::src#2) [ memcpy::src#2 memcpy::dst#2 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:153::printf_char:53::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:153::printf_char:53::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:50::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:50::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:57::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:57::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71::memcpy:78 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:64::printf_char:71::memcpy:78 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:64::printf_char:71::memcpy:78 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:106::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:9::printf_number_buffer:153::printf_str:59::printf_char:106::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:13::printf_number_buffer:153::printf_str:59::printf_char:106::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } ) always clobbers reg byte a reg byte y -Statement [103] if((byte) 0!=*((byte*) printf_str::str#2)) goto printf_str::@2 [ printf_line_cursor printf_char_cursor printf_str::str#2 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_str:59 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor printf_str::str#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } main:4::printf_schar:9::printf_number_buffer:153::printf_str:59 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor printf_str::str#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } main:4::printf_schar:13::printf_number_buffer:153::printf_str:59 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor printf_str::str#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a reg byte y -Statement [105] (byte) printf_char::ch#1 ← *((byte*) printf_str::str#2) [ printf_line_cursor printf_char_cursor printf_char::ch#1 printf_str::str#2 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_str:59 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor printf_char::ch#1 printf_str::str#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:9::printf_number_buffer:153::printf_str:59 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor printf_char::ch#1 printf_str::str#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:13::printf_number_buffer:153::printf_str:59 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor printf_char::ch#1 printf_str::str#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } ) always clobbers reg byte a reg byte y -Statement [110] if((byte) 0!=*((byte*) strlen::str#2)) goto strlen::@2 [ strlen::len#2 strlen::str#2 ] ( main:4::printf_uint:17::printf_number_buffer:30::strlen:35 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::len#2 strlen::str#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:4::printf_schar:9::printf_number_buffer:153::strlen:35 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::len#2 strlen::str#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:4::printf_schar:13::printf_number_buffer:153::strlen:35 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::len#2 strlen::str#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a reg byte y +Statement [96] if((byte*) memcpy::src#2!=(const byte*) memcpy::src_end#0) goto memcpy::@2 [ memcpy::src#2 memcpy::dst#2 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_char:53::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:157::printf_char:53::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:50::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:50::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:57::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:57::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71::memcpy:78 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:64::printf_char:71::memcpy:78 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:64::printf_char:71::memcpy:78 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:109::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_str:59::printf_char:109::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:13::printf_number_buffer:157::printf_str:59::printf_char:109::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } ) always clobbers reg byte a +Statement [98] *((byte*) memcpy::dst#2) ← *((byte*) memcpy::src#2) [ memcpy::src#2 memcpy::dst#2 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_char:53::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:157::printf_char:53::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:50::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:50::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:57::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:57::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71::memcpy:78 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:64::printf_char:71::memcpy:78 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:64::printf_char:71::memcpy:78 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:109::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_str:59::printf_char:109::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:13::printf_number_buffer:157::printf_str:59::printf_char:109::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } ) always clobbers reg byte a reg byte y +Statement [103] (byte) printf_str::ch#0 ← *((byte*) printf_str::str#2) [ printf_line_cursor printf_char_cursor printf_str::str#2 printf_str::ch#0 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_str:59 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor printf_str::str#2 printf_str::ch#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } main:4::printf_schar:9::printf_number_buffer:157::printf_str:59 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor printf_str::str#2 printf_str::ch#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } main:4::printf_schar:13::printf_number_buffer:157::printf_str:59 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor printf_str::str#2 printf_str::ch#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a reg byte y +Statement [114] if((byte) 0!=*((byte*) strlen::str#2)) goto strlen::@2 [ strlen::len#2 strlen::str#2 ] ( main:4::printf_uint:17::printf_number_buffer:30::strlen:35 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::len#2 strlen::str#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:4::printf_schar:9::printf_number_buffer:157::strlen:35 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::len#2 strlen::str#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:4::printf_schar:13::printf_number_buffer:157::strlen:35 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::len#2 strlen::str#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:2 [ printf_number_buffer::format_min_length#2 ] -Statement [117] (byte~) utoa::$11 ← (byte)(word) utoa::value#2 [ printf_buffer utoa::buffer#11 utoa::$11 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::buffer#11 utoa::$11 ] { } ) always clobbers reg byte a -Statement [118] *((byte*) utoa::buffer#11) ← *((const byte*) DIGITS + (byte~) utoa::$11) [ printf_buffer utoa::buffer#11 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::buffer#11 ] { } ) always clobbers reg byte a reg byte y -Statement [119] (byte*) utoa::buffer#3 ← ++ (byte*) utoa::buffer#11 [ printf_buffer utoa::buffer#3 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::buffer#3 ] { } ) always clobbers reg byte a -Statement [120] *((byte*) utoa::buffer#3) ← (byte) 0 [ printf_buffer ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer ] { } ) always clobbers reg byte a reg byte y -Statement [122] (byte~) utoa::$10 ← (byte) utoa::digit#2 << (byte) 1 [ printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::$10 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::$10 ] { } ) always clobbers reg byte a +Statement [121] (byte~) utoa::$11 ← (byte)(word) utoa::value#2 [ printf_buffer utoa::buffer#11 utoa::$11 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::buffer#11 utoa::$11 ] { } ) always clobbers reg byte a +Statement [122] *((byte*) utoa::buffer#11) ← *((const byte*) DIGITS + (byte~) utoa::$11) [ printf_buffer utoa::buffer#11 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::buffer#11 ] { } ) always clobbers reg byte a reg byte y +Statement [123] (byte*) utoa::buffer#3 ← ++ (byte*) utoa::buffer#11 [ printf_buffer utoa::buffer#3 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::buffer#3 ] { } ) always clobbers reg byte a +Statement [124] *((byte*) utoa::buffer#3) ← (byte) 0 [ printf_buffer ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer ] { } ) always clobbers reg byte a reg byte y +Statement [126] (byte~) utoa::$10 ← (byte) utoa::digit#2 << (byte) 1 [ printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::$10 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::$10 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:31 [ utoa::digit#2 utoa::digit#1 ] Removing always clobbered register reg byte a as potential for zp[1]:34 [ utoa::started#2 utoa::started#4 ] -Statement [123] (word) utoa::digit_value#0 ← *((const word*) RADIX_HEXADECIMAL_VALUES + (byte~) utoa::$10) [ printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::digit_value#0 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::digit_value#0 ] { } ) always clobbers reg byte a -Statement [125] if((word) utoa::value#2>=(word) utoa::digit_value#0) goto utoa::@5 [ printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::digit_value#0 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::digit_value#0 ] { } ) always clobbers reg byte a -Statement [128] (byte*) utoa_append::buffer#0 ← (byte*) utoa::buffer#11 [ printf_buffer utoa::digit#2 utoa::value#2 utoa::buffer#11 utoa::digit_value#0 utoa_append::buffer#0 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::value#2 utoa::buffer#11 utoa::digit_value#0 utoa_append::buffer#0 ] { { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a -Statement [129] (word) utoa_append::value#0 ← (word) utoa::value#2 [ printf_buffer utoa::digit#2 utoa::buffer#11 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::buffer#11 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] { { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a -Statement [130] (word) utoa_append::sub#0 ← (word) utoa::digit_value#0 [ printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] { { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a -Statement [132] (word) utoa_append::return#0 ← (word) utoa_append::value#2 [ printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::return#0 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::return#0 ] { { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a -Statement [133] (word) utoa::value#0 ← (word) utoa_append::return#0 [ printf_buffer utoa::digit#2 utoa::buffer#11 utoa::value#0 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::buffer#11 utoa::value#0 ] { } ) always clobbers reg byte a -Statement [137] if((word) utoa_append::value#2>=(word) utoa_append::sub#0) goto utoa_append::@2 [ utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] ( main:4::printf_uint:17::utoa:28::utoa_append:131 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [127] (word) utoa::digit_value#0 ← *((const word*) RADIX_HEXADECIMAL_VALUES + (byte~) utoa::$10) [ printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::digit_value#0 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::digit_value#0 ] { } ) always clobbers reg byte a +Statement [129] if((word) utoa::value#2>=(word) utoa::digit_value#0) goto utoa::@5 [ printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::digit_value#0 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::digit_value#0 ] { } ) always clobbers reg byte a +Statement [132] (byte*) utoa_append::buffer#0 ← (byte*) utoa::buffer#11 [ printf_buffer utoa::digit#2 utoa::value#2 utoa::buffer#11 utoa::digit_value#0 utoa_append::buffer#0 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::value#2 utoa::buffer#11 utoa::digit_value#0 utoa_append::buffer#0 ] { { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [133] (word) utoa_append::value#0 ← (word) utoa::value#2 [ printf_buffer utoa::digit#2 utoa::buffer#11 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::buffer#11 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] { { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [134] (word) utoa_append::sub#0 ← (word) utoa::digit_value#0 [ printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] { { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [136] (word) utoa_append::return#0 ← (word) utoa_append::value#2 [ printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::return#0 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::return#0 ] { { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [137] (word) utoa::value#0 ← (word) utoa_append::return#0 [ printf_buffer utoa::digit#2 utoa::buffer#11 utoa::value#0 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::buffer#11 utoa::value#0 ] { } ) always clobbers reg byte a +Statement [141] if((word) utoa_append::value#2>=(word) utoa_append::sub#0) goto utoa_append::@2 [ utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] ( main:4::printf_uint:17::utoa:28::utoa_append:135 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:39 [ utoa_append::digit#2 utoa_append::digit#1 ] -Statement [138] *((byte*) utoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) utoa_append::digit#2) [ utoa_append::value#2 ] ( main:4::printf_uint:17::utoa:28::utoa_append:131 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::value#2 ] { { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a reg byte y +Statement [142] *((byte*) utoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) utoa_append::digit#2) [ utoa_append::value#2 ] ( main:4::printf_uint:17::utoa:28::utoa_append:135 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::value#2 ] { { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:31 [ utoa::digit#2 utoa::digit#1 ] -Statement [141] (word) utoa_append::value#1 ← (word) utoa_append::value#2 - (word) utoa_append::sub#0 [ utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] ( main:4::printf_uint:17::utoa:28::utoa_append:131 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a -Statement [143] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::value#3 printf_schar::format_sign_always#2 printf_schar::format_radix#2 printf_schar::format_zero_padding#2 ] ( main:4::printf_schar:9 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::value#3 printf_schar::format_sign_always#2 printf_schar::format_radix#2 printf_schar::format_zero_padding#2 ] { } main:4::printf_schar:13 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::value#3 printf_schar::format_sign_always#2 printf_schar::format_radix#2 printf_schar::format_zero_padding#2 ] { } ) always clobbers reg byte a +Statement [145] (word) utoa_append::value#1 ← (word) utoa_append::value#2 - (word) utoa_append::sub#0 [ utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] ( main:4::printf_uint:17::utoa:28::utoa_append:135 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [147] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::value#3 printf_schar::format_sign_always#2 printf_schar::format_radix#2 printf_schar::format_zero_padding#2 ] ( main:4::printf_schar:9 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::value#3 printf_schar::format_sign_always#2 printf_schar::format_radix#2 printf_schar::format_zero_padding#2 ] { } main:4::printf_schar:13 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::value#3 printf_schar::format_sign_always#2 printf_schar::format_radix#2 printf_schar::format_zero_padding#2 ] { } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:43 [ printf_schar::value#5 printf_schar::value#0 printf_schar::value#3 ] Removing always clobbered register reg byte a as potential for zp[1]:40 [ printf_schar::format_sign_always#2 ] Removing always clobbered register reg byte a as potential for zp[1]:41 [ printf_schar::format_radix#2 ] Removing always clobbered register reg byte a as potential for zp[1]:42 [ printf_schar::format_zero_padding#2 ] -Statement [146] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) '+' [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::value#3 printf_schar::format_radix#2 printf_schar::format_zero_padding#2 ] ( main:4::printf_schar:9 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::value#3 printf_schar::format_radix#2 printf_schar::format_zero_padding#2 ] { } main:4::printf_schar:13 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::value#3 printf_schar::format_radix#2 printf_schar::format_zero_padding#2 ] { } ) always clobbers reg byte a -Statement [155] (signed byte) printf_schar::value#0 ← - (signed byte) printf_schar::value#3 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::format_radix#2 printf_schar::format_zero_padding#2 printf_schar::value#0 ] ( main:4::printf_schar:9 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::format_radix#2 printf_schar::format_zero_padding#2 printf_schar::value#0 ] { } main:4::printf_schar:13 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::format_radix#2 printf_schar::format_zero_padding#2 printf_schar::value#0 ] { } ) always clobbers reg byte a -Statement [156] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) '-' [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::format_radix#2 printf_schar::format_zero_padding#2 printf_schar::value#0 ] ( main:4::printf_schar:9 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::format_radix#2 printf_schar::format_zero_padding#2 printf_schar::value#0 ] { } main:4::printf_schar:13 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::format_radix#2 printf_schar::format_zero_padding#2 printf_schar::value#0 ] { } ) always clobbers reg byte a -Statement [161] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS) ← (byte) 'e' [ printf_buffer ] ( main:4::printf_schar:9::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } main:4::printf_schar:13::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } ) always clobbers reg byte a -Statement [162] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(byte) 1) ← (byte) 'r' [ printf_buffer ] ( main:4::printf_schar:9::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } main:4::printf_schar:13::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } ) always clobbers reg byte a -Statement [163] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(byte) 2) ← (byte) 'r' [ printf_buffer ] ( main:4::printf_schar:9::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } main:4::printf_schar:13::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } ) always clobbers reg byte a -Statement [164] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(byte) 3) ← (byte) 0 [ printf_buffer ] ( main:4::printf_schar:9::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } main:4::printf_schar:13::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } ) always clobbers reg byte a -Statement [170] *((byte*) uctoa::buffer#11) ← *((const byte*) DIGITS + (byte) uctoa::value#2) [ printf_buffer uctoa::buffer#11 ] ( main:4::printf_schar:9::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::buffer#11 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } main:4::printf_schar:13::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::buffer#11 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } ) always clobbers reg byte a reg byte y +Statement [150] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) '+' [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::value#3 printf_schar::format_radix#2 printf_schar::format_zero_padding#2 ] ( main:4::printf_schar:9 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::value#3 printf_schar::format_radix#2 printf_schar::format_zero_padding#2 ] { } main:4::printf_schar:13 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::value#3 printf_schar::format_radix#2 printf_schar::format_zero_padding#2 ] { } ) always clobbers reg byte a +Statement [159] (signed byte) printf_schar::value#0 ← - (signed byte) printf_schar::value#3 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::format_radix#2 printf_schar::format_zero_padding#2 printf_schar::value#0 ] ( main:4::printf_schar:9 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::format_radix#2 printf_schar::format_zero_padding#2 printf_schar::value#0 ] { } main:4::printf_schar:13 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::format_radix#2 printf_schar::format_zero_padding#2 printf_schar::value#0 ] { } ) always clobbers reg byte a +Statement [160] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) '-' [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::format_radix#2 printf_schar::format_zero_padding#2 printf_schar::value#0 ] ( main:4::printf_schar:9 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::format_radix#2 printf_schar::format_zero_padding#2 printf_schar::value#0 ] { } main:4::printf_schar:13 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::format_radix#2 printf_schar::format_zero_padding#2 printf_schar::value#0 ] { } ) always clobbers reg byte a +Statement [165] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS) ← (byte) 'e' [ printf_buffer ] ( main:4::printf_schar:9::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } main:4::printf_schar:13::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } ) always clobbers reg byte a +Statement [166] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(byte) 1) ← (byte) 'r' [ printf_buffer ] ( main:4::printf_schar:9::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } main:4::printf_schar:13::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } ) always clobbers reg byte a +Statement [167] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(byte) 2) ← (byte) 'r' [ printf_buffer ] ( main:4::printf_schar:9::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } main:4::printf_schar:13::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } ) always clobbers reg byte a +Statement [168] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(byte) 3) ← (byte) 0 [ printf_buffer ] ( main:4::printf_schar:9::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } main:4::printf_schar:13::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } ) always clobbers reg byte a +Statement [174] *((byte*) uctoa::buffer#11) ← *((const byte*) DIGITS + (byte) uctoa::value#2) [ printf_buffer uctoa::buffer#11 ] ( main:4::printf_schar:9::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::buffer#11 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } main:4::printf_schar:13::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::buffer#11 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:42 [ printf_schar::format_zero_padding#2 ] -Statement [171] (byte*) uctoa::buffer#3 ← ++ (byte*) uctoa::buffer#11 [ printf_buffer uctoa::buffer#3 ] ( main:4::printf_schar:9::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::buffer#3 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } main:4::printf_schar:13::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::buffer#3 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } ) always clobbers reg byte a -Statement [172] *((byte*) uctoa::buffer#3) ← (byte) 0 [ printf_buffer ] ( main:4::printf_schar:9::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } main:4::printf_schar:13::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } ) always clobbers reg byte a reg byte y -Statement [173] (byte) uctoa::digit_value#0 ← *((byte*) uctoa::digit_values#8 + (byte) uctoa::digit#2) [ printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::value#2 uctoa::started#2 uctoa::buffer#11 uctoa::digit_value#0 ] ( main:4::printf_schar:9::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::value#2 uctoa::started#2 uctoa::buffer#11 uctoa::digit_value#0 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } main:4::printf_schar:13::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::value#2 uctoa::started#2 uctoa::buffer#11 uctoa::digit_value#0 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } ) always clobbers reg byte a +Statement [175] (byte*) uctoa::buffer#3 ← ++ (byte*) uctoa::buffer#11 [ printf_buffer uctoa::buffer#3 ] ( main:4::printf_schar:9::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::buffer#3 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } main:4::printf_schar:13::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::buffer#3 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } ) always clobbers reg byte a +Statement [176] *((byte*) uctoa::buffer#3) ← (byte) 0 [ printf_buffer ] ( main:4::printf_schar:9::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } main:4::printf_schar:13::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } ) always clobbers reg byte a reg byte y +Statement [177] (byte) uctoa::digit_value#0 ← *((byte*) uctoa::digit_values#8 + (byte) uctoa::digit#2) [ printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::value#2 uctoa::started#2 uctoa::buffer#11 uctoa::digit_value#0 ] ( main:4::printf_schar:9::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::value#2 uctoa::started#2 uctoa::buffer#11 uctoa::digit_value#0 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } main:4::printf_schar:13::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::value#2 uctoa::started#2 uctoa::buffer#11 uctoa::digit_value#0 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } ) always clobbers reg byte a Removing always clobbered register reg byte a as potential for zp[1]:44 [ uctoa::max_digits#7 ] Removing always clobbered register reg byte a as potential for zp[1]:47 [ uctoa::digit#2 uctoa::digit#1 ] Removing always clobbered register reg byte a as potential for zp[1]:48 [ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 ] Removing always clobbered register reg byte a as potential for zp[1]:49 [ uctoa::started#2 uctoa::started#4 ] -Statement [178] (byte*) uctoa_append::buffer#0 ← (byte*) uctoa::buffer#11 [ printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::value#2 uctoa::buffer#11 uctoa::digit_value#0 uctoa_append::buffer#0 ] ( main:4::printf_schar:9::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::value#2 uctoa::buffer#11 uctoa::digit_value#0 uctoa_append::buffer#0 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } { uctoa_append::buffer#0 = uctoa::buffer#11 } { uctoa_append::value#0 = uctoa::value#2 } { uctoa_append::sub#0 = uctoa::digit_value#0 } { uctoa_append::return#0 = uctoa_append::value#2 } } main:4::printf_schar:13::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::value#2 uctoa::buffer#11 uctoa::digit_value#0 uctoa_append::buffer#0 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } { uctoa_append::buffer#0 = uctoa::buffer#11 } { uctoa_append::value#0 = uctoa::value#2 } { uctoa_append::sub#0 = uctoa::digit_value#0 } { uctoa_append::return#0 = uctoa_append::value#2 } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:82 [ uctoa::digit_value#0 ] -Statement [188] *((byte*) uctoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) uctoa_append::digit#2) [ uctoa_append::value#2 ] ( main:4::printf_schar:9::uctoa:150::uctoa_append:181 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::buffer#11 uctoa_append::value#2 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } { uctoa_append::buffer#0 = uctoa::buffer#11 } { uctoa_append::value#0 = uctoa::value#2 } { uctoa_append::sub#0 = uctoa::digit_value#0 } { uctoa_append::return#0 = uctoa_append::value#2 } } main:4::printf_schar:13::uctoa:150::uctoa_append:181 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::buffer#11 uctoa_append::value#2 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } { uctoa_append::buffer#0 = uctoa::buffer#11 } { uctoa_append::value#0 = uctoa::value#2 } { uctoa_append::sub#0 = uctoa::digit_value#0 } { uctoa_append::return#0 = uctoa_append::value#2 } } ) always clobbers reg byte a reg byte y +Statement [182] (byte*) uctoa_append::buffer#0 ← (byte*) uctoa::buffer#11 [ printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::value#2 uctoa::buffer#11 uctoa::digit_value#0 uctoa_append::buffer#0 ] ( main:4::printf_schar:9::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::value#2 uctoa::buffer#11 uctoa::digit_value#0 uctoa_append::buffer#0 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } { uctoa_append::buffer#0 = uctoa::buffer#11 } { uctoa_append::value#0 = uctoa::value#2 } { uctoa_append::sub#0 = uctoa::digit_value#0 } { uctoa_append::return#0 = uctoa_append::value#2 } } main:4::printf_schar:13::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::value#2 uctoa::buffer#11 uctoa::digit_value#0 uctoa_append::buffer#0 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } { uctoa_append::buffer#0 = uctoa::buffer#11 } { uctoa_append::value#0 = uctoa::value#2 } { uctoa_append::sub#0 = uctoa::digit_value#0 } { uctoa_append::return#0 = uctoa_append::value#2 } } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:83 [ uctoa::digit_value#0 ] +Statement [192] *((byte*) uctoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) uctoa_append::digit#2) [ uctoa_append::value#2 ] ( main:4::printf_schar:9::uctoa:154::uctoa_append:185 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::buffer#11 uctoa_append::value#2 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } { uctoa_append::buffer#0 = uctoa::buffer#11 } { uctoa_append::value#0 = uctoa::value#2 } { uctoa_append::sub#0 = uctoa::digit_value#0 } { uctoa_append::return#0 = uctoa_append::value#2 } } main:4::printf_schar:13::uctoa:154::uctoa_append:185 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::buffer#11 uctoa_append::value#2 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } { uctoa_append::buffer#0 = uctoa::buffer#11 } { uctoa_append::value#0 = uctoa::value#2 } { uctoa_append::sub#0 = uctoa::digit_value#0 } { uctoa_append::return#0 = uctoa_append::value#2 } } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:44 [ uctoa::max_digits#7 ] Removing always clobbered register reg byte y as potential for zp[1]:47 [ uctoa::digit#2 uctoa::digit#1 ] Removing always clobbered register reg byte a as potential for zp[1]:52 [ uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ] Removing always clobbered register reg byte y as potential for zp[1]:52 [ uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ] -Statement [191] (byte) uctoa_append::value#1 ← (byte) uctoa_append::value#2 - (byte) uctoa_append::sub#0 [ uctoa_append::buffer#0 uctoa_append::sub#0 uctoa_append::value#1 uctoa_append::digit#1 ] ( main:4::printf_schar:9::uctoa:150::uctoa_append:181 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::buffer#11 uctoa_append::buffer#0 uctoa_append::sub#0 uctoa_append::value#1 uctoa_append::digit#1 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } { uctoa_append::buffer#0 = uctoa::buffer#11 } { uctoa_append::value#0 = uctoa::value#2 } { uctoa_append::sub#0 = uctoa::digit_value#0 } { uctoa_append::return#0 = uctoa_append::value#2 } } main:4::printf_schar:13::uctoa:150::uctoa_append:181 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::buffer#11 uctoa_append::buffer#0 uctoa_append::sub#0 uctoa_append::value#1 uctoa_append::digit#1 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } { uctoa_append::buffer#0 = uctoa::buffer#11 } { uctoa_append::value#0 = uctoa::value#2 } { uctoa_append::sub#0 = uctoa::digit_value#0 } { uctoa_append::return#0 = uctoa_append::value#2 } } ) always clobbers reg byte a -Removing always clobbered register reg byte a as potential for zp[1]:85 [ uctoa_append::sub#0 ] +Statement [195] (byte) uctoa_append::value#1 ← (byte) uctoa_append::value#2 - (byte) uctoa_append::sub#0 [ uctoa_append::buffer#0 uctoa_append::sub#0 uctoa_append::value#1 uctoa_append::digit#1 ] ( main:4::printf_schar:9::uctoa:154::uctoa_append:185 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::buffer#11 uctoa_append::buffer#0 uctoa_append::sub#0 uctoa_append::value#1 uctoa_append::digit#1 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } { uctoa_append::buffer#0 = uctoa::buffer#11 } { uctoa_append::value#0 = uctoa::value#2 } { uctoa_append::sub#0 = uctoa::digit_value#0 } { uctoa_append::return#0 = uctoa_append::value#2 } } main:4::printf_schar:13::uctoa:154::uctoa_append:185 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::buffer#11 uctoa_append::buffer#0 uctoa_append::sub#0 uctoa_append::value#1 uctoa_append::digit#1 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } { uctoa_append::buffer#0 = uctoa::buffer#11 } { uctoa_append::value#0 = uctoa::value#2 } { uctoa_append::sub#0 = uctoa::digit_value#0 } { uctoa_append::return#0 = uctoa_append::value#2 } } ) always clobbers reg byte a +Removing always clobbered register reg byte a as potential for zp[1]:86 [ uctoa_append::sub#0 ] Removing always clobbered register reg byte a as potential for zp[1]:53 [ uctoa_append::digit#2 uctoa_append::digit#1 ] -Statement [194] (byte*) printf_line_cursor ← (const byte*) printf_screen [ printf_line_cursor ] ( main:4::printf_cls:7 [ printf_buffer printf_line_cursor ] { } ) always clobbers reg byte a -Statement [195] (byte*) printf_char_cursor ← (byte*) printf_line_cursor [ printf_line_cursor printf_char_cursor ] ( main:4::printf_cls:7 [ printf_buffer printf_line_cursor printf_char_cursor ] { } ) always clobbers reg byte a +Statement [198] (byte*) printf_line_cursor ← (const byte*) printf_screen [ printf_line_cursor ] ( main:4::printf_cls:7 [ printf_buffer printf_line_cursor ] { } ) always clobbers reg byte a +Statement [199] (byte*) printf_char_cursor ← (byte*) printf_line_cursor [ printf_line_cursor printf_char_cursor ] ( main:4::printf_cls:7 [ printf_buffer printf_line_cursor printf_char_cursor ] { } ) always clobbers reg byte a Statement [1] (byte*) printf_line_cursor ← (byte*) 1024 [ printf_buffer ] ( [ printf_buffer ] { } ) always clobbers reg byte a Statement [2] (byte*) printf_char_cursor ← (byte*) 1024 [ printf_buffer ] ( [ printf_buffer ] { } ) always clobbers reg byte a -Statement [22] (byte*) printf_line_cursor ← (byte*) printf_line_cursor + (byte) $28 [ printf_line_cursor printf_char_cursor ] ( main:4::printf_ln:11 [ printf_buffer printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:15 [ printf_buffer printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:19 [ printf_line_cursor printf_char_cursor ] { } ) always clobbers reg byte a -Statement [23] if((byte*) printf_line_cursor<(byte*) printf_char_cursor) goto printf_ln::@1 [ printf_line_cursor printf_char_cursor ] ( main:4::printf_ln:11 [ printf_buffer printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:15 [ printf_buffer printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:19 [ printf_line_cursor printf_char_cursor ] { } ) always clobbers reg byte a -Statement [24] (byte*) printf_char_cursor ← (byte*) printf_line_cursor [ printf_line_cursor printf_char_cursor ] ( main:4::printf_ln:11 [ printf_buffer printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:15 [ printf_buffer printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:19 [ printf_line_cursor printf_char_cursor ] { } ) always clobbers reg byte a +Statement [22] (byte*) printf_line_cursor ← (byte*) printf_line_cursor + (byte) $28 [ printf_line_cursor printf_char_cursor ] ( main:4::printf_ln:11 [ printf_buffer printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:15 [ printf_buffer printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:19 [ printf_line_cursor printf_char_cursor ] { } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_ln:111 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } main:4::printf_schar:9::printf_number_buffer:157::printf_str:59::printf_ln:111 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } main:4::printf_schar:13::printf_number_buffer:157::printf_str:59::printf_ln:111 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a +Statement [23] if((byte*) printf_line_cursor<(byte*) printf_char_cursor) goto printf_ln::@1 [ printf_line_cursor printf_char_cursor ] ( main:4::printf_ln:11 [ printf_buffer printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:15 [ printf_buffer printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:19 [ printf_line_cursor printf_char_cursor ] { } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_ln:111 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } main:4::printf_schar:9::printf_number_buffer:157::printf_str:59::printf_ln:111 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } main:4::printf_schar:13::printf_number_buffer:157::printf_str:59::printf_ln:111 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a +Statement [24] (byte*) printf_char_cursor ← (byte*) printf_line_cursor [ printf_line_cursor printf_char_cursor ] ( main:4::printf_ln:11 [ printf_buffer printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:15 [ printf_buffer printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:19 [ printf_line_cursor printf_char_cursor ] { } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_ln:111 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } main:4::printf_schar:9::printf_number_buffer:157::printf_str:59::printf_ln:111 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } main:4::printf_schar:13::printf_number_buffer:157::printf_str:59::printf_ln:111 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a Statement [27] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 [ printf_line_cursor printf_char_cursor printf_buffer ] ( main:4::printf_uint:17 [ printf_line_cursor printf_char_cursor printf_buffer ] { } ) always clobbers reg byte a -Statement [34] (byte*) strlen::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::str#1 ] ( main:4::printf_uint:17::printf_number_buffer:30 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::str#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:4::printf_schar:9::printf_number_buffer:153 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::str#1 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:4::printf_schar:13::printf_number_buffer:153 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::str#1 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a -Statement [36] (word) strlen::return#2 ← (word) strlen::len#2 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::return#2 ] ( main:4::printf_uint:17::printf_number_buffer:30 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:4::printf_schar:9::printf_number_buffer:153 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::return#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:4::printf_schar:13::printf_number_buffer:153 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::return#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a -Statement [37] (word~) printf_number_buffer::$18 ← (word) strlen::return#2 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::$18 ] ( main:4::printf_uint:17::printf_number_buffer:30 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::$18 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:4::printf_schar:9::printf_number_buffer:153 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::$18 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:4::printf_schar:13::printf_number_buffer:153 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::$18 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [38] (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$18 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::len#0 ] ( main:4::printf_uint:17::printf_number_buffer:30 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:4::printf_schar:9::printf_number_buffer:153 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::len#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:4::printf_schar:13::printf_number_buffer:153 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::len#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [42] (signed byte) printf_number_buffer::padding#1 ← (signed byte)(byte) printf_number_buffer::format_min_length#2 - (signed byte) printf_number_buffer::len#2 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#1 ] ( main:4::printf_uint:17::printf_number_buffer:30 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:4::printf_schar:9::printf_number_buffer:153 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:4::printf_schar:13::printf_number_buffer:153 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [58] (byte*) printf_str::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#1 ] ( main:4::printf_uint:17::printf_number_buffer:30 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } main:4::printf_schar:9::printf_number_buffer:153 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#1 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } main:4::printf_schar:13::printf_number_buffer:153 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#1 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a -Statement [74] *((byte*) printf_char_cursor) ← (byte) printf_char::ch#3 [ printf_line_cursor printf_char_cursor ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:153::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:153::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:106 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:9::printf_number_buffer:153::printf_str:59::printf_char:106 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:13::printf_number_buffer:153::printf_str:59::printf_char:106 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } ) always clobbers reg byte y -Statement [76] if((byte*) printf_char_cursor!=(const byte*) printf_screen+(word)(number) $28*(number) $19) goto printf_char::@return [ printf_line_cursor printf_char_cursor ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:153::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:153::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:106 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:9::printf_number_buffer:153::printf_str:59::printf_char:106 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:13::printf_number_buffer:153::printf_str:59::printf_char:106 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } ) always clobbers reg byte a -Statement [81] (byte*~) printf_char::$8 ← (byte*) printf_char_cursor - (byte) $28 [ printf_char::$8 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char::$8 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:153::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:153::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:106 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char::$8 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:9::printf_number_buffer:153::printf_str:59::printf_char:106 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:13::printf_number_buffer:153::printf_str:59::printf_char:106 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } ) always clobbers reg byte a -Statement [82] (byte*) printf_char_cursor ← (byte*~) printf_char::$8 [ printf_char_cursor ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:153::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:153::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:106 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:9::printf_number_buffer:153::printf_str:59::printf_char:106 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:13::printf_number_buffer:153::printf_str:59::printf_char:106 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } ) always clobbers reg byte a -Statement [83] (byte*) printf_line_cursor ← (byte*) printf_char_cursor [ printf_line_cursor printf_char_cursor ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:153::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:153::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:106 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:9::printf_number_buffer:153::printf_str:59::printf_char:106 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:13::printf_number_buffer:153::printf_str:59::printf_char:106 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } ) always clobbers reg byte a -Statement [86] if((word) memset::num#2<=(byte) 0) goto memset::@return [ memset::num#2 memset::str#3 memset::c#4 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:153::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:153::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:106::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:9::printf_number_buffer:153::printf_str:59::printf_char:106::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:13::printf_number_buffer:153::printf_str:59::printf_char:106::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_cls:7::memset:193 [ printf_buffer memset::num#2 memset::str#3 memset::c#4 ] { } ) always clobbers reg byte a -Statement [87] (byte*) memset::end#0 ← (byte*)(void*) memset::str#3 + (word) memset::num#2 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:153::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:153::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:106::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:9::printf_number_buffer:153::printf_str:59::printf_char:106::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:13::printf_number_buffer:153::printf_str:59::printf_char:106::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_cls:7::memset:193 [ printf_buffer memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a -Statement [88] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:153::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:153::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:106::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:9::printf_number_buffer:153::printf_str:59::printf_char:106::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:13::printf_number_buffer:153::printf_str:59::printf_char:106::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_cls:7::memset:193 [ printf_buffer memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a -Statement [90] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:153::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:153::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:106::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:9::printf_number_buffer:153::printf_str:59::printf_char:106::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:13::printf_number_buffer:153::printf_str:59::printf_char:106::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_cls:7::memset:193 [ printf_buffer memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a -Statement [92] *((byte*) memset::dst#2) ← (byte) memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:153::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:153::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:106::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:9::printf_number_buffer:153::printf_str:59::printf_char:106::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:13::printf_number_buffer:153::printf_str:59::printf_char:106::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_cls:7::memset:193 [ printf_buffer memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a reg byte y -Statement [96] if((byte*) memcpy::src#2!=(const byte*) memcpy::src_end#0) goto memcpy::@2 [ memcpy::src#2 memcpy::dst#2 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:153::printf_char:53::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:153::printf_char:53::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:50::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:50::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:57::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:57::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71::memcpy:78 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:64::printf_char:71::memcpy:78 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:64::printf_char:71::memcpy:78 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:106::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:9::printf_number_buffer:153::printf_str:59::printf_char:106::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:13::printf_number_buffer:153::printf_str:59::printf_char:106::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } ) always clobbers reg byte a -Statement [98] *((byte*) memcpy::dst#2) ← *((byte*) memcpy::src#2) [ memcpy::src#2 memcpy::dst#2 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:153::printf_char:53::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:153::printf_char:53::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:50::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:50::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:57::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:57::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71::memcpy:78 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:64::printf_char:71::memcpy:78 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:64::printf_char:71::memcpy:78 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:106::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:9::printf_number_buffer:153::printf_str:59::printf_char:106::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:13::printf_number_buffer:153::printf_str:59::printf_char:106::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } ) always clobbers reg byte a reg byte y -Statement [103] if((byte) 0!=*((byte*) printf_str::str#2)) goto printf_str::@2 [ printf_line_cursor printf_char_cursor printf_str::str#2 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_str:59 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor printf_str::str#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } main:4::printf_schar:9::printf_number_buffer:153::printf_str:59 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor printf_str::str#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } main:4::printf_schar:13::printf_number_buffer:153::printf_str:59 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor printf_str::str#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a reg byte y -Statement [105] (byte) printf_char::ch#1 ← *((byte*) printf_str::str#2) [ printf_line_cursor printf_char_cursor printf_char::ch#1 printf_str::str#2 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_str:59 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor printf_char::ch#1 printf_str::str#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:9::printf_number_buffer:153::printf_str:59 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor printf_char::ch#1 printf_str::str#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:13::printf_number_buffer:153::printf_str:59 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor printf_char::ch#1 printf_str::str#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } ) always clobbers reg byte a reg byte y -Statement [110] if((byte) 0!=*((byte*) strlen::str#2)) goto strlen::@2 [ strlen::len#2 strlen::str#2 ] ( main:4::printf_uint:17::printf_number_buffer:30::strlen:35 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::len#2 strlen::str#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:4::printf_schar:9::printf_number_buffer:153::strlen:35 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::len#2 strlen::str#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:4::printf_schar:13::printf_number_buffer:153::strlen:35 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::len#2 strlen::str#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a reg byte y -Statement [117] (byte~) utoa::$11 ← (byte)(word) utoa::value#2 [ printf_buffer utoa::buffer#11 utoa::$11 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::buffer#11 utoa::$11 ] { } ) always clobbers reg byte a -Statement [118] *((byte*) utoa::buffer#11) ← *((const byte*) DIGITS + (byte~) utoa::$11) [ printf_buffer utoa::buffer#11 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::buffer#11 ] { } ) always clobbers reg byte a reg byte y -Statement [119] (byte*) utoa::buffer#3 ← ++ (byte*) utoa::buffer#11 [ printf_buffer utoa::buffer#3 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::buffer#3 ] { } ) always clobbers reg byte a -Statement [120] *((byte*) utoa::buffer#3) ← (byte) 0 [ printf_buffer ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer ] { } ) always clobbers reg byte a reg byte y -Statement [122] (byte~) utoa::$10 ← (byte) utoa::digit#2 << (byte) 1 [ printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::$10 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::$10 ] { } ) always clobbers reg byte a -Statement [123] (word) utoa::digit_value#0 ← *((const word*) RADIX_HEXADECIMAL_VALUES + (byte~) utoa::$10) [ printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::digit_value#0 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::digit_value#0 ] { } ) always clobbers reg byte a -Statement [125] if((word) utoa::value#2>=(word) utoa::digit_value#0) goto utoa::@5 [ printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::digit_value#0 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::digit_value#0 ] { } ) always clobbers reg byte a -Statement [128] (byte*) utoa_append::buffer#0 ← (byte*) utoa::buffer#11 [ printf_buffer utoa::digit#2 utoa::value#2 utoa::buffer#11 utoa::digit_value#0 utoa_append::buffer#0 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::value#2 utoa::buffer#11 utoa::digit_value#0 utoa_append::buffer#0 ] { { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a -Statement [129] (word) utoa_append::value#0 ← (word) utoa::value#2 [ printf_buffer utoa::digit#2 utoa::buffer#11 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::buffer#11 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] { { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a -Statement [130] (word) utoa_append::sub#0 ← (word) utoa::digit_value#0 [ printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] { { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a -Statement [132] (word) utoa_append::return#0 ← (word) utoa_append::value#2 [ printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::return#0 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::return#0 ] { { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a -Statement [133] (word) utoa::value#0 ← (word) utoa_append::return#0 [ printf_buffer utoa::digit#2 utoa::buffer#11 utoa::value#0 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::buffer#11 utoa::value#0 ] { } ) always clobbers reg byte a -Statement [137] if((word) utoa_append::value#2>=(word) utoa_append::sub#0) goto utoa_append::@2 [ utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] ( main:4::printf_uint:17::utoa:28::utoa_append:131 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a -Statement [138] *((byte*) utoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) utoa_append::digit#2) [ utoa_append::value#2 ] ( main:4::printf_uint:17::utoa:28::utoa_append:131 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::value#2 ] { { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a reg byte y -Statement [141] (word) utoa_append::value#1 ← (word) utoa_append::value#2 - (word) utoa_append::sub#0 [ utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] ( main:4::printf_uint:17::utoa:28::utoa_append:131 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a -Statement [143] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::value#3 printf_schar::format_sign_always#2 printf_schar::format_radix#2 printf_schar::format_zero_padding#2 ] ( main:4::printf_schar:9 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::value#3 printf_schar::format_sign_always#2 printf_schar::format_radix#2 printf_schar::format_zero_padding#2 ] { } main:4::printf_schar:13 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::value#3 printf_schar::format_sign_always#2 printf_schar::format_radix#2 printf_schar::format_zero_padding#2 ] { } ) always clobbers reg byte a -Statement [146] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) '+' [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::value#3 printf_schar::format_radix#2 printf_schar::format_zero_padding#2 ] ( main:4::printf_schar:9 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::value#3 printf_schar::format_radix#2 printf_schar::format_zero_padding#2 ] { } main:4::printf_schar:13 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::value#3 printf_schar::format_radix#2 printf_schar::format_zero_padding#2 ] { } ) always clobbers reg byte a -Statement [155] (signed byte) printf_schar::value#0 ← - (signed byte) printf_schar::value#3 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::format_radix#2 printf_schar::format_zero_padding#2 printf_schar::value#0 ] ( main:4::printf_schar:9 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::format_radix#2 printf_schar::format_zero_padding#2 printf_schar::value#0 ] { } main:4::printf_schar:13 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::format_radix#2 printf_schar::format_zero_padding#2 printf_schar::value#0 ] { } ) always clobbers reg byte a -Statement [156] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) '-' [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::format_radix#2 printf_schar::format_zero_padding#2 printf_schar::value#0 ] ( main:4::printf_schar:9 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::format_radix#2 printf_schar::format_zero_padding#2 printf_schar::value#0 ] { } main:4::printf_schar:13 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::format_radix#2 printf_schar::format_zero_padding#2 printf_schar::value#0 ] { } ) always clobbers reg byte a -Statement [161] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS) ← (byte) 'e' [ printf_buffer ] ( main:4::printf_schar:9::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } main:4::printf_schar:13::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } ) always clobbers reg byte a -Statement [162] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(byte) 1) ← (byte) 'r' [ printf_buffer ] ( main:4::printf_schar:9::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } main:4::printf_schar:13::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } ) always clobbers reg byte a -Statement [163] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(byte) 2) ← (byte) 'r' [ printf_buffer ] ( main:4::printf_schar:9::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } main:4::printf_schar:13::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } ) always clobbers reg byte a -Statement [164] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(byte) 3) ← (byte) 0 [ printf_buffer ] ( main:4::printf_schar:9::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } main:4::printf_schar:13::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } ) always clobbers reg byte a -Statement [170] *((byte*) uctoa::buffer#11) ← *((const byte*) DIGITS + (byte) uctoa::value#2) [ printf_buffer uctoa::buffer#11 ] ( main:4::printf_schar:9::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::buffer#11 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } main:4::printf_schar:13::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::buffer#11 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } ) always clobbers reg byte a reg byte y -Statement [171] (byte*) uctoa::buffer#3 ← ++ (byte*) uctoa::buffer#11 [ printf_buffer uctoa::buffer#3 ] ( main:4::printf_schar:9::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::buffer#3 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } main:4::printf_schar:13::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::buffer#3 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } ) always clobbers reg byte a -Statement [172] *((byte*) uctoa::buffer#3) ← (byte) 0 [ printf_buffer ] ( main:4::printf_schar:9::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } main:4::printf_schar:13::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } ) always clobbers reg byte a reg byte y -Statement [173] (byte) uctoa::digit_value#0 ← *((byte*) uctoa::digit_values#8 + (byte) uctoa::digit#2) [ printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::value#2 uctoa::started#2 uctoa::buffer#11 uctoa::digit_value#0 ] ( main:4::printf_schar:9::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::value#2 uctoa::started#2 uctoa::buffer#11 uctoa::digit_value#0 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } main:4::printf_schar:13::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::value#2 uctoa::started#2 uctoa::buffer#11 uctoa::digit_value#0 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } ) always clobbers reg byte a reg byte y +Statement [34] (byte*) strlen::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::str#1 ] ( main:4::printf_uint:17::printf_number_buffer:30 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::str#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:4::printf_schar:9::printf_number_buffer:157 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::str#1 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:4::printf_schar:13::printf_number_buffer:157 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::str#1 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a +Statement [36] (word) strlen::return#2 ← (word) strlen::len#2 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::return#2 ] ( main:4::printf_uint:17::printf_number_buffer:30 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:4::printf_schar:9::printf_number_buffer:157 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::return#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:4::printf_schar:13::printf_number_buffer:157 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::return#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a +Statement [37] (word~) printf_number_buffer::$18 ← (word) strlen::return#2 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::$18 ] ( main:4::printf_uint:17::printf_number_buffer:30 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::$18 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:4::printf_schar:9::printf_number_buffer:157 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::$18 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:4::printf_schar:13::printf_number_buffer:157 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::$18 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [38] (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$18 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::len#0 ] ( main:4::printf_uint:17::printf_number_buffer:30 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:4::printf_schar:9::printf_number_buffer:157 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::len#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:4::printf_schar:13::printf_number_buffer:157 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::len#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [42] (signed byte) printf_number_buffer::padding#1 ← (signed byte)(byte) printf_number_buffer::format_min_length#2 - (signed byte) printf_number_buffer::len#2 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#1 ] ( main:4::printf_uint:17::printf_number_buffer:30 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:4::printf_schar:9::printf_number_buffer:157 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:4::printf_schar:13::printf_number_buffer:157 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [58] (byte*) printf_str::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#1 ] ( main:4::printf_uint:17::printf_number_buffer:30 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } main:4::printf_schar:9::printf_number_buffer:157 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#1 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } main:4::printf_schar:13::printf_number_buffer:157 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#1 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a +Statement [74] *((byte*) printf_char_cursor) ← (byte) printf_char::ch#3 [ printf_line_cursor printf_char_cursor ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:157::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:109 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_str:59::printf_char:109 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:13::printf_number_buffer:157::printf_str:59::printf_char:109 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } ) always clobbers reg byte y +Statement [76] if((byte*) printf_char_cursor<(const byte*) printf_screen+(word)(number) $28*(number) $19) goto printf_char::@return [ printf_line_cursor printf_char_cursor ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:157::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:109 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_str:59::printf_char:109 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:13::printf_number_buffer:157::printf_str:59::printf_char:109 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } ) always clobbers reg byte a +Statement [81] (byte*~) printf_char::$8 ← (byte*) printf_char_cursor - (byte) $28 [ printf_char::$8 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char::$8 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:157::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:109 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char::$8 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_str:59::printf_char:109 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:13::printf_number_buffer:157::printf_str:59::printf_char:109 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } ) always clobbers reg byte a +Statement [82] (byte*) printf_char_cursor ← (byte*~) printf_char::$8 [ printf_char_cursor ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:157::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:109 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_str:59::printf_char:109 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:13::printf_number_buffer:157::printf_str:59::printf_char:109 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } ) always clobbers reg byte a +Statement [83] (byte*) printf_line_cursor ← (byte*) printf_char_cursor [ printf_line_cursor printf_char_cursor ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:157::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:109 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_str:59::printf_char:109 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:13::printf_number_buffer:157::printf_str:59::printf_char:109 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } ) always clobbers reg byte a +Statement [86] if((word) memset::num#2<=(byte) 0) goto memset::@return [ memset::num#2 memset::str#3 memset::c#4 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:157::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:109::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_str:59::printf_char:109::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:13::printf_number_buffer:157::printf_str:59::printf_char:109::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_cls:7::memset:197 [ printf_buffer memset::num#2 memset::str#3 memset::c#4 ] { } ) always clobbers reg byte a +Statement [87] (byte*) memset::end#0 ← (byte*)(void*) memset::str#3 + (word) memset::num#2 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:157::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:109::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_str:59::printf_char:109::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:13::printf_number_buffer:157::printf_str:59::printf_char:109::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_cls:7::memset:197 [ printf_buffer memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a +Statement [88] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:157::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:109::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_str:59::printf_char:109::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:13::printf_number_buffer:157::printf_str:59::printf_char:109::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_cls:7::memset:197 [ printf_buffer memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a +Statement [90] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:157::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:109::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_str:59::printf_char:109::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:13::printf_number_buffer:157::printf_str:59::printf_char:109::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_cls:7::memset:197 [ printf_buffer memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a +Statement [92] *((byte*) memset::dst#2) ← (byte) memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:157::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:109::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_str:59::printf_char:109::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:13::printf_number_buffer:157::printf_str:59::printf_char:109::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_cls:7::memset:197 [ printf_buffer memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a reg byte y +Statement [96] if((byte*) memcpy::src#2!=(const byte*) memcpy::src_end#0) goto memcpy::@2 [ memcpy::src#2 memcpy::dst#2 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_char:53::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:157::printf_char:53::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:50::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:50::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:57::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:57::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71::memcpy:78 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:64::printf_char:71::memcpy:78 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:64::printf_char:71::memcpy:78 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:109::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_str:59::printf_char:109::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:13::printf_number_buffer:157::printf_str:59::printf_char:109::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } ) always clobbers reg byte a +Statement [98] *((byte*) memcpy::dst#2) ← *((byte*) memcpy::src#2) [ memcpy::src#2 memcpy::dst#2 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_char:53::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:157::printf_char:53::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:50::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:50::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:57::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:57::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71::memcpy:78 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:64::printf_char:71::memcpy:78 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:64::printf_char:71::memcpy:78 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:109::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_str:59::printf_char:109::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:13::printf_number_buffer:157::printf_str:59::printf_char:109::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } ) always clobbers reg byte a reg byte y +Statement [103] (byte) printf_str::ch#0 ← *((byte*) printf_str::str#2) [ printf_line_cursor printf_char_cursor printf_str::str#2 printf_str::ch#0 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_str:59 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor printf_str::str#2 printf_str::ch#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } main:4::printf_schar:9::printf_number_buffer:157::printf_str:59 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor printf_str::str#2 printf_str::ch#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } main:4::printf_schar:13::printf_number_buffer:157::printf_str:59 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor printf_str::str#2 printf_str::ch#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a reg byte y +Statement [114] if((byte) 0!=*((byte*) strlen::str#2)) goto strlen::@2 [ strlen::len#2 strlen::str#2 ] ( main:4::printf_uint:17::printf_number_buffer:30::strlen:35 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::len#2 strlen::str#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:4::printf_schar:9::printf_number_buffer:157::strlen:35 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::len#2 strlen::str#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:4::printf_schar:13::printf_number_buffer:157::strlen:35 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::len#2 strlen::str#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a reg byte y +Statement [121] (byte~) utoa::$11 ← (byte)(word) utoa::value#2 [ printf_buffer utoa::buffer#11 utoa::$11 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::buffer#11 utoa::$11 ] { } ) always clobbers reg byte a +Statement [122] *((byte*) utoa::buffer#11) ← *((const byte*) DIGITS + (byte~) utoa::$11) [ printf_buffer utoa::buffer#11 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::buffer#11 ] { } ) always clobbers reg byte a reg byte y +Statement [123] (byte*) utoa::buffer#3 ← ++ (byte*) utoa::buffer#11 [ printf_buffer utoa::buffer#3 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::buffer#3 ] { } ) always clobbers reg byte a +Statement [124] *((byte*) utoa::buffer#3) ← (byte) 0 [ printf_buffer ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer ] { } ) always clobbers reg byte a reg byte y +Statement [126] (byte~) utoa::$10 ← (byte) utoa::digit#2 << (byte) 1 [ printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::$10 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::$10 ] { } ) always clobbers reg byte a +Statement [127] (word) utoa::digit_value#0 ← *((const word*) RADIX_HEXADECIMAL_VALUES + (byte~) utoa::$10) [ printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::digit_value#0 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::digit_value#0 ] { } ) always clobbers reg byte a +Statement [129] if((word) utoa::value#2>=(word) utoa::digit_value#0) goto utoa::@5 [ printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::digit_value#0 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::digit_value#0 ] { } ) always clobbers reg byte a +Statement [132] (byte*) utoa_append::buffer#0 ← (byte*) utoa::buffer#11 [ printf_buffer utoa::digit#2 utoa::value#2 utoa::buffer#11 utoa::digit_value#0 utoa_append::buffer#0 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::value#2 utoa::buffer#11 utoa::digit_value#0 utoa_append::buffer#0 ] { { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [133] (word) utoa_append::value#0 ← (word) utoa::value#2 [ printf_buffer utoa::digit#2 utoa::buffer#11 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::buffer#11 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] { { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [134] (word) utoa_append::sub#0 ← (word) utoa::digit_value#0 [ printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] { { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [136] (word) utoa_append::return#0 ← (word) utoa_append::value#2 [ printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::return#0 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::return#0 ] { { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [137] (word) utoa::value#0 ← (word) utoa_append::return#0 [ printf_buffer utoa::digit#2 utoa::buffer#11 utoa::value#0 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::buffer#11 utoa::value#0 ] { } ) always clobbers reg byte a +Statement [141] if((word) utoa_append::value#2>=(word) utoa_append::sub#0) goto utoa_append::@2 [ utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] ( main:4::printf_uint:17::utoa:28::utoa_append:135 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [142] *((byte*) utoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) utoa_append::digit#2) [ utoa_append::value#2 ] ( main:4::printf_uint:17::utoa:28::utoa_append:135 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::value#2 ] { { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a reg byte y +Statement [145] (word) utoa_append::value#1 ← (word) utoa_append::value#2 - (word) utoa_append::sub#0 [ utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] ( main:4::printf_uint:17::utoa:28::utoa_append:135 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [147] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::value#3 printf_schar::format_sign_always#2 printf_schar::format_radix#2 printf_schar::format_zero_padding#2 ] ( main:4::printf_schar:9 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::value#3 printf_schar::format_sign_always#2 printf_schar::format_radix#2 printf_schar::format_zero_padding#2 ] { } main:4::printf_schar:13 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::value#3 printf_schar::format_sign_always#2 printf_schar::format_radix#2 printf_schar::format_zero_padding#2 ] { } ) always clobbers reg byte a +Statement [150] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) '+' [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::value#3 printf_schar::format_radix#2 printf_schar::format_zero_padding#2 ] ( main:4::printf_schar:9 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::value#3 printf_schar::format_radix#2 printf_schar::format_zero_padding#2 ] { } main:4::printf_schar:13 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::value#3 printf_schar::format_radix#2 printf_schar::format_zero_padding#2 ] { } ) always clobbers reg byte a +Statement [159] (signed byte) printf_schar::value#0 ← - (signed byte) printf_schar::value#3 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::format_radix#2 printf_schar::format_zero_padding#2 printf_schar::value#0 ] ( main:4::printf_schar:9 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::format_radix#2 printf_schar::format_zero_padding#2 printf_schar::value#0 ] { } main:4::printf_schar:13 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::format_radix#2 printf_schar::format_zero_padding#2 printf_schar::value#0 ] { } ) always clobbers reg byte a +Statement [160] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) '-' [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::format_radix#2 printf_schar::format_zero_padding#2 printf_schar::value#0 ] ( main:4::printf_schar:9 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::format_radix#2 printf_schar::format_zero_padding#2 printf_schar::value#0 ] { } main:4::printf_schar:13 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::format_radix#2 printf_schar::format_zero_padding#2 printf_schar::value#0 ] { } ) always clobbers reg byte a +Statement [165] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS) ← (byte) 'e' [ printf_buffer ] ( main:4::printf_schar:9::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } main:4::printf_schar:13::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } ) always clobbers reg byte a +Statement [166] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(byte) 1) ← (byte) 'r' [ printf_buffer ] ( main:4::printf_schar:9::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } main:4::printf_schar:13::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } ) always clobbers reg byte a +Statement [167] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(byte) 2) ← (byte) 'r' [ printf_buffer ] ( main:4::printf_schar:9::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } main:4::printf_schar:13::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } ) always clobbers reg byte a +Statement [168] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(byte) 3) ← (byte) 0 [ printf_buffer ] ( main:4::printf_schar:9::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } main:4::printf_schar:13::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } ) always clobbers reg byte a +Statement [174] *((byte*) uctoa::buffer#11) ← *((const byte*) DIGITS + (byte) uctoa::value#2) [ printf_buffer uctoa::buffer#11 ] ( main:4::printf_schar:9::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::buffer#11 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } main:4::printf_schar:13::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::buffer#11 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } ) always clobbers reg byte a reg byte y +Statement [175] (byte*) uctoa::buffer#3 ← ++ (byte*) uctoa::buffer#11 [ printf_buffer uctoa::buffer#3 ] ( main:4::printf_schar:9::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::buffer#3 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } main:4::printf_schar:13::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::buffer#3 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } ) always clobbers reg byte a +Statement [176] *((byte*) uctoa::buffer#3) ← (byte) 0 [ printf_buffer ] ( main:4::printf_schar:9::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } main:4::printf_schar:13::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } ) always clobbers reg byte a reg byte y +Statement [177] (byte) uctoa::digit_value#0 ← *((byte*) uctoa::digit_values#8 + (byte) uctoa::digit#2) [ printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::value#2 uctoa::started#2 uctoa::buffer#11 uctoa::digit_value#0 ] ( main:4::printf_schar:9::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::value#2 uctoa::started#2 uctoa::buffer#11 uctoa::digit_value#0 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } main:4::printf_schar:13::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::value#2 uctoa::started#2 uctoa::buffer#11 uctoa::digit_value#0 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } ) always clobbers reg byte a reg byte y Removing always clobbered register reg byte y as potential for zp[1]:48 [ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 ] Removing always clobbered register reg byte y as potential for zp[1]:49 [ uctoa::started#2 uctoa::started#4 ] -Statement [178] (byte*) uctoa_append::buffer#0 ← (byte*) uctoa::buffer#11 [ printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::value#2 uctoa::buffer#11 uctoa::digit_value#0 uctoa_append::buffer#0 ] ( main:4::printf_schar:9::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::value#2 uctoa::buffer#11 uctoa::digit_value#0 uctoa_append::buffer#0 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } { uctoa_append::buffer#0 = uctoa::buffer#11 } { uctoa_append::value#0 = uctoa::value#2 } { uctoa_append::sub#0 = uctoa::digit_value#0 } { uctoa_append::return#0 = uctoa_append::value#2 } } main:4::printf_schar:13::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::value#2 uctoa::buffer#11 uctoa::digit_value#0 uctoa_append::buffer#0 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } { uctoa_append::buffer#0 = uctoa::buffer#11 } { uctoa_append::value#0 = uctoa::value#2 } { uctoa_append::sub#0 = uctoa::digit_value#0 } { uctoa_append::return#0 = uctoa_append::value#2 } } ) always clobbers reg byte a -Statement [188] *((byte*) uctoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) uctoa_append::digit#2) [ uctoa_append::value#2 ] ( main:4::printf_schar:9::uctoa:150::uctoa_append:181 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::buffer#11 uctoa_append::value#2 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } { uctoa_append::buffer#0 = uctoa::buffer#11 } { uctoa_append::value#0 = uctoa::value#2 } { uctoa_append::sub#0 = uctoa::digit_value#0 } { uctoa_append::return#0 = uctoa_append::value#2 } } main:4::printf_schar:13::uctoa:150::uctoa_append:181 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::buffer#11 uctoa_append::value#2 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } { uctoa_append::buffer#0 = uctoa::buffer#11 } { uctoa_append::value#0 = uctoa::value#2 } { uctoa_append::sub#0 = uctoa::digit_value#0 } { uctoa_append::return#0 = uctoa_append::value#2 } } ) always clobbers reg byte a reg byte y -Statement [191] (byte) uctoa_append::value#1 ← (byte) uctoa_append::value#2 - (byte) uctoa_append::sub#0 [ uctoa_append::buffer#0 uctoa_append::sub#0 uctoa_append::value#1 uctoa_append::digit#1 ] ( main:4::printf_schar:9::uctoa:150::uctoa_append:181 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::buffer#11 uctoa_append::buffer#0 uctoa_append::sub#0 uctoa_append::value#1 uctoa_append::digit#1 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } { uctoa_append::buffer#0 = uctoa::buffer#11 } { uctoa_append::value#0 = uctoa::value#2 } { uctoa_append::sub#0 = uctoa::digit_value#0 } { uctoa_append::return#0 = uctoa_append::value#2 } } main:4::printf_schar:13::uctoa:150::uctoa_append:181 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::buffer#11 uctoa_append::buffer#0 uctoa_append::sub#0 uctoa_append::value#1 uctoa_append::digit#1 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } { uctoa_append::buffer#0 = uctoa::buffer#11 } { uctoa_append::value#0 = uctoa::value#2 } { uctoa_append::sub#0 = uctoa::digit_value#0 } { uctoa_append::return#0 = uctoa_append::value#2 } } ) always clobbers reg byte a -Statement [194] (byte*) printf_line_cursor ← (const byte*) printf_screen [ printf_line_cursor ] ( main:4::printf_cls:7 [ printf_buffer printf_line_cursor ] { } ) always clobbers reg byte a -Statement [195] (byte*) printf_char_cursor ← (byte*) printf_line_cursor [ printf_line_cursor printf_char_cursor ] ( main:4::printf_cls:7 [ printf_buffer printf_line_cursor printf_char_cursor ] { } ) always clobbers reg byte a +Statement [182] (byte*) uctoa_append::buffer#0 ← (byte*) uctoa::buffer#11 [ printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::value#2 uctoa::buffer#11 uctoa::digit_value#0 uctoa_append::buffer#0 ] ( main:4::printf_schar:9::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::value#2 uctoa::buffer#11 uctoa::digit_value#0 uctoa_append::buffer#0 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } { uctoa_append::buffer#0 = uctoa::buffer#11 } { uctoa_append::value#0 = uctoa::value#2 } { uctoa_append::sub#0 = uctoa::digit_value#0 } { uctoa_append::return#0 = uctoa_append::value#2 } } main:4::printf_schar:13::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::value#2 uctoa::buffer#11 uctoa::digit_value#0 uctoa_append::buffer#0 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } { uctoa_append::buffer#0 = uctoa::buffer#11 } { uctoa_append::value#0 = uctoa::value#2 } { uctoa_append::sub#0 = uctoa::digit_value#0 } { uctoa_append::return#0 = uctoa_append::value#2 } } ) always clobbers reg byte a +Statement [192] *((byte*) uctoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) uctoa_append::digit#2) [ uctoa_append::value#2 ] ( main:4::printf_schar:9::uctoa:154::uctoa_append:185 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::buffer#11 uctoa_append::value#2 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } { uctoa_append::buffer#0 = uctoa::buffer#11 } { uctoa_append::value#0 = uctoa::value#2 } { uctoa_append::sub#0 = uctoa::digit_value#0 } { uctoa_append::return#0 = uctoa_append::value#2 } } main:4::printf_schar:13::uctoa:154::uctoa_append:185 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::buffer#11 uctoa_append::value#2 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } { uctoa_append::buffer#0 = uctoa::buffer#11 } { uctoa_append::value#0 = uctoa::value#2 } { uctoa_append::sub#0 = uctoa::digit_value#0 } { uctoa_append::return#0 = uctoa_append::value#2 } } ) always clobbers reg byte a reg byte y +Statement [195] (byte) uctoa_append::value#1 ← (byte) uctoa_append::value#2 - (byte) uctoa_append::sub#0 [ uctoa_append::buffer#0 uctoa_append::sub#0 uctoa_append::value#1 uctoa_append::digit#1 ] ( main:4::printf_schar:9::uctoa:154::uctoa_append:185 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::buffer#11 uctoa_append::buffer#0 uctoa_append::sub#0 uctoa_append::value#1 uctoa_append::digit#1 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } { uctoa_append::buffer#0 = uctoa::buffer#11 } { uctoa_append::value#0 = uctoa::value#2 } { uctoa_append::sub#0 = uctoa::digit_value#0 } { uctoa_append::return#0 = uctoa_append::value#2 } } main:4::printf_schar:13::uctoa:154::uctoa_append:185 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::buffer#11 uctoa_append::buffer#0 uctoa_append::sub#0 uctoa_append::value#1 uctoa_append::digit#1 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } { uctoa_append::buffer#0 = uctoa::buffer#11 } { uctoa_append::value#0 = uctoa::value#2 } { uctoa_append::sub#0 = uctoa::digit_value#0 } { uctoa_append::return#0 = uctoa_append::value#2 } } ) always clobbers reg byte a +Statement [198] (byte*) printf_line_cursor ← (const byte*) printf_screen [ printf_line_cursor ] ( main:4::printf_cls:7 [ printf_buffer printf_line_cursor ] { } ) always clobbers reg byte a +Statement [199] (byte*) printf_char_cursor ← (byte*) printf_line_cursor [ printf_line_cursor printf_char_cursor ] ( main:4::printf_cls:7 [ printf_buffer printf_line_cursor printf_char_cursor ] { } ) always clobbers reg byte a Statement [1] (byte*) printf_line_cursor ← (byte*) 1024 [ printf_buffer ] ( [ printf_buffer ] { } ) always clobbers reg byte a Statement [2] (byte*) printf_char_cursor ← (byte*) 1024 [ printf_buffer ] ( [ printf_buffer ] { } ) always clobbers reg byte a -Statement [22] (byte*) printf_line_cursor ← (byte*) printf_line_cursor + (byte) $28 [ printf_line_cursor printf_char_cursor ] ( main:4::printf_ln:11 [ printf_buffer printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:15 [ printf_buffer printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:19 [ printf_line_cursor printf_char_cursor ] { } ) always clobbers reg byte a -Statement [23] if((byte*) printf_line_cursor<(byte*) printf_char_cursor) goto printf_ln::@1 [ printf_line_cursor printf_char_cursor ] ( main:4::printf_ln:11 [ printf_buffer printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:15 [ printf_buffer printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:19 [ printf_line_cursor printf_char_cursor ] { } ) always clobbers reg byte a -Statement [24] (byte*) printf_char_cursor ← (byte*) printf_line_cursor [ printf_line_cursor printf_char_cursor ] ( main:4::printf_ln:11 [ printf_buffer printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:15 [ printf_buffer printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:19 [ printf_line_cursor printf_char_cursor ] { } ) always clobbers reg byte a +Statement [22] (byte*) printf_line_cursor ← (byte*) printf_line_cursor + (byte) $28 [ printf_line_cursor printf_char_cursor ] ( main:4::printf_ln:11 [ printf_buffer printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:15 [ printf_buffer printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:19 [ printf_line_cursor printf_char_cursor ] { } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_ln:111 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } main:4::printf_schar:9::printf_number_buffer:157::printf_str:59::printf_ln:111 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } main:4::printf_schar:13::printf_number_buffer:157::printf_str:59::printf_ln:111 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a +Statement [23] if((byte*) printf_line_cursor<(byte*) printf_char_cursor) goto printf_ln::@1 [ printf_line_cursor printf_char_cursor ] ( main:4::printf_ln:11 [ printf_buffer printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:15 [ printf_buffer printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:19 [ printf_line_cursor printf_char_cursor ] { } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_ln:111 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } main:4::printf_schar:9::printf_number_buffer:157::printf_str:59::printf_ln:111 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } main:4::printf_schar:13::printf_number_buffer:157::printf_str:59::printf_ln:111 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a +Statement [24] (byte*) printf_char_cursor ← (byte*) printf_line_cursor [ printf_line_cursor printf_char_cursor ] ( main:4::printf_ln:11 [ printf_buffer printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:15 [ printf_buffer printf_line_cursor printf_char_cursor ] { } main:4::printf_ln:19 [ printf_line_cursor printf_char_cursor ] { } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_ln:111 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } main:4::printf_schar:9::printf_number_buffer:157::printf_str:59::printf_ln:111 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } main:4::printf_schar:13::printf_number_buffer:157::printf_str:59::printf_ln:111 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a Statement [27] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 [ printf_line_cursor printf_char_cursor printf_buffer ] ( main:4::printf_uint:17 [ printf_line_cursor printf_char_cursor printf_buffer ] { } ) always clobbers reg byte a -Statement [34] (byte*) strlen::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::str#1 ] ( main:4::printf_uint:17::printf_number_buffer:30 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::str#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:4::printf_schar:9::printf_number_buffer:153 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::str#1 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:4::printf_schar:13::printf_number_buffer:153 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::str#1 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a -Statement [36] (word) strlen::return#2 ← (word) strlen::len#2 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::return#2 ] ( main:4::printf_uint:17::printf_number_buffer:30 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:4::printf_schar:9::printf_number_buffer:153 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::return#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:4::printf_schar:13::printf_number_buffer:153 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::return#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a -Statement [37] (word~) printf_number_buffer::$18 ← (word) strlen::return#2 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::$18 ] ( main:4::printf_uint:17::printf_number_buffer:30 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::$18 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:4::printf_schar:9::printf_number_buffer:153 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::$18 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:4::printf_schar:13::printf_number_buffer:153 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::$18 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [38] (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$18 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::len#0 ] ( main:4::printf_uint:17::printf_number_buffer:30 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:4::printf_schar:9::printf_number_buffer:153 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::len#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:4::printf_schar:13::printf_number_buffer:153 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::len#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [42] (signed byte) printf_number_buffer::padding#1 ← (signed byte)(byte) printf_number_buffer::format_min_length#2 - (signed byte) printf_number_buffer::len#2 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#1 ] ( main:4::printf_uint:17::printf_number_buffer:30 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:4::printf_schar:9::printf_number_buffer:153 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:4::printf_schar:13::printf_number_buffer:153 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a -Statement [58] (byte*) printf_str::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#1 ] ( main:4::printf_uint:17::printf_number_buffer:30 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } main:4::printf_schar:9::printf_number_buffer:153 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#1 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } main:4::printf_schar:13::printf_number_buffer:153 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#1 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a -Statement [74] *((byte*) printf_char_cursor) ← (byte) printf_char::ch#3 [ printf_line_cursor printf_char_cursor ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:153::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:153::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:106 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:9::printf_number_buffer:153::printf_str:59::printf_char:106 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:13::printf_number_buffer:153::printf_str:59::printf_char:106 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } ) always clobbers reg byte y -Statement [76] if((byte*) printf_char_cursor!=(const byte*) printf_screen+(word)(number) $28*(number) $19) goto printf_char::@return [ printf_line_cursor printf_char_cursor ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:153::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:153::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:106 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:9::printf_number_buffer:153::printf_str:59::printf_char:106 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:13::printf_number_buffer:153::printf_str:59::printf_char:106 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } ) always clobbers reg byte a -Statement [81] (byte*~) printf_char::$8 ← (byte*) printf_char_cursor - (byte) $28 [ printf_char::$8 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char::$8 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:153::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:153::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:106 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char::$8 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:9::printf_number_buffer:153::printf_str:59::printf_char:106 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:13::printf_number_buffer:153::printf_str:59::printf_char:106 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } ) always clobbers reg byte a -Statement [82] (byte*) printf_char_cursor ← (byte*~) printf_char::$8 [ printf_char_cursor ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:153::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:153::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:106 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:9::printf_number_buffer:153::printf_str:59::printf_char:106 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:13::printf_number_buffer:153::printf_str:59::printf_char:106 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } ) always clobbers reg byte a -Statement [83] (byte*) printf_line_cursor ← (byte*) printf_char_cursor [ printf_line_cursor printf_char_cursor ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:153::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:153::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:106 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:9::printf_number_buffer:153::printf_str:59::printf_char:106 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:13::printf_number_buffer:153::printf_str:59::printf_char:106 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } ) always clobbers reg byte a -Statement [86] if((word) memset::num#2<=(byte) 0) goto memset::@return [ memset::num#2 memset::str#3 memset::c#4 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:153::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:153::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:106::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:9::printf_number_buffer:153::printf_str:59::printf_char:106::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:13::printf_number_buffer:153::printf_str:59::printf_char:106::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_cls:7::memset:193 [ printf_buffer memset::num#2 memset::str#3 memset::c#4 ] { } ) always clobbers reg byte a -Statement [87] (byte*) memset::end#0 ← (byte*)(void*) memset::str#3 + (word) memset::num#2 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:153::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:153::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:106::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:9::printf_number_buffer:153::printf_str:59::printf_char:106::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:13::printf_number_buffer:153::printf_str:59::printf_char:106::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_cls:7::memset:193 [ printf_buffer memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a -Statement [88] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:153::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:153::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:106::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:9::printf_number_buffer:153::printf_str:59::printf_char:106::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:13::printf_number_buffer:153::printf_str:59::printf_char:106::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_cls:7::memset:193 [ printf_buffer memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a -Statement [90] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:153::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:153::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:106::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:9::printf_number_buffer:153::printf_str:59::printf_char:106::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:13::printf_number_buffer:153::printf_str:59::printf_char:106::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_cls:7::memset:193 [ printf_buffer memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a -Statement [92] *((byte*) memset::dst#2) ← (byte) memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:153::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:153::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:106::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:9::printf_number_buffer:153::printf_str:59::printf_char:106::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:13::printf_number_buffer:153::printf_str:59::printf_char:106::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_cls:7::memset:193 [ printf_buffer memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a reg byte y -Statement [96] if((byte*) memcpy::src#2!=(const byte*) memcpy::src_end#0) goto memcpy::@2 [ memcpy::src#2 memcpy::dst#2 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:153::printf_char:53::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:153::printf_char:53::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:50::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:50::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:57::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:57::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71::memcpy:78 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:64::printf_char:71::memcpy:78 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:64::printf_char:71::memcpy:78 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:106::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:9::printf_number_buffer:153::printf_str:59::printf_char:106::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:13::printf_number_buffer:153::printf_str:59::printf_char:106::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } ) always clobbers reg byte a -Statement [98] *((byte*) memcpy::dst#2) ← *((byte*) memcpy::src#2) [ memcpy::src#2 memcpy::dst#2 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:153::printf_char:53::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:153::printf_char:53::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:50::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:50::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:57::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:57::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71::memcpy:78 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:153::printf_padding:64::printf_char:71::memcpy:78 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:153::printf_padding:64::printf_char:71::memcpy:78 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:106::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:9::printf_number_buffer:153::printf_str:59::printf_char:106::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:13::printf_number_buffer:153::printf_str:59::printf_char:106::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } ) always clobbers reg byte a reg byte y -Statement [103] if((byte) 0!=*((byte*) printf_str::str#2)) goto printf_str::@2 [ printf_line_cursor printf_char_cursor printf_str::str#2 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_str:59 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor printf_str::str#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } main:4::printf_schar:9::printf_number_buffer:153::printf_str:59 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor printf_str::str#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } main:4::printf_schar:13::printf_number_buffer:153::printf_str:59 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor printf_str::str#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a reg byte y -Statement [105] (byte) printf_char::ch#1 ← *((byte*) printf_str::str#2) [ printf_line_cursor printf_char_cursor printf_char::ch#1 printf_str::str#2 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_str:59 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor printf_char::ch#1 printf_str::str#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:9::printf_number_buffer:153::printf_str:59 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor printf_char::ch#1 printf_str::str#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } main:4::printf_schar:13::printf_number_buffer:153::printf_str:59 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor printf_char::ch#1 printf_str::str#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 } } ) always clobbers reg byte a reg byte y -Statement [110] if((byte) 0!=*((byte*) strlen::str#2)) goto strlen::@2 [ strlen::len#2 strlen::str#2 ] ( main:4::printf_uint:17::printf_number_buffer:30::strlen:35 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::len#2 strlen::str#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:4::printf_schar:9::printf_number_buffer:153::strlen:35 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::len#2 strlen::str#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:4::printf_schar:13::printf_number_buffer:153::strlen:35 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::len#2 strlen::str#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a reg byte y -Statement [117] (byte~) utoa::$11 ← (byte)(word) utoa::value#2 [ printf_buffer utoa::buffer#11 utoa::$11 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::buffer#11 utoa::$11 ] { } ) always clobbers reg byte a -Statement [118] *((byte*) utoa::buffer#11) ← *((const byte*) DIGITS + (byte~) utoa::$11) [ printf_buffer utoa::buffer#11 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::buffer#11 ] { } ) always clobbers reg byte a reg byte y -Statement [119] (byte*) utoa::buffer#3 ← ++ (byte*) utoa::buffer#11 [ printf_buffer utoa::buffer#3 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::buffer#3 ] { } ) always clobbers reg byte a -Statement [120] *((byte*) utoa::buffer#3) ← (byte) 0 [ printf_buffer ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer ] { } ) always clobbers reg byte a reg byte y -Statement [122] (byte~) utoa::$10 ← (byte) utoa::digit#2 << (byte) 1 [ printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::$10 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::$10 ] { } ) always clobbers reg byte a -Statement [123] (word) utoa::digit_value#0 ← *((const word*) RADIX_HEXADECIMAL_VALUES + (byte~) utoa::$10) [ printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::digit_value#0 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::digit_value#0 ] { } ) always clobbers reg byte a -Statement [125] if((word) utoa::value#2>=(word) utoa::digit_value#0) goto utoa::@5 [ printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::digit_value#0 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::digit_value#0 ] { } ) always clobbers reg byte a -Statement [128] (byte*) utoa_append::buffer#0 ← (byte*) utoa::buffer#11 [ printf_buffer utoa::digit#2 utoa::value#2 utoa::buffer#11 utoa::digit_value#0 utoa_append::buffer#0 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::value#2 utoa::buffer#11 utoa::digit_value#0 utoa_append::buffer#0 ] { { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a -Statement [129] (word) utoa_append::value#0 ← (word) utoa::value#2 [ printf_buffer utoa::digit#2 utoa::buffer#11 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::buffer#11 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] { { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a -Statement [130] (word) utoa_append::sub#0 ← (word) utoa::digit_value#0 [ printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] { { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a -Statement [132] (word) utoa_append::return#0 ← (word) utoa_append::value#2 [ printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::return#0 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::return#0 ] { { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a -Statement [133] (word) utoa::value#0 ← (word) utoa_append::return#0 [ printf_buffer utoa::digit#2 utoa::buffer#11 utoa::value#0 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::buffer#11 utoa::value#0 ] { } ) always clobbers reg byte a -Statement [137] if((word) utoa_append::value#2>=(word) utoa_append::sub#0) goto utoa_append::@2 [ utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] ( main:4::printf_uint:17::utoa:28::utoa_append:131 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a -Statement [138] *((byte*) utoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) utoa_append::digit#2) [ utoa_append::value#2 ] ( main:4::printf_uint:17::utoa:28::utoa_append:131 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::value#2 ] { { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a reg byte y -Statement [141] (word) utoa_append::value#1 ← (word) utoa_append::value#2 - (word) utoa_append::sub#0 [ utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] ( main:4::printf_uint:17::utoa:28::utoa_append:131 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a -Statement [143] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::value#3 printf_schar::format_sign_always#2 printf_schar::format_radix#2 printf_schar::format_zero_padding#2 ] ( main:4::printf_schar:9 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::value#3 printf_schar::format_sign_always#2 printf_schar::format_radix#2 printf_schar::format_zero_padding#2 ] { } main:4::printf_schar:13 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::value#3 printf_schar::format_sign_always#2 printf_schar::format_radix#2 printf_schar::format_zero_padding#2 ] { } ) always clobbers reg byte a -Statement [146] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) '+' [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::value#3 printf_schar::format_radix#2 printf_schar::format_zero_padding#2 ] ( main:4::printf_schar:9 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::value#3 printf_schar::format_radix#2 printf_schar::format_zero_padding#2 ] { } main:4::printf_schar:13 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::value#3 printf_schar::format_radix#2 printf_schar::format_zero_padding#2 ] { } ) always clobbers reg byte a -Statement [155] (signed byte) printf_schar::value#0 ← - (signed byte) printf_schar::value#3 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::format_radix#2 printf_schar::format_zero_padding#2 printf_schar::value#0 ] ( main:4::printf_schar:9 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::format_radix#2 printf_schar::format_zero_padding#2 printf_schar::value#0 ] { } main:4::printf_schar:13 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::format_radix#2 printf_schar::format_zero_padding#2 printf_schar::value#0 ] { } ) always clobbers reg byte a -Statement [156] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) '-' [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::format_radix#2 printf_schar::format_zero_padding#2 printf_schar::value#0 ] ( main:4::printf_schar:9 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::format_radix#2 printf_schar::format_zero_padding#2 printf_schar::value#0 ] { } main:4::printf_schar:13 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::format_radix#2 printf_schar::format_zero_padding#2 printf_schar::value#0 ] { } ) always clobbers reg byte a -Statement [161] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS) ← (byte) 'e' [ printf_buffer ] ( main:4::printf_schar:9::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } main:4::printf_schar:13::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } ) always clobbers reg byte a -Statement [162] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(byte) 1) ← (byte) 'r' [ printf_buffer ] ( main:4::printf_schar:9::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } main:4::printf_schar:13::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } ) always clobbers reg byte a -Statement [163] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(byte) 2) ← (byte) 'r' [ printf_buffer ] ( main:4::printf_schar:9::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } main:4::printf_schar:13::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } ) always clobbers reg byte a -Statement [164] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(byte) 3) ← (byte) 0 [ printf_buffer ] ( main:4::printf_schar:9::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } main:4::printf_schar:13::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } ) always clobbers reg byte a -Statement [170] *((byte*) uctoa::buffer#11) ← *((const byte*) DIGITS + (byte) uctoa::value#2) [ printf_buffer uctoa::buffer#11 ] ( main:4::printf_schar:9::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::buffer#11 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } main:4::printf_schar:13::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::buffer#11 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } ) always clobbers reg byte a reg byte y -Statement [171] (byte*) uctoa::buffer#3 ← ++ (byte*) uctoa::buffer#11 [ printf_buffer uctoa::buffer#3 ] ( main:4::printf_schar:9::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::buffer#3 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } main:4::printf_schar:13::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::buffer#3 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } ) always clobbers reg byte a -Statement [172] *((byte*) uctoa::buffer#3) ← (byte) 0 [ printf_buffer ] ( main:4::printf_schar:9::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } main:4::printf_schar:13::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } ) always clobbers reg byte a reg byte y -Statement [173] (byte) uctoa::digit_value#0 ← *((byte*) uctoa::digit_values#8 + (byte) uctoa::digit#2) [ printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::value#2 uctoa::started#2 uctoa::buffer#11 uctoa::digit_value#0 ] ( main:4::printf_schar:9::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::value#2 uctoa::started#2 uctoa::buffer#11 uctoa::digit_value#0 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } main:4::printf_schar:13::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::value#2 uctoa::started#2 uctoa::buffer#11 uctoa::digit_value#0 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } ) always clobbers reg byte a reg byte y -Statement [178] (byte*) uctoa_append::buffer#0 ← (byte*) uctoa::buffer#11 [ printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::value#2 uctoa::buffer#11 uctoa::digit_value#0 uctoa_append::buffer#0 ] ( main:4::printf_schar:9::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::value#2 uctoa::buffer#11 uctoa::digit_value#0 uctoa_append::buffer#0 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } { uctoa_append::buffer#0 = uctoa::buffer#11 } { uctoa_append::value#0 = uctoa::value#2 } { uctoa_append::sub#0 = uctoa::digit_value#0 } { uctoa_append::return#0 = uctoa_append::value#2 } } main:4::printf_schar:13::uctoa:150 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::value#2 uctoa::buffer#11 uctoa::digit_value#0 uctoa_append::buffer#0 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } { uctoa_append::buffer#0 = uctoa::buffer#11 } { uctoa_append::value#0 = uctoa::value#2 } { uctoa_append::sub#0 = uctoa::digit_value#0 } { uctoa_append::return#0 = uctoa_append::value#2 } } ) always clobbers reg byte a -Statement [188] *((byte*) uctoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) uctoa_append::digit#2) [ uctoa_append::value#2 ] ( main:4::printf_schar:9::uctoa:150::uctoa_append:181 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::buffer#11 uctoa_append::value#2 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } { uctoa_append::buffer#0 = uctoa::buffer#11 } { uctoa_append::value#0 = uctoa::value#2 } { uctoa_append::sub#0 = uctoa::digit_value#0 } { uctoa_append::return#0 = uctoa_append::value#2 } } main:4::printf_schar:13::uctoa:150::uctoa_append:181 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::buffer#11 uctoa_append::value#2 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } { uctoa_append::buffer#0 = uctoa::buffer#11 } { uctoa_append::value#0 = uctoa::value#2 } { uctoa_append::sub#0 = uctoa::digit_value#0 } { uctoa_append::return#0 = uctoa_append::value#2 } } ) always clobbers reg byte a reg byte y -Statement [191] (byte) uctoa_append::value#1 ← (byte) uctoa_append::value#2 - (byte) uctoa_append::sub#0 [ uctoa_append::buffer#0 uctoa_append::sub#0 uctoa_append::value#1 uctoa_append::digit#1 ] ( main:4::printf_schar:9::uctoa:150::uctoa_append:181 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::buffer#11 uctoa_append::buffer#0 uctoa_append::sub#0 uctoa_append::value#1 uctoa_append::digit#1 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } { uctoa_append::buffer#0 = uctoa::buffer#11 } { uctoa_append::value#0 = uctoa::value#2 } { uctoa_append::sub#0 = uctoa::digit_value#0 } { uctoa_append::return#0 = uctoa_append::value#2 } } main:4::printf_schar:13::uctoa:150::uctoa_append:181 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::buffer#11 uctoa_append::buffer#0 uctoa_append::sub#0 uctoa_append::value#1 uctoa_append::digit#1 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } { uctoa_append::buffer#0 = uctoa::buffer#11 } { uctoa_append::value#0 = uctoa::value#2 } { uctoa_append::sub#0 = uctoa::digit_value#0 } { uctoa_append::return#0 = uctoa_append::value#2 } } ) always clobbers reg byte a -Statement [194] (byte*) printf_line_cursor ← (const byte*) printf_screen [ printf_line_cursor ] ( main:4::printf_cls:7 [ printf_buffer printf_line_cursor ] { } ) always clobbers reg byte a -Statement [195] (byte*) printf_char_cursor ← (byte*) printf_line_cursor [ printf_line_cursor printf_char_cursor ] ( main:4::printf_cls:7 [ printf_buffer printf_line_cursor printf_char_cursor ] { } ) always clobbers reg byte a +Statement [34] (byte*) strlen::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::str#1 ] ( main:4::printf_uint:17::printf_number_buffer:30 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::str#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:4::printf_schar:9::printf_number_buffer:157 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::str#1 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:4::printf_schar:13::printf_number_buffer:157 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::str#1 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a +Statement [36] (word) strlen::return#2 ← (word) strlen::len#2 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::return#2 ] ( main:4::printf_uint:17::printf_number_buffer:30 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::return#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:4::printf_schar:9::printf_number_buffer:157 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::return#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:4::printf_schar:13::printf_number_buffer:157 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::return#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a +Statement [37] (word~) printf_number_buffer::$18 ← (word) strlen::return#2 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::$18 ] ( main:4::printf_uint:17::printf_number_buffer:30 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::$18 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:4::printf_schar:9::printf_number_buffer:157 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::$18 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:4::printf_schar:13::printf_number_buffer:157 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::$18 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [38] (signed byte) printf_number_buffer::len#0 ← (signed byte)(word~) printf_number_buffer::$18 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::len#0 ] ( main:4::printf_uint:17::printf_number_buffer:30 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::len#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:4::printf_schar:9::printf_number_buffer:157 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::len#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:4::printf_schar:13::printf_number_buffer:157 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::len#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [42] (signed byte) printf_number_buffer::padding#1 ← (signed byte)(byte) printf_number_buffer::format_min_length#2 - (signed byte) printf_number_buffer::len#2 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#1 ] ( main:4::printf_uint:17::printf_number_buffer:30 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } } main:4::printf_schar:9::printf_number_buffer:157 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } main:4::printf_schar:13::printf_number_buffer:157 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#1 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } } ) always clobbers reg byte a +Statement [58] (byte*) printf_str::str#1 ← (byte*) printf_number_buffer::buffer_digits#10 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#1 ] ( main:4::printf_uint:17::printf_number_buffer:30 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#1 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } main:4::printf_schar:9::printf_number_buffer:157 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#1 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } main:4::printf_schar:13::printf_number_buffer:157 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#1 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a +Statement [74] *((byte*) printf_char_cursor) ← (byte) printf_char::ch#3 [ printf_line_cursor printf_char_cursor ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:157::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:109 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_str:59::printf_char:109 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:13::printf_number_buffer:157::printf_str:59::printf_char:109 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } ) always clobbers reg byte y +Statement [76] if((byte*) printf_char_cursor<(const byte*) printf_screen+(word)(number) $28*(number) $19) goto printf_char::@return [ printf_line_cursor printf_char_cursor ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:157::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:109 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_str:59::printf_char:109 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:13::printf_number_buffer:157::printf_str:59::printf_char:109 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } ) always clobbers reg byte a +Statement [81] (byte*~) printf_char::$8 ← (byte*) printf_char_cursor - (byte) $28 [ printf_char::$8 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char::$8 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:157::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:109 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char::$8 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_str:59::printf_char:109 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:13::printf_number_buffer:157::printf_str:59::printf_char:109 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char::$8 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } ) always clobbers reg byte a +Statement [82] (byte*) printf_char_cursor ← (byte*~) printf_char::$8 [ printf_char_cursor ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:157::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:109 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_str:59::printf_char:109 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:13::printf_number_buffer:157::printf_str:59::printf_char:109 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } ) always clobbers reg byte a +Statement [83] (byte*) printf_line_cursor ← (byte*) printf_char_cursor [ printf_line_cursor printf_char_cursor ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:157::printf_char:53 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:50::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:57::printf_char:71 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:64::printf_char:71 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:109 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_str:59::printf_char:109 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:13::printf_number_buffer:157::printf_str:59::printf_char:109 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_line_cursor printf_char_cursor ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } ) always clobbers reg byte a +Statement [86] if((word) memset::num#2<=(byte) 0) goto memset::@return [ memset::num#2 memset::str#3 memset::c#4 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:157::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:109::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_str:59::printf_char:109::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:13::printf_number_buffer:157::printf_str:59::printf_char:109::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memset::num#2 memset::str#3 memset::c#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_cls:7::memset:197 [ printf_buffer memset::num#2 memset::str#3 memset::c#4 ] { } ) always clobbers reg byte a +Statement [87] (byte*) memset::end#0 ← (byte*)(void*) memset::str#3 + (word) memset::num#2 [ memset::str#3 memset::c#4 memset::end#0 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:157::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:109::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_str:59::printf_char:109::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:13::printf_number_buffer:157::printf_str:59::printf_char:109::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memset::str#3 memset::c#4 memset::end#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_cls:7::memset:197 [ printf_buffer memset::str#3 memset::c#4 memset::end#0 ] { } ) always clobbers reg byte a +Statement [88] (byte*) memset::dst#4 ← (byte*)(void*) memset::str#3 [ memset::c#4 memset::end#0 memset::dst#4 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:157::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:109::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_str:59::printf_char:109::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:13::printf_number_buffer:157::printf_str:59::printf_char:109::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memset::c#4 memset::end#0 memset::dst#4 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_cls:7::memset:197 [ printf_buffer memset::c#4 memset::end#0 memset::dst#4 ] { } ) always clobbers reg byte a +Statement [90] if((byte*) memset::dst#2!=(byte*) memset::end#0) goto memset::@3 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:157::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:109::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_str:59::printf_char:109::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:13::printf_number_buffer:157::printf_str:59::printf_char:109::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_cls:7::memset:197 [ printf_buffer memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a +Statement [92] *((byte*) memset::dst#2) ← (byte) memset::c#4 [ memset::c#4 memset::end#0 memset::dst#2 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:157::printf_char:53::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:50::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:57::printf_char:71::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:64::printf_char:71::memset:80 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:109::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_str:59::printf_char:109::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:13::printf_number_buffer:157::printf_str:59::printf_char:109::memset:80 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memset::c#4 memset::end#0 memset::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_cls:7::memset:197 [ printf_buffer memset::c#4 memset::end#0 memset::dst#2 ] { } ) always clobbers reg byte a reg byte y +Statement [96] if((byte*) memcpy::src#2!=(const byte*) memcpy::src_end#0) goto memcpy::@2 [ memcpy::src#2 memcpy::dst#2 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_char:53::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:157::printf_char:53::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:50::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:50::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:57::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:57::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71::memcpy:78 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:64::printf_char:71::memcpy:78 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:64::printf_char:71::memcpy:78 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:109::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_str:59::printf_char:109::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:13::printf_number_buffer:157::printf_str:59::printf_char:109::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } ) always clobbers reg byte a +Statement [98] *((byte*) memcpy::dst#2) ← *((byte*) memcpy::src#2) [ memcpy::src#2 memcpy::dst#2 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_char:53::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_char:53::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_schar:13::printf_number_buffer:157::printf_char:53::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_char::ch#2 = printf_char::ch#3 printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:50::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:50::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:50::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#0 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:57::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:57::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:57::printf_char:71::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::padding#10 printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#1 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_padding:64::printf_char:71::memcpy:78 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:9::printf_number_buffer:157::printf_padding:64::printf_char:71::memcpy:78 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_schar:13::printf_number_buffer:157::printf_padding:64::printf_char:71::memcpy:78 [ printf_buffer printf_padding::length#4 printf_padding::pad#5 printf_padding::i#2 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_padding::length#2 = printf_padding::length#4 } { printf_char::ch#0 = printf_char::ch#3 printf_padding::pad#5 } } main:4::printf_uint:17::printf_number_buffer:30::printf_str:59::printf_char:109::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:9::printf_number_buffer:157::printf_str:59::printf_char:109::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } main:4::printf_schar:13::printf_number_buffer:157::printf_str:59::printf_char:109::memcpy:78 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_str::str#0 printf_char_cursor memcpy::src#2 memcpy::dst#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } { printf_char::ch#1 = printf_char::ch#3 printf_str::ch#0 } } ) always clobbers reg byte a reg byte y +Statement [103] (byte) printf_str::ch#0 ← *((byte*) printf_str::str#2) [ printf_line_cursor printf_char_cursor printf_str::str#2 printf_str::ch#0 ] ( main:4::printf_uint:17::printf_number_buffer:30::printf_str:59 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor printf_str::str#2 printf_str::ch#0 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } main:4::printf_schar:9::printf_number_buffer:157::printf_str:59 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor printf_str::str#2 printf_str::ch#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } main:4::printf_schar:13::printf_number_buffer:157::printf_str:59 [ printf_buffer printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::padding#10 printf_line_cursor printf_char_cursor printf_str::str#2 printf_str::ch#0 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { printf_str::str#1 = printf_number_buffer::buffer_digits#10 } } ) always clobbers reg byte a reg byte y +Statement [114] if((byte) 0!=*((byte*) strlen::str#2)) goto strlen::@2 [ strlen::len#2 strlen::str#2 ] ( main:4::printf_uint:17::printf_number_buffer:30::strlen:35 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::len#2 strlen::str#2 ] { { printf_number_buffer::buffer_sign#0 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:4::printf_schar:9::printf_number_buffer:157::strlen:35 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::len#2 strlen::str#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } main:4::printf_schar:13::printf_number_buffer:157::strlen:35 [ printf_line_cursor printf_char_cursor printf_buffer printf_number_buffer::format_min_length#2 printf_number_buffer::format_justify_left#10 printf_number_buffer::format_zero_padding#10 printf_number_buffer::buffer_digits#10 printf_number_buffer::buffer_sign#10 strlen::len#2 strlen::str#2 ] { { printf_number_buffer::format_zero_padding#1 = printf_number_buffer::format_zero_padding#10 printf_schar::format_zero_padding#2 } { printf_number_buffer::buffer_sign#1 = printf_number_buffer::buffer_sign#10 } { strlen::str#1 = printf_number_buffer::buffer_digits#10 } { strlen::return#2 = strlen::len#2 } } ) always clobbers reg byte a reg byte y +Statement [121] (byte~) utoa::$11 ← (byte)(word) utoa::value#2 [ printf_buffer utoa::buffer#11 utoa::$11 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::buffer#11 utoa::$11 ] { } ) always clobbers reg byte a +Statement [122] *((byte*) utoa::buffer#11) ← *((const byte*) DIGITS + (byte~) utoa::$11) [ printf_buffer utoa::buffer#11 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::buffer#11 ] { } ) always clobbers reg byte a reg byte y +Statement [123] (byte*) utoa::buffer#3 ← ++ (byte*) utoa::buffer#11 [ printf_buffer utoa::buffer#3 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::buffer#3 ] { } ) always clobbers reg byte a +Statement [124] *((byte*) utoa::buffer#3) ← (byte) 0 [ printf_buffer ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer ] { } ) always clobbers reg byte a reg byte y +Statement [126] (byte~) utoa::$10 ← (byte) utoa::digit#2 << (byte) 1 [ printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::$10 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::$10 ] { } ) always clobbers reg byte a +Statement [127] (word) utoa::digit_value#0 ← *((const word*) RADIX_HEXADECIMAL_VALUES + (byte~) utoa::$10) [ printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::digit_value#0 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::digit_value#0 ] { } ) always clobbers reg byte a +Statement [129] if((word) utoa::value#2>=(word) utoa::digit_value#0) goto utoa::@5 [ printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::digit_value#0 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::value#2 utoa::started#2 utoa::buffer#11 utoa::digit_value#0 ] { } ) always clobbers reg byte a +Statement [132] (byte*) utoa_append::buffer#0 ← (byte*) utoa::buffer#11 [ printf_buffer utoa::digit#2 utoa::value#2 utoa::buffer#11 utoa::digit_value#0 utoa_append::buffer#0 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::value#2 utoa::buffer#11 utoa::digit_value#0 utoa_append::buffer#0 ] { { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [133] (word) utoa_append::value#0 ← (word) utoa::value#2 [ printf_buffer utoa::digit#2 utoa::buffer#11 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::buffer#11 utoa::digit_value#0 utoa_append::buffer#0 utoa_append::value#0 ] { { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [134] (word) utoa_append::sub#0 ← (word) utoa::digit_value#0 [ printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::buffer#0 utoa_append::value#0 utoa_append::sub#0 ] { { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [136] (word) utoa_append::return#0 ← (word) utoa_append::value#2 [ printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::return#0 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::return#0 ] { { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [137] (word) utoa::value#0 ← (word) utoa_append::return#0 [ printf_buffer utoa::digit#2 utoa::buffer#11 utoa::value#0 ] ( main:4::printf_uint:17::utoa:28 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::buffer#11 utoa::value#0 ] { } ) always clobbers reg byte a +Statement [141] if((word) utoa_append::value#2>=(word) utoa_append::sub#0) goto utoa_append::@2 [ utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] ( main:4::printf_uint:17::utoa:28::utoa_append:135 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#2 utoa_append::digit#2 ] { { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [142] *((byte*) utoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) utoa_append::digit#2) [ utoa_append::value#2 ] ( main:4::printf_uint:17::utoa:28::utoa_append:135 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::value#2 ] { { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a reg byte y +Statement [145] (word) utoa_append::value#1 ← (word) utoa_append::value#2 - (word) utoa_append::sub#0 [ utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] ( main:4::printf_uint:17::utoa:28::utoa_append:135 [ printf_line_cursor printf_char_cursor printf_buffer utoa::digit#2 utoa::buffer#11 utoa_append::buffer#0 utoa_append::sub#0 utoa_append::value#1 utoa_append::digit#1 ] { { utoa_append::buffer#0 = utoa::buffer#11 } { utoa_append::value#0 = utoa::value#2 } { utoa_append::sub#0 = utoa::digit_value#0 } { utoa_append::return#0 = utoa_append::value#2 } } ) always clobbers reg byte a +Statement [147] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::value#3 printf_schar::format_sign_always#2 printf_schar::format_radix#2 printf_schar::format_zero_padding#2 ] ( main:4::printf_schar:9 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::value#3 printf_schar::format_sign_always#2 printf_schar::format_radix#2 printf_schar::format_zero_padding#2 ] { } main:4::printf_schar:13 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::value#3 printf_schar::format_sign_always#2 printf_schar::format_radix#2 printf_schar::format_zero_padding#2 ] { } ) always clobbers reg byte a +Statement [150] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) '+' [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::value#3 printf_schar::format_radix#2 printf_schar::format_zero_padding#2 ] ( main:4::printf_schar:9 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::value#3 printf_schar::format_radix#2 printf_schar::format_zero_padding#2 ] { } main:4::printf_schar:13 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::value#3 printf_schar::format_radix#2 printf_schar::format_zero_padding#2 ] { } ) always clobbers reg byte a +Statement [159] (signed byte) printf_schar::value#0 ← - (signed byte) printf_schar::value#3 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::format_radix#2 printf_schar::format_zero_padding#2 printf_schar::value#0 ] ( main:4::printf_schar:9 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::format_radix#2 printf_schar::format_zero_padding#2 printf_schar::value#0 ] { } main:4::printf_schar:13 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::format_radix#2 printf_schar::format_zero_padding#2 printf_schar::value#0 ] { } ) always clobbers reg byte a +Statement [160] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) '-' [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::format_radix#2 printf_schar::format_zero_padding#2 printf_schar::value#0 ] ( main:4::printf_schar:9 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::format_radix#2 printf_schar::format_zero_padding#2 printf_schar::value#0 ] { } main:4::printf_schar:13 [ printf_line_cursor printf_char_cursor printf_buffer printf_schar::format_radix#2 printf_schar::format_zero_padding#2 printf_schar::value#0 ] { } ) always clobbers reg byte a +Statement [165] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS) ← (byte) 'e' [ printf_buffer ] ( main:4::printf_schar:9::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } main:4::printf_schar:13::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } ) always clobbers reg byte a +Statement [166] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(byte) 1) ← (byte) 'r' [ printf_buffer ] ( main:4::printf_schar:9::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } main:4::printf_schar:13::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } ) always clobbers reg byte a +Statement [167] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(byte) 2) ← (byte) 'r' [ printf_buffer ] ( main:4::printf_schar:9::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } main:4::printf_schar:13::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } ) always clobbers reg byte a +Statement [168] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(byte) 3) ← (byte) 0 [ printf_buffer ] ( main:4::printf_schar:9::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } main:4::printf_schar:13::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } ) always clobbers reg byte a +Statement [174] *((byte*) uctoa::buffer#11) ← *((const byte*) DIGITS + (byte) uctoa::value#2) [ printf_buffer uctoa::buffer#11 ] ( main:4::printf_schar:9::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::buffer#11 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } main:4::printf_schar:13::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::buffer#11 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } ) always clobbers reg byte a reg byte y +Statement [175] (byte*) uctoa::buffer#3 ← ++ (byte*) uctoa::buffer#11 [ printf_buffer uctoa::buffer#3 ] ( main:4::printf_schar:9::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::buffer#3 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } main:4::printf_schar:13::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::buffer#3 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } ) always clobbers reg byte a +Statement [176] *((byte*) uctoa::buffer#3) ← (byte) 0 [ printf_buffer ] ( main:4::printf_schar:9::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } main:4::printf_schar:13::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } ) always clobbers reg byte a reg byte y +Statement [177] (byte) uctoa::digit_value#0 ← *((byte*) uctoa::digit_values#8 + (byte) uctoa::digit#2) [ printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::value#2 uctoa::started#2 uctoa::buffer#11 uctoa::digit_value#0 ] ( main:4::printf_schar:9::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::value#2 uctoa::started#2 uctoa::buffer#11 uctoa::digit_value#0 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } main:4::printf_schar:13::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::value#2 uctoa::started#2 uctoa::buffer#11 uctoa::digit_value#0 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } } ) always clobbers reg byte a reg byte y +Statement [182] (byte*) uctoa_append::buffer#0 ← (byte*) uctoa::buffer#11 [ printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::value#2 uctoa::buffer#11 uctoa::digit_value#0 uctoa_append::buffer#0 ] ( main:4::printf_schar:9::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::value#2 uctoa::buffer#11 uctoa::digit_value#0 uctoa_append::buffer#0 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } { uctoa_append::buffer#0 = uctoa::buffer#11 } { uctoa_append::value#0 = uctoa::value#2 } { uctoa_append::sub#0 = uctoa::digit_value#0 } { uctoa_append::return#0 = uctoa_append::value#2 } } main:4::printf_schar:13::uctoa:154 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::value#2 uctoa::buffer#11 uctoa::digit_value#0 uctoa_append::buffer#0 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } { uctoa_append::buffer#0 = uctoa::buffer#11 } { uctoa_append::value#0 = uctoa::value#2 } { uctoa_append::sub#0 = uctoa::digit_value#0 } { uctoa_append::return#0 = uctoa_append::value#2 } } ) always clobbers reg byte a +Statement [192] *((byte*) uctoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) uctoa_append::digit#2) [ uctoa_append::value#2 ] ( main:4::printf_schar:9::uctoa:154::uctoa_append:185 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::buffer#11 uctoa_append::value#2 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } { uctoa_append::buffer#0 = uctoa::buffer#11 } { uctoa_append::value#0 = uctoa::value#2 } { uctoa_append::sub#0 = uctoa::digit_value#0 } { uctoa_append::return#0 = uctoa_append::value#2 } } main:4::printf_schar:13::uctoa:154::uctoa_append:185 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::buffer#11 uctoa_append::value#2 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } { uctoa_append::buffer#0 = uctoa::buffer#11 } { uctoa_append::value#0 = uctoa::value#2 } { uctoa_append::sub#0 = uctoa::digit_value#0 } { uctoa_append::return#0 = uctoa_append::value#2 } } ) always clobbers reg byte a reg byte y +Statement [195] (byte) uctoa_append::value#1 ← (byte) uctoa_append::value#2 - (byte) uctoa_append::sub#0 [ uctoa_append::buffer#0 uctoa_append::sub#0 uctoa_append::value#1 uctoa_append::digit#1 ] ( main:4::printf_schar:9::uctoa:154::uctoa_append:185 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::buffer#11 uctoa_append::buffer#0 uctoa_append::sub#0 uctoa_append::value#1 uctoa_append::digit#1 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } { uctoa_append::buffer#0 = uctoa::buffer#11 } { uctoa_append::value#0 = uctoa::value#2 } { uctoa_append::sub#0 = uctoa::digit_value#0 } { uctoa_append::return#0 = uctoa_append::value#2 } } main:4::printf_schar:13::uctoa:154::uctoa_append:185 [ printf_line_cursor printf_char_cursor printf_schar::format_zero_padding#2 printf_buffer uctoa::max_digits#7 uctoa::digit_values#8 uctoa::digit#2 uctoa::buffer#11 uctoa_append::buffer#0 uctoa_append::sub#0 uctoa_append::value#1 uctoa_append::digit#1 ] { { uctoa::radix#0 = printf_schar::format_radix#2 } { uctoa_append::buffer#0 = uctoa::buffer#11 } { uctoa_append::value#0 = uctoa::value#2 } { uctoa_append::sub#0 = uctoa::digit_value#0 } { uctoa_append::return#0 = uctoa_append::value#2 } } ) always clobbers reg byte a +Statement [198] (byte*) printf_line_cursor ← (const byte*) printf_screen [ printf_line_cursor ] ( main:4::printf_cls:7 [ printf_buffer printf_line_cursor ] { } ) always clobbers reg byte a +Statement [199] (byte*) printf_char_cursor ← (byte*) printf_line_cursor [ printf_line_cursor printf_char_cursor ] ( main:4::printf_cls:7 [ printf_buffer printf_line_cursor printf_char_cursor ] { } ) always clobbers reg byte a Potential registers zp[1]:2 [ printf_number_buffer::format_min_length#2 ] : zp[1]:2 , reg byte x , Potential registers zp[1]:3 [ printf_number_buffer::format_justify_left#10 ] : zp[1]:3 , reg byte x , Potential registers zp[1]:4 [ printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_zero_padding#1 ] : zp[1]:4 , reg byte x , @@ -5628,34 +5716,35 @@ Potential registers zp[2]:58 [ strlen::return#2 ] : zp[2]:58 , Potential registers zp[2]:60 [ printf_number_buffer::$18 ] : zp[2]:60 , Potential registers zp[2]:62 [ printf_char::$8 ] : zp[2]:62 , Potential registers zp[2]:64 [ memset::end#0 ] : zp[2]:64 , -Potential registers zp[1]:66 [ utoa::$11 ] : zp[1]:66 , reg byte a , reg byte x , reg byte y , -Potential registers zp[2]:67 [ utoa::buffer#3 ] : zp[2]:67 , -Potential registers zp[1]:69 [ utoa::$10 ] : zp[1]:69 , reg byte a , reg byte x , reg byte y , -Potential registers zp[2]:70 [ utoa::digit_value#0 ] : zp[2]:70 , -Potential registers zp[2]:72 [ utoa_append::buffer#0 ] : zp[2]:72 , -Potential registers zp[2]:74 [ utoa_append::sub#0 ] : zp[2]:74 , -Potential registers zp[2]:76 [ utoa_append::return#0 ] : zp[2]:76 , -Potential registers zp[1]:78 [ uctoa::radix#0 ] : zp[1]:78 , reg byte a , reg byte x , reg byte y , -Potential registers zp[1]:79 [ uctoa::$4 ] : zp[1]:79 , reg byte a , reg byte x , reg byte y , -Potential registers zp[2]:80 [ uctoa::buffer#3 ] : zp[2]:80 , -Potential registers zp[1]:82 [ uctoa::digit_value#0 ] : zp[1]:82 , reg byte x , reg byte y , -Potential registers zp[2]:83 [ uctoa_append::buffer#0 ] : zp[2]:83 , -Potential registers zp[1]:85 [ uctoa_append::sub#0 ] : zp[1]:85 , reg byte x , reg byte y , -Potential registers zp[1]:86 [ uctoa_append::return#0 ] : zp[1]:86 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:66 [ printf_str::ch#0 ] : zp[1]:66 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:67 [ utoa::$11 ] : zp[1]:67 , reg byte a , reg byte x , reg byte y , +Potential registers zp[2]:68 [ utoa::buffer#3 ] : zp[2]:68 , +Potential registers zp[1]:70 [ utoa::$10 ] : zp[1]:70 , reg byte a , reg byte x , reg byte y , +Potential registers zp[2]:71 [ utoa::digit_value#0 ] : zp[2]:71 , +Potential registers zp[2]:73 [ utoa_append::buffer#0 ] : zp[2]:73 , +Potential registers zp[2]:75 [ utoa_append::sub#0 ] : zp[2]:75 , +Potential registers zp[2]:77 [ utoa_append::return#0 ] : zp[2]:77 , +Potential registers zp[1]:79 [ uctoa::radix#0 ] : zp[1]:79 , reg byte a , reg byte x , reg byte y , +Potential registers zp[1]:80 [ uctoa::$4 ] : zp[1]:80 , reg byte a , reg byte x , reg byte y , +Potential registers zp[2]:81 [ uctoa::buffer#3 ] : zp[2]:81 , +Potential registers zp[1]:83 [ uctoa::digit_value#0 ] : zp[1]:83 , reg byte x , reg byte y , +Potential registers zp[2]:84 [ uctoa_append::buffer#0 ] : zp[2]:84 , +Potential registers zp[1]:86 [ uctoa_append::sub#0 ] : zp[1]:86 , reg byte x , reg byte y , +Potential registers zp[1]:87 [ uctoa_append::return#0 ] : zp[1]:87 , reg byte a , reg byte x , reg byte y , Potential registers mem[12] [ printf_buffer ] : mem[12] , REGISTER UPLIFT SCOPES Uplift Scope [memcpy] 3,000,000,003: zp[2]:21 [ memcpy::src#2 memcpy::src#1 ] 2,000,000,002: zp[2]:23 [ memcpy::dst#2 memcpy::dst#1 ] Uplift Scope [memset] 356,666,672.33: zp[2]:19 [ memset::dst#2 memset::dst#4 memset::dst#1 ] 18,333,333.67: zp[2]:64 [ memset::end#0 ] 12,500,000.12: zp[1]:18 [ memset::c#4 ] 10,000,001: zp[2]:14 [ memset::num#2 ] 0: zp[2]:16 [ memset::str#3 ] -Uplift Scope [uctoa_append] 25,055,003.5: zp[1]:52 [ uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ] 20,050,002.5: zp[1]:53 [ uctoa_append::digit#2 uctoa_append::digit#1 ] 3,335,000.5: zp[1]:85 [ uctoa_append::sub#0 ] 20,002: zp[1]:86 [ uctoa_append::return#0 ] 13,750.25: zp[2]:83 [ uctoa_append::buffer#0 ] -Uplift Scope [utoa_append] 25,055,003.5: zp[2]:37 [ utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 ] 20,050,002.5: zp[1]:39 [ utoa_append::digit#2 utoa_append::digit#1 ] 3,335,000.5: zp[2]:74 [ utoa_append::sub#0 ] 20,002: zp[2]:76 [ utoa_append::return#0 ] 13,750.25: zp[2]:72 [ utoa_append::buffer#0 ] +Uplift Scope [uctoa_append] 25,055,003.5: zp[1]:52 [ uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ] 20,050,002.5: zp[1]:53 [ uctoa_append::digit#2 uctoa_append::digit#1 ] 3,335,000.5: zp[1]:86 [ uctoa_append::sub#0 ] 20,002: zp[1]:87 [ uctoa_append::return#0 ] 13,750.25: zp[2]:84 [ uctoa_append::buffer#0 ] +Uplift Scope [utoa_append] 25,055,003.5: zp[2]:37 [ utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 ] 20,050,002.5: zp[1]:39 [ utoa_append::digit#2 utoa_append::digit#1 ] 3,335,000.5: zp[2]:75 [ utoa_append::sub#0 ] 20,002: zp[2]:77 [ utoa_append::return#0 ] 13,750.25: zp[2]:73 [ utoa_append::buffer#0 ] Uplift Scope [printf_char] 2,000,002: zp[2]:62 [ printf_char::$8 ] 1,603,010: zp[1]:13 [ printf_char::ch#3 printf_char::ch#2 printf_char::ch#0 printf_char::ch#1 ] +Uplift Scope [] 323,234.43: zp[2]:54 [ printf_line_cursor ] 174,758.37: zp[2]:56 [ printf_char_cursor ] 0: mem[12] [ printf_buffer ] Uplift Scope [strlen] 308,837.67: zp[2]:27 [ strlen::str#2 strlen::str#1 strlen::str#0 ] 150,251.75: zp[2]:29 [ strlen::len#2 strlen::len#1 ] 2,002: zp[2]:58 [ strlen::return#2 ] +Uplift Scope [printf_str] 253,361.07: zp[2]:25 [ printf_str::str#2 printf_str::str#1 printf_str::str#0 ] 100,001: zp[1]:66 [ printf_str::ch#0 ] Uplift Scope [printf_padding] 275,002.75: zp[1]:12 [ printf_padding::i#2 printf_padding::i#1 ] 23,173.33: zp[1]:10 [ printf_padding::length#4 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] 16,666.83: zp[1]:11 [ printf_padding::pad#5 ] -Uplift Scope [printf_str] 308,004.25: zp[2]:25 [ printf_str::str#2 printf_str::str#1 printf_str::str#0 ] -Uplift Scope [uctoa] 38,234.73: zp[2]:50 [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 ] 31,160.79: zp[1]:48 [ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 ] 22,859.43: zp[1]:47 [ uctoa::digit#2 uctoa::digit#1 ] 20,002: zp[1]:79 [ uctoa::$4 ] 15,001.5: zp[1]:49 [ uctoa::started#2 uctoa::started#4 ] 6,000.6: zp[1]:82 [ uctoa::digit_value#0 ] 2,002: zp[2]:80 [ uctoa::buffer#3 ] 1,026.25: zp[1]:78 [ uctoa::radix#0 ] 625.06: zp[1]:44 [ uctoa::max_digits#7 ] 625.06: zp[2]:45 [ uctoa::digit_values#8 ] -Uplift Scope [utoa] 38,003.93: zp[2]:35 [ utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 ] 30,717.36: zp[2]:32 [ utoa::value#2 utoa::value#6 utoa::value#0 ] 22,859.43: zp[1]:31 [ utoa::digit#2 utoa::digit#1 ] 20,002: zp[1]:69 [ utoa::$10 ] 15,001.5: zp[1]:34 [ utoa::started#2 utoa::started#4 ] 6,000.6: zp[2]:70 [ utoa::digit_value#0 ] 2,002: zp[1]:66 [ utoa::$11 ] 2,002: zp[2]:67 [ utoa::buffer#3 ] -Uplift Scope [] 70,719.31: zp[2]:56 [ printf_char_cursor ] 10,561.15: zp[2]:54 [ printf_line_cursor ] 0: mem[12] [ printf_buffer ] +Uplift Scope [uctoa] 38,234.73: zp[2]:50 [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 ] 31,160.79: zp[1]:48 [ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 ] 22,859.43: zp[1]:47 [ uctoa::digit#2 uctoa::digit#1 ] 20,002: zp[1]:80 [ uctoa::$4 ] 15,001.5: zp[1]:49 [ uctoa::started#2 uctoa::started#4 ] 6,000.6: zp[1]:83 [ uctoa::digit_value#0 ] 2,002: zp[2]:81 [ uctoa::buffer#3 ] 1,026.25: zp[1]:79 [ uctoa::radix#0 ] 625.06: zp[1]:44 [ uctoa::max_digits#7 ] 625.06: zp[2]:45 [ uctoa::digit_values#8 ] +Uplift Scope [utoa] 38,003.93: zp[2]:35 [ utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 ] 30,717.36: zp[2]:32 [ utoa::value#2 utoa::value#6 utoa::value#0 ] 22,859.43: zp[1]:31 [ utoa::digit#2 utoa::digit#1 ] 20,002: zp[1]:70 [ utoa::$10 ] 15,001.5: zp[1]:34 [ utoa::started#2 utoa::started#4 ] 6,000.6: zp[2]:71 [ utoa::digit_value#0 ] 2,002: zp[1]:67 [ utoa::$11 ] 2,002: zp[2]:68 [ utoa::buffer#3 ] Uplift Scope [printf_number_buffer] 6,506.5: zp[1]:8 [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ] 1,223.44: zp[1]:9 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] 1,001: zp[2]:60 [ printf_number_buffer::$18 ] 463.25: zp[1]:7 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] 309.03: zp[1]:4 [ printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_zero_padding#1 ] 100.1: zp[1]:2 [ printf_number_buffer::format_min_length#2 ] 77: zp[2]:5 [ printf_number_buffer::buffer_digits#10 ] 71.5: zp[1]:3 [ printf_number_buffer::format_justify_left#10 ] Uplift Scope [printf_schar] 484.8: zp[1]:43 [ printf_schar::value#5 printf_schar::value#0 printf_schar::value#3 ] 33.67: zp[1]:40 [ printf_schar::format_sign_always#2 ] 11.22: zp[1]:41 [ printf_schar::format_radix#2 ] 8.42: zp[1]:42 [ printf_schar::format_zero_padding#2 ] Uplift Scope [RADIX] @@ -5667,59 +5756,59 @@ Uplift Scope [printf_ln] Uplift Scope [printf_uint] Uplift Scope [main] -Uplifting [memcpy] best 25098 combination zp[2]:21 [ memcpy::src#2 memcpy::src#1 ] zp[2]:23 [ memcpy::dst#2 memcpy::dst#1 ] -Uplifting [memset] best 25082 combination zp[2]:19 [ memset::dst#2 memset::dst#4 memset::dst#1 ] zp[2]:64 [ memset::end#0 ] reg byte x [ memset::c#4 ] zp[2]:14 [ memset::num#2 ] zp[2]:16 [ memset::str#3 ] -Uplifting [uctoa_append] best 23859 combination reg byte x [ uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ] reg byte y [ uctoa_append::digit#2 uctoa_append::digit#1 ] zp[1]:85 [ uctoa_append::sub#0 ] reg byte x [ uctoa_append::return#0 ] zp[2]:83 [ uctoa_append::buffer#0 ] -Uplifting [utoa_append] best 23256 combination zp[2]:37 [ utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 ] reg byte x [ utoa_append::digit#2 utoa_append::digit#1 ] zp[2]:74 [ utoa_append::sub#0 ] zp[2]:76 [ utoa_append::return#0 ] zp[2]:72 [ utoa_append::buffer#0 ] -Uplifting [printf_char] best 23190 combination zp[2]:62 [ printf_char::$8 ] reg byte a [ printf_char::ch#3 printf_char::ch#2 printf_char::ch#0 printf_char::ch#1 ] -Uplifting [strlen] best 23190 combination zp[2]:27 [ strlen::str#2 strlen::str#1 strlen::str#0 ] zp[2]:29 [ strlen::len#2 strlen::len#1 ] zp[2]:58 [ strlen::return#2 ] -Uplifting [printf_padding] best 23190 combination zp[1]:12 [ printf_padding::i#2 printf_padding::i#1 ] zp[1]:10 [ printf_padding::length#4 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] zp[1]:11 [ printf_padding::pad#5 ] -Uplifting [printf_str] best 23190 combination zp[2]:25 [ printf_str::str#2 printf_str::str#1 printf_str::str#0 ] -Uplifting [uctoa] best 23069 combination zp[2]:50 [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 ] reg byte x [ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 ] zp[1]:47 [ uctoa::digit#2 uctoa::digit#1 ] reg byte a [ uctoa::$4 ] zp[1]:49 [ uctoa::started#2 uctoa::started#4 ] reg byte y [ uctoa::digit_value#0 ] zp[2]:80 [ uctoa::buffer#3 ] zp[1]:78 [ uctoa::radix#0 ] zp[1]:44 [ uctoa::max_digits#7 ] zp[2]:45 [ uctoa::digit_values#8 ] +Uplifting [memcpy] best 25259 combination zp[2]:21 [ memcpy::src#2 memcpy::src#1 ] zp[2]:23 [ memcpy::dst#2 memcpy::dst#1 ] +Uplifting [memset] best 25243 combination zp[2]:19 [ memset::dst#2 memset::dst#4 memset::dst#1 ] zp[2]:64 [ memset::end#0 ] reg byte x [ memset::c#4 ] zp[2]:14 [ memset::num#2 ] zp[2]:16 [ memset::str#3 ] +Uplifting [uctoa_append] best 24020 combination reg byte x [ uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ] reg byte y [ uctoa_append::digit#2 uctoa_append::digit#1 ] zp[1]:86 [ uctoa_append::sub#0 ] reg byte x [ uctoa_append::return#0 ] zp[2]:84 [ uctoa_append::buffer#0 ] +Uplifting [utoa_append] best 23417 combination zp[2]:37 [ utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 ] reg byte x [ utoa_append::digit#2 utoa_append::digit#1 ] zp[2]:75 [ utoa_append::sub#0 ] zp[2]:77 [ utoa_append::return#0 ] zp[2]:73 [ utoa_append::buffer#0 ] +Uplifting [printf_char] best 23351 combination zp[2]:62 [ printf_char::$8 ] reg byte a [ printf_char::ch#3 printf_char::ch#2 printf_char::ch#0 printf_char::ch#1 ] +Uplifting [] best 23351 combination zp[2]:54 [ printf_line_cursor ] zp[2]:56 [ printf_char_cursor ] mem[12] [ printf_buffer ] +Uplifting [strlen] best 23351 combination zp[2]:27 [ strlen::str#2 strlen::str#1 strlen::str#0 ] zp[2]:29 [ strlen::len#2 strlen::len#1 ] zp[2]:58 [ strlen::return#2 ] +Uplifting [printf_str] best 23231 combination zp[2]:25 [ printf_str::str#2 printf_str::str#1 printf_str::str#0 ] reg byte a [ printf_str::ch#0 ] +Uplifting [printf_padding] best 23231 combination zp[1]:12 [ printf_padding::i#2 printf_padding::i#1 ] zp[1]:10 [ printf_padding::length#4 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] zp[1]:11 [ printf_padding::pad#5 ] +Uplifting [uctoa] best 23110 combination zp[2]:50 [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 ] reg byte x [ uctoa::value#2 uctoa::value#6 uctoa::value#1 uctoa::value#0 ] zp[1]:47 [ uctoa::digit#2 uctoa::digit#1 ] reg byte a [ uctoa::$4 ] zp[1]:49 [ uctoa::started#2 uctoa::started#4 ] reg byte y [ uctoa::digit_value#0 ] zp[2]:81 [ uctoa::buffer#3 ] zp[1]:79 [ uctoa::radix#0 ] zp[1]:44 [ uctoa::max_digits#7 ] zp[2]:45 [ uctoa::digit_values#8 ] Limited combination testing to 100 combinations of 768 possible. -Uplifting [utoa] best 22935 combination zp[2]:35 [ utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 ] zp[2]:32 [ utoa::value#2 utoa::value#6 utoa::value#0 ] zp[1]:31 [ utoa::digit#2 utoa::digit#1 ] reg byte a [ utoa::$10 ] reg byte x [ utoa::started#2 utoa::started#4 ] zp[2]:70 [ utoa::digit_value#0 ] reg byte a [ utoa::$11 ] zp[2]:67 [ utoa::buffer#3 ] -Uplifting [] best 22935 combination zp[2]:56 [ printf_char_cursor ] zp[2]:54 [ printf_line_cursor ] mem[12] [ printf_buffer ] -Uplifting [printf_number_buffer] best 22924 combination reg byte y [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ] zp[1]:9 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] zp[2]:60 [ printf_number_buffer::$18 ] zp[1]:7 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] zp[1]:4 [ printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_zero_padding#1 ] reg byte x [ printf_number_buffer::format_min_length#2 ] zp[2]:5 [ printf_number_buffer::buffer_digits#10 ] zp[1]:3 [ printf_number_buffer::format_justify_left#10 ] +Uplifting [utoa] best 22976 combination zp[2]:35 [ utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 ] zp[2]:32 [ utoa::value#2 utoa::value#6 utoa::value#0 ] zp[1]:31 [ utoa::digit#2 utoa::digit#1 ] reg byte a [ utoa::$10 ] reg byte x [ utoa::started#2 utoa::started#4 ] zp[2]:71 [ utoa::digit_value#0 ] reg byte a [ utoa::$11 ] zp[2]:68 [ utoa::buffer#3 ] +Uplifting [printf_number_buffer] best 22965 combination reg byte y [ printf_number_buffer::len#2 printf_number_buffer::len#0 printf_number_buffer::len#1 ] zp[1]:9 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] zp[2]:60 [ printf_number_buffer::$18 ] zp[1]:7 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] zp[1]:4 [ printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_zero_padding#1 ] reg byte x [ printf_number_buffer::format_min_length#2 ] zp[2]:5 [ printf_number_buffer::buffer_digits#10 ] zp[1]:3 [ printf_number_buffer::format_justify_left#10 ] Limited combination testing to 100 combinations of 128 possible. -Uplifting [printf_schar] best 22903 combination reg byte x [ printf_schar::value#5 printf_schar::value#0 printf_schar::value#3 ] reg byte y [ printf_schar::format_sign_always#2 ] zp[1]:41 [ printf_schar::format_radix#2 ] zp[1]:42 [ printf_schar::format_zero_padding#2 ] -Uplifting [RADIX] best 22903 combination -Uplifting [printf_format_number] best 22903 combination -Uplifting [printf_buffer_number] best 22903 combination -Uplifting [printf_format_string] best 22903 combination -Uplifting [printf_cls] best 22903 combination -Uplifting [printf_ln] best 22903 combination -Uplifting [printf_uint] best 22903 combination -Uplifting [main] best 22903 combination -Attempting to uplift remaining variables inzp[1]:85 [ uctoa_append::sub#0 ] -Uplifting [uctoa_append] best 22903 combination zp[1]:85 [ uctoa_append::sub#0 ] +Uplifting [printf_schar] best 22944 combination reg byte x [ printf_schar::value#5 printf_schar::value#0 printf_schar::value#3 ] reg byte y [ printf_schar::format_sign_always#2 ] zp[1]:41 [ printf_schar::format_radix#2 ] zp[1]:42 [ printf_schar::format_zero_padding#2 ] +Uplifting [RADIX] best 22944 combination +Uplifting [printf_format_number] best 22944 combination +Uplifting [printf_buffer_number] best 22944 combination +Uplifting [printf_format_string] best 22944 combination +Uplifting [printf_cls] best 22944 combination +Uplifting [printf_ln] best 22944 combination +Uplifting [printf_uint] best 22944 combination +Uplifting [main] best 22944 combination +Attempting to uplift remaining variables inzp[1]:86 [ uctoa_append::sub#0 ] +Uplifting [uctoa_append] best 22944 combination zp[1]:86 [ uctoa_append::sub#0 ] Attempting to uplift remaining variables inzp[1]:12 [ printf_padding::i#2 printf_padding::i#1 ] -Uplifting [printf_padding] best 22903 combination zp[1]:12 [ printf_padding::i#2 printf_padding::i#1 ] +Uplifting [printf_padding] best 22944 combination zp[1]:12 [ printf_padding::i#2 printf_padding::i#1 ] Attempting to uplift remaining variables inzp[1]:10 [ printf_padding::length#4 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] -Uplifting [printf_padding] best 22903 combination zp[1]:10 [ printf_padding::length#4 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] +Uplifting [printf_padding] best 22944 combination zp[1]:10 [ printf_padding::length#4 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] Attempting to uplift remaining variables inzp[1]:31 [ utoa::digit#2 utoa::digit#1 ] -Uplifting [utoa] best 22903 combination zp[1]:31 [ utoa::digit#2 utoa::digit#1 ] +Uplifting [utoa] best 22944 combination zp[1]:31 [ utoa::digit#2 utoa::digit#1 ] Attempting to uplift remaining variables inzp[1]:47 [ uctoa::digit#2 uctoa::digit#1 ] -Uplifting [uctoa] best 22903 combination zp[1]:47 [ uctoa::digit#2 uctoa::digit#1 ] +Uplifting [uctoa] best 22944 combination zp[1]:47 [ uctoa::digit#2 uctoa::digit#1 ] Attempting to uplift remaining variables inzp[1]:11 [ printf_padding::pad#5 ] -Uplifting [printf_padding] best 22903 combination zp[1]:11 [ printf_padding::pad#5 ] +Uplifting [printf_padding] best 22944 combination zp[1]:11 [ printf_padding::pad#5 ] Attempting to uplift remaining variables inzp[1]:49 [ uctoa::started#2 uctoa::started#4 ] -Uplifting [uctoa] best 22903 combination zp[1]:49 [ uctoa::started#2 uctoa::started#4 ] +Uplifting [uctoa] best 22944 combination zp[1]:49 [ uctoa::started#2 uctoa::started#4 ] Attempting to uplift remaining variables inzp[1]:9 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] -Uplifting [printf_number_buffer] best 22903 combination zp[1]:9 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] -Attempting to uplift remaining variables inzp[1]:78 [ uctoa::radix#0 ] -Uplifting [uctoa] best 22888 combination reg byte a [ uctoa::radix#0 ] +Uplifting [printf_number_buffer] best 22944 combination zp[1]:9 [ printf_number_buffer::padding#10 printf_number_buffer::padding#1 ] +Attempting to uplift remaining variables inzp[1]:79 [ uctoa::radix#0 ] +Uplifting [uctoa] best 22929 combination reg byte a [ uctoa::radix#0 ] Attempting to uplift remaining variables inzp[1]:44 [ uctoa::max_digits#7 ] -Uplifting [uctoa] best 22888 combination zp[1]:44 [ uctoa::max_digits#7 ] +Uplifting [uctoa] best 22929 combination zp[1]:44 [ uctoa::max_digits#7 ] Attempting to uplift remaining variables inzp[1]:7 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] -Uplifting [printf_number_buffer] best 22888 combination zp[1]:7 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] +Uplifting [printf_number_buffer] best 22929 combination zp[1]:7 [ printf_number_buffer::buffer_sign#10 printf_number_buffer::buffer_sign#1 printf_number_buffer::buffer_sign#0 ] Attempting to uplift remaining variables inzp[1]:4 [ printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_zero_padding#1 ] -Uplifting [printf_number_buffer] best 22888 combination zp[1]:4 [ printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_zero_padding#1 ] +Uplifting [printf_number_buffer] best 22929 combination zp[1]:4 [ printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_zero_padding#1 ] Attempting to uplift remaining variables inzp[1]:3 [ printf_number_buffer::format_justify_left#10 ] -Uplifting [printf_number_buffer] best 22888 combination zp[1]:3 [ printf_number_buffer::format_justify_left#10 ] +Uplifting [printf_number_buffer] best 22929 combination zp[1]:3 [ printf_number_buffer::format_justify_left#10 ] Attempting to uplift remaining variables inzp[1]:41 [ printf_schar::format_radix#2 ] -Uplifting [printf_schar] best 22888 combination zp[1]:41 [ printf_schar::format_radix#2 ] +Uplifting [printf_schar] best 22929 combination zp[1]:41 [ printf_schar::format_radix#2 ] Attempting to uplift remaining variables inzp[1]:42 [ printf_schar::format_zero_padding#2 ] -Uplifting [printf_schar] best 22888 combination zp[1]:42 [ printf_schar::format_zero_padding#2 ] +Uplifting [printf_schar] best 22929 combination zp[1]:42 [ printf_schar::format_zero_padding#2 ] Coalescing zero page register [ zp[2]:56 [ printf_char_cursor ] ] with [ zp[2]:62 [ printf_char::$8 ] ] - score: 2 Coalescing zero page register [ zp[1]:4 [ printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_zero_padding#1 ] ] with [ zp[1]:42 [ printf_schar::format_zero_padding#2 ] ] - score: 1 Coalescing zero page register [ zp[2]:5 [ printf_number_buffer::buffer_digits#10 ] ] with [ zp[2]:25 [ printf_str::str#2 printf_str::str#1 printf_str::str#0 ] ] - score: 1 @@ -5727,12 +5816,12 @@ Coalescing zero page register [ zp[2]:14 [ memset::num#2 ] ] with [ zp[2]:64 [ m Coalescing zero page register [ zp[2]:16 [ memset::str#3 ] ] with [ zp[2]:19 [ memset::dst#2 memset::dst#4 memset::dst#1 ] ] - score: 1 Coalescing zero page register [ zp[2]:29 [ strlen::len#2 strlen::len#1 ] ] with [ zp[2]:58 [ strlen::return#2 ] ] - score: 1 Coalescing zero page register [ zp[2]:32 [ utoa::value#2 utoa::value#6 utoa::value#0 ] ] with [ zp[2]:37 [ utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 ] ] - score: 1 -Coalescing zero page register [ zp[2]:32 [ utoa::value#2 utoa::value#6 utoa::value#0 utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 ] ] with [ zp[2]:76 [ utoa_append::return#0 ] ] - score: 1 -Coalescing zero page register [ zp[2]:35 [ utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 ] ] with [ zp[2]:67 [ utoa::buffer#3 ] ] - score: 1 -Coalescing zero page register [ zp[2]:35 [ utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 utoa::buffer#3 ] ] with [ zp[2]:72 [ utoa_append::buffer#0 ] ] - score: 1 -Coalescing zero page register [ zp[2]:50 [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 ] ] with [ zp[2]:80 [ uctoa::buffer#3 ] ] - score: 1 -Coalescing zero page register [ zp[2]:50 [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 uctoa::buffer#3 ] ] with [ zp[2]:83 [ uctoa_append::buffer#0 ] ] - score: 1 -Coalescing zero page register [ zp[2]:70 [ utoa::digit_value#0 ] ] with [ zp[2]:74 [ utoa_append::sub#0 ] ] - score: 1 +Coalescing zero page register [ zp[2]:32 [ utoa::value#2 utoa::value#6 utoa::value#0 utoa_append::value#2 utoa_append::value#0 utoa_append::value#1 ] ] with [ zp[2]:77 [ utoa_append::return#0 ] ] - score: 1 +Coalescing zero page register [ zp[2]:35 [ utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 ] ] with [ zp[2]:68 [ utoa::buffer#3 ] ] - score: 1 +Coalescing zero page register [ zp[2]:35 [ utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 utoa::buffer#3 ] ] with [ zp[2]:73 [ utoa_append::buffer#0 ] ] - score: 1 +Coalescing zero page register [ zp[2]:50 [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 ] ] with [ zp[2]:81 [ uctoa::buffer#3 ] ] - score: 1 +Coalescing zero page register [ zp[2]:50 [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 uctoa::buffer#3 ] ] with [ zp[2]:84 [ uctoa_append::buffer#0 ] ] - score: 1 +Coalescing zero page register [ zp[2]:71 [ utoa::digit_value#0 ] ] with [ zp[2]:75 [ utoa_append::sub#0 ] ] - score: 1 Coalescing zero page register [ zp[2]:29 [ strlen::len#2 strlen::len#1 strlen::return#2 ] ] with [ zp[2]:60 [ printf_number_buffer::$18 ] ] - score: 1 Coalescing zero page register [ zp[2]:21 [ memcpy::src#2 memcpy::src#1 ] ] with [ zp[2]:14 [ memset::num#2 memset::end#0 ] ] Coalescing zero page register [ zp[2]:23 [ memcpy::dst#2 memcpy::dst#1 ] ] with [ zp[2]:16 [ memset::str#3 memset::dst#2 memset::dst#4 memset::dst#1 ] ] @@ -5744,8 +5833,8 @@ Coalescing zero page register [ zp[1]:44 [ uctoa::max_digits#7 ] ] with [ zp[1]: Coalescing zero page register [ zp[2]:45 [ uctoa::digit_values#8 ] ] with [ zp[2]:29 [ strlen::len#2 strlen::len#1 strlen::return#2 printf_number_buffer::$18 ] ] Coalescing zero page register [ zp[1]:47 [ uctoa::digit#2 uctoa::digit#1 ] ] with [ zp[1]:10 [ printf_padding::length#4 printf_padding::length#1 printf_padding::length#2 printf_padding::length#0 ] ] Coalescing zero page register [ zp[1]:49 [ uctoa::started#2 uctoa::started#4 ] ] with [ zp[1]:11 [ printf_padding::pad#5 ] ] -Coalescing zero page register [ zp[2]:70 [ utoa::digit_value#0 utoa_append::sub#0 ] ] with [ zp[2]:50 [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 uctoa::buffer#3 uctoa_append::buffer#0 ] ] -Coalescing zero page register [ zp[1]:85 [ uctoa_append::sub#0 ] ] with [ zp[1]:12 [ printf_padding::i#2 printf_padding::i#1 ] ] +Coalescing zero page register [ zp[2]:71 [ utoa::digit_value#0 utoa_append::sub#0 ] ] with [ zp[2]:50 [ uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 uctoa::buffer#3 uctoa_append::buffer#0 ] ] +Coalescing zero page register [ zp[1]:86 [ uctoa_append::sub#0 ] ] with [ zp[1]:12 [ printf_padding::i#2 printf_padding::i#1 ] ] Coalescing zero page register [ zp[2]:35 [ utoa::buffer#11 utoa::buffer#14 utoa::buffer#4 utoa::buffer#3 utoa_append::buffer#0 strlen::str#2 strlen::str#1 strlen::str#0 ] ] with [ zp[2]:21 [ memcpy::src#2 memcpy::src#1 memset::num#2 memset::end#0 ] ] Coalescing zero page register [ zp[2]:45 [ uctoa::digit_values#8 strlen::len#2 strlen::len#1 strlen::return#2 printf_number_buffer::$18 ] ] with [ zp[2]:23 [ memcpy::dst#2 memcpy::dst#1 memset::str#3 memset::dst#2 memset::dst#4 memset::dst#1 ] ] Allocated (was zp[1]:4) zp[1]:2 [ printf_number_buffer::format_zero_padding#10 printf_number_buffer::format_zero_padding#1 printf_schar::format_zero_padding#2 ] @@ -5759,8 +5848,8 @@ Allocated (was zp[1]:47) zp[1]:12 [ uctoa::digit#2 uctoa::digit#1 printf_padding Allocated (was zp[1]:49) zp[1]:13 [ uctoa::started#2 uctoa::started#4 printf_padding::pad#5 ] Allocated (was zp[2]:54) zp[2]:14 [ printf_line_cursor ] Allocated (was zp[2]:56) zp[2]:16 [ printf_char_cursor printf_char::$8 ] -Allocated (was zp[2]:70) zp[2]:18 [ utoa::digit_value#0 utoa_append::sub#0 uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 uctoa::buffer#3 uctoa_append::buffer#0 ] -Allocated (was zp[1]:85) zp[1]:20 [ uctoa_append::sub#0 printf_padding::i#2 printf_padding::i#1 ] +Allocated (was zp[2]:71) zp[2]:18 [ utoa::digit_value#0 utoa_append::sub#0 uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 uctoa::buffer#3 uctoa_append::buffer#0 ] +Allocated (was zp[1]:86) zp[1]:20 [ uctoa_append::sub#0 printf_padding::i#2 printf_padding::i#1 ] ASSEMBLER BEFORE OPTIMIZATION // File Comments @@ -5812,7 +5901,7 @@ __bend: // main main: { // [7] call printf_cls - // [192] phi from main to printf_cls [phi:main->printf_cls] + // [196] phi from main to printf_cls [phi:main->printf_cls] printf_cls_from_main: jsr printf_cls // [8] phi from main to main::@1 [phi:main->main::@1] @@ -5821,17 +5910,17 @@ main: { // main::@1 __b1: // [9] call printf_schar - // [142] phi from main::@1 to printf_schar [phi:main::@1->printf_schar] + // [146] phi from main::@1 to printf_schar [phi:main::@1->printf_schar] printf_schar_from___b1: - // [142] phi (byte) printf_schar::format_zero_padding#2 = (byte) 0 [phi:main::@1->printf_schar#0] -- vbuz1=vbuc1 + // [146] phi (byte) printf_schar::format_zero_padding#2 = (byte) 0 [phi:main::@1->printf_schar#0] -- vbuz1=vbuc1 lda #0 sta.z printf_schar.format_zero_padding - // [142] phi (byte) printf_schar::format_radix#2 = (const byte) DECIMAL [phi:main::@1->printf_schar#1] -- vbuz1=vbuc1 + // [146] phi (byte) printf_schar::format_radix#2 = (const byte) DECIMAL [phi:main::@1->printf_schar#1] -- vbuz1=vbuc1 lda #DECIMAL sta.z printf_schar.format_radix - // [142] phi (byte) printf_schar::format_sign_always#2 = (byte) 0 [phi:main::@1->printf_schar#2] -- vbuyy=vbuc1 + // [146] phi (byte) printf_schar::format_sign_always#2 = (byte) 0 [phi:main::@1->printf_schar#2] -- vbuyy=vbuc1 ldy #0 - // [142] phi (signed byte) printf_schar::value#3 = (signed byte) -$4d [phi:main::@1->printf_schar#3] -- vbsxx=vbsc1 + // [146] phi (signed byte) printf_schar::value#3 = (signed byte) -$4d [phi:main::@1->printf_schar#3] -- vbsxx=vbsc1 ldx #-$4d jsr printf_schar // [10] phi from main::@1 to main::@2 [phi:main::@1->main::@2] @@ -5849,17 +5938,17 @@ main: { // main::@3 __b3: // [13] call printf_schar - // [142] phi from main::@3 to printf_schar [phi:main::@3->printf_schar] + // [146] phi from main::@3 to printf_schar [phi:main::@3->printf_schar] printf_schar_from___b3: - // [142] phi (byte) printf_schar::format_zero_padding#2 = (byte) 1 [phi:main::@3->printf_schar#0] -- vbuz1=vbuc1 + // [146] phi (byte) printf_schar::format_zero_padding#2 = (byte) 1 [phi:main::@3->printf_schar#0] -- vbuz1=vbuc1 lda #1 sta.z printf_schar.format_zero_padding - // [142] phi (byte) printf_schar::format_radix#2 = (const byte) OCTAL [phi:main::@3->printf_schar#1] -- vbuz1=vbuc1 + // [146] phi (byte) printf_schar::format_radix#2 = (const byte) OCTAL [phi:main::@3->printf_schar#1] -- vbuz1=vbuc1 lda #OCTAL sta.z printf_schar.format_radix - // [142] phi (byte) printf_schar::format_sign_always#2 = (byte) 1 [phi:main::@3->printf_schar#2] -- vbuyy=vbuc1 + // [146] phi (byte) printf_schar::format_sign_always#2 = (byte) 1 [phi:main::@3->printf_schar#2] -- vbuyy=vbuc1 ldy #1 - // [142] phi (signed byte) printf_schar::value#3 = (signed byte) $63 [phi:main::@3->printf_schar#3] -- vbsxx=vbsc1 + // [146] phi (signed byte) printf_schar::value#3 = (signed byte) $63 [phi:main::@3->printf_schar#3] -- vbsxx=vbsc1 ldx #$63 jsr printf_schar // [14] phi from main::@3 to main::@4 [phi:main::@3->main::@4] @@ -5948,7 +6037,7 @@ printf_uint: { sta printf_buffer // [28] call utoa // Format number into buffer - // [114] phi from printf_uint::@1 to utoa [phi:printf_uint::@1->utoa] + // [118] phi from printf_uint::@1 to utoa [phi:printf_uint::@1->utoa] utoa_from___b1: jsr utoa jmp __b2 @@ -6005,7 +6094,7 @@ printf_number_buffer: { lda.z buffer_digits+1 sta.z strlen.str+1 // [35] call strlen - // [108] phi from printf_number_buffer::@5 to strlen [phi:printf_number_buffer::@5->strlen] + // [112] phi from printf_number_buffer::@5 to strlen [phi:printf_number_buffer::@5->strlen] strlen_from___b5: jsr strlen // [36] (word) strlen::return#2 ← (word) strlen::len#2 @@ -6244,13 +6333,15 @@ printf_char: { bne !+ inc.z printf_char_cursor+1 !: - // [76] if((byte*) printf_char_cursor!=(const byte*) printf_screen+(word)(number) $28*(number) $19) goto printf_char::@return -- pbuz1_neq_pbuc1_then_la1 + // [76] if((byte*) printf_char_cursor<(const byte*) printf_screen+(word)(number) $28*(number) $19) goto printf_char::@return -- pbuz1_lt_pbuc1_then_la1 lda.z printf_char_cursor+1 cmp #>printf_screen+$28*$19 - bne __breturn + bcc __breturn + bne !+ lda.z printf_char_cursor cmp #printf_char::@1] __b1_from_printf_char: jmp __b1 @@ -6424,45 +6515,62 @@ memcpy: { } // printf_str // Print a zero-terminated string +// Handles escape codes such as newline // printf_str(byte* zp(4) str) printf_str: { .label str = 4 - // [102] phi from printf_str printf_str::@3 to printf_str::@1 [phi:printf_str/printf_str::@3->printf_str::@1] + // [102] phi from printf_str printf_str::@4 printf_str::@5 to printf_str::@1 [phi:printf_str/printf_str::@4/printf_str::@5->printf_str::@1] __b1_from_printf_str: - __b1_from___b3: - // [102] phi (byte*) printf_str::str#2 = (byte*) printf_str::str#1 [phi:printf_str/printf_str::@3->printf_str::@1#0] -- register_copy + __b1_from___b4: + __b1_from___b5: + // [102] phi (byte*) printf_str::str#2 = (byte*) printf_str::str#1 [phi:printf_str/printf_str::@4/printf_str::@5->printf_str::@1#0] -- register_copy jmp __b1 // printf_str::@1 __b1: - // [103] if((byte) 0!=*((byte*) printf_str::str#2)) goto printf_str::@2 -- vbuc1_neq__deref_pbuz1_then_la1 - ldy #0 - lda (str),y - cmp #0 - bne __b2 - jmp __breturn - // printf_str::@return - __breturn: - // [104] return - rts + jmp __b2 // printf_str::@2 __b2: - // [105] (byte) printf_char::ch#1 ← *((byte*) printf_str::str#2) -- vbuaa=_deref_pbuz1 + // [103] (byte) printf_str::ch#0 ← *((byte*) printf_str::str#2) -- vbuaa=_deref_pbuz1 ldy #0 lda (str),y - // [106] call printf_char - // [73] phi from printf_str::@2 to printf_char [phi:printf_str::@2->printf_char] - printf_char_from___b2: - // [73] phi (byte) printf_char::ch#3 = (byte) printf_char::ch#1 [phi:printf_str::@2->printf_char#0] -- register_copy - jsr printf_char - jmp __b3 - // printf_str::@3 - __b3: - // [107] (byte*) printf_str::str#0 ← ++ (byte*) printf_str::str#2 -- pbuz1=_inc_pbuz1 + // [104] (byte*) printf_str::str#0 ← ++ (byte*) printf_str::str#2 -- pbuz1=_inc_pbuz1 inc.z str bne !+ inc.z str+1 !: - jmp __b1_from___b3 + // [105] if((byte) printf_str::ch#0!=(byte) 0) goto printf_str::@3 -- vbuaa_neq_0_then_la1 + cmp #0 + bne __b3 + jmp __breturn + // printf_str::@return + __breturn: + // [106] return + rts + // printf_str::@3 + __b3: + // [107] if((byte) printf_str::ch#0==(byte) ' ') goto printf_str::@4 -- vbuaa_eq_vbuc1_then_la1 + cmp #'\n' + beq __b4_from___b3 + jmp __b5 + // printf_str::@5 + __b5: + // [108] (byte) printf_char::ch#1 ← (byte) printf_str::ch#0 + // [109] call printf_char + // [73] phi from printf_str::@5 to printf_char [phi:printf_str::@5->printf_char] + printf_char_from___b5: + // [73] phi (byte) printf_char::ch#3 = (byte) printf_char::ch#1 [phi:printf_str::@5->printf_char#0] -- register_copy + jsr printf_char + jmp __b1_from___b5 + // [110] phi from printf_str::@3 to printf_str::@4 [phi:printf_str::@3->printf_str::@4] + __b4_from___b3: + jmp __b4 + // printf_str::@4 + __b4: + // [111] call printf_ln + // [21] phi from printf_str::@4 to printf_ln [phi:printf_str::@4->printf_ln] + printf_ln_from___b4: + jsr printf_ln + jmp __b1_from___b4 } // strlen // Computes the length of the string str up to but not including the terminating null character. @@ -6471,18 +6579,18 @@ strlen: { .label len = $a .label str = 6 .label return = $a - // [109] phi from strlen to strlen::@1 [phi:strlen->strlen::@1] + // [113] phi from strlen to strlen::@1 [phi:strlen->strlen::@1] __b1_from_strlen: - // [109] phi (word) strlen::len#2 = (word) 0 [phi:strlen->strlen::@1#0] -- vwuz1=vwuc1 + // [113] phi (word) strlen::len#2 = (word) 0 [phi:strlen->strlen::@1#0] -- vwuz1=vwuc1 lda #<0 sta.z len lda #>0 sta.z len+1 - // [109] phi (byte*) strlen::str#2 = (byte*) strlen::str#1 [phi:strlen->strlen::@1#1] -- register_copy + // [113] phi (byte*) strlen::str#2 = (byte*) strlen::str#1 [phi:strlen->strlen::@1#1] -- register_copy jmp __b1 // strlen::@1 __b1: - // [110] if((byte) 0!=*((byte*) strlen::str#2)) goto strlen::@2 -- vbuc1_neq__deref_pbuz1_then_la1 + // [114] if((byte) 0!=*((byte*) strlen::str#2)) goto strlen::@2 -- vbuc1_neq__deref_pbuz1_then_la1 ldy #0 lda (str),y cmp #0 @@ -6490,24 +6598,24 @@ strlen: { jmp __breturn // strlen::@return __breturn: - // [111] return + // [115] return rts // strlen::@2 __b2: - // [112] (word) strlen::len#1 ← ++ (word) strlen::len#2 -- vwuz1=_inc_vwuz1 + // [116] (word) strlen::len#1 ← ++ (word) strlen::len#2 -- vwuz1=_inc_vwuz1 inc.z len bne !+ inc.z len+1 !: - // [113] (byte*) strlen::str#0 ← ++ (byte*) strlen::str#2 -- pbuz1=_inc_pbuz1 + // [117] (byte*) strlen::str#0 ← ++ (byte*) strlen::str#2 -- pbuz1=_inc_pbuz1 inc.z str bne !+ inc.z str+1 !: - // [109] phi from strlen::@2 to strlen::@1 [phi:strlen::@2->strlen::@1] + // [113] phi from strlen::@2 to strlen::@1 [phi:strlen::@2->strlen::@1] __b1_from___b2: - // [109] phi (word) strlen::len#2 = (word) strlen::len#1 [phi:strlen::@2->strlen::@1#0] -- register_copy - // [109] phi (byte*) strlen::str#2 = (byte*) strlen::str#0 [phi:strlen::@2->strlen::@1#1] -- register_copy + // [113] phi (word) strlen::len#2 = (word) strlen::len#1 [phi:strlen::@2->strlen::@1#0] -- register_copy + // [113] phi (byte*) strlen::str#2 = (byte*) strlen::str#0 [phi:strlen::@2->strlen::@1#1] -- register_copy jmp __b1 } // utoa @@ -6523,72 +6631,72 @@ utoa: { .label buffer = 6 .label digit = 3 .label value = 4 - // [115] phi from utoa to utoa::@1 [phi:utoa->utoa::@1] + // [119] phi from utoa to utoa::@1 [phi:utoa->utoa::@1] __b1_from_utoa: - // [115] phi (byte*) utoa::buffer#11 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:utoa->utoa::@1#0] -- pbuz1=pbuc1 + // [119] phi (byte*) utoa::buffer#11 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:utoa->utoa::@1#0] -- pbuz1=pbuc1 lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS sta.z buffer+1 - // [115] phi (byte) utoa::started#2 = (byte) 0 [phi:utoa->utoa::@1#1] -- vbuxx=vbuc1 + // [119] phi (byte) utoa::started#2 = (byte) 0 [phi:utoa->utoa::@1#1] -- vbuxx=vbuc1 ldx #0 - // [115] phi (word) utoa::value#2 = (const word) printf_uint::uvalue#0 [phi:utoa->utoa::@1#2] -- vwuz1=vwuc1 + // [119] phi (word) utoa::value#2 = (const word) printf_uint::uvalue#0 [phi:utoa->utoa::@1#2] -- vwuz1=vwuc1 lda #printf_uint.uvalue sta.z value+1 - // [115] phi (byte) utoa::digit#2 = (byte) 0 [phi:utoa->utoa::@1#3] -- vbuz1=vbuc1 + // [119] phi (byte) utoa::digit#2 = (byte) 0 [phi:utoa->utoa::@1#3] -- vbuz1=vbuc1 lda #0 sta.z digit jmp __b1 // utoa::@1 __b1: - // [116] if((byte) utoa::digit#2<(const byte) utoa::max_digits#2-(byte) 1) goto utoa::@2 -- vbuz1_lt_vbuc1_then_la1 + // [120] if((byte) utoa::digit#2<(const byte) utoa::max_digits#2-(byte) 1) goto utoa::@2 -- vbuz1_lt_vbuc1_then_la1 lda.z digit cmp #max_digits-1 bcc __b2 jmp __b3 // utoa::@3 __b3: - // [117] (byte~) utoa::$11 ← (byte)(word) utoa::value#2 -- vbuaa=_byte_vwuz1 + // [121] (byte~) utoa::$11 ← (byte)(word) utoa::value#2 -- vbuaa=_byte_vwuz1 lda.z value - // [118] *((byte*) utoa::buffer#11) ← *((const byte*) DIGITS + (byte~) utoa::$11) -- _deref_pbuz1=pbuc1_derefidx_vbuaa + // [122] *((byte*) utoa::buffer#11) ← *((const byte*) DIGITS + (byte~) utoa::$11) -- _deref_pbuz1=pbuc1_derefidx_vbuaa tay lda DIGITS,y ldy #0 sta (buffer),y - // [119] (byte*) utoa::buffer#3 ← ++ (byte*) utoa::buffer#11 -- pbuz1=_inc_pbuz1 + // [123] (byte*) utoa::buffer#3 ← ++ (byte*) utoa::buffer#11 -- pbuz1=_inc_pbuz1 inc.z buffer bne !+ inc.z buffer+1 !: - // [120] *((byte*) utoa::buffer#3) ← (byte) 0 -- _deref_pbuz1=vbuc1 + // [124] *((byte*) utoa::buffer#3) ← (byte) 0 -- _deref_pbuz1=vbuc1 lda #0 ldy #0 sta (buffer),y jmp __breturn // utoa::@return __breturn: - // [121] return + // [125] return rts // utoa::@2 __b2: - // [122] (byte~) utoa::$10 ← (byte) utoa::digit#2 << (byte) 1 -- vbuaa=vbuz1_rol_1 + // [126] (byte~) utoa::$10 ← (byte) utoa::digit#2 << (byte) 1 -- vbuaa=vbuz1_rol_1 lda.z digit asl - // [123] (word) utoa::digit_value#0 ← *((const word*) RADIX_HEXADECIMAL_VALUES + (byte~) utoa::$10) -- vwuz1=pwuc1_derefidx_vbuaa + // [127] (word) utoa::digit_value#0 ← *((const word*) RADIX_HEXADECIMAL_VALUES + (byte~) utoa::$10) -- vwuz1=pwuc1_derefidx_vbuaa tay lda RADIX_HEXADECIMAL_VALUES,y sta.z digit_value lda RADIX_HEXADECIMAL_VALUES+1,y sta.z digit_value+1 - // [124] if((byte) 0!=(byte) utoa::started#2) goto utoa::@5 -- vbuc1_neq_vbuxx_then_la1 + // [128] if((byte) 0!=(byte) utoa::started#2) goto utoa::@5 -- vbuc1_neq_vbuxx_then_la1 cpx #0 bne __b5 jmp __b7 // utoa::@7 __b7: - // [125] if((word) utoa::value#2>=(word) utoa::digit_value#0) goto utoa::@5 -- vwuz1_ge_vwuz2_then_la1 + // [129] if((word) utoa::value#2>=(word) utoa::digit_value#0) goto utoa::@5 -- vwuz1_ge_vwuz2_then_la1 lda.z digit_value+1 cmp.z value+1 bne !+ @@ -6597,48 +6705,48 @@ utoa: { beq __b5 !: bcc __b5 - // [126] phi from utoa::@7 to utoa::@4 [phi:utoa::@7->utoa::@4] + // [130] phi from utoa::@7 to utoa::@4 [phi:utoa::@7->utoa::@4] __b4_from___b7: - // [126] phi (byte*) utoa::buffer#14 = (byte*) utoa::buffer#11 [phi:utoa::@7->utoa::@4#0] -- register_copy - // [126] phi (byte) utoa::started#4 = (byte) utoa::started#2 [phi:utoa::@7->utoa::@4#1] -- register_copy - // [126] phi (word) utoa::value#6 = (word) utoa::value#2 [phi:utoa::@7->utoa::@4#2] -- register_copy + // [130] phi (byte*) utoa::buffer#14 = (byte*) utoa::buffer#11 [phi:utoa::@7->utoa::@4#0] -- register_copy + // [130] phi (byte) utoa::started#4 = (byte) utoa::started#2 [phi:utoa::@7->utoa::@4#1] -- register_copy + // [130] phi (word) utoa::value#6 = (word) utoa::value#2 [phi:utoa::@7->utoa::@4#2] -- register_copy jmp __b4 // utoa::@4 __b4: - // [127] (byte) utoa::digit#1 ← ++ (byte) utoa::digit#2 -- vbuz1=_inc_vbuz1 + // [131] (byte) utoa::digit#1 ← ++ (byte) utoa::digit#2 -- vbuz1=_inc_vbuz1 inc.z digit - // [115] phi from utoa::@4 to utoa::@1 [phi:utoa::@4->utoa::@1] + // [119] phi from utoa::@4 to utoa::@1 [phi:utoa::@4->utoa::@1] __b1_from___b4: - // [115] phi (byte*) utoa::buffer#11 = (byte*) utoa::buffer#14 [phi:utoa::@4->utoa::@1#0] -- register_copy - // [115] phi (byte) utoa::started#2 = (byte) utoa::started#4 [phi:utoa::@4->utoa::@1#1] -- register_copy - // [115] phi (word) utoa::value#2 = (word) utoa::value#6 [phi:utoa::@4->utoa::@1#2] -- register_copy - // [115] phi (byte) utoa::digit#2 = (byte) utoa::digit#1 [phi:utoa::@4->utoa::@1#3] -- register_copy + // [119] phi (byte*) utoa::buffer#11 = (byte*) utoa::buffer#14 [phi:utoa::@4->utoa::@1#0] -- register_copy + // [119] phi (byte) utoa::started#2 = (byte) utoa::started#4 [phi:utoa::@4->utoa::@1#1] -- register_copy + // [119] phi (word) utoa::value#2 = (word) utoa::value#6 [phi:utoa::@4->utoa::@1#2] -- register_copy + // [119] phi (byte) utoa::digit#2 = (byte) utoa::digit#1 [phi:utoa::@4->utoa::@1#3] -- register_copy jmp __b1 // utoa::@5 __b5: - // [128] (byte*) utoa_append::buffer#0 ← (byte*) utoa::buffer#11 - // [129] (word) utoa_append::value#0 ← (word) utoa::value#2 - // [130] (word) utoa_append::sub#0 ← (word) utoa::digit_value#0 - // [131] call utoa_append - // [135] phi from utoa::@5 to utoa_append [phi:utoa::@5->utoa_append] + // [132] (byte*) utoa_append::buffer#0 ← (byte*) utoa::buffer#11 + // [133] (word) utoa_append::value#0 ← (word) utoa::value#2 + // [134] (word) utoa_append::sub#0 ← (word) utoa::digit_value#0 + // [135] call utoa_append + // [139] phi from utoa::@5 to utoa_append [phi:utoa::@5->utoa_append] utoa_append_from___b5: jsr utoa_append - // [132] (word) utoa_append::return#0 ← (word) utoa_append::value#2 + // [136] (word) utoa_append::return#0 ← (word) utoa_append::value#2 jmp __b6 // utoa::@6 __b6: - // [133] (word) utoa::value#0 ← (word) utoa_append::return#0 - // [134] (byte*) utoa::buffer#4 ← ++ (byte*) utoa::buffer#11 -- pbuz1=_inc_pbuz1 + // [137] (word) utoa::value#0 ← (word) utoa_append::return#0 + // [138] (byte*) utoa::buffer#4 ← ++ (byte*) utoa::buffer#11 -- pbuz1=_inc_pbuz1 inc.z buffer bne !+ inc.z buffer+1 !: - // [126] phi from utoa::@6 to utoa::@4 [phi:utoa::@6->utoa::@4] + // [130] phi from utoa::@6 to utoa::@4 [phi:utoa::@6->utoa::@4] __b4_from___b6: - // [126] phi (byte*) utoa::buffer#14 = (byte*) utoa::buffer#4 [phi:utoa::@6->utoa::@4#0] -- register_copy - // [126] phi (byte) utoa::started#4 = (byte) 1 [phi:utoa::@6->utoa::@4#1] -- vbuxx=vbuc1 + // [130] phi (byte*) utoa::buffer#14 = (byte*) utoa::buffer#4 [phi:utoa::@6->utoa::@4#0] -- register_copy + // [130] phi (byte) utoa::started#4 = (byte) 1 [phi:utoa::@6->utoa::@4#1] -- vbuxx=vbuc1 ldx #1 - // [126] phi (word) utoa::value#6 = (word) utoa::value#0 [phi:utoa::@6->utoa::@4#2] -- register_copy + // [130] phi (word) utoa::value#6 = (word) utoa::value#0 [phi:utoa::@6->utoa::@4#2] -- register_copy jmp __b4 } // utoa_append @@ -6656,15 +6764,15 @@ utoa_append: { .label value = 4 .label sub = $12 .label return = 4 - // [136] phi from utoa_append to utoa_append::@1 [phi:utoa_append->utoa_append::@1] + // [140] phi from utoa_append to utoa_append::@1 [phi:utoa_append->utoa_append::@1] __b1_from_utoa_append: - // [136] phi (byte) utoa_append::digit#2 = (byte) 0 [phi:utoa_append->utoa_append::@1#0] -- vbuxx=vbuc1 + // [140] phi (byte) utoa_append::digit#2 = (byte) 0 [phi:utoa_append->utoa_append::@1#0] -- vbuxx=vbuc1 ldx #0 - // [136] phi (word) utoa_append::value#2 = (word) utoa_append::value#0 [phi:utoa_append->utoa_append::@1#1] -- register_copy + // [140] phi (word) utoa_append::value#2 = (word) utoa_append::value#0 [phi:utoa_append->utoa_append::@1#1] -- register_copy jmp __b1 // utoa_append::@1 __b1: - // [137] if((word) utoa_append::value#2>=(word) utoa_append::sub#0) goto utoa_append::@2 -- vwuz1_ge_vwuz2_then_la1 + // [141] if((word) utoa_append::value#2>=(word) utoa_append::sub#0) goto utoa_append::@2 -- vwuz1_ge_vwuz2_then_la1 lda.z sub+1 cmp.z value+1 bne !+ @@ -6676,20 +6784,20 @@ utoa_append: { jmp __b3 // utoa_append::@3 __b3: - // [138] *((byte*) utoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) utoa_append::digit#2) -- _deref_pbuz1=pbuc1_derefidx_vbuxx + // [142] *((byte*) utoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) utoa_append::digit#2) -- _deref_pbuz1=pbuc1_derefidx_vbuxx lda DIGITS,x ldy #0 sta (buffer),y jmp __breturn // utoa_append::@return __breturn: - // [139] return + // [143] return rts // utoa_append::@2 __b2: - // [140] (byte) utoa_append::digit#1 ← ++ (byte) utoa_append::digit#2 -- vbuxx=_inc_vbuxx + // [144] (byte) utoa_append::digit#1 ← ++ (byte) utoa_append::digit#2 -- vbuxx=_inc_vbuxx inx - // [141] (word) utoa_append::value#1 ← (word) utoa_append::value#2 - (word) utoa_append::sub#0 -- vwuz1=vwuz1_minus_vwuz2 + // [145] (word) utoa_append::value#1 ← (word) utoa_append::value#2 - (word) utoa_append::sub#0 -- vwuz1=vwuz1_minus_vwuz2 lda.z value sec sbc.z sub @@ -6697,10 +6805,10 @@ utoa_append: { lda.z value+1 sbc.z sub+1 sta.z value+1 - // [136] phi from utoa_append::@2 to utoa_append::@1 [phi:utoa_append::@2->utoa_append::@1] + // [140] phi from utoa_append::@2 to utoa_append::@1 [phi:utoa_append::@2->utoa_append::@1] __b1_from___b2: - // [136] phi (byte) utoa_append::digit#2 = (byte) utoa_append::digit#1 [phi:utoa_append::@2->utoa_append::@1#0] -- register_copy - // [136] phi (word) utoa_append::value#2 = (word) utoa_append::value#1 [phi:utoa_append::@2->utoa_append::@1#1] -- register_copy + // [140] phi (byte) utoa_append::digit#2 = (byte) utoa_append::digit#1 [phi:utoa_append::@2->utoa_append::@1#0] -- register_copy + // [140] phi (word) utoa_append::value#2 = (word) utoa_append::value#1 [phi:utoa_append::@2->utoa_append::@1#1] -- register_copy jmp __b1 } // printf_schar @@ -6709,46 +6817,46 @@ utoa_append: { printf_schar: { .label format_radix = 8 .label format_zero_padding = 2 - // [143] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 -- _deref_pbuc1=vbuc2 + // [147] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 -- _deref_pbuc1=vbuc2 // Handle any sign lda #0 sta printf_buffer - // [144] if((signed byte) printf_schar::value#3<(signed byte) 0) goto printf_schar::@1 -- vbsxx_lt_0_then_la1 + // [148] if((signed byte) printf_schar::value#3<(signed byte) 0) goto printf_schar::@1 -- vbsxx_lt_0_then_la1 cpx #0 bmi __b1 jmp __b3 // printf_schar::@3 __b3: - // [145] if((byte) 0==(byte) printf_schar::format_sign_always#2) goto printf_schar::@2 -- vbuc1_eq_vbuyy_then_la1 + // [149] if((byte) 0==(byte) printf_schar::format_sign_always#2) goto printf_schar::@2 -- vbuc1_eq_vbuyy_then_la1 cpy #0 beq __b2_from___b3 jmp __b4 // printf_schar::@4 __b4: - // [146] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) '+' -- _deref_pbuc1=vbuc2 + // [150] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) '+' -- _deref_pbuc1=vbuc2 lda #'+' sta printf_buffer - // [147] phi from printf_schar::@1 printf_schar::@3 printf_schar::@4 to printf_schar::@2 [phi:printf_schar::@1/printf_schar::@3/printf_schar::@4->printf_schar::@2] + // [151] phi from printf_schar::@1 printf_schar::@3 printf_schar::@4 to printf_schar::@2 [phi:printf_schar::@1/printf_schar::@3/printf_schar::@4->printf_schar::@2] __b2_from___b1: __b2_from___b3: __b2_from___b4: - // [147] phi (signed byte) printf_schar::value#5 = (signed byte) printf_schar::value#0 [phi:printf_schar::@1/printf_schar::@3/printf_schar::@4->printf_schar::@2#0] -- register_copy + // [151] phi (signed byte) printf_schar::value#5 = (signed byte) printf_schar::value#0 [phi:printf_schar::@1/printf_schar::@3/printf_schar::@4->printf_schar::@2#0] -- register_copy jmp __b2 // printf_schar::@2 __b2: - // [148] (byte) uctoa::value#1 ← (byte)(signed byte) printf_schar::value#5 - // [149] (byte) uctoa::radix#0 ← (byte) printf_schar::format_radix#2 -- vbuaa=vbuz1 + // [152] (byte) uctoa::value#1 ← (byte)(signed byte) printf_schar::value#5 + // [153] (byte) uctoa::radix#0 ← (byte) printf_schar::format_radix#2 -- vbuaa=vbuz1 lda.z format_radix - // [150] call uctoa + // [154] call uctoa jsr uctoa jmp __b5 // printf_schar::@5 __b5: - // [151] (byte) printf_number_buffer::buffer_sign#1 ← *((byte*)&(struct printf_buffer_number) printf_buffer) -- vbuz1=_deref_pbuc1 + // [155] (byte) printf_number_buffer::buffer_sign#1 ← *((byte*)&(struct printf_buffer_number) printf_buffer) -- vbuz1=_deref_pbuc1 lda printf_buffer sta.z printf_number_buffer.buffer_sign - // [152] (byte) printf_number_buffer::format_zero_padding#1 ← (byte) printf_schar::format_zero_padding#2 - // [153] call printf_number_buffer + // [156] (byte) printf_number_buffer::format_zero_padding#1 ← (byte) printf_schar::format_zero_padding#2 + // [157] call printf_number_buffer // Print using format // [32] phi from printf_schar::@5 to printf_number_buffer [phi:printf_schar::@5->printf_number_buffer] printf_number_buffer_from___b5: @@ -6768,17 +6876,17 @@ printf_schar: { jmp __breturn // printf_schar::@return __breturn: - // [154] return + // [158] return rts // printf_schar::@1 __b1: - // [155] (signed byte) printf_schar::value#0 ← - (signed byte) printf_schar::value#3 -- vbsxx=_neg_vbsxx + // [159] (signed byte) printf_schar::value#0 ← - (signed byte) printf_schar::value#3 -- vbsxx=_neg_vbsxx txa eor #$ff clc adc #1 tax - // [156] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) '-' -- _deref_pbuc1=vbuc2 + // [160] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) '-' -- _deref_pbuc1=vbuc2 lda #'-' sta printf_buffer jmp __b2_from___b1 @@ -6796,116 +6904,116 @@ uctoa: { .label started = $d .label max_digits = 9 .label digit_values = $a - // [157] if((byte) uctoa::radix#0==(const byte) DECIMAL) goto uctoa::@1 -- vbuaa_eq_vbuc1_then_la1 + // [161] if((byte) uctoa::radix#0==(const byte) DECIMAL) goto uctoa::@1 -- vbuaa_eq_vbuc1_then_la1 cmp #DECIMAL beq __b1_from_uctoa jmp __b2 // uctoa::@2 __b2: - // [158] if((byte) uctoa::radix#0==(const byte) HEXADECIMAL) goto uctoa::@1 -- vbuaa_eq_vbuc1_then_la1 + // [162] if((byte) uctoa::radix#0==(const byte) HEXADECIMAL) goto uctoa::@1 -- vbuaa_eq_vbuc1_then_la1 cmp #HEXADECIMAL beq __b1_from___b2 jmp __b3 // uctoa::@3 __b3: - // [159] if((byte) uctoa::radix#0==(const byte) OCTAL) goto uctoa::@1 -- vbuaa_eq_vbuc1_then_la1 + // [163] if((byte) uctoa::radix#0==(const byte) OCTAL) goto uctoa::@1 -- vbuaa_eq_vbuc1_then_la1 cmp #OCTAL beq __b1_from___b3 jmp __b4 // uctoa::@4 __b4: - // [160] if((byte) uctoa::radix#0==(const byte) BINARY) goto uctoa::@1 -- vbuaa_eq_vbuc1_then_la1 + // [164] if((byte) uctoa::radix#0==(const byte) BINARY) goto uctoa::@1 -- vbuaa_eq_vbuc1_then_la1 cmp #BINARY beq __b1_from___b4 jmp __b5 // uctoa::@5 __b5: - // [161] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS) ← (byte) 'e' -- _deref_pbuc1=vbuc2 + // [165] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS) ← (byte) 'e' -- _deref_pbuc1=vbuc2 // Unknown radix lda #'e' sta printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS - // [162] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(byte) 1) ← (byte) 'r' -- _deref_pbuc1=vbuc2 + // [166] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(byte) 1) ← (byte) 'r' -- _deref_pbuc1=vbuc2 lda #'r' sta printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1 - // [163] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(byte) 2) ← (byte) 'r' -- _deref_pbuc1=vbuc2 + // [167] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(byte) 2) ← (byte) 'r' -- _deref_pbuc1=vbuc2 lda #'r' sta printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2 - // [164] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(byte) 3) ← (byte) 0 -- _deref_pbuc1=vbuc2 + // [168] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(byte) 3) ← (byte) 0 -- _deref_pbuc1=vbuc2 lda #0 sta printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+3 jmp __breturn // uctoa::@return __breturn: - // [165] return + // [169] return rts - // [166] phi from uctoa to uctoa::@1 [phi:uctoa->uctoa::@1] + // [170] phi from uctoa to uctoa::@1 [phi:uctoa->uctoa::@1] __b1_from_uctoa: - // [166] phi (byte*) uctoa::digit_values#8 = (const byte*) RADIX_DECIMAL_VALUES_CHAR [phi:uctoa->uctoa::@1#0] -- pbuz1=pbuc1 + // [170] phi (byte*) uctoa::digit_values#8 = (const byte*) RADIX_DECIMAL_VALUES_CHAR [phi:uctoa->uctoa::@1#0] -- pbuz1=pbuc1 lda #RADIX_DECIMAL_VALUES_CHAR sta.z digit_values+1 - // [166] phi (byte) uctoa::max_digits#7 = (byte) 3 [phi:uctoa->uctoa::@1#1] -- vbuz1=vbuc1 + // [170] phi (byte) uctoa::max_digits#7 = (byte) 3 [phi:uctoa->uctoa::@1#1] -- vbuz1=vbuc1 lda #3 sta.z max_digits jmp __b1 - // [166] phi from uctoa::@2 to uctoa::@1 [phi:uctoa::@2->uctoa::@1] + // [170] phi from uctoa::@2 to uctoa::@1 [phi:uctoa::@2->uctoa::@1] __b1_from___b2: - // [166] phi (byte*) uctoa::digit_values#8 = (const byte*) RADIX_HEXADECIMAL_VALUES_CHAR [phi:uctoa::@2->uctoa::@1#0] -- pbuz1=pbuc1 + // [170] phi (byte*) uctoa::digit_values#8 = (const byte*) RADIX_HEXADECIMAL_VALUES_CHAR [phi:uctoa::@2->uctoa::@1#0] -- pbuz1=pbuc1 lda #RADIX_HEXADECIMAL_VALUES_CHAR sta.z digit_values+1 - // [166] phi (byte) uctoa::max_digits#7 = (byte) 2 [phi:uctoa::@2->uctoa::@1#1] -- vbuz1=vbuc1 + // [170] phi (byte) uctoa::max_digits#7 = (byte) 2 [phi:uctoa::@2->uctoa::@1#1] -- vbuz1=vbuc1 lda #2 sta.z max_digits jmp __b1 - // [166] phi from uctoa::@3 to uctoa::@1 [phi:uctoa::@3->uctoa::@1] + // [170] phi from uctoa::@3 to uctoa::@1 [phi:uctoa::@3->uctoa::@1] __b1_from___b3: - // [166] phi (byte*) uctoa::digit_values#8 = (const byte*) RADIX_OCTAL_VALUES_CHAR [phi:uctoa::@3->uctoa::@1#0] -- pbuz1=pbuc1 + // [170] phi (byte*) uctoa::digit_values#8 = (const byte*) RADIX_OCTAL_VALUES_CHAR [phi:uctoa::@3->uctoa::@1#0] -- pbuz1=pbuc1 lda #RADIX_OCTAL_VALUES_CHAR sta.z digit_values+1 - // [166] phi (byte) uctoa::max_digits#7 = (byte) 3 [phi:uctoa::@3->uctoa::@1#1] -- vbuz1=vbuc1 + // [170] phi (byte) uctoa::max_digits#7 = (byte) 3 [phi:uctoa::@3->uctoa::@1#1] -- vbuz1=vbuc1 lda #3 sta.z max_digits jmp __b1 - // [166] phi from uctoa::@4 to uctoa::@1 [phi:uctoa::@4->uctoa::@1] + // [170] phi from uctoa::@4 to uctoa::@1 [phi:uctoa::@4->uctoa::@1] __b1_from___b4: - // [166] phi (byte*) uctoa::digit_values#8 = (const byte*) RADIX_BINARY_VALUES_CHAR [phi:uctoa::@4->uctoa::@1#0] -- pbuz1=pbuc1 + // [170] phi (byte*) uctoa::digit_values#8 = (const byte*) RADIX_BINARY_VALUES_CHAR [phi:uctoa::@4->uctoa::@1#0] -- pbuz1=pbuc1 lda #RADIX_BINARY_VALUES_CHAR sta.z digit_values+1 - // [166] phi (byte) uctoa::max_digits#7 = (byte) 8 [phi:uctoa::@4->uctoa::@1#1] -- vbuz1=vbuc1 + // [170] phi (byte) uctoa::max_digits#7 = (byte) 8 [phi:uctoa::@4->uctoa::@1#1] -- vbuz1=vbuc1 lda #8 sta.z max_digits jmp __b1 // uctoa::@1 __b1: - // [167] phi from uctoa::@1 to uctoa::@6 [phi:uctoa::@1->uctoa::@6] + // [171] phi from uctoa::@1 to uctoa::@6 [phi:uctoa::@1->uctoa::@6] __b6_from___b1: - // [167] phi (byte*) uctoa::buffer#11 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:uctoa::@1->uctoa::@6#0] -- pbuz1=pbuc1 + // [171] phi (byte*) uctoa::buffer#11 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:uctoa::@1->uctoa::@6#0] -- pbuz1=pbuc1 lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS sta.z buffer+1 - // [167] phi (byte) uctoa::started#2 = (byte) 0 [phi:uctoa::@1->uctoa::@6#1] -- vbuz1=vbuc1 + // [171] phi (byte) uctoa::started#2 = (byte) 0 [phi:uctoa::@1->uctoa::@6#1] -- vbuz1=vbuc1 lda #0 sta.z started - // [167] phi (byte) uctoa::value#2 = (byte) uctoa::value#1 [phi:uctoa::@1->uctoa::@6#2] -- register_copy - // [167] phi (byte) uctoa::digit#2 = (byte) 0 [phi:uctoa::@1->uctoa::@6#3] -- vbuz1=vbuc1 + // [171] phi (byte) uctoa::value#2 = (byte) uctoa::value#1 [phi:uctoa::@1->uctoa::@6#2] -- register_copy + // [171] phi (byte) uctoa::digit#2 = (byte) 0 [phi:uctoa::@1->uctoa::@6#3] -- vbuz1=vbuc1 lda #0 sta.z digit jmp __b6 // uctoa::@6 __b6: - // [168] (byte~) uctoa::$4 ← (byte) uctoa::max_digits#7 - (byte) 1 -- vbuaa=vbuz1_minus_1 + // [172] (byte~) uctoa::$4 ← (byte) uctoa::max_digits#7 - (byte) 1 -- vbuaa=vbuz1_minus_1 lda.z max_digits sec sbc #1 - // [169] if((byte) uctoa::digit#2<(byte~) uctoa::$4) goto uctoa::@7 -- vbuz1_lt_vbuaa_then_la1 + // [173] if((byte) uctoa::digit#2<(byte~) uctoa::$4) goto uctoa::@7 -- vbuz1_lt_vbuaa_then_la1 cmp.z digit beq !+ bcs __b7 @@ -6913,81 +7021,81 @@ uctoa: { jmp __b8 // uctoa::@8 __b8: - // [170] *((byte*) uctoa::buffer#11) ← *((const byte*) DIGITS + (byte) uctoa::value#2) -- _deref_pbuz1=pbuc1_derefidx_vbuxx + // [174] *((byte*) uctoa::buffer#11) ← *((const byte*) DIGITS + (byte) uctoa::value#2) -- _deref_pbuz1=pbuc1_derefidx_vbuxx lda DIGITS,x ldy #0 sta (buffer),y - // [171] (byte*) uctoa::buffer#3 ← ++ (byte*) uctoa::buffer#11 -- pbuz1=_inc_pbuz1 + // [175] (byte*) uctoa::buffer#3 ← ++ (byte*) uctoa::buffer#11 -- pbuz1=_inc_pbuz1 inc.z buffer bne !+ inc.z buffer+1 !: - // [172] *((byte*) uctoa::buffer#3) ← (byte) 0 -- _deref_pbuz1=vbuc1 + // [176] *((byte*) uctoa::buffer#3) ← (byte) 0 -- _deref_pbuz1=vbuc1 lda #0 ldy #0 sta (buffer),y jmp __breturn // uctoa::@7 __b7: - // [173] (byte) uctoa::digit_value#0 ← *((byte*) uctoa::digit_values#8 + (byte) uctoa::digit#2) -- vbuyy=pbuz1_derefidx_vbuz2 + // [177] (byte) uctoa::digit_value#0 ← *((byte*) uctoa::digit_values#8 + (byte) uctoa::digit#2) -- vbuyy=pbuz1_derefidx_vbuz2 ldy.z digit lda (digit_values),y tay - // [174] if((byte) 0!=(byte) uctoa::started#2) goto uctoa::@10 -- vbuc1_neq_vbuz1_then_la1 + // [178] if((byte) 0!=(byte) uctoa::started#2) goto uctoa::@10 -- vbuc1_neq_vbuz1_then_la1 lda #0 cmp.z started bne __b10 jmp __b12 // uctoa::@12 __b12: - // [175] if((byte) uctoa::value#2>=(byte) uctoa::digit_value#0) goto uctoa::@10 -- vbuxx_ge_vbuyy_then_la1 + // [179] if((byte) uctoa::value#2>=(byte) uctoa::digit_value#0) goto uctoa::@10 -- vbuxx_ge_vbuyy_then_la1 sty.z $ff cpx.z $ff bcs __b10 - // [176] phi from uctoa::@12 to uctoa::@9 [phi:uctoa::@12->uctoa::@9] + // [180] phi from uctoa::@12 to uctoa::@9 [phi:uctoa::@12->uctoa::@9] __b9_from___b12: - // [176] phi (byte*) uctoa::buffer#14 = (byte*) uctoa::buffer#11 [phi:uctoa::@12->uctoa::@9#0] -- register_copy - // [176] phi (byte) uctoa::started#4 = (byte) uctoa::started#2 [phi:uctoa::@12->uctoa::@9#1] -- register_copy - // [176] phi (byte) uctoa::value#6 = (byte) uctoa::value#2 [phi:uctoa::@12->uctoa::@9#2] -- register_copy + // [180] phi (byte*) uctoa::buffer#14 = (byte*) uctoa::buffer#11 [phi:uctoa::@12->uctoa::@9#0] -- register_copy + // [180] phi (byte) uctoa::started#4 = (byte) uctoa::started#2 [phi:uctoa::@12->uctoa::@9#1] -- register_copy + // [180] phi (byte) uctoa::value#6 = (byte) uctoa::value#2 [phi:uctoa::@12->uctoa::@9#2] -- register_copy jmp __b9 // uctoa::@9 __b9: - // [177] (byte) uctoa::digit#1 ← ++ (byte) uctoa::digit#2 -- vbuz1=_inc_vbuz1 + // [181] (byte) uctoa::digit#1 ← ++ (byte) uctoa::digit#2 -- vbuz1=_inc_vbuz1 inc.z digit - // [167] phi from uctoa::@9 to uctoa::@6 [phi:uctoa::@9->uctoa::@6] + // [171] phi from uctoa::@9 to uctoa::@6 [phi:uctoa::@9->uctoa::@6] __b6_from___b9: - // [167] phi (byte*) uctoa::buffer#11 = (byte*) uctoa::buffer#14 [phi:uctoa::@9->uctoa::@6#0] -- register_copy - // [167] phi (byte) uctoa::started#2 = (byte) uctoa::started#4 [phi:uctoa::@9->uctoa::@6#1] -- register_copy - // [167] phi (byte) uctoa::value#2 = (byte) uctoa::value#6 [phi:uctoa::@9->uctoa::@6#2] -- register_copy - // [167] phi (byte) uctoa::digit#2 = (byte) uctoa::digit#1 [phi:uctoa::@9->uctoa::@6#3] -- register_copy + // [171] phi (byte*) uctoa::buffer#11 = (byte*) uctoa::buffer#14 [phi:uctoa::@9->uctoa::@6#0] -- register_copy + // [171] phi (byte) uctoa::started#2 = (byte) uctoa::started#4 [phi:uctoa::@9->uctoa::@6#1] -- register_copy + // [171] phi (byte) uctoa::value#2 = (byte) uctoa::value#6 [phi:uctoa::@9->uctoa::@6#2] -- register_copy + // [171] phi (byte) uctoa::digit#2 = (byte) uctoa::digit#1 [phi:uctoa::@9->uctoa::@6#3] -- register_copy jmp __b6 // uctoa::@10 __b10: - // [178] (byte*) uctoa_append::buffer#0 ← (byte*) uctoa::buffer#11 - // [179] (byte) uctoa_append::value#0 ← (byte) uctoa::value#2 - // [180] (byte) uctoa_append::sub#0 ← (byte) uctoa::digit_value#0 -- vbuz1=vbuyy + // [182] (byte*) uctoa_append::buffer#0 ← (byte*) uctoa::buffer#11 + // [183] (byte) uctoa_append::value#0 ← (byte) uctoa::value#2 + // [184] (byte) uctoa_append::sub#0 ← (byte) uctoa::digit_value#0 -- vbuz1=vbuyy sty.z uctoa_append.sub - // [181] call uctoa_append - // [185] phi from uctoa::@10 to uctoa_append [phi:uctoa::@10->uctoa_append] + // [185] call uctoa_append + // [189] phi from uctoa::@10 to uctoa_append [phi:uctoa::@10->uctoa_append] uctoa_append_from___b10: jsr uctoa_append - // [182] (byte) uctoa_append::return#0 ← (byte) uctoa_append::value#2 + // [186] (byte) uctoa_append::return#0 ← (byte) uctoa_append::value#2 jmp __b11 // uctoa::@11 __b11: - // [183] (byte) uctoa::value#0 ← (byte) uctoa_append::return#0 - // [184] (byte*) uctoa::buffer#4 ← ++ (byte*) uctoa::buffer#11 -- pbuz1=_inc_pbuz1 + // [187] (byte) uctoa::value#0 ← (byte) uctoa_append::return#0 + // [188] (byte*) uctoa::buffer#4 ← ++ (byte*) uctoa::buffer#11 -- pbuz1=_inc_pbuz1 inc.z buffer bne !+ inc.z buffer+1 !: - // [176] phi from uctoa::@11 to uctoa::@9 [phi:uctoa::@11->uctoa::@9] + // [180] phi from uctoa::@11 to uctoa::@9 [phi:uctoa::@11->uctoa::@9] __b9_from___b11: - // [176] phi (byte*) uctoa::buffer#14 = (byte*) uctoa::buffer#4 [phi:uctoa::@11->uctoa::@9#0] -- register_copy - // [176] phi (byte) uctoa::started#4 = (byte) 1 [phi:uctoa::@11->uctoa::@9#1] -- vbuz1=vbuc1 + // [180] phi (byte*) uctoa::buffer#14 = (byte*) uctoa::buffer#4 [phi:uctoa::@11->uctoa::@9#0] -- register_copy + // [180] phi (byte) uctoa::started#4 = (byte) 1 [phi:uctoa::@11->uctoa::@9#1] -- vbuz1=vbuc1 lda #1 sta.z started - // [176] phi (byte) uctoa::value#6 = (byte) uctoa::value#0 [phi:uctoa::@11->uctoa::@9#2] -- register_copy + // [180] phi (byte) uctoa::value#6 = (byte) uctoa::value#0 [phi:uctoa::@11->uctoa::@9#2] -- register_copy jmp __b9 } // uctoa_append @@ -7003,48 +7111,48 @@ uctoa: { uctoa_append: { .label buffer = $12 .label sub = $14 - // [186] phi from uctoa_append to uctoa_append::@1 [phi:uctoa_append->uctoa_append::@1] + // [190] phi from uctoa_append to uctoa_append::@1 [phi:uctoa_append->uctoa_append::@1] __b1_from_uctoa_append: - // [186] phi (byte) uctoa_append::digit#2 = (byte) 0 [phi:uctoa_append->uctoa_append::@1#0] -- vbuyy=vbuc1 + // [190] phi (byte) uctoa_append::digit#2 = (byte) 0 [phi:uctoa_append->uctoa_append::@1#0] -- vbuyy=vbuc1 ldy #0 - // [186] phi (byte) uctoa_append::value#2 = (byte) uctoa_append::value#0 [phi:uctoa_append->uctoa_append::@1#1] -- register_copy + // [190] phi (byte) uctoa_append::value#2 = (byte) uctoa_append::value#0 [phi:uctoa_append->uctoa_append::@1#1] -- register_copy jmp __b1 // uctoa_append::@1 __b1: - // [187] if((byte) uctoa_append::value#2>=(byte) uctoa_append::sub#0) goto uctoa_append::@2 -- vbuxx_ge_vbuz1_then_la1 + // [191] if((byte) uctoa_append::value#2>=(byte) uctoa_append::sub#0) goto uctoa_append::@2 -- vbuxx_ge_vbuz1_then_la1 cpx.z sub bcs __b2 jmp __b3 // uctoa_append::@3 __b3: - // [188] *((byte*) uctoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) uctoa_append::digit#2) -- _deref_pbuz1=pbuc1_derefidx_vbuyy + // [192] *((byte*) uctoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) uctoa_append::digit#2) -- _deref_pbuz1=pbuc1_derefidx_vbuyy lda DIGITS,y ldy #0 sta (buffer),y jmp __breturn // uctoa_append::@return __breturn: - // [189] return + // [193] return rts // uctoa_append::@2 __b2: - // [190] (byte) uctoa_append::digit#1 ← ++ (byte) uctoa_append::digit#2 -- vbuyy=_inc_vbuyy + // [194] (byte) uctoa_append::digit#1 ← ++ (byte) uctoa_append::digit#2 -- vbuyy=_inc_vbuyy iny - // [191] (byte) uctoa_append::value#1 ← (byte) uctoa_append::value#2 - (byte) uctoa_append::sub#0 -- vbuxx=vbuxx_minus_vbuz1 + // [195] (byte) uctoa_append::value#1 ← (byte) uctoa_append::value#2 - (byte) uctoa_append::sub#0 -- vbuxx=vbuxx_minus_vbuz1 txa sec sbc.z sub tax - // [186] phi from uctoa_append::@2 to uctoa_append::@1 [phi:uctoa_append::@2->uctoa_append::@1] + // [190] phi from uctoa_append::@2 to uctoa_append::@1 [phi:uctoa_append::@2->uctoa_append::@1] __b1_from___b2: - // [186] phi (byte) uctoa_append::digit#2 = (byte) uctoa_append::digit#1 [phi:uctoa_append::@2->uctoa_append::@1#0] -- register_copy - // [186] phi (byte) uctoa_append::value#2 = (byte) uctoa_append::value#1 [phi:uctoa_append::@2->uctoa_append::@1#1] -- register_copy + // [190] phi (byte) uctoa_append::digit#2 = (byte) uctoa_append::digit#1 [phi:uctoa_append::@2->uctoa_append::@1#0] -- register_copy + // [190] phi (byte) uctoa_append::value#2 = (byte) uctoa_append::value#1 [phi:uctoa_append::@2->uctoa_append::@1#1] -- register_copy jmp __b1 } // printf_cls // Clear the screen. Also resets current line/char cursor. printf_cls: { - // [193] call memset + // [197] call memset // [85] phi from printf_cls to memset [phi:printf_cls->memset] memset_from_printf_cls: // [85] phi (byte) memset::c#4 = (byte) ' ' [phi:printf_cls->memset#0] -- vbuxx=vbuc1 @@ -7063,12 +7171,12 @@ printf_cls: { jmp __b1 // printf_cls::@1 __b1: - // [194] (byte*) printf_line_cursor ← (const byte*) printf_screen -- pbuz1=pbuc1 + // [198] (byte*) printf_line_cursor ← (const byte*) printf_screen -- pbuz1=pbuc1 lda #printf_screen sta.z printf_line_cursor+1 - // [195] (byte*) printf_char_cursor ← (byte*) printf_line_cursor -- pbuz1=pbuz2 + // [199] (byte*) printf_char_cursor ← (byte*) printf_line_cursor -- pbuz1=pbuz2 lda.z printf_line_cursor sta.z printf_char_cursor lda.z printf_line_cursor+1 @@ -7076,7 +7184,7 @@ printf_cls: { jmp __breturn // printf_cls::@return __breturn: - // [196] return + // [200] return rts } // File Data @@ -7142,8 +7250,10 @@ Removing instruction jmp __breturn Removing instruction jmp __b1 Removing instruction jmp __breturn Removing instruction jmp __b1 +Removing instruction jmp __b2 Removing instruction jmp __breturn -Removing instruction jmp __b3 +Removing instruction jmp __b5 +Removing instruction jmp __b4 Removing instruction jmp __b1 Removing instruction jmp __breturn Removing instruction jmp __b1 @@ -7190,7 +7300,9 @@ Replacing label __b1_from_printf_number_buffer with __b1_from___b11 Replacing label __b11_from___b12 with __b11 Replacing label __b19_from___b11 with __b1 Replacing label __b2_from___b3 with __b2 -Replacing label __b1_from___b3 with __b1 +Replacing label __b4_from___b3 with __b4 +Replacing label __b1_from___b5 with __b2 +Replacing label __b1_from___b4 with __b2 Replacing label __b2_from___b3 with __b2 Replacing label __b2_from___b1 with __b2 Removing instruction __b1: @@ -7223,7 +7335,12 @@ Removing instruction memset_from___b2: Removing instruction __b2_from___b1: Removing instruction __b2_from___b3: Removing instruction __b1_from_printf_str: -Removing instruction __b1_from___b3: +Removing instruction __b1_from___b4: +Removing instruction __b1_from___b5: +Removing instruction __b1: +Removing instruction printf_char_from___b5: +Removing instruction __b4_from___b3: +Removing instruction printf_ln_from___b4: Removing instruction __b4_from___b7: Removing instruction utoa_append_from___b5: Removing instruction __b2_from___b1: @@ -7277,8 +7394,7 @@ Removing instruction __b1_from_memcpy: Removing instruction __breturn: Removing instruction __b1_from___b2: Removing instruction __breturn: -Removing instruction printf_char_from___b2: -Removing instruction __b3: +Removing instruction __b5: Removing instruction __b1_from_strlen: Removing instruction __breturn: Removing instruction __b1_from___b2: @@ -7419,7 +7535,7 @@ FINAL SYMBOL TABLE (byte) printf_char::ch#1 reg byte a 200002.0 (byte) printf_char::ch#2 reg byte a 2002.0 (byte) printf_char::ch#3 reg byte a 1201004.0 -(byte*) printf_char_cursor loadstore zp[2]:16 70719.31313131312 +(byte*) printf_char_cursor loadstore zp[2]:16 174758.36893203887 (void()) printf_cls() (label) printf_cls::@1 (label) printf_cls::@return @@ -7430,7 +7546,7 @@ FINAL SYMBOL TABLE (byte) printf_format_number::zero_padding (byte) printf_format_string::justify_left (byte) printf_format_string::min_length -(byte*) printf_line_cursor loadstore zp[2]:14 10561.147368421056 +(byte*) printf_line_cursor loadstore zp[2]:14 323234.4343434343 (void()) printf_ln() (label) printf_ln::@1 (label) printf_ln::@2 @@ -7522,11 +7638,15 @@ FINAL SYMBOL TABLE (label) printf_str::@1 (label) printf_str::@2 (label) printf_str::@3 +(label) printf_str::@4 +(label) printf_str::@5 (label) printf_str::@return +(byte) printf_str::ch +(byte) printf_str::ch#0 reg byte a 100001.0 (byte*) printf_str::str -(byte*) printf_str::str#0 str zp[2]:4 200002.0 +(byte*) printf_str::str#0 str zp[2]:4 42857.57142857143 (byte*) printf_str::str#1 str zp[2]:4 5501.0 -(byte*) printf_str::str#2 str zp[2]:4 102501.25 +(byte*) printf_str::str#2 str zp[2]:4 205002.5 (void()) printf_uint((word) printf_uint::uvalue , (byte) printf_uint::format_min_length , (byte) printf_uint::format_justify_left , (byte) printf_uint::format_sign_always , (byte) printf_uint::format_zero_padding , (byte) printf_uint::format_radix) (label) printf_uint::@1 (label) printf_uint::@2 @@ -7685,6 +7805,7 @@ reg byte x [ uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ] reg byte y [ uctoa_append::digit#2 uctoa_append::digit#1 ] zp[2]:14 [ printf_line_cursor ] zp[2]:16 [ printf_char_cursor printf_char::$8 ] +reg byte a [ printf_str::ch#0 ] reg byte a [ utoa::$11 ] reg byte a [ utoa::$10 ] zp[2]:18 [ utoa::digit_value#0 utoa_append::sub#0 uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 uctoa::buffer#3 uctoa_append::buffer#0 ] @@ -7697,7 +7818,7 @@ mem[12] [ printf_buffer ] FINAL ASSEMBLER -Score: 19198 +Score: 19152 // File Comments // Tests printf implementation @@ -7743,22 +7864,22 @@ __bbegin: main: { // printf_cls() // [7] call printf_cls - // [192] phi from main to printf_cls [phi:main->printf_cls] + // [196] phi from main to printf_cls [phi:main->printf_cls] jsr printf_cls // [8] phi from main to main::@1 [phi:main->main::@1] // main::@1 // printf_schar(-77, { 6, 0, 0, 0, DECIMAL}) // [9] call printf_schar - // [142] phi from main::@1 to printf_schar [phi:main::@1->printf_schar] - // [142] phi (byte) printf_schar::format_zero_padding#2 = (byte) 0 [phi:main::@1->printf_schar#0] -- vbuz1=vbuc1 + // [146] phi from main::@1 to printf_schar [phi:main::@1->printf_schar] + // [146] phi (byte) printf_schar::format_zero_padding#2 = (byte) 0 [phi:main::@1->printf_schar#0] -- vbuz1=vbuc1 lda #0 sta.z printf_schar.format_zero_padding - // [142] phi (byte) printf_schar::format_radix#2 = (const byte) DECIMAL [phi:main::@1->printf_schar#1] -- vbuz1=vbuc1 + // [146] phi (byte) printf_schar::format_radix#2 = (const byte) DECIMAL [phi:main::@1->printf_schar#1] -- vbuz1=vbuc1 lda #DECIMAL sta.z printf_schar.format_radix - // [142] phi (byte) printf_schar::format_sign_always#2 = (byte) 0 [phi:main::@1->printf_schar#2] -- vbuyy=vbuc1 + // [146] phi (byte) printf_schar::format_sign_always#2 = (byte) 0 [phi:main::@1->printf_schar#2] -- vbuyy=vbuc1 ldy #0 - // [142] phi (signed byte) printf_schar::value#3 = (signed byte) -$4d [phi:main::@1->printf_schar#3] -- vbsxx=vbsc1 + // [146] phi (signed byte) printf_schar::value#3 = (signed byte) -$4d [phi:main::@1->printf_schar#3] -- vbsxx=vbsc1 ldx #-$4d jsr printf_schar // [10] phi from main::@1 to main::@2 [phi:main::@1->main::@2] @@ -7771,16 +7892,16 @@ main: { // main::@3 // printf_schar(99, {6, 0, 1, 1, OCTAL}) // [13] call printf_schar - // [142] phi from main::@3 to printf_schar [phi:main::@3->printf_schar] - // [142] phi (byte) printf_schar::format_zero_padding#2 = (byte) 1 [phi:main::@3->printf_schar#0] -- vbuz1=vbuc1 + // [146] phi from main::@3 to printf_schar [phi:main::@3->printf_schar] + // [146] phi (byte) printf_schar::format_zero_padding#2 = (byte) 1 [phi:main::@3->printf_schar#0] -- vbuz1=vbuc1 lda #1 sta.z printf_schar.format_zero_padding - // [142] phi (byte) printf_schar::format_radix#2 = (const byte) OCTAL [phi:main::@3->printf_schar#1] -- vbuz1=vbuc1 + // [146] phi (byte) printf_schar::format_radix#2 = (const byte) OCTAL [phi:main::@3->printf_schar#1] -- vbuz1=vbuc1 lda #OCTAL sta.z printf_schar.format_radix - // [142] phi (byte) printf_schar::format_sign_always#2 = (byte) 1 [phi:main::@3->printf_schar#2] -- vbuyy=vbuc1 + // [146] phi (byte) printf_schar::format_sign_always#2 = (byte) 1 [phi:main::@3->printf_schar#2] -- vbuyy=vbuc1 ldy #1 - // [142] phi (signed byte) printf_schar::value#3 = (signed byte) $63 [phi:main::@3->printf_schar#3] -- vbsxx=vbsc1 + // [146] phi (signed byte) printf_schar::value#3 = (signed byte) $63 [phi:main::@3->printf_schar#3] -- vbsxx=vbsc1 ldx #$63 jsr printf_schar // [14] phi from main::@3 to main::@4 [phi:main::@3->main::@4] @@ -7858,7 +7979,7 @@ printf_uint: { // utoa(uvalue, printf_buffer.digits, format.radix) // [28] call utoa // Format number into buffer - // [114] phi from printf_uint::@1 to utoa [phi:printf_uint::@1->utoa] + // [118] phi from printf_uint::@1 to utoa [phi:printf_uint::@1->utoa] jsr utoa // printf_uint::@2 // printf_number_buffer(printf_buffer, format) @@ -7911,7 +8032,7 @@ printf_number_buffer: { lda.z buffer_digits+1 sta.z strlen.str+1 // [35] call strlen - // [108] phi from printf_number_buffer::@5 to strlen [phi:printf_number_buffer::@5->strlen] + // [112] phi from printf_number_buffer::@5 to strlen [phi:printf_number_buffer::@5->strlen] jsr strlen // strlen(buffer.digits) // [36] (word) strlen::return#2 ← (word) strlen::len#2 @@ -8120,14 +8241,16 @@ printf_char: { bne !+ inc.z printf_char_cursor+1 !: - // if(printf_char_cursor==printf_screen+PRINTF_SCREEN_BYTES) - // [76] if((byte*) printf_char_cursor!=(const byte*) printf_screen+(word)(number) $28*(number) $19) goto printf_char::@return -- pbuz1_neq_pbuc1_then_la1 + // if(printf_char_cursor>=(printf_screen+PRINTF_SCREEN_BYTES)) + // [76] if((byte*) printf_char_cursor<(const byte*) printf_screen+(word)(number) $28*(number) $19) goto printf_char::@return -- pbuz1_lt_pbuc1_then_la1 lda.z printf_char_cursor+1 cmp #>printf_screen+$28*$19 - bne __breturn + bcc __breturn + bne !+ lda.z printf_char_cursor cmp #printf_char::@1] // printf_char::@1 // memcpy(printf_screen, printf_screen+PRINTF_SCREEN_WIDTH, PRINTF_SCREEN_BYTES-PRINTF_SCREEN_WIDTH) @@ -8294,41 +8417,54 @@ memcpy: { } // printf_str // Print a zero-terminated string +// Handles escape codes such as newline // printf_str(byte* zp(4) str) printf_str: { .label str = 4 - // [102] phi from printf_str printf_str::@3 to printf_str::@1 [phi:printf_str/printf_str::@3->printf_str::@1] - // [102] phi (byte*) printf_str::str#2 = (byte*) printf_str::str#1 [phi:printf_str/printf_str::@3->printf_str::@1#0] -- register_copy + // [102] phi from printf_str printf_str::@4 printf_str::@5 to printf_str::@1 [phi:printf_str/printf_str::@4/printf_str::@5->printf_str::@1] + // [102] phi (byte*) printf_str::str#2 = (byte*) printf_str::str#1 [phi:printf_str/printf_str::@4/printf_str::@5->printf_str::@1#0] -- register_copy // printf_str::@1 - __b1: - // while(*str) - // [103] if((byte) 0!=*((byte*) printf_str::str#2)) goto printf_str::@2 -- vbuc1_neq__deref_pbuz1_then_la1 - ldy #0 - lda (str),y - cmp #0 - bne __b2 - // printf_str::@return - // } - // [104] return - rts // printf_str::@2 __b2: - // printf_char(*str++) - // [105] (byte) printf_char::ch#1 ← *((byte*) printf_str::str#2) -- vbuaa=_deref_pbuz1 + // ch = *str++ + // [103] (byte) printf_str::ch#0 ← *((byte*) printf_str::str#2) -- vbuaa=_deref_pbuz1 ldy #0 lda (str),y - // [106] call printf_char - // [73] phi from printf_str::@2 to printf_char [phi:printf_str::@2->printf_char] - // [73] phi (byte) printf_char::ch#3 = (byte) printf_char::ch#1 [phi:printf_str::@2->printf_char#0] -- register_copy - jsr printf_char - // printf_str::@3 - // printf_char(*str++); - // [107] (byte*) printf_str::str#0 ← ++ (byte*) printf_str::str#2 -- pbuz1=_inc_pbuz1 + // [104] (byte*) printf_str::str#0 ← ++ (byte*) printf_str::str#2 -- pbuz1=_inc_pbuz1 inc.z str bne !+ inc.z str+1 !: - jmp __b1 + // if(ch==0) + // [105] if((byte) printf_str::ch#0!=(byte) 0) goto printf_str::@3 -- vbuaa_neq_0_then_la1 + cmp #0 + bne __b3 + // printf_str::@return + // } + // [106] return + rts + // printf_str::@3 + __b3: + // if(ch=='\n') + // [107] if((byte) printf_str::ch#0==(byte) ' ') goto printf_str::@4 -- vbuaa_eq_vbuc1_then_la1 + cmp #'\n' + beq __b4 + // printf_str::@5 + // printf_char(ch) + // [108] (byte) printf_char::ch#1 ← (byte) printf_str::ch#0 + // [109] call printf_char + // [73] phi from printf_str::@5 to printf_char [phi:printf_str::@5->printf_char] + // [73] phi (byte) printf_char::ch#3 = (byte) printf_char::ch#1 [phi:printf_str::@5->printf_char#0] -- register_copy + jsr printf_char + jmp __b2 + // [110] phi from printf_str::@3 to printf_str::@4 [phi:printf_str::@3->printf_str::@4] + // printf_str::@4 + __b4: + // printf_ln() + // [111] call printf_ln + // [21] phi from printf_str::@4 to printf_ln [phi:printf_str::@4->printf_ln] + jsr printf_ln + jmp __b2 } // strlen // Computes the length of the string str up to but not including the terminating null character. @@ -8337,41 +8473,41 @@ strlen: { .label len = $a .label str = 6 .label return = $a - // [109] phi from strlen to strlen::@1 [phi:strlen->strlen::@1] - // [109] phi (word) strlen::len#2 = (word) 0 [phi:strlen->strlen::@1#0] -- vwuz1=vwuc1 + // [113] phi from strlen to strlen::@1 [phi:strlen->strlen::@1] + // [113] phi (word) strlen::len#2 = (word) 0 [phi:strlen->strlen::@1#0] -- vwuz1=vwuc1 lda #<0 sta.z len sta.z len+1 - // [109] phi (byte*) strlen::str#2 = (byte*) strlen::str#1 [phi:strlen->strlen::@1#1] -- register_copy + // [113] phi (byte*) strlen::str#2 = (byte*) strlen::str#1 [phi:strlen->strlen::@1#1] -- register_copy // strlen::@1 __b1: // while(*str) - // [110] if((byte) 0!=*((byte*) strlen::str#2)) goto strlen::@2 -- vbuc1_neq__deref_pbuz1_then_la1 + // [114] if((byte) 0!=*((byte*) strlen::str#2)) goto strlen::@2 -- vbuc1_neq__deref_pbuz1_then_la1 ldy #0 lda (str),y cmp #0 bne __b2 // strlen::@return // } - // [111] return + // [115] return rts // strlen::@2 __b2: // len++; - // [112] (word) strlen::len#1 ← ++ (word) strlen::len#2 -- vwuz1=_inc_vwuz1 + // [116] (word) strlen::len#1 ← ++ (word) strlen::len#2 -- vwuz1=_inc_vwuz1 inc.z len bne !+ inc.z len+1 !: // str++; - // [113] (byte*) strlen::str#0 ← ++ (byte*) strlen::str#2 -- pbuz1=_inc_pbuz1 + // [117] (byte*) strlen::str#0 ← ++ (byte*) strlen::str#2 -- pbuz1=_inc_pbuz1 inc.z str bne !+ inc.z str+1 !: - // [109] phi from strlen::@2 to strlen::@1 [phi:strlen::@2->strlen::@1] - // [109] phi (word) strlen::len#2 = (word) strlen::len#1 [phi:strlen::@2->strlen::@1#0] -- register_copy - // [109] phi (byte*) strlen::str#2 = (byte*) strlen::str#0 [phi:strlen::@2->strlen::@1#1] -- register_copy + // [113] phi from strlen::@2 to strlen::@1 [phi:strlen::@2->strlen::@1] + // [113] phi (word) strlen::len#2 = (word) strlen::len#1 [phi:strlen::@2->strlen::@1#0] -- register_copy + // [113] phi (byte*) strlen::str#2 = (byte*) strlen::str#0 [phi:strlen::@2->strlen::@1#1] -- register_copy jmp __b1 } // utoa @@ -8387,71 +8523,71 @@ utoa: { .label buffer = 6 .label digit = 3 .label value = 4 - // [115] phi from utoa to utoa::@1 [phi:utoa->utoa::@1] - // [115] phi (byte*) utoa::buffer#11 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:utoa->utoa::@1#0] -- pbuz1=pbuc1 + // [119] phi from utoa to utoa::@1 [phi:utoa->utoa::@1] + // [119] phi (byte*) utoa::buffer#11 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:utoa->utoa::@1#0] -- pbuz1=pbuc1 lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS sta.z buffer+1 - // [115] phi (byte) utoa::started#2 = (byte) 0 [phi:utoa->utoa::@1#1] -- vbuxx=vbuc1 + // [119] phi (byte) utoa::started#2 = (byte) 0 [phi:utoa->utoa::@1#1] -- vbuxx=vbuc1 ldx #0 - // [115] phi (word) utoa::value#2 = (const word) printf_uint::uvalue#0 [phi:utoa->utoa::@1#2] -- vwuz1=vwuc1 + // [119] phi (word) utoa::value#2 = (const word) printf_uint::uvalue#0 [phi:utoa->utoa::@1#2] -- vwuz1=vwuc1 lda #printf_uint.uvalue sta.z value+1 - // [115] phi (byte) utoa::digit#2 = (byte) 0 [phi:utoa->utoa::@1#3] -- vbuz1=vbuc1 + // [119] phi (byte) utoa::digit#2 = (byte) 0 [phi:utoa->utoa::@1#3] -- vbuz1=vbuc1 txa sta.z digit // utoa::@1 __b1: // for( char digit=0; digit= digit_value) - // [124] if((byte) 0!=(byte) utoa::started#2) goto utoa::@5 -- vbuc1_neq_vbuxx_then_la1 + // [128] if((byte) 0!=(byte) utoa::started#2) goto utoa::@5 -- vbuc1_neq_vbuxx_then_la1 cpx #0 bne __b5 // utoa::@7 - // [125] if((word) utoa::value#2>=(word) utoa::digit_value#0) goto utoa::@5 -- vwuz1_ge_vwuz2_then_la1 + // [129] if((word) utoa::value#2>=(word) utoa::digit_value#0) goto utoa::@5 -- vwuz1_ge_vwuz2_then_la1 cmp.z value+1 bne !+ lda.z digit_value @@ -8459,46 +8595,46 @@ utoa: { beq __b5 !: bcc __b5 - // [126] phi from utoa::@7 to utoa::@4 [phi:utoa::@7->utoa::@4] - // [126] phi (byte*) utoa::buffer#14 = (byte*) utoa::buffer#11 [phi:utoa::@7->utoa::@4#0] -- register_copy - // [126] phi (byte) utoa::started#4 = (byte) utoa::started#2 [phi:utoa::@7->utoa::@4#1] -- register_copy - // [126] phi (word) utoa::value#6 = (word) utoa::value#2 [phi:utoa::@7->utoa::@4#2] -- register_copy + // [130] phi from utoa::@7 to utoa::@4 [phi:utoa::@7->utoa::@4] + // [130] phi (byte*) utoa::buffer#14 = (byte*) utoa::buffer#11 [phi:utoa::@7->utoa::@4#0] -- register_copy + // [130] phi (byte) utoa::started#4 = (byte) utoa::started#2 [phi:utoa::@7->utoa::@4#1] -- register_copy + // [130] phi (word) utoa::value#6 = (word) utoa::value#2 [phi:utoa::@7->utoa::@4#2] -- register_copy // utoa::@4 __b4: // for( char digit=0; digitutoa::@1] - // [115] phi (byte*) utoa::buffer#11 = (byte*) utoa::buffer#14 [phi:utoa::@4->utoa::@1#0] -- register_copy - // [115] phi (byte) utoa::started#2 = (byte) utoa::started#4 [phi:utoa::@4->utoa::@1#1] -- register_copy - // [115] phi (word) utoa::value#2 = (word) utoa::value#6 [phi:utoa::@4->utoa::@1#2] -- register_copy - // [115] phi (byte) utoa::digit#2 = (byte) utoa::digit#1 [phi:utoa::@4->utoa::@1#3] -- register_copy + // [119] phi from utoa::@4 to utoa::@1 [phi:utoa::@4->utoa::@1] + // [119] phi (byte*) utoa::buffer#11 = (byte*) utoa::buffer#14 [phi:utoa::@4->utoa::@1#0] -- register_copy + // [119] phi (byte) utoa::started#2 = (byte) utoa::started#4 [phi:utoa::@4->utoa::@1#1] -- register_copy + // [119] phi (word) utoa::value#2 = (word) utoa::value#6 [phi:utoa::@4->utoa::@1#2] -- register_copy + // [119] phi (byte) utoa::digit#2 = (byte) utoa::digit#1 [phi:utoa::@4->utoa::@1#3] -- register_copy jmp __b1 // utoa::@5 __b5: // utoa_append(buffer++, value, digit_value) - // [128] (byte*) utoa_append::buffer#0 ← (byte*) utoa::buffer#11 - // [129] (word) utoa_append::value#0 ← (word) utoa::value#2 - // [130] (word) utoa_append::sub#0 ← (word) utoa::digit_value#0 - // [131] call utoa_append - // [135] phi from utoa::@5 to utoa_append [phi:utoa::@5->utoa_append] + // [132] (byte*) utoa_append::buffer#0 ← (byte*) utoa::buffer#11 + // [133] (word) utoa_append::value#0 ← (word) utoa::value#2 + // [134] (word) utoa_append::sub#0 ← (word) utoa::digit_value#0 + // [135] call utoa_append + // [139] phi from utoa::@5 to utoa_append [phi:utoa::@5->utoa_append] jsr utoa_append // utoa_append(buffer++, value, digit_value) - // [132] (word) utoa_append::return#0 ← (word) utoa_append::value#2 + // [136] (word) utoa_append::return#0 ← (word) utoa_append::value#2 // utoa::@6 // value = utoa_append(buffer++, value, digit_value) - // [133] (word) utoa::value#0 ← (word) utoa_append::return#0 + // [137] (word) utoa::value#0 ← (word) utoa_append::return#0 // value = utoa_append(buffer++, value, digit_value); - // [134] (byte*) utoa::buffer#4 ← ++ (byte*) utoa::buffer#11 -- pbuz1=_inc_pbuz1 + // [138] (byte*) utoa::buffer#4 ← ++ (byte*) utoa::buffer#11 -- pbuz1=_inc_pbuz1 inc.z buffer bne !+ inc.z buffer+1 !: - // [126] phi from utoa::@6 to utoa::@4 [phi:utoa::@6->utoa::@4] - // [126] phi (byte*) utoa::buffer#14 = (byte*) utoa::buffer#4 [phi:utoa::@6->utoa::@4#0] -- register_copy - // [126] phi (byte) utoa::started#4 = (byte) 1 [phi:utoa::@6->utoa::@4#1] -- vbuxx=vbuc1 + // [130] phi from utoa::@6 to utoa::@4 [phi:utoa::@6->utoa::@4] + // [130] phi (byte*) utoa::buffer#14 = (byte*) utoa::buffer#4 [phi:utoa::@6->utoa::@4#0] -- register_copy + // [130] phi (byte) utoa::started#4 = (byte) 1 [phi:utoa::@6->utoa::@4#1] -- vbuxx=vbuc1 ldx #1 - // [126] phi (word) utoa::value#6 = (word) utoa::value#0 [phi:utoa::@6->utoa::@4#2] -- register_copy + // [130] phi (word) utoa::value#6 = (word) utoa::value#0 [phi:utoa::@6->utoa::@4#2] -- register_copy jmp __b4 } // utoa_append @@ -8516,14 +8652,14 @@ utoa_append: { .label value = 4 .label sub = $12 .label return = 4 - // [136] phi from utoa_append to utoa_append::@1 [phi:utoa_append->utoa_append::@1] - // [136] phi (byte) utoa_append::digit#2 = (byte) 0 [phi:utoa_append->utoa_append::@1#0] -- vbuxx=vbuc1 + // [140] phi from utoa_append to utoa_append::@1 [phi:utoa_append->utoa_append::@1] + // [140] phi (byte) utoa_append::digit#2 = (byte) 0 [phi:utoa_append->utoa_append::@1#0] -- vbuxx=vbuc1 ldx #0 - // [136] phi (word) utoa_append::value#2 = (word) utoa_append::value#0 [phi:utoa_append->utoa_append::@1#1] -- register_copy + // [140] phi (word) utoa_append::value#2 = (word) utoa_append::value#0 [phi:utoa_append->utoa_append::@1#1] -- register_copy // utoa_append::@1 __b1: // while (value >= sub) - // [137] if((word) utoa_append::value#2>=(word) utoa_append::sub#0) goto utoa_append::@2 -- vwuz1_ge_vwuz2_then_la1 + // [141] if((word) utoa_append::value#2>=(word) utoa_append::sub#0) goto utoa_append::@2 -- vwuz1_ge_vwuz2_then_la1 lda.z sub+1 cmp.z value+1 bne !+ @@ -8534,21 +8670,21 @@ utoa_append: { bcc __b2 // utoa_append::@3 // *buffer = DIGITS[digit] - // [138] *((byte*) utoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) utoa_append::digit#2) -- _deref_pbuz1=pbuc1_derefidx_vbuxx + // [142] *((byte*) utoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) utoa_append::digit#2) -- _deref_pbuz1=pbuc1_derefidx_vbuxx lda DIGITS,x ldy #0 sta (buffer),y // utoa_append::@return // } - // [139] return + // [143] return rts // utoa_append::@2 __b2: // digit++; - // [140] (byte) utoa_append::digit#1 ← ++ (byte) utoa_append::digit#2 -- vbuxx=_inc_vbuxx + // [144] (byte) utoa_append::digit#1 ← ++ (byte) utoa_append::digit#2 -- vbuxx=_inc_vbuxx inx // value -= sub - // [141] (word) utoa_append::value#1 ← (word) utoa_append::value#2 - (word) utoa_append::sub#0 -- vwuz1=vwuz1_minus_vwuz2 + // [145] (word) utoa_append::value#1 ← (word) utoa_append::value#2 - (word) utoa_append::sub#0 -- vwuz1=vwuz1_minus_vwuz2 lda.z value sec sbc.z sub @@ -8556,9 +8692,9 @@ utoa_append: { lda.z value+1 sbc.z sub+1 sta.z value+1 - // [136] phi from utoa_append::@2 to utoa_append::@1 [phi:utoa_append::@2->utoa_append::@1] - // [136] phi (byte) utoa_append::digit#2 = (byte) utoa_append::digit#1 [phi:utoa_append::@2->utoa_append::@1#0] -- register_copy - // [136] phi (word) utoa_append::value#2 = (word) utoa_append::value#1 [phi:utoa_append::@2->utoa_append::@1#1] -- register_copy + // [140] phi from utoa_append::@2 to utoa_append::@1 [phi:utoa_append::@2->utoa_append::@1] + // [140] phi (byte) utoa_append::digit#2 = (byte) utoa_append::digit#1 [phi:utoa_append::@2->utoa_append::@1#0] -- register_copy + // [140] phi (word) utoa_append::value#2 = (word) utoa_append::value#1 [phi:utoa_append::@2->utoa_append::@1#1] -- register_copy jmp __b1 } // printf_schar @@ -8568,41 +8704,41 @@ printf_schar: { .label format_radix = 8 .label format_zero_padding = 2 // printf_buffer.sign = 0 - // [143] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 -- _deref_pbuc1=vbuc2 + // [147] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) 0 -- _deref_pbuc1=vbuc2 // Handle any sign lda #0 sta printf_buffer // if(value<0) - // [144] if((signed byte) printf_schar::value#3<(signed byte) 0) goto printf_schar::@1 -- vbsxx_lt_0_then_la1 + // [148] if((signed byte) printf_schar::value#3<(signed byte) 0) goto printf_schar::@1 -- vbsxx_lt_0_then_la1 cpx #0 bmi __b1 // printf_schar::@3 // if(format.sign_always) - // [145] if((byte) 0==(byte) printf_schar::format_sign_always#2) goto printf_schar::@2 -- vbuc1_eq_vbuyy_then_la1 + // [149] if((byte) 0==(byte) printf_schar::format_sign_always#2) goto printf_schar::@2 -- vbuc1_eq_vbuyy_then_la1 cpy #0 beq __b2 // printf_schar::@4 // printf_buffer.sign = '+' - // [146] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) '+' -- _deref_pbuc1=vbuc2 + // [150] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) '+' -- _deref_pbuc1=vbuc2 lda #'+' sta printf_buffer - // [147] phi from printf_schar::@1 printf_schar::@3 printf_schar::@4 to printf_schar::@2 [phi:printf_schar::@1/printf_schar::@3/printf_schar::@4->printf_schar::@2] - // [147] phi (signed byte) printf_schar::value#5 = (signed byte) printf_schar::value#0 [phi:printf_schar::@1/printf_schar::@3/printf_schar::@4->printf_schar::@2#0] -- register_copy + // [151] phi from printf_schar::@1 printf_schar::@3 printf_schar::@4 to printf_schar::@2 [phi:printf_schar::@1/printf_schar::@3/printf_schar::@4->printf_schar::@2] + // [151] phi (signed byte) printf_schar::value#5 = (signed byte) printf_schar::value#0 [phi:printf_schar::@1/printf_schar::@3/printf_schar::@4->printf_schar::@2#0] -- register_copy // printf_schar::@2 __b2: // uctoa(uvalue, printf_buffer.digits, format.radix) - // [148] (byte) uctoa::value#1 ← (byte)(signed byte) printf_schar::value#5 - // [149] (byte) uctoa::radix#0 ← (byte) printf_schar::format_radix#2 -- vbuaa=vbuz1 + // [152] (byte) uctoa::value#1 ← (byte)(signed byte) printf_schar::value#5 + // [153] (byte) uctoa::radix#0 ← (byte) printf_schar::format_radix#2 -- vbuaa=vbuz1 lda.z format_radix - // [150] call uctoa + // [154] call uctoa jsr uctoa // printf_schar::@5 // printf_number_buffer(printf_buffer, format) - // [151] (byte) printf_number_buffer::buffer_sign#1 ← *((byte*)&(struct printf_buffer_number) printf_buffer) -- vbuz1=_deref_pbuc1 + // [155] (byte) printf_number_buffer::buffer_sign#1 ← *((byte*)&(struct printf_buffer_number) printf_buffer) -- vbuz1=_deref_pbuc1 lda printf_buffer sta.z printf_number_buffer.buffer_sign - // [152] (byte) printf_number_buffer::format_zero_padding#1 ← (byte) printf_schar::format_zero_padding#2 - // [153] call printf_number_buffer + // [156] (byte) printf_number_buffer::format_zero_padding#1 ← (byte) printf_schar::format_zero_padding#2 + // [157] call printf_number_buffer // Print using format // [32] phi from printf_schar::@5 to printf_number_buffer [phi:printf_schar::@5->printf_number_buffer] // [32] phi (byte) printf_number_buffer::buffer_sign#10 = (byte) printf_number_buffer::buffer_sign#1 [phi:printf_schar::@5->printf_number_buffer#0] -- register_copy @@ -8620,19 +8756,19 @@ printf_schar: { jsr printf_number_buffer // printf_schar::@return // } - // [154] return + // [158] return rts // printf_schar::@1 __b1: // value = -value - // [155] (signed byte) printf_schar::value#0 ← - (signed byte) printf_schar::value#3 -- vbsxx=_neg_vbsxx + // [159] (signed byte) printf_schar::value#0 ← - (signed byte) printf_schar::value#3 -- vbsxx=_neg_vbsxx txa eor #$ff clc adc #1 tax // printf_buffer.sign = '-' - // [156] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) '-' -- _deref_pbuc1=vbuc2 + // [160] *((byte*)&(struct printf_buffer_number) printf_buffer) ← (byte) '-' -- _deref_pbuc1=vbuc2 lda #'-' sta printf_buffer jmp __b2 @@ -8651,128 +8787,128 @@ uctoa: { .label max_digits = 9 .label digit_values = $a // if(radix==DECIMAL) - // [157] if((byte) uctoa::radix#0==(const byte) DECIMAL) goto uctoa::@1 -- vbuaa_eq_vbuc1_then_la1 + // [161] if((byte) uctoa::radix#0==(const byte) DECIMAL) goto uctoa::@1 -- vbuaa_eq_vbuc1_then_la1 cmp #DECIMAL beq __b2 // uctoa::@2 // if(radix==HEXADECIMAL) - // [158] if((byte) uctoa::radix#0==(const byte) HEXADECIMAL) goto uctoa::@1 -- vbuaa_eq_vbuc1_then_la1 + // [162] if((byte) uctoa::radix#0==(const byte) HEXADECIMAL) goto uctoa::@1 -- vbuaa_eq_vbuc1_then_la1 cmp #HEXADECIMAL beq __b3 // uctoa::@3 // if(radix==OCTAL) - // [159] if((byte) uctoa::radix#0==(const byte) OCTAL) goto uctoa::@1 -- vbuaa_eq_vbuc1_then_la1 + // [163] if((byte) uctoa::radix#0==(const byte) OCTAL) goto uctoa::@1 -- vbuaa_eq_vbuc1_then_la1 cmp #OCTAL beq __b4 // uctoa::@4 // if(radix==BINARY) - // [160] if((byte) uctoa::radix#0==(const byte) BINARY) goto uctoa::@1 -- vbuaa_eq_vbuc1_then_la1 + // [164] if((byte) uctoa::radix#0==(const byte) BINARY) goto uctoa::@1 -- vbuaa_eq_vbuc1_then_la1 cmp #BINARY beq __b5 // uctoa::@5 // *buffer++ = 'e' - // [161] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS) ← (byte) 'e' -- _deref_pbuc1=vbuc2 + // [165] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS) ← (byte) 'e' -- _deref_pbuc1=vbuc2 // Unknown radix lda #'e' sta printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS // *buffer++ = 'r' - // [162] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(byte) 1) ← (byte) 'r' -- _deref_pbuc1=vbuc2 + // [166] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(byte) 1) ← (byte) 'r' -- _deref_pbuc1=vbuc2 lda #'r' sta printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+1 - // [163] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(byte) 2) ← (byte) 'r' -- _deref_pbuc1=vbuc2 + // [167] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(byte) 2) ← (byte) 'r' -- _deref_pbuc1=vbuc2 sta printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+2 // *buffer = 0 - // [164] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(byte) 3) ← (byte) 0 -- _deref_pbuc1=vbuc2 + // [168] *((byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+(byte) 3) ← (byte) 0 -- _deref_pbuc1=vbuc2 lda #0 sta printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS+3 // uctoa::@return // } - // [165] return + // [169] return rts - // [166] phi from uctoa to uctoa::@1 [phi:uctoa->uctoa::@1] + // [170] phi from uctoa to uctoa::@1 [phi:uctoa->uctoa::@1] __b2: - // [166] phi (byte*) uctoa::digit_values#8 = (const byte*) RADIX_DECIMAL_VALUES_CHAR [phi:uctoa->uctoa::@1#0] -- pbuz1=pbuc1 + // [170] phi (byte*) uctoa::digit_values#8 = (const byte*) RADIX_DECIMAL_VALUES_CHAR [phi:uctoa->uctoa::@1#0] -- pbuz1=pbuc1 lda #RADIX_DECIMAL_VALUES_CHAR sta.z digit_values+1 - // [166] phi (byte) uctoa::max_digits#7 = (byte) 3 [phi:uctoa->uctoa::@1#1] -- vbuz1=vbuc1 + // [170] phi (byte) uctoa::max_digits#7 = (byte) 3 [phi:uctoa->uctoa::@1#1] -- vbuz1=vbuc1 lda #3 sta.z max_digits jmp __b1 - // [166] phi from uctoa::@2 to uctoa::@1 [phi:uctoa::@2->uctoa::@1] + // [170] phi from uctoa::@2 to uctoa::@1 [phi:uctoa::@2->uctoa::@1] __b3: - // [166] phi (byte*) uctoa::digit_values#8 = (const byte*) RADIX_HEXADECIMAL_VALUES_CHAR [phi:uctoa::@2->uctoa::@1#0] -- pbuz1=pbuc1 + // [170] phi (byte*) uctoa::digit_values#8 = (const byte*) RADIX_HEXADECIMAL_VALUES_CHAR [phi:uctoa::@2->uctoa::@1#0] -- pbuz1=pbuc1 lda #RADIX_HEXADECIMAL_VALUES_CHAR sta.z digit_values+1 - // [166] phi (byte) uctoa::max_digits#7 = (byte) 2 [phi:uctoa::@2->uctoa::@1#1] -- vbuz1=vbuc1 + // [170] phi (byte) uctoa::max_digits#7 = (byte) 2 [phi:uctoa::@2->uctoa::@1#1] -- vbuz1=vbuc1 lda #2 sta.z max_digits jmp __b1 - // [166] phi from uctoa::@3 to uctoa::@1 [phi:uctoa::@3->uctoa::@1] + // [170] phi from uctoa::@3 to uctoa::@1 [phi:uctoa::@3->uctoa::@1] __b4: - // [166] phi (byte*) uctoa::digit_values#8 = (const byte*) RADIX_OCTAL_VALUES_CHAR [phi:uctoa::@3->uctoa::@1#0] -- pbuz1=pbuc1 + // [170] phi (byte*) uctoa::digit_values#8 = (const byte*) RADIX_OCTAL_VALUES_CHAR [phi:uctoa::@3->uctoa::@1#0] -- pbuz1=pbuc1 lda #RADIX_OCTAL_VALUES_CHAR sta.z digit_values+1 - // [166] phi (byte) uctoa::max_digits#7 = (byte) 3 [phi:uctoa::@3->uctoa::@1#1] -- vbuz1=vbuc1 + // [170] phi (byte) uctoa::max_digits#7 = (byte) 3 [phi:uctoa::@3->uctoa::@1#1] -- vbuz1=vbuc1 lda #3 sta.z max_digits jmp __b1 - // [166] phi from uctoa::@4 to uctoa::@1 [phi:uctoa::@4->uctoa::@1] + // [170] phi from uctoa::@4 to uctoa::@1 [phi:uctoa::@4->uctoa::@1] __b5: - // [166] phi (byte*) uctoa::digit_values#8 = (const byte*) RADIX_BINARY_VALUES_CHAR [phi:uctoa::@4->uctoa::@1#0] -- pbuz1=pbuc1 + // [170] phi (byte*) uctoa::digit_values#8 = (const byte*) RADIX_BINARY_VALUES_CHAR [phi:uctoa::@4->uctoa::@1#0] -- pbuz1=pbuc1 lda #RADIX_BINARY_VALUES_CHAR sta.z digit_values+1 - // [166] phi (byte) uctoa::max_digits#7 = (byte) 8 [phi:uctoa::@4->uctoa::@1#1] -- vbuz1=vbuc1 + // [170] phi (byte) uctoa::max_digits#7 = (byte) 8 [phi:uctoa::@4->uctoa::@1#1] -- vbuz1=vbuc1 lda #8 sta.z max_digits // uctoa::@1 __b1: - // [167] phi from uctoa::@1 to uctoa::@6 [phi:uctoa::@1->uctoa::@6] - // [167] phi (byte*) uctoa::buffer#11 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:uctoa::@1->uctoa::@6#0] -- pbuz1=pbuc1 + // [171] phi from uctoa::@1 to uctoa::@6 [phi:uctoa::@1->uctoa::@6] + // [171] phi (byte*) uctoa::buffer#11 = (byte*)&(struct printf_buffer_number) printf_buffer+(const byte) OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS [phi:uctoa::@1->uctoa::@6#0] -- pbuz1=pbuc1 lda #printf_buffer+OFFSET_STRUCT_PRINTF_BUFFER_NUMBER_DIGITS sta.z buffer+1 - // [167] phi (byte) uctoa::started#2 = (byte) 0 [phi:uctoa::@1->uctoa::@6#1] -- vbuz1=vbuc1 + // [171] phi (byte) uctoa::started#2 = (byte) 0 [phi:uctoa::@1->uctoa::@6#1] -- vbuz1=vbuc1 lda #0 sta.z started - // [167] phi (byte) uctoa::value#2 = (byte) uctoa::value#1 [phi:uctoa::@1->uctoa::@6#2] -- register_copy - // [167] phi (byte) uctoa::digit#2 = (byte) 0 [phi:uctoa::@1->uctoa::@6#3] -- vbuz1=vbuc1 + // [171] phi (byte) uctoa::value#2 = (byte) uctoa::value#1 [phi:uctoa::@1->uctoa::@6#2] -- register_copy + // [171] phi (byte) uctoa::digit#2 = (byte) 0 [phi:uctoa::@1->uctoa::@6#3] -- vbuz1=vbuc1 sta.z digit // uctoa::@6 __b6: // max_digits-1 - // [168] (byte~) uctoa::$4 ← (byte) uctoa::max_digits#7 - (byte) 1 -- vbuaa=vbuz1_minus_1 + // [172] (byte~) uctoa::$4 ← (byte) uctoa::max_digits#7 - (byte) 1 -- vbuaa=vbuz1_minus_1 lda.z max_digits sec sbc #1 // for( char digit=0; digit= digit_value) - // [174] if((byte) 0!=(byte) uctoa::started#2) goto uctoa::@10 -- vbuc1_neq_vbuz1_then_la1 + // [178] if((byte) 0!=(byte) uctoa::started#2) goto uctoa::@10 -- vbuc1_neq_vbuz1_then_la1 lda #0 cmp.z started bne __b10 // uctoa::@12 - // [175] if((byte) uctoa::value#2>=(byte) uctoa::digit_value#0) goto uctoa::@10 -- vbuxx_ge_vbuyy_then_la1 + // [179] if((byte) uctoa::value#2>=(byte) uctoa::digit_value#0) goto uctoa::@10 -- vbuxx_ge_vbuyy_then_la1 sty.z $ff cpx.z $ff bcs __b10 - // [176] phi from uctoa::@12 to uctoa::@9 [phi:uctoa::@12->uctoa::@9] - // [176] phi (byte*) uctoa::buffer#14 = (byte*) uctoa::buffer#11 [phi:uctoa::@12->uctoa::@9#0] -- register_copy - // [176] phi (byte) uctoa::started#4 = (byte) uctoa::started#2 [phi:uctoa::@12->uctoa::@9#1] -- register_copy - // [176] phi (byte) uctoa::value#6 = (byte) uctoa::value#2 [phi:uctoa::@12->uctoa::@9#2] -- register_copy + // [180] phi from uctoa::@12 to uctoa::@9 [phi:uctoa::@12->uctoa::@9] + // [180] phi (byte*) uctoa::buffer#14 = (byte*) uctoa::buffer#11 [phi:uctoa::@12->uctoa::@9#0] -- register_copy + // [180] phi (byte) uctoa::started#4 = (byte) uctoa::started#2 [phi:uctoa::@12->uctoa::@9#1] -- register_copy + // [180] phi (byte) uctoa::value#6 = (byte) uctoa::value#2 [phi:uctoa::@12->uctoa::@9#2] -- register_copy // uctoa::@9 __b9: // for( char digit=0; digituctoa::@6] - // [167] phi (byte*) uctoa::buffer#11 = (byte*) uctoa::buffer#14 [phi:uctoa::@9->uctoa::@6#0] -- register_copy - // [167] phi (byte) uctoa::started#2 = (byte) uctoa::started#4 [phi:uctoa::@9->uctoa::@6#1] -- register_copy - // [167] phi (byte) uctoa::value#2 = (byte) uctoa::value#6 [phi:uctoa::@9->uctoa::@6#2] -- register_copy - // [167] phi (byte) uctoa::digit#2 = (byte) uctoa::digit#1 [phi:uctoa::@9->uctoa::@6#3] -- register_copy + // [171] phi from uctoa::@9 to uctoa::@6 [phi:uctoa::@9->uctoa::@6] + // [171] phi (byte*) uctoa::buffer#11 = (byte*) uctoa::buffer#14 [phi:uctoa::@9->uctoa::@6#0] -- register_copy + // [171] phi (byte) uctoa::started#2 = (byte) uctoa::started#4 [phi:uctoa::@9->uctoa::@6#1] -- register_copy + // [171] phi (byte) uctoa::value#2 = (byte) uctoa::value#6 [phi:uctoa::@9->uctoa::@6#2] -- register_copy + // [171] phi (byte) uctoa::digit#2 = (byte) uctoa::digit#1 [phi:uctoa::@9->uctoa::@6#3] -- register_copy jmp __b6 // uctoa::@10 __b10: // uctoa_append(buffer++, value, digit_value) - // [178] (byte*) uctoa_append::buffer#0 ← (byte*) uctoa::buffer#11 - // [179] (byte) uctoa_append::value#0 ← (byte) uctoa::value#2 - // [180] (byte) uctoa_append::sub#0 ← (byte) uctoa::digit_value#0 -- vbuz1=vbuyy + // [182] (byte*) uctoa_append::buffer#0 ← (byte*) uctoa::buffer#11 + // [183] (byte) uctoa_append::value#0 ← (byte) uctoa::value#2 + // [184] (byte) uctoa_append::sub#0 ← (byte) uctoa::digit_value#0 -- vbuz1=vbuyy sty.z uctoa_append.sub - // [181] call uctoa_append - // [185] phi from uctoa::@10 to uctoa_append [phi:uctoa::@10->uctoa_append] + // [185] call uctoa_append + // [189] phi from uctoa::@10 to uctoa_append [phi:uctoa::@10->uctoa_append] jsr uctoa_append // uctoa_append(buffer++, value, digit_value) - // [182] (byte) uctoa_append::return#0 ← (byte) uctoa_append::value#2 + // [186] (byte) uctoa_append::return#0 ← (byte) uctoa_append::value#2 // uctoa::@11 // value = uctoa_append(buffer++, value, digit_value) - // [183] (byte) uctoa::value#0 ← (byte) uctoa_append::return#0 + // [187] (byte) uctoa::value#0 ← (byte) uctoa_append::return#0 // value = uctoa_append(buffer++, value, digit_value); - // [184] (byte*) uctoa::buffer#4 ← ++ (byte*) uctoa::buffer#11 -- pbuz1=_inc_pbuz1 + // [188] (byte*) uctoa::buffer#4 ← ++ (byte*) uctoa::buffer#11 -- pbuz1=_inc_pbuz1 inc.z buffer bne !+ inc.z buffer+1 !: - // [176] phi from uctoa::@11 to uctoa::@9 [phi:uctoa::@11->uctoa::@9] - // [176] phi (byte*) uctoa::buffer#14 = (byte*) uctoa::buffer#4 [phi:uctoa::@11->uctoa::@9#0] -- register_copy - // [176] phi (byte) uctoa::started#4 = (byte) 1 [phi:uctoa::@11->uctoa::@9#1] -- vbuz1=vbuc1 + // [180] phi from uctoa::@11 to uctoa::@9 [phi:uctoa::@11->uctoa::@9] + // [180] phi (byte*) uctoa::buffer#14 = (byte*) uctoa::buffer#4 [phi:uctoa::@11->uctoa::@9#0] -- register_copy + // [180] phi (byte) uctoa::started#4 = (byte) 1 [phi:uctoa::@11->uctoa::@9#1] -- vbuz1=vbuc1 lda #1 sta.z started - // [176] phi (byte) uctoa::value#6 = (byte) uctoa::value#0 [phi:uctoa::@11->uctoa::@9#2] -- register_copy + // [180] phi (byte) uctoa::value#6 = (byte) uctoa::value#0 [phi:uctoa::@11->uctoa::@9#2] -- register_copy jmp __b9 } // uctoa_append @@ -8851,47 +8987,47 @@ uctoa: { uctoa_append: { .label buffer = $12 .label sub = $14 - // [186] phi from uctoa_append to uctoa_append::@1 [phi:uctoa_append->uctoa_append::@1] - // [186] phi (byte) uctoa_append::digit#2 = (byte) 0 [phi:uctoa_append->uctoa_append::@1#0] -- vbuyy=vbuc1 + // [190] phi from uctoa_append to uctoa_append::@1 [phi:uctoa_append->uctoa_append::@1] + // [190] phi (byte) uctoa_append::digit#2 = (byte) 0 [phi:uctoa_append->uctoa_append::@1#0] -- vbuyy=vbuc1 ldy #0 - // [186] phi (byte) uctoa_append::value#2 = (byte) uctoa_append::value#0 [phi:uctoa_append->uctoa_append::@1#1] -- register_copy + // [190] phi (byte) uctoa_append::value#2 = (byte) uctoa_append::value#0 [phi:uctoa_append->uctoa_append::@1#1] -- register_copy // uctoa_append::@1 __b1: // while (value >= sub) - // [187] if((byte) uctoa_append::value#2>=(byte) uctoa_append::sub#0) goto uctoa_append::@2 -- vbuxx_ge_vbuz1_then_la1 + // [191] if((byte) uctoa_append::value#2>=(byte) uctoa_append::sub#0) goto uctoa_append::@2 -- vbuxx_ge_vbuz1_then_la1 cpx.z sub bcs __b2 // uctoa_append::@3 // *buffer = DIGITS[digit] - // [188] *((byte*) uctoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) uctoa_append::digit#2) -- _deref_pbuz1=pbuc1_derefidx_vbuyy + // [192] *((byte*) uctoa_append::buffer#0) ← *((const byte*) DIGITS + (byte) uctoa_append::digit#2) -- _deref_pbuz1=pbuc1_derefidx_vbuyy lda DIGITS,y ldy #0 sta (buffer),y // uctoa_append::@return // } - // [189] return + // [193] return rts // uctoa_append::@2 __b2: // digit++; - // [190] (byte) uctoa_append::digit#1 ← ++ (byte) uctoa_append::digit#2 -- vbuyy=_inc_vbuyy + // [194] (byte) uctoa_append::digit#1 ← ++ (byte) uctoa_append::digit#2 -- vbuyy=_inc_vbuyy iny // value -= sub - // [191] (byte) uctoa_append::value#1 ← (byte) uctoa_append::value#2 - (byte) uctoa_append::sub#0 -- vbuxx=vbuxx_minus_vbuz1 + // [195] (byte) uctoa_append::value#1 ← (byte) uctoa_append::value#2 - (byte) uctoa_append::sub#0 -- vbuxx=vbuxx_minus_vbuz1 txa sec sbc.z sub tax - // [186] phi from uctoa_append::@2 to uctoa_append::@1 [phi:uctoa_append::@2->uctoa_append::@1] - // [186] phi (byte) uctoa_append::digit#2 = (byte) uctoa_append::digit#1 [phi:uctoa_append::@2->uctoa_append::@1#0] -- register_copy - // [186] phi (byte) uctoa_append::value#2 = (byte) uctoa_append::value#1 [phi:uctoa_append::@2->uctoa_append::@1#1] -- register_copy + // [190] phi from uctoa_append::@2 to uctoa_append::@1 [phi:uctoa_append::@2->uctoa_append::@1] + // [190] phi (byte) uctoa_append::digit#2 = (byte) uctoa_append::digit#1 [phi:uctoa_append::@2->uctoa_append::@1#0] -- register_copy + // [190] phi (byte) uctoa_append::value#2 = (byte) uctoa_append::value#1 [phi:uctoa_append::@2->uctoa_append::@1#1] -- register_copy jmp __b1 } // printf_cls // Clear the screen. Also resets current line/char cursor. printf_cls: { // memset(printf_screen, ' ', PRINTF_SCREEN_BYTES) - // [193] call memset + // [197] call memset // [85] phi from printf_cls to memset [phi:printf_cls->memset] // [85] phi (byte) memset::c#4 = (byte) ' ' [phi:printf_cls->memset#0] -- vbuxx=vbuc1 ldx #' ' @@ -8908,20 +9044,20 @@ printf_cls: { jsr memset // printf_cls::@1 // printf_line_cursor = printf_screen - // [194] (byte*) printf_line_cursor ← (const byte*) printf_screen -- pbuz1=pbuc1 + // [198] (byte*) printf_line_cursor ← (const byte*) printf_screen -- pbuz1=pbuc1 lda #printf_screen sta.z printf_line_cursor+1 // printf_char_cursor = printf_line_cursor - // [195] (byte*) printf_char_cursor ← (byte*) printf_line_cursor -- pbuz1=pbuz2 + // [199] (byte*) printf_char_cursor ← (byte*) printf_line_cursor -- pbuz1=pbuz2 lda.z printf_line_cursor sta.z printf_char_cursor lda.z printf_line_cursor+1 sta.z printf_char_cursor+1 // printf_cls::@return // } - // [196] return + // [200] return rts } // File Data diff --git a/src/test/ref/printf-2.sym b/src/test/ref/printf-2.sym index d9bab147a..7dde04b79 100644 --- a/src/test/ref/printf-2.sym +++ b/src/test/ref/printf-2.sym @@ -77,7 +77,7 @@ (byte) printf_char::ch#1 reg byte a 200002.0 (byte) printf_char::ch#2 reg byte a 2002.0 (byte) printf_char::ch#3 reg byte a 1201004.0 -(byte*) printf_char_cursor loadstore zp[2]:16 70719.31313131312 +(byte*) printf_char_cursor loadstore zp[2]:16 174758.36893203887 (void()) printf_cls() (label) printf_cls::@1 (label) printf_cls::@return @@ -88,7 +88,7 @@ (byte) printf_format_number::zero_padding (byte) printf_format_string::justify_left (byte) printf_format_string::min_length -(byte*) printf_line_cursor loadstore zp[2]:14 10561.147368421056 +(byte*) printf_line_cursor loadstore zp[2]:14 323234.4343434343 (void()) printf_ln() (label) printf_ln::@1 (label) printf_ln::@2 @@ -180,11 +180,15 @@ (label) printf_str::@1 (label) printf_str::@2 (label) printf_str::@3 +(label) printf_str::@4 +(label) printf_str::@5 (label) printf_str::@return +(byte) printf_str::ch +(byte) printf_str::ch#0 reg byte a 100001.0 (byte*) printf_str::str -(byte*) printf_str::str#0 str zp[2]:4 200002.0 +(byte*) printf_str::str#0 str zp[2]:4 42857.57142857143 (byte*) printf_str::str#1 str zp[2]:4 5501.0 -(byte*) printf_str::str#2 str zp[2]:4 102501.25 +(byte*) printf_str::str#2 str zp[2]:4 205002.5 (void()) printf_uint((word) printf_uint::uvalue , (byte) printf_uint::format_min_length , (byte) printf_uint::format_justify_left , (byte) printf_uint::format_sign_always , (byte) printf_uint::format_zero_padding , (byte) printf_uint::format_radix) (label) printf_uint::@1 (label) printf_uint::@2 @@ -343,6 +347,7 @@ reg byte x [ uctoa_append::value#2 uctoa_append::value#0 uctoa_append::value#1 ] reg byte y [ uctoa_append::digit#2 uctoa_append::digit#1 ] zp[2]:14 [ printf_line_cursor ] zp[2]:16 [ printf_char_cursor printf_char::$8 ] +reg byte a [ printf_str::ch#0 ] reg byte a [ utoa::$11 ] reg byte a [ utoa::$10 ] zp[2]:18 [ utoa::digit_value#0 utoa_append::sub#0 uctoa::buffer#11 uctoa::buffer#14 uctoa::buffer#4 uctoa::buffer#3 uctoa_append::buffer#0 ]